Class ProjectionStrategy

java.lang.Object
org.eclipse.gef.fx.anchors.ProjectionStrategy
All Implemented Interfaces:
IComputationStrategy
Direct Known Subclasses:
ChopBoxStrategy, OrthogonalProjectionStrategy

public class ProjectionStrategy extends Object implements IComputationStrategy
An IComputationStrategy that computes anchor position by projecting the respective anchored reference point to the outline of the anchorage reference geometry so that the respective point has minimal distance to the anchored reference point. In detail, the computation is done as follows:
  1. Compute the anchorage outlines (in scene) based on the anchorage reference geometry,using getOutlineSegments(IGeometry).
  2. Transform the given anchored reference point to scene coordinates.
  3. Project the anchored reference point (in scene) onto the anchorage outlines.
  4. Return the nearest projection to the anchored reference point.
  • Constructor Details

    • ProjectionStrategy

      public ProjectionStrategy()
  • Method Details

    • computePositionInScene

      public Point computePositionInScene(javafx.scene.Node anchorage, javafx.scene.Node anchored, Set<IComputationStrategy.Parameter<?>> parameters)
      Description copied from interface: IComputationStrategy
      Computes an anchor position based on the given anchorage visual, anchored visual, and anchored reference point.
      Specified by:
      computePositionInScene in interface IComputationStrategy
      Parameters:
      anchorage - The anchorage visual.
      anchored - The anchored visual.
      parameters - The available computation parameters. strategy.
      Returns:
      The anchor position.
    • computeProjectionInScene

      protected Point computeProjectionInScene(List<ICurve> anchorageOutlinesInScene, Point anchoredReferencePointInScene, Set<IComputationStrategy.Parameter<?>> parameters)
      Computes the anchorage reference position in scene coordinates, based on the given anchorage outlines and the given anchored reference point.
      Parameters:
      anchorageOutlinesInScene - A list of ICurves that describe the outline of the anchorage.
      anchoredReferencePointInScene - The reference Point of the anchored for which the anchorage reference Point is to be determined.
      parameters - The parameters available for the computation.
      Returns:
      The anchorage reference position.
    • getOutlineSegments

      protected List<ICurve> getOutlineSegments(IGeometry geometry)
      Determines the outline of the given IGeometry, represented as a list of ICurves.
      Parameters:
      geometry - The anchorage geometry.
      Returns:
      A list of ICurves representing the outline of the given IGeometry.
    • getRequiredParameters

      public Set<Class<? extends IComputationStrategy.Parameter<?>>> getRequiredParameters()
      Description copied from interface: IComputationStrategy
      Returns the types of parameters required by this strategy.
      Specified by:
      getRequiredParameters in interface IComputationStrategy
      Returns:
      The parameters required by this strategy.