Class TLcdASDITrack
- All Implemented Interfaces:
ILcdDataObject
,ILcdBounded
,ILcdBounds
,ILcdPoint
,ILcdPointList
,ILcdPolypoint
,ILcdShape
,ILcd2DEditablePoint
,ILcd2DEditableShape
,ILcd3DEditablePoint
,ILcd3DEditableShape
,ILcdCloneable
,ILcdFeatured
,Serializable
,Cloneable
TLcdASDITrajectory
. It represents the
location and features of the TLcdASDITrajectory
at a
given index.
A TLcdASDITrajectory
represents the whole path of an
aircraft, including a location and additional information (=features) for
every timestamp. This TLcdASDITrack
object however
represents an aircraft at a certain time/position. It is implemented as
a TLcdASDITrajectory
at a given index.
All data made available by a TLcdASDITrack
is in fact
extracted from the TLcdASDITrajectory
on which the TLcdASDITrack
is based.
The trajectory can be retrieved using getTrajectory()
. The index
can be retrieved by using getTrajectoryPointIndex()
, or it can be
changed using setTrajectoryPointIndex(int)
.
To update the state of a TLcdASDITrack
, one should either:
- Use
updateForIndex(int)
to update the state of this track to a given index. Note that the methodTLcdASDITrajectory.getIndexForTimeStamp(long)
can be used to retrieve the index for a given time value. - Or manually update the trajectory index by following these steps:
- Update the point index, using
setTrajectoryPointIndex(int)
. - Update the location of the track, for example by doing
if ( isActive() ) { move3D( getTrajectory().getPoint( getTrajectoryPointIndex() ) ); }
Note that this piece of code updates the location of the track to the location that corresponds to the trajectory index. A more advanced update of the location would for example be to interpolate the track location between the current and the next point.
- Update the point index, using
ILcdDataObject
interface. The data type of a track will be either TLcdASDITrackTODataTypes.TrackTOType
or
TLcdASDITrackTZDataTypes.TrackTZType
. The values of the properties can be retrieved using the
ILcdDataObject.getValue(com.luciad.datamodel.TLcdDataProperty)
method.
The message properties of a track can also be accessed through the
ILcdFeatured
interface. This is added for backwards compatibility, though it
recommended to use the new ILcdDataObject
instead.
An overview of all available TZ features can be found in ILcdASDITrackTZFeatures
and of all available TO features in ILcdASDITrackTOFeatures
.
Models with TLcdASDITrack
objects have model descriptors that are
TLcdASDITrackModelDescriptor
. They describe the features
(available through the ILcdFeatured
interface)
of the TLcdASDITrack
objects.
- See Also:
-
Constructor Summary
ConstructorDescriptionTLcdASDITrack
(TLcdASDITrajectory aTrajectory) Constructs a newTLcdASDITrack
that has a reference to aTLcdASDITrajectory
. -
Method Summary
Modifier and TypeMethodDescriptionboolean
canSetFeature
(int aFeatureIndex) Checks whether the track feature with indexaFeatureIndex
of the current trajectory point is editable.clone()
Creates and returns a copy of this object.boolean
Returns whether the specified object is equal to this one.Returns the type of this data object.getFeature
(int aFeatureIndex) Returns the value of the track feature at indexaFeatureIndex
for the current trajectory point.int
Returns the number of track features from the associated trajectory.EveryTLcdASDITrack
has a reference to exactly oneTLcdASDITrajectory
.int
Returns the index for which this track represents the trajectory.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()
Returns a hash code value for the object.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.boolean
isActive()
Returns whether or not this track is still active.void
setFeature
(int aFeatureIndex, Object aObject) Sets the value of the track feature with indexaFeatureIndex
for the current trajectory point.void
setTrajectoryPointIndex
(int aPointIndex) Sets the index for which this track represents the trajectory.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.void
updateForIndex
(int aPointIndex) Updates the state of this track so that it reflects the state of the trajectory at the given aPointIndex.Methods inherited from class com.luciad.shape.shape3D.TLcdLonLatHeightPoint
cloneAs2DEditableBounds, cloneAs2DEditablePoint, cloneAs3DEditableBounds, cloneAs3DEditablePoint, contains2D, contains2D, getCosX, getCosY, getHeight, getLat, getLon, getSinX, getSinY, getTanX, getTanY, getX, getY, getZ, interacts2D, move3D
Methods inherited from class com.luciad.shape.shape3D.ALcd3DEditablePoint
move2D, move3D, toString, translate3D
Methods inherited from class com.luciad.shape.shape2D.ALcd2DEditablePoint
move2D, translate2D
Methods inherited from class com.luciad.shape.ALcdPoint
contains2D, contains3D, contains3D, contains3D, getBounds, getDepth, getFocusPoint, getLocation, getMaxX, getMaxY, getMaxZ, getMinX, getMinY, getMinZ, getPoint, getPointCount, getWidth, interacts2D, interacts3D, interacts3D, isDefined
Methods inherited from class com.luciad.shape.ALcdShape
contains2D, contains3D, fromDomainObject
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditableShape
move2D, move2D, translate2D
Methods inherited from interface com.luciad.shape.shape3D.ILcd3DEditableShape
move3D, translate3D
Methods inherited from interface com.luciad.shape.ILcdBounded
getBounds
Methods inherited from interface com.luciad.shape.ILcdBounds
getCenter
Methods inherited from interface com.luciad.shape.ILcdPointList
getPointSFCT, getX, getY, getZ
Methods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains3D, contains3D, getFocusPoint
-
Constructor Details
-
TLcdASDITrack
Constructs a newTLcdASDITrack
that has a reference to aTLcdASDITrajectory
. It will be inactive after creation ((isActive()
returnsfalse
).- Parameters:
aTrajectory
- TheTLcdASDITrajectory
on which thisTLcdASDITrack
is based. This should not benull
.
-
-
Method Details
-
getTrajectoryPointIndex
public int getTrajectoryPointIndex()Returns the index for which this track represents the trajectory.- Returns:
- the index for which this track represents the trajectory.
-
setTrajectoryPointIndex
public void setTrajectoryPointIndex(int aPointIndex) Sets the index for which this track represents the trajectory. The features of this track will represent new values according to the set index.
Note that the method
TLcdASDITrajectory.getIndexForTimeStamp(long)
can be used to retrieve the index for a given time value.- Parameters:
aPointIndex
- The index that corresponds to the point in the trajectory which this track should represent, 0 <= aPointIndex < getTrajectory().getPointCount(). Set this to -1 to mark the track as inactive.
-
updateForIndex
public void updateForIndex(int aPointIndex) Updates the state of this track so that it reflects the state of the trajectory at the given aPointIndex. It updates the features similarly tosetTrajectoryPointIndex(int)
, but it also updates the location of this track, according to the given point index. Note that the methodTLcdASDITrajectory.getIndexForTimeStamp(long)
can be used to retrieve the index for a given time value.- Parameters:
aPointIndex
- The index that corresponds to the point in the trajectory which this track should represent, 0 <= aPointIndex < getTrajectory().getPointCount(). Set this to -1 to mark the track as inactive.
-
getFeatureCount
public int getFeatureCount()Returns the number of track features from the associated trajectory. So it is equivalent to
getTrajectory().getTrackFeatureCount()
.See
TLcdASDITrajectory.getTrackFeatureCount()
for a more detailed description.- Specified by:
getFeatureCount
in interfaceILcdFeatured
- Returns:
- the number of track features from the associated trajectory.
-
getFeature
Returns the value of the track feature at index
aFeatureIndex
for the current trajectory point. So it is equivalent togetTrajectory().getTrackFeature( getTrajectoryPointIndex(), aFeatureIndex )
.See
TLcdASDITrajectory.getTrackFeature(int aIndex, int aFeatureIndex)
for a more detailed description.- Specified by:
getFeature
in interfaceILcdFeatured
- Parameters:
aFeatureIndex
- The index of the feature, must be smaller thangetFeatureCount()
.- Returns:
- The value of the track feature at index
aFeatureIndex
from the current trajectory point. - Throws:
IndexOutOfBoundsException
- when an index is chosen greater than the result of getFeatureCount.- See Also:
-
canSetFeature
public boolean canSetFeature(int aFeatureIndex) Checks whether the track feature with index
aFeatureIndex
of the current trajectory point is editable.See
getFeatureCount()
andgetFeature(int aFeatureIndex)
for more information on track features.None of the track features are editable, so always returns
false
.- Specified by:
canSetFeature
in interfaceILcdFeatured
- Parameters:
aFeatureIndex
- a valid feature index, must be smaller thangetFeatureCount()
.- Returns:
- whether the specified feature is editable, always returns
false
.
-
setFeature
Sets the value of the track feature with indexaFeatureIndex
for the current trajectory point. SeegetFeatureCount()
andgetFeature(int aFeatureIndex)
for more information on track features. None of the track features are editable, so calling this method always results in throwing anIllegalArgumentException
.- Specified by:
setFeature
in interfaceILcdFeatured
- Parameters:
aFeatureIndex
- a valid feature index, must be smaller thangetFeatureCount()
.aObject
- the new value of the feature.- Throws:
IllegalArgumentException
- if the feature can't be set.- See Also:
-
getTrajectory
EveryTLcdASDITrack
has a reference to exactly oneTLcdASDITrajectory
.- Returns:
- The
TLcdASDITrajectory
that is referenced by this TLcdASDITrack.
-
isActive
public boolean isActive()Returns whether or not this track is still active. A track is considered active if its timestamp lies within theTLcdASDITrajectory.getBeginTime
andTLcdASDITrajectory.getEndTime
, this is, it represents the trajectory at a certain valid point. The data of an inactive track should not be used or interpreted in any way.- Returns:
- true if this track represents the trajectory at a certain valid point, false if not.
-
clone
Creates and returns a copy of this object.- Specified by:
clone
in interfaceILcdCloneable
- Overrides:
clone
in classALcdShape
- Returns:
- a copy of this object.
- See Also:
-
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
-
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:
-
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
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
-
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.
-
equals
Returns whether the specified object is equal to this one. The implementation is the same as would be returned by the default method Object.equals() :x.equals(y)
returnstrue
if and only ifx
andy
refer to the same object.- Specified by:
equals
in interfaceILcdPoint
- Overrides:
equals
in classTLcdLonLatHeightPoint
- Parameters:
aObject
- the object to compare to.- Returns:
true
if the specified object is equal to this one,false
otherwise.
-
hashCode
public int hashCode()Returns a hash code value for the object. The returned hash code is the same as would be returned by the default method Object.hashCode() .
-