Package org.eclipse.gef.fx.nodes

# Class GeometryNode<T extends IGeometry>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
org.eclipse.gef.fx.nodes.GeometryNode<T>

Type Parameters:
  `T` - An `IGeometry` used to define the geometric shape of this `GeometryNode`

All Implemented Interfaces:
  `javafx.css.Styleable`, `javafx.event.EventTarget`

public class GeometryNode<T extends IGeometry> extends javafx.scene.layout.Region
A `GeometryNode` is a `Node` which can be constructed using an underlying `IGeometry`. It is comparable to a `Shape`, while a `GeometryNode` in contrast can be resized. Furthermore, the geometric bounds of a `GeometryNode` can be virtually extended for the purpose of mouse hit-testing to realize a 'clickable area'.

Technically, a `GeometryNode` is a `Region` that internally holds a `geometric shape`, which is updated to reflect the given `IGeometry`, and to which all visual properties are delegated. The 'clickable' area is realized by a transparent, non-mouse transparent overlay that uses the same `IGeometry`, extended by the `clickable area width`.

Please note that because `IGeometry` does not support change notifications itself, changes to the underlying `IGeometry` will not be recognized by the `GeometryNode` unless the `geometry property` is changed.

## Property Summary

Properties
Type
Property
Description
`javafx.beans.property.DoubleProperty`
`clickableAreaWidth`
Returns a (writable) property that controls the width of the clickable area.
`final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint>`
`fill`
Provides a `Property` holding the fill that is applied to the `Path` internally used by this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.FillRule>`
`fillRule`
Provides a `Property` holding the fill rule to apply for this `GeometryNode`.
`javafx.beans.property.ObjectProperty<T>`
`geometry`
Provides a `Property` holding the geometry of this `GeometryNode`.
`final javafx.beans.property.BooleanProperty`
`smooth`
Provides a `Property` holding the smooth value to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeDashOffset`
Provides a `Property` holding the stroke dash offset to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineCap>`
`strokeLineCap`
Provides a `Property` holding the stroke line cap to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineJoin>`
`strokeLineJoin`
Provides a `Property` holding the stroke line join to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeMiterLimit`
Provides a `Property` holding the stroke miter limit to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint>`
`stroke`
Defines parameters of a stroke that is drawn around the outline of a Shape using the settings of the specified Paint.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeType>`
`strokeType`
Provides a `Property` holding the stroke type to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeWidth`
Provides a `Property` holding the stroke width to apply for this `GeometryNode`.

### Properties inherited from class javafx.scene.layout.Region

`background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

### Properties inherited from class javafx.scene.Parent

`needsLayout`

### Properties inherited from class javafx.scene.Node

`accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

## Field Summary

### Fields inherited from class javafx.scene.layout.Region

`USE_COMPUTED_SIZE, USE_PREF_SIZE`

### Fields inherited from class javafx.scene.Node

`BASELINE_OFFSET_SAME_AS_HEIGHT`

## Constructor Summary

Constructors
Constructor
Description
`GeometryNode()`
Constructs a new `GeometryNode` without an `IGeometry`.
`GeometryNode(T geom)`
Constructs a new `GeometryNode` which displays the given `IGeometry`.

## Method Summary

Modifier and Type
Method
Description
`javafx.beans.property.DoubleProperty`
`clickableAreaWidthProperty()`
Returns a (writable) property that controls the width of the clickable area.
`protected double`
`computeMinHeight(double width)`
`protected double`
`computeMinWidth(double height)`
`protected double`
`computePrefHeight(double width)`
`protected double`
`computePrefWidth(double height)`
`final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint>`
`fillProperty()`
Provides a `Property` holding the fill that is applied to the `Path` internally used by this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.FillRule>`
`fillRuleProperty()`
Provides a `Property` holding the fill rule to apply for this `GeometryNode`.
`javafx.beans.property.ObjectProperty<T>`
`geometryProperty()`
Provides a `Property` holding the geometry of this `GeometryNode`.
`double`
`getClickableAreaWidth()`
Retrieves the value of the clickable area width property ( `clickableAreaWidthProperty()`).
`final javafx.scene.paint.Paint`
`getFill()`
Retrieves the value of the fill property.
`final javafx.scene.shape.FillRule`
`getFillRule()`
Retrieves the value of the fill rule property.
`protected javafx.scene.shape.Path`
`getGeometricShape()`
Returns the `Shape` that is used as a delegate to render the geometry of this `GeometryNode`.
`T`
`getGeometry()`
Retrieves the value of the geometry property.
`javafx.scene.shape.Path`
`getPath()`
Returns the JavaFX `Path` that is used to visualize the `IGeometry` of this `GeometryNode`.
`final javafx.scene.paint.Paint`
`getStroke()`
Retrieves the value of the stroke property.
`final javafx.collections.ObservableList<Double>`
`getStrokeDashArray()`
Retrieves the value of the stroke dash array property.
`final double`
`getStrokeDashOffset()`
Retrieves the value of the stroke dash offset property.
`final javafx.scene.shape.StrokeLineCap`
`getStrokeLineCap()`
Retrieves the value of the stroke line cap property.
`final javafx.scene.shape.StrokeLineJoin`
`getStrokeLineJoin()`
Retrieves the value of the stroke line join property.
`final double`
`getStrokeMiterLimit()`
Retrieves the value of the stroke miter limit property.
`final javafx.scene.shape.StrokeType`
`getStrokeType()`
Retrieves the value of the stroke type property.
`final double`
`getStrokeWidth()`
Retrieves the value of the stroke width property.
`boolean`
`isResizable()`
`final boolean`
`isSmooth()`
Retrieves the value of the smooth property.
`void`
`relocate(double x, double y)`
`void`
`relocateGeometry(double x, double y)`
Relocates the `geometry`.
`void`
`resize(double width, double height)`
`void`
`resizeGeometry(double width, double height)`
Resizes the `geometryProperty()` to the given width and height.
`void`
`setClickableAreaWidth(double clickableAreaWidth)`
Sets the value of the property `clickable area width` property.
`final void`
`setFill(javafx.scene.paint.Paint value)`
Sets the value of the fill property.
`final void`
`setFillRule(javafx.scene.shape.FillRule value)`
Sets the value of the fill rule property.
`protected void`
`setGeometricShape(javafx.scene.shape.Path geometricShape)`
Sets the geometric shape used by this `GeometryNode`.
`void`
`setGeometry(T geometry)`
Sets the `IGeometry` of this `GeometryNode` to the given value.
`final void`
`setSmooth(boolean value)`
Sets the value of the smooth property.
`final void`
`setStroke(javafx.scene.paint.Paint value)`
* Sets the value of the stroke property.
`final void`
`setStrokeDashOffset(double value)`
Sets the value of the stroke dash offset property.
`final void`
`setStrokeLineCap(javafx.scene.shape.StrokeLineCap value)`
Sets the value of the stroke line cap property.
`final void`
`setStrokeLineJoin(javafx.scene.shape.StrokeLineJoin value)`
Sets the value of the stroke line join property.
`final void`
`setStrokeMiterLimit(double value)`
Sets the value of the stroke miter limit property.
`final void`
`setStrokeType(javafx.scene.shape.StrokeType value)`
Sets the value of the stroke type property.
`final void`
`setStrokeWidth(double value)`
Sets the value of the stroke width property.
`final javafx.beans.property.BooleanProperty`
`smoothProperty()`
Provides a `Property` holding the smooth value to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeDashOffsetProperty()`
Provides a `Property` holding the stroke dash offset to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineCap>`
`strokeLineCapProperty()`
Provides a `Property` holding the stroke line cap to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineJoin>`
`strokeLineJoinProperty()`
Provides a `Property` holding the stroke line join to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeMiterLimitProperty()`
Provides a `Property` holding the stroke miter limit to apply for this `GeometryNode`.
`final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint>`
`strokeProperty()`
Defines parameters of a stroke that is drawn around the outline of a Shape using the settings of the specified Paint.
`final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeType>`
`strokeTypeProperty()`
Provides a `Property` holding the stroke type to apply for this `GeometryNode`.
`final javafx.beans.property.DoubleProperty`
`strokeWidthProperty()`
Provides a `Property` holding the stroke width to apply for this `GeometryNode`.

### Methods inherited from class javafx.scene.layout.Region

`backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getClassCssMetaData, getCssMetaData, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

### Methods inherited from class javafx.scene.Parent

`getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

### Methods inherited from class javafx.scene.Node

`accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface javafx.css.Styleable

`getStyleableNode`

## Property Details

### clickableAreaWidth

public javafx.beans.property.DoubleProperty clickableAreaWidthProperty
Returns a (writable) property that controls the width of the clickable area. The clickable area is a transparent 'fat' curve overlaying the actual curve and serving as mouse target. It is only used if the value of the property is greater than the stroke width of the underlying curve.

See Also:
  - `getClickableAreaWidth()`
  - `setClickableAreaWidth(double)`

### fill

public final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> fillProperty
Provides a `Property` holding the fill that is applied to the `Path` internally used by this `GeometryNode`.

See Also:
  - `getFill()`
  - `setFill(Paint)`

### fillRule

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.FillRule> fillRuleProperty
Provides a `Property` holding the fill rule to apply for this `GeometryNode`.

See Also:
  - `getFillRule()`
  - `setFillRule(FillRule)`

### geometry

public javafx.beans.property.ObjectProperty<T extends IGeometry> geometryProperty
Provides a `Property` holding the geometry of this `GeometryNode`.

See Also:
  - `getGeometry()`
  - `setGeometry(T)`

### smooth

public final javafx.beans.property.BooleanProperty smoothProperty
Provides a `Property` holding the smooth value to apply for this `GeometryNode`.

See Also:
  - `isSmooth()`
  - `setSmooth(boolean)`

### strokeDashOffset

public final javafx.beans.property.DoubleProperty strokeDashOffsetProperty
Provides a `Property` holding the stroke dash offset to apply for this `GeometryNode`.

See Also:
  - `getStrokeDashOffset()`
  - `setStrokeDashOffset(double)`

### strokeLineCap

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineCap> strokeLineCapProperty
Provides a `Property` holding the stroke line cap to apply for this `GeometryNode`.

See Also:
  - `getStrokeLineCap()`
  - `setStrokeLineCap(StrokeLineCap)`

### strokeLineJoin

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineJoin> strokeLineJoinProperty
Provides a `Property` holding the stroke line join to apply for this `GeometryNode`.

See Also:
  - `getStrokeLineJoin()`
  - `setStrokeLineJoin(StrokeLineJoin)`

### strokeMiterLimit

public final javafx.beans.property.DoubleProperty strokeMiterLimitProperty
Provides a `Property` holding the stroke miter limit to apply for this `GeometryNode`.

See Also:
  - `getStrokeMiterLimit()`
  - `setStrokeMiterLimit(double)`

### stroke

public final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> strokeProperty
Defines parameters of a stroke that is drawn around the outline of a Shape using the settings of the specified Paint. The default value is Color.BLACK.

See Also:
  - `getStroke()`
  - `setStroke(Paint)`

### strokeType

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeType> strokeTypeProperty
Provides a `Property` holding the stroke type to apply for this `GeometryNode`.

See Also:
  - `getStrokeType()`
  - `setStrokeType(StrokeType)`

### strokeWidth

public final javafx.beans.property.DoubleProperty strokeWidthProperty
Provides a `Property` holding the stroke width to apply for this `GeometryNode`.

See Also:
  - `getStrokeWidth()`
  - `setStrokeWidth(double)`

## Constructor Details

### GeometryNode

public GeometryNode()
Constructs a new `GeometryNode` without an `IGeometry`.

### GeometryNode

public GeometryNode(T geom)
Constructs a new `GeometryNode` which displays the given `IGeometry`.

Parameters:
  `geom` - The `IGeometry` to display.

## Method Details

### clickableAreaWidthProperty

public javafx.beans.property.DoubleProperty clickableAreaWidthProperty()
Returns a (writable) property that controls the width of the clickable area. The clickable area is a transparent 'fat' curve overlaying the actual curve and serving as mouse target. It is only used if the value of the property is greater than the stroke width of the underlying curve.

See Also:
  - `getClickableAreaWidth()`
  - `setClickableAreaWidth(double)`

### computeMinHeight

protected double computeMinHeight(double width)

Overrides:
  `computeMinHeight` in class `javafx.scene.layout.Region`

### computeMinWidth

protected double computeMinWidth(double height)

Overrides:
  `computeMinWidth` in class `javafx.scene.layout.Region`

### computePrefHeight

protected double computePrefHeight(double width)

Overrides:
  `computePrefHeight` in class `javafx.scene.layout.Region`

### computePrefWidth

protected double computePrefWidth(double height)

Overrides:
  `computePrefWidth` in class `javafx.scene.layout.Region`

### fillProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> fillProperty()
Provides a `Property` holding the fill that is applied to the `Path` internally used by this `GeometryNode`.

See Also:
  - `getFill()`
  - `setFill(Paint)`

### fillRuleProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.FillRule> fillRuleProperty()
Provides a `Property` holding the fill rule to apply for this `GeometryNode`.

See Also:
  - `getFillRule()`
  - `setFillRule(FillRule)`

### geometryProperty

public javafx.beans.property.ObjectProperty<T> geometryProperty()
Provides a `Property` holding the geometry of this `GeometryNode`.

See Also:
  - `getGeometry()`
  - `setGeometry(T)`

### getClickableAreaWidth

public double getClickableAreaWidth()
Retrieves the value of the clickable area width property ( `clickableAreaWidthProperty()`).

Returns:
  The current value of the `clickableAreaWidthProperty()`.

### getFill

public final javafx.scene.paint.Paint getFill()
Retrieves the value of the fill property.

Returns:
  The value of the fill property.
See Also:
  - `Shape.getFill()`

### getFillRule

public final javafx.scene.shape.FillRule getFillRule()
Retrieves the value of the fill rule property.

Returns:
  The value of the fill rule property.
See Also:
  - `Path.getFillRule()`

### getGeometricShape

protected javafx.scene.shape.Path getGeometricShape()
Returns the `Shape` that is used as a delegate to render the geometry of this `GeometryNode`.

Returns:
  The geometric shape used by this `GeometryNode`.

### getGeometry

public T getGeometry()
Retrieves the value of the geometry property.

Returns:
  The value of the geometry property.

### getPath

public javafx.scene.shape.Path getPath()
Returns the JavaFX `Path` that is used to visualize the `IGeometry` of this `GeometryNode`.

Returns:
  The JavaFX `Path` that is used to visualize the `IGeometry`.

### getStroke

public final javafx.scene.paint.Paint getStroke()
Retrieves the value of the stroke property.

Returns:
  The value of the stroke property.
See Also:
  - `Shape.getStroke()`

### getStrokeDashArray

public final javafx.collections.ObservableList<Double> getStrokeDashArray()
Retrieves the value of the stroke dash array property.

Returns:
  The value of the stroke dash array property.
See Also:
  - `Shape.getStrokeDashArray()`

### getStrokeDashOffset

public final double getStrokeDashOffset()
Retrieves the value of the stroke dash offset property.

Returns:
  The value of the stroke dash offset property.
See Also:
  - `Shape.getStrokeDashOffset()`

### getStrokeLineCap

public final javafx.scene.shape.StrokeLineCap getStrokeLineCap()
Retrieves the value of the stroke line cap property.

Returns:
  The value of the stroke line cap property.
See Also:
  - `Shape.getStrokeLineCap()`

### getStrokeLineJoin

public final javafx.scene.shape.StrokeLineJoin getStrokeLineJoin()
Retrieves the value of the stroke line join property.

Returns:
  The value of the stroke line join property.
See Also:
  - `Shape.getStrokeLineJoin()`

### getStrokeMiterLimit

public final double getStrokeMiterLimit()
Retrieves the value of the stroke miter limit property.

Returns:
  The value of the stroke miter limit property.
See Also:
  - `Shape.getStrokeMiterLimit()`

### getStrokeType

public final javafx.scene.shape.StrokeType getStrokeType()
Retrieves the value of the stroke type property.

Returns:
  The value of the stroke type property.
See Also:
  - `Shape.getStrokeType()`

### getStrokeWidth

public final double getStrokeWidth()
Retrieves the value of the stroke width property.

Returns:
  The value of the stroke width property.
See Also:
  - `Shape.getStrokeWidth()`

### isResizable

public boolean isResizable()

Overrides:
  `isResizable` in class `javafx.scene.layout.Region`

### isSmooth

public final boolean isSmooth()
Retrieves the value of the smooth property.

Returns:
  The value of the smooth property.
See Also:
  - `Shape.isSmooth()`

### relocate

public void relocate(double x, double y)

Overrides:
  `relocate` in class `javafx.scene.Node`

### relocateGeometry

public void relocateGeometry(double x, double y)
Relocates the `geometry`.

Parameters:
  `x` - The new x coordinate
  `y` - The new y coordinate

### resize

public void resize(double width, double height)

Overrides:
  `resize` in class `javafx.scene.layout.Region`

### resizeGeometry

public void resizeGeometry(double width, double height)
Resizes the `geometryProperty()` to the given width and height.

Parameters:
  `width` - The new width.
  `height` - The new height.

### setClickableAreaWidth

public void setClickableAreaWidth(double clickableAreaWidth)
Sets the value of the property `clickable area width` property.

Parameters:
  `clickableAreaWidth` - The new value of the `clickable area width` property.

### setFill

public final void setFill(javafx.scene.paint.Paint value)
Sets the value of the fill property.

Parameters:
  `value` - The new value of the fill property.
See Also:
  - `Shape.setFill(javafx.scene.paint.Paint)`

### setFillRule

public final void setFillRule(javafx.scene.shape.FillRule value)
Sets the value of the fill rule property.

Parameters:
  `value` - The new value of the fill rule property.
See Also:
  - `Path.setFillRule(javafx.scene.shape.FillRule)`

### setGeometricShape

protected void setGeometricShape(javafx.scene.shape.Path geometricShape)
Sets the geometric shape used by this `GeometryNode`.

Parameters:
  `geometricShape` - The geometric shape.

### setGeometry

public void setGeometry(T geometry)
Sets the `IGeometry` of this `GeometryNode` to the given value.

Parameters:
  `geometry` - The new `IGeometry` for this `GeometryNode`.

### setSmooth

public final void setSmooth(boolean value)
Sets the value of the smooth property.

Parameters:
  `value` - The new value of the smooth property.
See Also:
  - `Shape.setSmooth(boolean)`

### setStroke

public final void setStroke(javafx.scene.paint.Paint value)
* Sets the value of the stroke property.

Parameters:
  `value` - The new value of the stroke property.
See Also:
  - `Shape.setStroke(javafx.scene.paint.Paint)`

### setStrokeDashOffset

public final void setStrokeDashOffset(double value)
Sets the value of the stroke dash offset property.

Parameters:
  `value` - The new value of the stroke dash offset property.
See Also:
  - `Shape.setStrokeDashOffset(double)`

### setStrokeLineCap

public final void setStrokeLineCap(javafx.scene.shape.StrokeLineCap value)
Sets the value of the stroke line cap property.

Parameters:
  `value` - The new value of the stroke line cap property.
See Also:
  - `Shape.setStrokeLineCap(javafx.scene.shape.StrokeLineCap)`

### setStrokeLineJoin

public final void setStrokeLineJoin(javafx.scene.shape.StrokeLineJoin value)
Sets the value of the stroke line join property.

Parameters:
  `value` - The new value of the stroke line join property.
See Also:
  - `Shape.setStrokeLineJoin(javafx.scene.shape.StrokeLineJoin)`

### setStrokeMiterLimit

public final void setStrokeMiterLimit(double value)
Sets the value of the stroke miter limit property.

Parameters:
  `value` - The new value of the stroke miter limit property.
See Also:
  - `Shape.setStrokeMiterLimit(double)`

### setStrokeType

public final void setStrokeType(javafx.scene.shape.StrokeType value)
Sets the value of the stroke type property.

Parameters:
  `value` - The new value of the stroke type property.
See Also:
  - `Shape.setStrokeType(javafx.scene.shape.StrokeType)`

### setStrokeWidth

public final void setStrokeWidth(double value)
Sets the value of the stroke width property.

Parameters:
  `value` - The new value of the stroke width property.
See Also:
  - `Shape.setStrokeWidth(double)`

### smoothProperty

public final javafx.beans.property.BooleanProperty smoothProperty()
Provides a `Property` holding the smooth value to apply for this `GeometryNode`.

See Also:
  - `isSmooth()`
  - `setSmooth(boolean)`

### strokeDashOffsetProperty

public final javafx.beans.property.DoubleProperty strokeDashOffsetProperty()
Provides a `Property` holding the stroke dash offset to apply for this `GeometryNode`.

See Also:
  - `getStrokeDashOffset()`
  - `setStrokeDashOffset(double)`

### strokeLineCapProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineCap> strokeLineCapProperty()
Provides a `Property` holding the stroke line cap to apply for this `GeometryNode`.

See Also:
  - `getStrokeLineCap()`
  - `setStrokeLineCap(StrokeLineCap)`

### strokeLineJoinProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeLineJoin> strokeLineJoinProperty()
Provides a `Property` holding the stroke line join to apply for this `GeometryNode`.

See Also:
  - `getStrokeLineJoin()`
  - `setStrokeLineJoin(StrokeLineJoin)`

### strokeMiterLimitProperty

public final javafx.beans.property.DoubleProperty strokeMiterLimitProperty()
Provides a `Property` holding the stroke miter limit to apply for this `GeometryNode`.

See Also:
  - `getStrokeMiterLimit()`
  - `setStrokeMiterLimit(double)`

### strokeProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> strokeProperty()
Defines parameters of a stroke that is drawn around the outline of a Shape using the settings of the specified Paint. The default value is Color.BLACK.

See Also:
  - `getStroke()`
  - `setStroke(Paint)`

### strokeTypeProperty

public final javafx.beans.property.ObjectProperty<javafx.scene.shape.StrokeType> strokeTypeProperty()
Provides a `Property` holding the stroke type to apply for this `GeometryNode`.

See Also:
  - `getStrokeType()`
  - `setStrokeType(StrokeType)`

### strokeWidthProperty

public final javafx.beans.property.DoubleProperty strokeWidthProperty()
Provides a `Property` holding the stroke width to apply for this `GeometryNode`.

See Also:
  - `getStrokeWidth()`
  - `setStrokeWidth(double)`