Package com.luciad.format.s57
Class TLcdS57Area
java.lang.Object
com.luciad.shape.ALcdShape
com.luciad.shape.TLcdComplexPolygon
com.luciad.format.s57.TLcdS57Area
- All Implemented Interfaces:
ILcdDataObject,ILcdS57FeatureObject,ILcdS57Object,ILcdBounded,ILcdComplexPolygon,ILcdEditableComplexPolygon,ILcdPointList,ILcdShape,ILcdCache,ILcdCloneable,ILcdFeatured,ILcdInvalidateable,Serializable,Cloneable
public class TLcdS57Area
extends TLcdComplexPolygon
implements ILcdS57Object, ILcdDataObject, ILcdFeatured, Serializable
Represents an Area feature in the S-57 domain model.
- See Also:
-
Field Summary
Fields inherited from interface com.luciad.format.s57.ILcdS57FeatureObject
AREA, LINE, NONE, POINT -
Constructor Summary
ConstructorsConstructorDescriptionTLcdS57Area(TLcdS57FeatureObject aFeatureObject, TLcdS57Face[] aFaces) Creates a new S-57 Area feature with the specified properties.TLcdS57Area(ILcdPolygon[] polygons) Deprecated.Only TLcdS57Face instances are accepted as polygons. -
Method Summary
Modifier and TypeMethodDescriptionbooleancanSetFeature(int aIndex) Checks whether the specified feature is editable.voidClears the cache.clone()Creates and returns a copy of this object.booleanAn object is considered equal to this shape if it has the same class.Returns the type of this data object.getEdge(int aIndex) Deprecated.Iterating over the faces and their edges is more performant.intDeprecated.Iterating over the faces and their edges is more performant.intgetEdgeMask(int aIndex) Returns the mask of the edge that is part of this Area, at the given index.intgetEdgeOrientation(int aIndex) Returns the orientation of the edge that is part of this Area, at the given index.intgetEdgeUsage(int aIndex) Returns the usage of the edge that is part of this Area, at the given index.getFace(int aIndex) Returns the face ataIndex.intReturns the number of faces in this area.getFeature(int aIndex) Returns the featureObjectat the given index.intReturns the number of features.intgetGroup()Returns the group to which the S-57 object belongs, this can be 1 (= skin of the earth) or 2 (= all other objects).Gets the identifier of this shape.floatReturns the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK areas).floatReturns the minimum depth of this area and of underlying DEPARE objects (only applicable for DEPARE and DEPCNT areas).getPoint(int aIndex) Returns theILcdPointat a given index.intReturns the number ofILcdPointobjects in the list.getRelationship(int aIndex) Returns the relationship at indexaIndex.intReturns the number of relationships in which this S-57 object is involved.intgetShape()Gets the type of the shape:POINT,LINE,AREAorNONE.getValue(TLcdDataProperty aProperty) Returns the value of the given property.Convenience method that returns the value of the property with the given name.inthashCode()The hash code of this shape is the hash code of its class, in order to be consistent with theALcdShape.equals(Object)method.booleanhasValue(TLcdDataProperty aProperty) Indicates whether this data object has a value for the given property.booleanIndicates whether this data object has a value for the given property.voidInvalidates all cached values of this object.voidsetFeature(int aIndex, Object aFeature) Sets the featureObjectat the given index.voidsetGroup(int aGroup) voidsetIdentifier(ILcdS57Identifier aIdentifier) voidsetMaximumDepth(float aMaximumDepth) Sets the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK areas).voidsetMinimumDepth(float aMinimumDepth) Sets the minimum depth of this area and of underlying DEPARE objects (only applicable for DEPARE and DEPCNT areas).voidsetRelationships(ILcdS57Relationship[] aRelationships) voidsetValue(TLcdDataProperty aProperty, Object aValue) Sets the value of the given property for this data object.voidConvenience method that sets the value of the property with the given name.toString()Methods inherited from class com.luciad.shape.TLcdComplexPolygon
addPolygon, addPolygon, addPolygons, calculateFocusPoint, clearPolygons, contains2D, contains3D, getBounds, getCachedObject, getFocusPoint, getPolygon, getPolygonCount, getShape, getShapeCount, insertIntoCache, invalidateBounds, polygonChanged, polygonChanged, polygonsChanged, removeCachedObject, removePolygon, removePolygon, removePolygons, setFocusPoint, setPolygon, setPolygon, setPolygons, setShapeMethods inherited from class com.luciad.shape.ALcdShape
contains2D, contains3D, fromDomainObjectMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.luciad.shape.ILcdBounded
getBoundsMethods inherited from interface com.luciad.shape.ILcdComplexPolygon
getPolygonsMethods inherited from interface com.luciad.shape.ILcdPointList
getPointSFCT, getX, getY, getZMethods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains2D, contains3D, contains3D, getFocusPoint
-
Constructor Details
-
TLcdS57Area
Deprecated.Only TLcdS57Face instances are accepted as polygons. Use the constructor with TLcdS57Face parameter instead.Creates a new S-57 Area feature with the specified geometry.- Parameters:
polygons- the geometry defining the geographical extent for this Area feature.
-
TLcdS57Area
Creates a new S-57 Area feature with the specified properties.- Parameters:
aFeatureObject- the S-57 feature object describing the object class and attributes of this Area feature.aFaces- the faces defining the geographical extent of this Area feature.
-
-
Method Details
-
getFaceCount
public int getFaceCount()Returns the number of faces in this area.- Returns:
- the number of faces in this area.
-
getFace
Returns the face ataIndex.- Parameters:
aIndex- the index of the face to be returned.- Returns:
- the face at
aIndex.
-
getEdgeCount
public int getEdgeCount()Deprecated.Iterating over the faces and their edges is more performant.Returns the number of edges this area consists of.- Returns:
- the number of edges this area consists of.
-
getEdge
Deprecated.Iterating over the faces and their edges is more performant.Returns the edge that is part of this area, at the given index.- Parameters:
aIndex- the edge that is part of this area, at the given index.- Returns:
- the edge that is part of this area, at the given index.
-
getEdgeOrientation
public int getEdgeOrientation(int aIndex) Returns the orientation of the edge that is part of this Area, at the given index. The orientation indicates in which direction the edge should be traversed to iterate over all points of this Area in forward direction. One ofTLcdS57Constants.ORIENTATION_FORWARDorTLcdS57Constants.ORIENTATION_REVERSE.- Parameters:
aIndex- the orientation of the edge that is part of this Area, at the given index.- Returns:
- the orientation of the edge at the given index.
-
getEdgeUsage
public int getEdgeUsage(int aIndex) Returns the usage of the edge that is part of this Area, at the given index. The usage indicates whether the edge is part of the outer or inner boundary of an Area. One ofTLcdS57Constants.USAGE_EXTERIOR,TLcdS57Constants.USAGE_INTERIORorTLcdS57Constants.USAGE_EXTERIOR_TRUNCATED.- Parameters:
aIndex- the usage of the edge that is part of this Area, at the given index.- Returns:
- the usage of the edge at the given index.
-
getEdgeMask
public int getEdgeMask(int aIndex) Returns the mask of the edge that is part of this Area, at the given index. The mask indicates whether the edge should be rendered or not. In some cases, e.g. for areas which are truncated by cell borders, the edges on the cell border should not be rendered. One ofTLcdS57Constants.MASK_MASK,TLcdS57Constants.MASK_SHOWorTLcdS57Constants.MASK_NOT_APPLICABLE.- Parameters:
aIndex- the mask of the edge that is part of this Area, at the given index.- Returns:
- the mask of the edge at the given index.
-
setMinimumDepth
public void setMinimumDepth(float aMinimumDepth) Sets the minimum depth of this area and of underlying DEPARE objects (only applicable for DEPARE and DEPCNT areas). The depths are retrieved from the VALSOU and DRVAL1 attributes, if specified. The minimum value can be used as the default depth value (e.g. in the S-52 DEPVAL procedure). TheminimumDepthproperty is part of the set of preprocessor variables.- Parameters:
aMinimumDepth- the minimum depth of this area and of underlying DEPARE objects.- See Also:
-
getMinimumDepth
public float getMinimumDepth()Returns the minimum depth of this area and of underlying DEPARE objects (only applicable for DEPARE and DEPCNT areas). The depths are retrieved from the VALSOU and DRVAL1 attributes, if specified. The minimum value can be used as the default depth value (e.g. in the S-52 DEPVAL procedure). TheminimumDepthproperty is part of the set of preprocessor variables.- Returns:
- the minimum depth of this area and of underlying DEPARE objects.
- See Also:
-
setMaximumDepth
public void setMaximumDepth(float aMaximumDepth) Sets the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK areas). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The maximum value can be used to determine whether the object is an isolated danger (e.g. in the S-52 UDWHAZ procedure). ThemaximumDepthproperty is part of the set of preprocessor variables.- Parameters:
aMaximumDepth- the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects.- See Also:
-
getMaximumDepth
public float getMaximumDepth()Returns the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK areas). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The maximum value can be used to determine whether the object is an isolated danger (e.g. in the S-52 UDWHAZ procedure). ThemaximumDepthproperty is part of the set of preprocessor variables.- Returns:
- the maximum depth of this area and of containing and intersecting DEPARE and DRGARE objects.
- See Also:
-
setIdentifier
-
setGroup
public void setGroup(int aGroup) -
setRelationships
-
getIdentifier
Description copied from interface:ILcdS57FeatureObjectGets the identifier of this shape.- Specified by:
getIdentifierin interfaceILcdS57FeatureObject
-
getGroup
public int getGroup()Description copied from interface:ILcdS57FeatureObjectReturns the group to which the S-57 object belongs, this can be 1 (= skin of the earth) or 2 (= all other objects).- Specified by:
getGroupin interfaceILcdS57FeatureObject- Returns:
- the group to which the S-57 object belongs
-
getShape
public int getShape()Description copied from interface:ILcdS57FeatureObjectGets the type of the shape:POINT,LINE,AREAorNONE.- Specified by:
getShapein interfaceILcdS57FeatureObject
-
getRelationshipCount
public int getRelationshipCount()Description copied from interface:ILcdS57FeatureObjectReturns the number of relationships in which this S-57 object is involved.- Specified by:
getRelationshipCountin interfaceILcdS57FeatureObject- Returns:
- the number of relationships in which this S-57 object is involved.
-
getRelationship
Description copied from interface:ILcdS57FeatureObjectReturns the relationship at indexaIndex.- Specified by:
getRelationshipin interfaceILcdS57FeatureObject- Parameters:
aIndex- index of the relationship to return- Returns:
- the relationship at the specified position.
-
getDataType
Description copied from interface:ILcdDataObjectReturns the type of this data object. This can never benull.- Specified by:
getDataTypein interfaceILcdDataObject- Returns:
- the type of this data object
-
getValue
Description copied from interface:ILcdDataObjectReturns 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 typeor in one of its super types. Otherwise anIllegalArgumentExceptionis thrown.- Specified by:
getValuein 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:ILcdDataObjectConvenience 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:
getValuein 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:ILcdDataObjectSets 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 typeor 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:
setValuein interfaceILcdDataObject- Parameters:
aProperty- the property for which the value is to be setaValue- the value to set- See Also:
-
setValue
Description copied from interface:ILcdDataObjectConvenience 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:
setValuein 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:ILcdDataObjectIndicates whether this data object has a value for the given property.aPropertyis from theright data type, and this instance has a value for it: returnstrueaPropertyis from theright data type, and this instance has no value for it: returnsfalseaPropertyis not from theright data type: not allowed, you will get IllegalArgumentExceptionaPropertyisnull: not allowed, you will get NullPointerException
- Specified by:
hasValuein interfaceILcdDataObject- Parameters:
aProperty- the property for which to return whether a value is present or not.- Returns:
trueif this data object has a value for the given property,falseotherwise.
-
hasValue
Description copied from interface:ILcdDataObjectIndicates whether this data object has a value for the given property.
SeeILcdDataObject.hasValue(TLcdDataProperty)for more information.- Specified by:
hasValuein interfaceILcdDataObject- Parameters:
aPropertyName- the name of the property for which to return whether a value is present or not.- Returns:
trueif this data object has a value for the property with the given name,falseotherwise.
-
canSetFeature
public boolean canSetFeature(int aIndex) Description copied from interface:ILcdFeaturedChecks whether the specified feature is editable.- Specified by:
canSetFeaturein interfaceILcdFeatured- Parameters:
aIndex- a valid feature index.- Returns:
- true if the feature can be set, false otherwise.
-
getFeature
Description copied from interface:ILcdFeaturedReturns the featureObjectat the given index.- Specified by:
getFeaturein interfaceILcdFeatured- Parameters:
aIndex- a valid feature index.- Returns:
- the feature
Objectat the given index. - Throws:
IndexOutOfBoundsException- when an index is chosen greater than the result of getFeatureCount.- See Also:
-
getFeatureCount
public int getFeatureCount()Description copied from interface:ILcdFeaturedReturns the number of features.- Specified by:
getFeatureCountin interfaceILcdFeatured- Returns:
- the number of features.
-
setFeature
Description copied from interface:ILcdFeaturedSets the featureObjectat the given index.- Specified by:
setFeaturein interfaceILcdFeatured- Parameters:
aIndex- a valid feature index.aFeature- the new featureObject.- Throws:
IllegalArgumentException- if the feature can't be set.- See Also:
-
clearCache
public void clearCache()Description copied from interface:ILcdCacheClears the cache.- Specified by:
clearCachein interfaceILcdCache- Overrides:
clearCachein classTLcdComplexPolygon
-
invalidateObject
public void invalidateObject()Description copied from interface:ILcdInvalidateableInvalidates all cached values of this object. Call this method whenever one or more of this object's compositing values has been changed, to notify this object it needs to recompute its cached values.- Specified by:
invalidateObjectin interfaceILcdInvalidateable- Overrides:
invalidateObjectin classTLcdComplexPolygon
-
equals
Description copied from class:ALcdShapeAn object is considered equal to this shape if it has the same class. Extensions should refine this comparison, based on their properties.- Overrides:
equalsin classTLcdComplexPolygon
-
hashCode
public int hashCode()Description copied from class:ALcdShapeThe 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:
hashCodein classTLcdComplexPolygon
-
clone
Description copied from class:TLcdComplexPolygonCreates and returns a copy of this object. The polygon array is deep cloned. The cache is not copied or cloned at all.- Specified by:
clonein interfaceILcdCloneable- Overrides:
clonein classTLcdComplexPolygon- See Also:
-
toString
-
getPointCount
public int getPointCount()Description copied from interface:ILcdPointListReturns the number ofILcdPointobjects in the list.- Specified by:
getPointCountin interfaceILcdPointList- Overrides:
getPointCountin classTLcdComplexPolygon- Returns:
- the number of
ILcdPointobjects in the list.
-
getPoint
Description copied from interface:ILcdPointListReturns theILcdPointat a given index.- Specified by:
getPointin interfaceILcdPointList- Overrides:
getPointin classTLcdComplexPolygon- Parameters:
aIndex- a valid index in the list ofILcdPointobjects.- Returns:
- the
ILcdPointat the given index. - Throws:
IndexOutOfBoundsException- if the given index is out of bounds.
-