Class SnapToHelper
- All Implemented Interfaces:
- PositionConstants
- Direct Known Subclasses:
- CompoundSnapToHelper,- SnapToGeometry,- SnapToGrid,- SnapToGuides
- Since:
- 3.0
- 
Field SummaryFields inherited from interface org.eclipse.draw2d.PositionConstantsALWAYS_LEFT, ALWAYS_RIGHT, BOTTOM, CENTER, EAST, EAST_WEST, HORIZONTAL, LEFT, LEFT_CENTER_RIGHT, MIDDLE, NONE, NORTH, NORTH_EAST, NORTH_SOUTH, NORTH_WEST, NSEW, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TOP_MIDDLE_BOTTOM, VERTICAL, WEST
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidmakeAbsolute(IFigure figure, Translatable t) Translates from a given figure to absolute coordinates.protected voidmakeRelative(IFigure figure, Translatable t) Translates from absolute to coordinates relative to the given figure.intsnapPoint(Request request, int snapDirections, PrecisionPoint where, PrecisionPoint result) Applies a snapping correction to the given result.intsnapPoint(Request request, int snapLocations, PrecisionRectangle[] rects, PrecisionPoint result) A convenience method for snapping a Point based on an array of rectangles.intsnapRectangle(Request request, int snapOrientation, PrecisionRectangle[] baseRects, PrecisionRectangle result) A convenience method for snapping a Rectangle based on one or more rectangles.abstract intsnapRectangle(Request request, int snapOrientation, PrecisionRectangle baseRect, PrecisionRectangle result) Applies a snap correction to a Rectangle based on a given Rectangle.
- 
Constructor Details- 
SnapToHelperpublic SnapToHelper()
 
- 
- 
Method Details- 
makeAbsoluteTranslates from a given figure to absolute coordinates.- Parameters:
- figure- the reference figure
- t- the object to translate
 
- 
makeRelativeTranslates from absolute to coordinates relative to the given figure.- Parameters:
- figure- the reference figure
- t- the object to translate
 
- 
snapPointpublic int snapPoint(Request request, int snapDirections, PrecisionPoint where, PrecisionPoint result) Applies a snapping correction to the given result. Snapping can occur in the four primary directions: NORTH, SOUTH, EAST, WEST, as defined onPositionConstants. By default a Point is treated as an empty Rectangle. Only NORTH and WEST should be used in general. But SOUTH and EAST may also be used. Similarly, VERTICAL and HORIZONTAL may be used to allow a point to snap to the "center" or "middle" as defined by the concrete subclass.The returned value should be a subset of the given snapDirections based on what correction was applied to the result. e.g., if the x value was adjusted, the returned value should not contain WEST, EAST, or HORIZONTAL. All coordinate information received and returned by this method should be in absolute coordinates. - Parameters:
- request- a request or- null
- snapDirections- the directions in which snapping should occur.
- where- the rectangle used to determine snapping
- result- the result
- Returns:
- the remaining snap locations
 
- 
snapPointpublic int snapPoint(Request request, int snapLocations, PrecisionRectangle[] rects, PrecisionPoint result) A convenience method for snapping a Point based on an array of rectangles. By default, this method will construct an empty rectangle at the same locations as the provided point, and callsnapRectangle(Request, int, PrecisionRectangle[], PrecisionRectangle). The intended usage of this method is when dragging one or more parts in a diagram.The returned value should be a subset of the given snapDirections based on what correction was applied to the result. e.g., if the x value was adjusted, the returned value should not contain WEST, EAST, or HORIZONTAL. All coordinate information received and returned by this method should be in absolute coordinates. - Parameters:
- request- the request or- null
- snapLocations- the types of snapping to perform
- rects- an array of one or more rectangles used to perform the snapping
- result- the correction will be applied to this point
- Returns:
- the remaining snap locations
 
- 
snapRectanglepublic int snapRectangle(Request request, int snapOrientation, PrecisionRectangle[] baseRects, PrecisionRectangle result) A convenience method for snapping a Rectangle based on one or more rectangles. This method will callsnapRectangle(Request, int, PrecisionRectangle, PrecisionRectangle)for each rectangle in the array or until no more snap locations remain.All coordinate information received and returned by this method should be in absolute coordinates. - Parameters:
- request- the request or- null
- snapOrientation- the input snap locations
- baseRects- the prioritized rectangles to snap to
- result- the output
- Returns:
- the remaining snap locations
 
- 
snapRectanglepublic abstract int snapRectangle(Request request, int snapOrientation, PrecisionRectangle baseRect, PrecisionRectangle result) Applies a snap correction to a Rectangle based on a given Rectangle. The provided baseRect will be used as a reference for snapping. The types of snapping to be performed are indicated by the snapOrientation parameter. The correction is applied to the result field.The baseRect is not modified. The correction is applied to the result. The request's extended datamay contain additional information about the snapping which was performed.All coordinate information received and returned by this method should be in absolute coordinates. - Parameters:
- request- the request or- null
- snapOrientation- the input snap locations
- baseRect- the input rectangle
- result- the correction is applied to this rectangle
- Returns:
- the remaining snap locations
- Since:
- 3.0
 
 
-