Class ProjectionStrategy

  • All Implemented Interfaces:
    IComputationStrategy
    Direct Known Subclasses:
    ChopBoxStrategy, OrthogonalProjectionStrategy

    public class ProjectionStrategy
    extends java.lang.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 Detail

      • ProjectionStrategy

        public ProjectionStrategy()
    • Method Detail

      • computePositionInScene

        public Point computePositionInScene​(javafx.scene.Node anchorage,
                                            javafx.scene.Node anchored,
                                            java.util.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​(java.util.List<ICurve> anchorageOutlinesInScene,
                                                 Point anchoredReferencePointInScene,
                                                 java.util.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 java.util.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.