# Package org.eclipse.gef.fx.nodes

This package provides: an adaptation of an `IGeometry` to `Node`: `GeometryNode` a connection abstraction that is based on `IAnchor`: `Connection` a visual to display an image which is overlayed by another image on mouse hover: `HoverOverlayImageView` a visual providing a scrollable infinite canvas with a background grid: `InfiniteCanvas`

See: Description

Interface Summary
IConnectionInterpolator: An `IConnectionInterpolator` is responsible for updating the `Connection`'s `curve node` (which includes to properly clip it at the start and end decorations), as well as for arranging the decorations.
IConnectionRouter: An `IConnectionRouter` is responsible for `adjustment` of a `Connection`'s points.

Class Summary
AbstractInterpolator: Abstract base class for `IConnectionInterpolator` implementations, which supports updating the geometry for an `IGeometry` curve node, as well as arranging and clipping the decorations.
AbstractRouter: Abstract base class for `IConnectionRouter`s implementing a routing strategy that can be specialized by subclasses: Remove anchors previously inserted by the router.
AbstractRouter.ControlPointManipulator: A `AbstractRouter.ControlPointManipulator` can be used to record, perform, and roll back control point changes during routing.
AbstractRouter.VolatileStaticAnchor: The `AbstractRouter.VolatileStaticAnchor` is a `StaticAnchor` that may be inserted by an `AbstractRouter` during `route(Connection)`, and, hence, will be removed when routing is performed again.
Connection: A (binary) `Connection` is a visual curveProperty, whose appearance is defined through a single start and end point, and a set of control points, which may be 'connected', i.e. be attached to an `IAnchor`.
GeometryNode<T extends IGeometry>: A `GeometryNode` is a `Node` which can be constructed using an underlying `IGeometry`.
HoverOverlayImageView: A `Group` that combines two `ImageView`s, realizing an overlay effect (by adjusting the respective opacities) upon mouse hover.
InfiniteCanvas: An `InfiniteCanvas` provides a means to render a portion of a hypothetically infinite canvas, on which arbitrary contents can be placed.
OrthogonalRouter: An `IConnectionRouter` that interprets the `Connection` control points as way points and adjusts the way points (if necessary) so that the `Connection` is routed orthogonally.
PolyBezierInterpolator: The `PolyBezierInterpolator` interpolates a cubic Bezier spline through the supplied `way points`.
PolylineInterpolator: The `PolylineInterpolator` constructs a `Polyline` through the given `Connection`'s points.
StraightRouter: The `StraightRouter` is an `IConnectionRouter` that leaves the `Connection`'s control points untouched and only provides reference points for the `Connection`'s anchors.

## Package org.eclipse.gef.fx.nodes Description

This package provides:

- an adaptation of an `IGeometry` to `Node`: `GeometryNode`
- a connection abstraction that is based on `IAnchor`: `Connection`
- a visual to display an image which is overlayed by another image on mouse hover: `HoverOverlayImageView`
- a visual providing a scrollable infinite canvas with a background grid: `InfiniteCanvas`