diff options
author | Sven Gothel <[email protected]> | 2023-04-19 20:39:10 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2023-04-19 20:39:10 +0200 |
commit | 7a2f6bfdfadcaba1d6fecc2389ba7b91e927104a (patch) | |
tree | 44b91bb6771c042eef6ef8efe0c0c03bdd2eedbc /src/graphui/classes/com/jogamp/graph/ui/shapes/RoundButton.java | |
parent | 18c405bb970d34cbdeef4af9fa06e612d5edbffb (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.java | 153 |
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; - } -} |