Class ALspStampLabelLocationProvider
java.lang.Object
com.luciad.view.lightspeed.label.algorithm.ALspLabelLocationProvider
com.luciad.view.lightspeed.label.algorithm.ALspStampLabelLocationProvider
- Direct Known Subclasses:
TLspLabelLocationProvider
This class provides methods to retrieve label locations based on stamp label location. It provides a method that can be used to
easily calculate the label location. This abstract class will create a label placement
based on these label locations.
Note: extensions should also override the following methods:
- Since:
- 2012.0
-
Constructor Summary
ModifierConstructorDescriptionprotected
Creates a newALspStampLabelLocationProvider
, with the view dependent flag off.protected
ALspStampLabelLocationProvider
(boolean aViewDependent) Creates a newALspStampLabelLocationProvider
, with the given view dependent flag. -
Method Summary
Modifier and TypeMethodDescriptionabstract double
calculateLocation
(int aLocationIndex, TLspLabelID aLabel, ILcdPoint aObjectAnchorPoint, Dimension2D aDimension, TLspContext aContext, ILcd3DEditablePoint aUpperLeftPointSFCT) Returns the rotation and calculates the upper left corner of the bounds for the given domain object and sublabel ID, given the dimension.boolean
An object is considered equal to this shape if it has the same class.final TLspLabelPlacement
getLocation
(TLspLabelID aLabel, int aLocationIndex, ALspLabelLocations aCurrentLabelLocations, TLspPaintState aPaintState, ILspLabelingAlgorithm.LabelContext aLabelContext, ILspView aView) This method returns a location for the given label using the given location index.int
hashCode()
The hash code of this shape is the hash code of its class, in order to be consistent with theequals(Object)
method.final boolean
isValidLocation
(TLspLabelPlacement aLocation, ALspLabelLocations aCurrentLabelLocations, TLspPaintState aPaintState, ILspLabelingAlgorithm.LabelContext aLabelContext, ILspView aView) Checks if the given location is a valid location.protected boolean
isValidLocation
(TLspLabelID aLabelID, ILcdPoint aObjectAnchorPoint, Dimension2D aDimension, TLspContext aContext, ILcdPoint aUpperLeftPoint, double aRotation) Checks if the given upper left point and rotation are valid.Methods inherited from class com.luciad.view.lightspeed.label.algorithm.ALspLabelLocationProvider
getMaxLocationCount
-
Constructor Details
-
ALspStampLabelLocationProvider
protected ALspStampLabelLocationProvider()Creates a newALspStampLabelLocationProvider
, with the view dependent flag off.- See Also:
-
ALspStampLabelLocationProvider
protected ALspStampLabelLocationProvider(boolean aViewDependent) Creates a newALspStampLabelLocationProvider
, with the given view dependent flag.The flag indicates whether the label locations created by this instance are view dependent:
- Use
false
(the default) if the locations are always the same, regardless of the view's camera settings. In particular,getLocationData
must always return the same result, even when navigating the view. - Use
true
if the locations from this provider depend on the view's camera settings.getLocationData
can return different data when navigating the view. Note that this may cause the locations to bere-evaluated
on every paint, and therefore may have a large impact on painting performance!
When extending from this class, the
hashCode
andequals
method should be overridden as well.- Parameters:
aViewDependent
- indicates whether the locations from this provider are view dependent or not.- See Also:
- Use
-
-
Method Details
-
getLocation
public final TLspLabelPlacement getLocation(TLspLabelID aLabel, int aLocationIndex, ALspLabelLocations aCurrentLabelLocations, TLspPaintState aPaintState, ILspLabelingAlgorithm.LabelContext aLabelContext, ILspView aView) Description copied from class:ALspLabelLocationProvider
This method returns a location for the given label using the given location index. Override this method to create custom locations for a label.- Specified by:
getLocation
in classALspLabelLocationProvider
- Parameters:
aLabel
- a label.aLocationIndex
- the location index.aCurrentLabelLocations
- an ALspLabelLocations object containing locations for the currently placed labels.aPaintState
- the paint stateaLabelContext
- provides context information, such as priorities, PaintState, ...aView
- the view.- Returns:
- the label location for the given label and index, or
null
if no location could be calculated.
-
isValidLocation
public final boolean isValidLocation(TLspLabelPlacement aLocation, ALspLabelLocations aCurrentLabelLocations, TLspPaintState aPaintState, ILspLabelingAlgorithm.LabelContext aLabelContext, ILspView aView) Checks if the given location is a valid location. This check should be used if this label location provider is capable of producing the given location. Labeling algorithms may use this method for previous label locations. I.e. when using a previous label locations, this method can be used to verify if the previous label location can be used. By default, this method returnstrue
. This method callsisValidLocation
.- Overrides:
isValidLocation
in classALspLabelLocationProvider
- Parameters:
aLocation
- the location to check.aCurrentLabelLocations
- an ALspLabelLocations object containing locations for the currently placed labels.aPaintState
- the paint state.aLabelContext
- provides context information, such as priorities, PaintState, ...aView
- the view.- Returns:
- if the given location is a valid location.
-
calculateLocation
public abstract double calculateLocation(int aLocationIndex, TLspLabelID aLabel, ILcdPoint aObjectAnchorPoint, Dimension2D aDimension, TLspContext aContext, ILcd3DEditablePoint aUpperLeftPointSFCT) throws TLcdNoBoundsException Returns the rotation and calculates the upper left corner of the bounds for the given domain object and sublabel ID, given the dimension.- Parameters:
aLocationIndex
- the location index, can be a number from0
togetMaxLocationCount
.aLabel
- the label for which a location should be calculated.aObjectAnchorPoint
- the object anchor point for the given label, in view coordinates.aDimension
- the dimension of the label.aContext
- the context.aUpperLeftPointSFCT
- the point in which the upper left corner of the label bounds should be stored. The upper left corner of the label should be specified in view coordinates.- Returns:
- the rotation of the label in radians, clockwise, 0 radians at 3 o'clock. The rotation is relative to the view rotation.
- Throws:
TLcdNoBoundsException
- when the rotation or upper left corner could not be calculated.
-
isValidLocation
protected boolean isValidLocation(TLspLabelID aLabelID, ILcdPoint aObjectAnchorPoint, Dimension2D aDimension, TLspContext aContext, ILcdPoint aUpperLeftPoint, double aRotation) Checks if the given upper left point and rotation are valid. This check should be used if thecalculateLocation
method is capable of producing the given point and rotation. Labeling algorithms may use this method for previous label locations. I.e. when using a previous label locations, this method can be used to verify if the previous label location can be used. By default, this method returnstrue
.- Parameters:
aLabelID
- the labelaObjectAnchorPoint
- the object anchor point for the given label, in view coordinates.aDimension
- the dimension of the label.aContext
- the context.aUpperLeftPoint
- the upper left corner of the labelaRotation
- the rotation- Returns:
- if the given upper left point and rotation are valid.
-
equals
An object is considered equal to this shape if it has the same class. Extensions should refine this comparison, based on their properties. -
hashCode
public int hashCode()The hash code of this shape is the hash code of its class, in order to be consistent with theequals(Object)
method. Extensions should refine this implementation, based on their properties.
-