aboutsummaryrefslogtreecommitdiffstats
path: root/src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-04-19 20:39:10 +0200
committerSven Gothel <[email protected]>2023-04-19 20:39:10 +0200
commit7a2f6bfdfadcaba1d6fecc2389ba7b91e927104a (patch)
tree44b91bb6771c042eef6ef8efe0c0c03bdd2eedbc /src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java
parent18c405bb970d34cbdeef4af9fa06e612d5edbffb (diff)
GraphUI {Round->Base}Button, denoting perpendicular or round corners (aka rectangle or oval shape)
- Button + BaseButton setter also pass this for chaining - Button {twoPassLabel->label}ZOffset, investigate whether z-offset still required (not if blending is enabled!) -
Diffstat (limited to 'src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java')
-rw-r--r--src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java153
1 files changed, 0 insertions, 153 deletions
diff --git a/src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java b/src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java
deleted file mode 100644
index 672d99c3e..000000000
--- a/src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * Copyright 2010-2023 JogAmp Community. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of JogAmp Community.
- */
-package com.jogamp.graph.ui.shapes;
-
-import com.jogamp.graph.curve.OutlineShape;
-import com.jogamp.graph.ui.GraphShape;
-
-/**
- * An abstract GraphUI round Button {@link GraphShape}
- * <p>
- * GraphUI is GPU based and resolution independent.
- * </p>
- * <p>
- * This button is rendered with a round oval shape.
- * To render it rectangular, {@link #setCorner(float)} to zero.
- * </p>
- */
-public class RoundButton extends GraphShape {
-
- /** {@value} */
- public static final float DEFAULT_CORNER = 1f;
- protected float width;
- protected float height;
- protected float corner = DEFAULT_CORNER;
-
- public RoundButton(final int renderModes, final float width, final float height) {
- super(renderModes);
- this.width = width;
- this.height = height;
- }
-
- public final float getWidth() { return width; }
-
- public final float getHeight() { return height; }
-
- public final float getCorner() { return corner; }
-
- public RoundButton setSize(final float width, final float height) {
- this.width = width;
- this.height = height;
- markShapeDirty();
- return this;
- }
-
- @Override
- protected void addShapeToRegion() {
- addRoundShapeToRegion(0f);
- }
- protected OutlineShape addRoundShapeToRegion(final float zOffset) {
- final OutlineShape shape = new OutlineShape();
- if(corner == 0.0f) {
- createSharpOutline(shape, zOffset);
- } else {
- createCurvedOutline(shape, zOffset);
- }
- shape.setIsQuadraticNurbs();
- shape.setSharpness(oshapeSharpness);
- region.addOutlineShape(shape, null, rgbaColor);
- box.resize(shape.getBounds());
- setRotationPivot( box.getCenter() );
- if( DEBUG_DRAW ) {
- System.err.println("GraphShape.RoundButton: Added Shape: "+shape+", "+box);
- }
- return shape;
- }
-
- protected void createSharpOutline(final OutlineShape shape, final float zOffset) {
- final float tw = getWidth();
- final float th = getHeight();
-
- final float minX = 0;
- final float minY = 0;
- final float minZ = zOffset;
-
- shape.addVertex(minX, minY, minZ, true);
- shape.addVertex(minX+tw, minY, minZ, true);
- shape.addVertex(minX+tw, minY + th, minZ, true);
- shape.addVertex(minX, minY + th, minZ, true);
- shape.closeLastOutline(true);
- }
-
- protected void createCurvedOutline(final OutlineShape shape, final float zOffset) {
- final float tw = getWidth();
- final float th = getHeight();
- final float dC = 0.5f*corner*Math.min(tw, th);
-
- final float minX = 0;
- final float minY = 0;
- final float minZ = zOffset;
-
- shape.addVertex(minX, minY + dC, minZ, true);
- shape.addVertex(minX, minY, minZ, false);
-
- shape.addVertex(minX + dC, minY, minZ, true);
-
- shape.addVertex(minX + tw - dC, minY, minZ, true);
- shape.addVertex(minX + tw, minY, minZ, false);
- shape.addVertex(minX + tw, minY + dC, minZ, true);
- shape.addVertex(minX + tw, minY + th- dC, minZ, true);
- shape.addVertex(minX + tw, minY + th, minZ, false);
- shape.addVertex(minX + tw - dC, minY + th, minZ, true);
- shape.addVertex(minX + dC, minY + th, minZ, true);
- shape.addVertex(minX, minY + th, minZ, false);
- shape.addVertex(minX, minY + th - dC, minZ, true);
-
- shape.closeLastOutline(true);
- }
-
- /** Set corner size, default is {@link #DEFAULT_CORNER} */
- public RoundButton setCorner(final float corner) {
- if(corner > 1.0f){
- this.corner = 1.0f;
- }
- else if(corner < 0.01f){
- this.corner = 0.0f;
- }
- else{
- this.corner = corner;
- }
- markShapeDirty();
- return this;
- }
-
- @Override
- public String getSubString() {
- return super.getSubString()+", dim "+getWidth() + " x " + getHeight() + ", corner " + corner;
- }
-}