Class TLcdAssociationBasedAirspace
- All Implemented Interfaces:
ILcdAssociationBasedAirspace
,ILcdEditableAssociationBasedAirspace
,ILcdGenericAirspace
,ILcdDataObject
,ILcdBounded
,ILcdShape
,ILcdShapeList
,ILcdCache
,ILcdCloneable
,ILcdInvalidateable
,Serializable
,Cloneable
- Direct Known Subclasses:
TLcdFeaturedAssociationBasedAirspace
This implementation performs a discretization in geodetic coordinates of the airspaces contained in the associations and geometrically combines them using the corresponding association types. This calculation is performed in 2D; the height values of the associated airspaces will be ignored.
Before an association-based airspace can be discretized, it must comply to a few rules:
- the rules defined in
ILcdAssociationBasedAirspace
for adding airspace associations must be fulfilled. - each associated
ILcdGenericAirspace
must be of the typeILcdAirspace
orILcdAssociationBasedAirspace
; if it has the former type, it should be a valid convex or concave polygon; if it has the latter type, it should be discretizable.
isAirspaceAssociationDiscretizable
()
can be used to check whether discretization is possible.- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionfinal TLcdDataProperty
The AirspaceAssociations property of the airspace. -
Constructor Summary
ConstructorDescriptionDeprecated.TLcdAssociationBasedAirspace
(TLcdDataType aDataType) Creates a new instance for the given type. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAirspaceAssociation
(ILcdAirspaceAssociation aAirspaceAssociation) Adds anILcdAirspaceAssociation
object to theILcdAssociationBasedAirspace
object.protected void
Computes the focus point as the center of the bounding box.clone()
Creates and returns a copy of this object.boolean
contains2D
(double aX, double aY) Checks whether thisILcdShape
contains the given point in the 2D space.boolean
contains2D
(ILcdPoint aPoint) Checks whether thisALcdShape
contains the given point in the 2D cartesian plane.boolean
contains3D
(double aX, double aY, double aZ) Checks whether thisILcdShape
contains the given point in the 3D space.boolean
contains3D
(ILcdPoint aPoint) Checks whether thisALcdShape
contains the given point in the 3D space.boolean
Returns true if this object is the same as the specified object.getAirspaceAssociation
(int aSequenceNumber) Returns theILcdAirspaceAssociation
object with the given index.int
Returns the number ofILcdAirspaceAssociation
objects that are used in theILcdAssociationBasedAirspace
object.Returns theILcdBounds
by which the geometry of thisILcdBounded
object is bounded.Returns the type of this data object.getShape
(int i) Returns theILcdShape
at the given index.int
Returns the number ofILcdShape
objects in the list.getValue
(TLcdDataProperty aProperty) Returns the value of the given property.Convenience method that returns the value of the property with the given name.int
hashCode()
The hash code of this shape is the hash code of its class, in order to be consistent with theALcdShape.equals(Object)
method.boolean
hasValue
(TLcdDataProperty aProperty) Indicates whether this data object has a value for the given property.boolean
Indicates whether this data object has a value for the given property.void
Discards the geometry cached with this airspace and recalculates it.boolean
Checks whether this association-based airspace can be discretized.void
removeAirspaceAssociation
(ILcdAirspaceAssociation aAirspaceAssociation) Removes anILcdAirspaceAssociation
object from theILcdAssociationBasedAirspace
object.void
removeAirspaceAssociationAt
(int aIndex) Removes theILcdAirspaceAssociation
object on the specified index from theILcdAssociationBasedAirspace
.void
setValue
(TLcdDataProperty aProperty, Object aValue) Sets the value of the given property for this data object.void
Convenience method that sets the value of the property with the given name.Methods inherited from class com.luciad.shape.ALcdShapeList
clearCache, getCachedObject, getFocusPoint, insertIntoCache, invalidateBounds, invalidateObject, removeCachedObject, setFocusPoint, toString
Methods inherited from class com.luciad.shape.ALcdShape
fromDomainObject
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.luciad.shape.ILcdShape
getFocusPoint
-
Field Details
-
ASSOCIATIONS_PROPERTY
The AirspaceAssociations property of the airspace. Values for this property are lists of objects of typeILcdAirspaceAssociation
.
-
-
Constructor Details
-
TLcdAssociationBasedAirspace
Deprecated.Creates a newTLcdAssociationBasedAirspace
instance. -
TLcdAssociationBasedAirspace
Creates a new instance for the given type.- Parameters:
aDataType
- the data type of the returned instance- Throws:
IllegalArgumentException
- ifTLcdAISDataTypes.AssociationBasedAirspace
is not assignable from the given data type- Since:
- 10.1
- See Also:
-
-
Method Details
-
getDataType
Description copied from interface:ILcdDataObject
Returns the type of this data object. This can never benull
.- Specified by:
getDataType
in interfaceILcdDataObject
- Returns:
- the type of this data object
-
getValue
Description copied from interface:ILcdDataObject
Returns the value of the given property.
If the property is a collection, the returned value will never be null. If the property has not been set, an empty collection of the appropriate type will be returned (Set, List or Map).
The property must not be null, and must be declared in the
data object's type
or in one of its super types. Otherwise anIllegalArgumentException
is thrown.- Specified by:
getValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which the value is to be returned- Returns:
- the value of the given property for this data object
-
getValue
Description copied from interface:ILcdDataObject
Convenience method that returns the value of the property with the given name.
If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy). SeeILcdDataObject.getValue(TLcdDataProperty)
for more information.- Specified by:
getValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property of which the value is to be returned- Returns:
- the value of the property with the given name
- See Also:
-
setValue
Description copied from interface:ILcdDataObject
Sets the value of the given property for this data object. The implementation is allowed to throw an exception if the given value can't be set.
The given property must be declared in thedata object's type
or in one of its super types. In other words, getDataType().getProperties().contains( aProperty ) should always be true. Otherwise, the implementation should throw anIllegalArgumentException
.- Specified by:
setValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which the value is to be setaValue
- the value to set- See Also:
-
setValue
Description copied from interface:ILcdDataObject
Convenience method that sets the value of the property with the given name.
If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy). SeeILcdDataObject.setValue(TLcdDataProperty, Object)
for more information.- Specified by:
setValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property of which the value is to be setaValue
- the value to set
-
getAirspaceAssociationCount
public int getAirspaceAssociationCount()Description copied from interface:ILcdAssociationBasedAirspace
Returns the number ofILcdAirspaceAssociation
objects that are used in theILcdAssociationBasedAirspace
object.- Specified by:
getAirspaceAssociationCount
in interfaceILcdAssociationBasedAirspace
- Returns:
- the number of
ILcdAirspaceAssociation
objects that are used in theILcdAssociationBasedAirspace
object.
-
addAirspaceAssociation
Description copied from interface:ILcdEditableAssociationBasedAirspace
Adds anILcdAirspaceAssociation
object to theILcdAssociationBasedAirspace
object. Note that there is no explicit check fornull
associations, which leave the airspace in an invalid state.- Specified by:
addAirspaceAssociation
in interfaceILcdEditableAssociationBasedAirspace
- Parameters:
aAirspaceAssociation
- AnILcdAirspaceAssociation
object for theILcdAssociationBasedAirspace
object
-
getAirspaceAssociation
Description copied from interface:ILcdAssociationBasedAirspace
Returns theILcdAirspaceAssociation
object with the given index. The index represents the index in a list which contains allILcdAirspaceAssociation
objects of theILcdAssociationBasedAirspace
object, ordered by their sequence number.- Specified by:
getAirspaceAssociation
in interfaceILcdAssociationBasedAirspace
- Parameters:
aSequenceNumber
- The index of the airspace association to retrieve.- Returns:
- the
ILcdAirspaceAssociation
object with the given index.
-
removeAirspaceAssociation
Description copied from interface:ILcdEditableAssociationBasedAirspace
Removes anILcdAirspaceAssociation
object from theILcdAssociationBasedAirspace
object. If this airspace does not contain the association or ifnull
is supplied, it is unchanged. If the association is found and removed, subsequent associations are shifted to the left.- Specified by:
removeAirspaceAssociation
in interfaceILcdEditableAssociationBasedAirspace
- Parameters:
aAirspaceAssociation
- theILcdAirspaceAssociation
object to be removed.
-
removeAirspaceAssociationAt
public void removeAirspaceAssociationAt(int aIndex) Description copied from interface:ILcdEditableAssociationBasedAirspace
Removes theILcdAirspaceAssociation
object on the specified index from theILcdAssociationBasedAirspace
. Subsequent associations are shifted to the left after the removal.- Specified by:
removeAirspaceAssociationAt
in interfaceILcdEditableAssociationBasedAirspace
- Parameters:
aIndex
- the index in theILcdEditableAssociationBasedAirspace
where theILcdAirspaceAssociation
object must be removed.
-
getShapeCount
public int getShapeCount()Description copied from interface:ILcdShapeList
Returns the number ofILcdShape
objects in the list.- Specified by:
getShapeCount
in interfaceILcdShapeList
- Returns:
- the number of
ILcdShape
objects in the list.
-
getShape
Description copied from interface:ILcdShapeList
Returns theILcdShape
at the given index.- Specified by:
getShape
in interfaceILcdShapeList
- Parameters:
i
- a valid index in the list ofILcdShape
objects.- Returns:
- the
ILcdShape
at the given index. - Throws:
IndexOutOfBoundsException
- when the index is not valid.
-
getBounds
Description copied from interface:ILcdBounded
Returns theILcdBounds
by which the geometry of thisILcdBounded
object is bounded.If the geometry does not allow retrieving valid bounds (for example a polyline with 0 points) the return value is unspecified. It is highly recommended to return an
undefined
bounds. You can create undefined bounds using the default constructors ofTLcdLonLatBounds
orTLcdXYBounds
.- Specified by:
getBounds
in interfaceILcdBounded
- Overrides:
getBounds
in classALcdShapeList
- Returns:
- the
ILcdBounds
by which the geometry of thisILcdBounded
object is bounded.
-
calculateFocusPoint
protected void calculateFocusPoint()Description copied from class:ALcdShapeList
Computes the focus point as the center of the bounding box. The resulting point is stored in the focus point cache.- Overrides:
calculateFocusPoint
in classALcdShapeList
-
contains2D
public boolean contains2D(double aX, double aY) Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the given point in the 2D space. Only the first two dimensions of theILcdShape
are considered.- Specified by:
contains2D
in interfaceILcdShape
- Overrides:
contains2D
in classALcdShapeList
- Parameters:
aX
- the x coordinate of the point.aY
- the y coordinate of the point.- Returns:
- the boolean result of the containment test.
-
contains3D
public boolean contains3D(double aX, double aY, double aZ) Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the given point in the 3D space.- Specified by:
contains3D
in interfaceILcdShape
- Overrides:
contains3D
in classALcdShapeList
- Parameters:
aX
- the x coordinate of the point.aY
- the y coordinate of the point.aZ
- the z coordinate of the point.- Returns:
- the boolean result of the containment test.
-
contains2D
Description copied from class:ALcdShape
Checks whether thisALcdShape
contains the given point in the 2D cartesian plane.- Specified by:
contains2D
in interfaceILcdShape
- Overrides:
contains2D
in classALcdShape
- Parameters:
aPoint
- the point to test.- Returns:
- the boolean result of the containment test.
- See Also:
-
contains3D
Description copied from class:ALcdShape
Checks whether thisALcdShape
contains the given point in the 3D space.- Specified by:
contains3D
in interfaceILcdShape
- Overrides:
contains3D
in classALcdShape
- Parameters:
aPoint
- the point to test.- Returns:
- the boolean result of the containment test.
- See Also:
-
clone
Creates and returns a copy of this object. The associations are cloned. The airspaces inside the associations are copied without being cloned. The discretization is not copied or cloned at all, but recalculated when needed.- Specified by:
clone
in interfaceILcdCloneable
- Overrides:
clone
in classALcdShapeList
- See Also:
-
equals
Returns true if this object is the same as the specified object.- Overrides:
equals
in classALcdShapeList
- Parameters:
aObject
- the reference object with which to compare.- Returns:
- True if this object is the same as the specified object.
-
hashCode
public int hashCode()Description copied from class:ALcdShape
The hash code of this shape is the hash code of its class, in order to be consistent with theALcdShape.equals(Object)
method. Extensions should refine this implementation, based on their properties.- Overrides:
hashCode
in classALcdShapeList
-
isAirspaceAssociationDiscretizable
public boolean isAirspaceAssociationDiscretizable()Checks whether this association-based airspace can be discretized. If this method returns false, the result of some other methods is determined:- the method
getShapeCount
will return 0. - the method
getBounds
will return the combined bounds of the individual airspaces contained in the associations of this airspace (if there are any).
- Returns:
- true if this association-based airspace can be discretized.
- the method
-
invalidate
public void invalidate()Discards the geometry cached with this airspace and recalculates it. Whenever this is done, the ILcdModel containing this airspace should be notified by means of a call to elementChanged()! -
hasValue
Description copied from interface:ILcdDataObject
Indicates whether this data object has a value for the given property.aProperty
is from theright data type
, and this instance has a value for it: returnstrue
aProperty
is from theright data type
, and this instance has no value for it: returnsfalse
aProperty
is not from theright data type
: not allowed, you will get IllegalArgumentExceptionaProperty
isnull
: not allowed, you will get NullPointerException
- Specified by:
hasValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which to return whether a value is present or not.- Returns:
true
if this data object has a value for the given property,false
otherwise.
-
hasValue
Description copied from interface:ILcdDataObject
Indicates whether this data object has a value for the given property.
SeeILcdDataObject.hasValue(TLcdDataProperty)
for more information.- Specified by:
hasValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property for which to return whether a value is present or not.- Returns:
true
if this data object has a value for the property with the given name,false
otherwise.
-
TLcdAssociationBasedAirspace(TLcdDataType)