- java.lang.Object
-
- org.arakhne.afc.gis.primitive.AbstractGISElement<C,T>
-
- org.arakhne.afc.gis.primitive.AbstractBoundedGISElement<GISElementContainer<?>,MapElement>
-
- org.arakhne.afc.gis.mapelement.MapElement
-
- org.arakhne.afc.gis.mapelement.MapComposedElement
-
- All Implemented Interfaces:
Serializable
,Cloneable
,EventListener
,AttributeChangeListener
,AttributeCollection
,AttributeProvider
,BoundedGISElement
,FlagContainer
,GISCloneable<MapElement>
,GISContentElement<GISElementContainer<?>>
,GISEditable
,GISElement
,GISFlagContainer
,GISPrimitive
,BoundedElement2afp<Rectangle2d>
,JsonableObject
- Direct Known Subclasses:
MapMultiPoint
,MapPolygon
,MapPolyline
public abstract class MapComposedElement extends MapElement
Abstract class that contains a set of grouped points (aka. groups). This class permits to implement polylines and polygons...- Since:
- 14.0
- Version:
- 17.0 2020-01-04 14:41:53
- Author:
- Stéphane GALLAND
- See Also:
- Serialized Form
- Maven Group Id:
- org.arakhne.afc.gis
- Maven Artifact Id:
- giscore
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
MapComposedElement.PointGroup
This class represents a group of points inside a composed MapElement.-
Nested classes/interfaces inherited from class org.arakhne.afc.gis.mapelement.MapElement
MapElement.VisualizationType
-
-
Field Summary
-
Fields inherited from class org.arakhne.afc.gis.mapelement.MapElement
ATTR_COLOR, ATTR_USE_CONTAINER_COLOR, ATTR_VISUALIZATION_TYPE
-
Fields inherited from interface org.arakhne.afc.gis.primitive.FlagContainer
FLAG_READONLY, FLAG_SELECTED
-
Fields inherited from interface org.arakhne.afc.gis.primitive.GISElement
ATTR_NAME, NAME_COMPARATOR
-
Fields inherited from interface org.arakhne.afc.gis.primitive.GISPrimitive
COMPARATOR
-
-
Constructor Summary
Constructors Constructor Description MapComposedElement(UUID id, AttributeCollection attributeSource)
Create a new map element.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
addGroup(double x, double y)
Add the specified point into a newgroup.void
addGroup(Point2D<?,?> point)
Add the specified point into a newgroup.int
addPoint(double x, double y)
Add the specified point at the end of the last group.int
addPoint(double x, double y, int groupIndex)
Add the specified point at the end of the specified group.int
addPoint(Point2D<?,?> point)
Add the specified point at the end of the last group.int
addPoint(Point2D<?,?> point, int indexGroup)
Add the specified point at the end of the specified group.protected Rectangle2d
calcBounds()
Compute the bounds of this element.boolean
canonize()
Remove unnecessary points from the specified index.void
clear()
Remove all the points.MapComposedElement
clone()
Clone this object to obtain a valid copy.boolean
contains(Point2D<?,?> point, double delta)
Replies if the specified point (x,y) was inside the figure of this MapElement.boolean
containsPoint(Point2D<?,?> point)
Check if point p is contained in this coordinates collections.boolean
containsPoint(Point2D<?,?> point, int groupIndex)
Check if point p is contained in this coordinates collections.boolean
equals(MapElement element)
Replies if the specified objects is the same as this one.int
getFirstPointIndexInGroup(int groupIndex)
Replies the global index of the point that starts a group.GeoLocation
getGeoLocation()
Replies the geo-location.MapComposedElement.PointGroup
getGroupAt(int index)
Replies the part at the specified index.int
getGroupCount()
Replies the count of groups.int
getLastPointIndexInGroup(int groupIndex)
Replies the global index of the point that ends a group.Point2d
getPointAt(int index)
Replies the specified point at the given index.Point2d
getPointAt(int groupIndex, int indexInGroup)
Replies the specified point at the given index in the specified group.int
getPointCount()
Replies the count of points in all the parts.int
getPointCountInGroup(int groupIndex)
Replies the count of points in the specified group.PointFusionValidator
getPointFusionValidator()
Replies the validator that is able to detect points at the same location.int
getPointIndex(int groupIndex, int position)
Replies the global index of the point that corresponds to the position in the given group.int
getPointIndex(int groupIndex, Point2D<?,?> point2d)
Replies the global index of the point2d in the given group.Iterator<MapComposedElement.PointGroup>
groupIterator()
Replies the iterator on the groups.Iterable<MapComposedElement.PointGroup>
groups()
Replies the iterator on the groups.int
hashCode()
int
insertPointAt(double x, double y, int groupIndex, int indexInGroup)
Insert the specified point at the given index in the specified group.int
insertPointAt(Point2D<?,?> point, int indexGroup, int indexInGroup)
Insert the specified point at the given index in the specified group.MapComposedElement
invert()
Invert the order of points coordinates of this element and reorder the groupIndex too.MapComposedElement
invertPointsIn(int groupIndex)
invert the points coordinates of this element on the groupIndex in argument.Iterator<Point2d>
pointIterator()
Replies the iterator on the points.Iterable<Point2d>
points()
Replies the iterator on the points.boolean
removeGroupAt(int groupIndex)
Remove the specified group.Point2d
removePointAt(int groupIndex, int indexInGroup)
Remove the specified point at the given index in the specified group.boolean
setPointAt(int index, double x, double y)
Set the specified point at the given index.boolean
setPointAt(int index, double x, double y, boolean canonize)
Set the specified point at the given index.boolean
setPointAt(int groupIndex, int indexInGroup, double x, double y)
Set the specified point at the given index in the specified group.boolean
setPointAt(int groupIndex, int indexInGroup, double x, double y, boolean canonize)
Set the specified point at the given index in the specified group.boolean
setPointAt(int groupIndex, int indexInGroup, Point2D<?,?> point)
Set the specified point at the given index in the specified group.boolean
setPointAt(int groupIndex, int indexInGroup, Point2D<?,?> point, boolean canonize)
Set the specified point at the given index in the specified group.boolean
setPointAt(int index, Point2D<?,?> point)
Set the specified point at the given index.boolean
setPointAt(int index, Point2D<?,?> point, boolean canonize)
Set the specified point at the given index.void
toJson(JsonBuffer buffer)
Replies the Json representation of this node.-
Methods inherited from class org.arakhne.afc.gis.mapelement.MapElement
addGISEditableChangeListener, boundsContains, boundsIntersects, contains, equals, finalize, fireElementChanged, fireGraphicalAttributeChanged, fireShapeChanged, getColor, getDistance, getFlags, getRawColor, getVisualizationType, hasFlag, intersects, isContainerColorUsed, isReadOnlyObject, onAttributeChanged, removeGISEditableChangeListener, resetBoundingBox, setColor, setContainerColorUse, setFlag, setReadOnlyObject, setUUID, setVisualizationType, switchFlag, unsetFlag
-
Methods inherited from class org.arakhne.afc.gis.primitive.AbstractBoundedGISElement
getBoundingBox, setBoundingBox
-
Methods inherited from class org.arakhne.afc.gis.primitive.AbstractGISElement
addAttributeChangeListener, addAttributes, addAttributes, attributes, copyAttributes, flush, freeMemory, getAllAttributeNames, getAllAttributes, getAllAttributesByType, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttributeAsBool, getAttributeAsDate, getAttributeAsDouble, getAttributeAsEnumeration, getAttributeAsEnumeration, getAttributeAsFloat, getAttributeAsInetAddress, getAttributeAsInt, getAttributeAsJavaClass, getAttributeAsLong, getAttributeAsString, getAttributeAsURI, getAttributeAsURL, getAttributeAsUUID, getAttributeCollection, getAttributeCount, getAttributeObject, getAttributeProvider, getContainer, getGeoId, getName, getTopContainer, getUUID, hasAttribute, hashKey, isEventFirable, onAttributeChangeEvent, removeAllAttributes, removeAttribute, removeAttributeChangeListener, renameAttribute, renameAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributes, setAttributes, setAttributeType, setContainer, setEventFirable, setName, toMap, toMap, toString
-
Methods inherited from interface org.arakhne.afc.attrs.collection.AttributeCollection
addAttributeChangeListener, addAttributes, addAttributes, flush, isEventFirable, removeAllAttributes, removeAttribute, removeAttributeChangeListener, renameAttribute, renameAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributes, setAttributes, setAttributeType, setEventFirable
-
Methods inherited from interface org.arakhne.afc.attrs.collection.AttributeProvider
attributes, freeMemory, getAllAttributeNames, getAllAttributes, getAllAttributesByType, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getAttributeAsBool, getAttributeAsDate, getAttributeAsDouble, getAttributeAsEnumeration, getAttributeAsEnumeration, getAttributeAsFloat, getAttributeAsInetAddress, getAttributeAsInt, getAttributeAsJavaClass, getAttributeAsLong, getAttributeAsString, getAttributeAsURI, getAttributeAsURL, getAttributeAsUUID, getAttributeCount, getAttributeObject, hasAttribute, toMap, toMap
-
Methods inherited from interface org.arakhne.afc.gis.primitive.BoundedGISElement
getShape
-
Methods inherited from interface org.arakhne.afc.gis.primitive.GISContentElement
getContainer, getTopContainer, setContainer
-
Methods inherited from interface org.arakhne.afc.gis.primitive.GISEditable
getName, setName
-
Methods inherited from interface org.arakhne.afc.gis.primitive.GISElement
copyAttributes, getName, hashKey, setName
-
Methods inherited from interface org.arakhne.afc.gis.primitive.GISPrimitive
getGeoId, getUUID
-
-
-
-
Constructor Detail
-
MapComposedElement
public MapComposedElement(UUID id, AttributeCollection attributeSource)
Create a new map element.- Parameters:
id
- is the unique identifier of this element, ornull
if unknown.attributeSource
- is the source of the attributes for this map element.- Since:
- 4.0
-
-
Method Detail
-
toJson
@Pure public void toJson(JsonBuffer buffer)
Description copied from interface:JsonableObject
Replies the Json representation of this node.- Specified by:
toJson
in interfaceJsonableObject
- Overrides:
toJson
in classMapElement
- Parameters:
buffer
- the Json buffer.
-
clone
@Pure public MapComposedElement clone()
Clone this object to obtain a valid copy.- Specified by:
clone
in interfaceAttributeCollection
- Specified by:
clone
in interfaceAttributeProvider
- Specified by:
clone
in interfaceGISCloneable<MapElement>
- Specified by:
clone
in interfaceGISElement
- Overrides:
clone
in classMapElement
- Returns:
- a copy
-
equals
@Pure public boolean equals(MapElement element)
Replies if the specified objects is the same as this one.If the specified object is a MapComposedElement, these points are matched to the points of this object. If the specified object is not a MapcomposedElement, this function replies
false
- Specified by:
equals
in classMapElement
- Parameters:
element
- the element to compare to.- Returns:
true
if the given element is equal to this object, otherwisefalse
-
hashCode
@Pure public int hashCode()
- Specified by:
hashCode
in classMapElement
-
contains
@Pure public boolean contains(Point2D<?,?> point, double delta)
Replies if the specified point (x,y) was inside the figure of this MapElement.- Specified by:
contains
in classMapElement
- Parameters:
point
- is a geo-referenced coordinatedelta
- is the geo-referenced distance that corresponds to a approximation distance in the screen coordinate system- Returns:
true
if the specified point has a distance nearest than delta to this element, otherwisefalse
-
calcBounds
@Pure protected Rectangle2d calcBounds()
Compute the bounds of this element. This function does not update the internal attribute replied byAbstractBoundedGISElement.getBoundingBox()
- Specified by:
calcBounds
in classAbstractBoundedGISElement<GISElementContainer<?>,MapElement>
- Returns:
- the bounds
-
getGeoLocation
@Pure public GeoLocation getGeoLocation()
Description copied from interface:GISPrimitive
Replies the geo-location.A GeoLocation is unique according to the geo-location of the element. If two elements have the same points in the same order, or if two elements have the same points in a reverse order, they must have equal GeoLocations.
The following code is always true (where the arguments of the constructors are the list of points of the polyline). It illustrates that for two elements with the same geo-localized points, they have the same geo-location identifier (Geo-Id) and they have different unique ientifier (Uid):
GISElement obj1 = new MapPolyline(100,10,200,30,300,4); GISElement obj2 = new MapPolyline(100,10,200,30,300,4); assert( obj1.getGeoId().equals(obj2.getGeoId()) ); assert( obj2.getGeoId().equals(obj1.getGeoId()) ); assert( ! obj1.getUid().equals(obj2.getUid()) ); assert( ! obj2.getUid().equals(obj1.getUid()) );
- Returns:
- a location
- See Also:
GISPrimitive.getGeoId()
,GISPrimitive.getGeoLocation()
-
clear
public void clear()
Remove all the points.
-
getGroupCount
@Pure public int getGroupCount()
Replies the count of groups.- Returns:
- the count of groups.
-
getPointCount
@Pure public int getPointCount()
Replies the count of points in all the parts.- Returns:
- the count of points
-
containsPoint
@Pure public boolean containsPoint(Point2D<?,?> point)
Check if point p is contained in this coordinates collections.- Parameters:
point
- the point to compare with this coordinates- Returns:
- true if p is already part of coordinates
-
containsPoint
@Pure public boolean containsPoint(Point2D<?,?> point, int groupIndex)
Check if point p is contained in this coordinates collections.- Parameters:
point
- the point to compare with this coordinatesgroupIndex
- into look for- Returns:
- true if p is already part of coordinates
-
getPointCountInGroup
@Pure public int getPointCountInGroup(int groupIndex)
Replies the count of points in the specified group.- Parameters:
groupIndex
- the group index.- Returns:
- the count of points in the specified group.
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getPointIndex
@Pure public int getPointIndex(int groupIndex, int position)
Replies the global index of the point that corresponds to the position in the given group.- Parameters:
groupIndex
- the group index.position
- is the index of the point in the group- Returns:
- the global index of the point
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getPointIndex
@Pure public int getPointIndex(int groupIndex, Point2D<?,?> point2d)
Replies the global index of the point2d in the given group.- Parameters:
groupIndex
- the group index.point2d
- is the point in the group- Returns:
- the global index of the point or
-1
if not found
-
getFirstPointIndexInGroup
@Pure public int getFirstPointIndexInGroup(int groupIndex)
Replies the global index of the point that starts a group.- Parameters:
groupIndex
- the group index.- Returns:
- the index of the first point in the group
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getLastPointIndexInGroup
@Pure public int getLastPointIndexInGroup(int groupIndex)
Replies the global index of the point that ends a group.- Parameters:
groupIndex
- the group index.- Returns:
- the index of the last point in the group
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getGroupAt
@Pure public MapComposedElement.PointGroup getGroupAt(int index)
Replies the part at the specified index.- Parameters:
index
- the index.- Returns:
- the group
- Throws:
IndexOutOfBoundsException
- in case of error.
-
groups
@Pure public Iterable<MapComposedElement.PointGroup> groups()
Replies the iterator on the groups.- Returns:
- the iterator on the groups.
-
groupIterator
@Pure public Iterator<MapComposedElement.PointGroup> groupIterator()
Replies the iterator on the groups.- Returns:
- the iterator on the groups.
-
points
@Pure public Iterable<Point2d> points()
Replies the iterator on the points.- Returns:
- the iterator on the points.
-
pointIterator
@Pure public Iterator<Point2d> pointIterator()
Replies the iterator on the points.- Returns:
- the iterator on the points.
-
addPoint
public final int addPoint(Point2D<?,?> point)
Add the specified point at the end of the last group.- Parameters:
point
- the new point.- Returns:
- the index of the new point in the element.
-
addPoint
public int addPoint(double x, double y)
Add the specified point at the end of the last group.- Parameters:
x
- x coordinatey
- y coordinate- Returns:
- the index of the new point in the element.
-
addPoint
public final int addPoint(Point2D<?,?> point, int indexGroup)
Add the specified point at the end of the specified group.- Parameters:
point
- the new point.indexGroup
- the index of the group.- Returns:
- the index of the point in the element.
- Throws:
IndexOutOfBoundsException
- in case of error.
-
addPoint
public int addPoint(double x, double y, int groupIndex)
Add the specified point at the end of the specified group.- Parameters:
x
- x coordinatey
- y coordinategroupIndex
- the index of the group.- Returns:
- the index of the point in the element.
- Throws:
IndexOutOfBoundsException
- in case of error.
-
addGroup
public final void addGroup(Point2D<?,?> point)
Add the specified point into a newgroup.- Parameters:
point
- the point.
-
addGroup
public int addGroup(double x, double y)
Add the specified point into a newgroup.- Parameters:
x
- x coordinatey
- y coordinate- Returns:
- the index of the new point in this element.
-
invertPointsIn
public MapComposedElement invertPointsIn(int groupIndex)
invert the points coordinates of this element on the groupIndex in argument.This method is reversible:
this.invertPointsIn(sameIndex) == this.invertPointsIn(sameIndex).invertPointsIn(sameIndex)
NOTE: invert each parts with
invertPointsIn(int)
does'nt produce the same result asinvert()
.This method invert points coordinates only. this.invertPointsIn(0 .. indexCount) != this.invert()
- Parameters:
groupIndex
- int element on which invert points- Returns:
- this
-
invert
public MapComposedElement invert()
Invert the order of points coordinates of this element and reorder the groupIndex too.NOTE: invert each parts with
invertPointsIn(int)
does'nt produce the same result asinvert()
This method invert points coordinates AND start index of parts to keep the logical order of points this method is reversible
this.invert() == this.invert().invert()
- Returns:
- the inverted element
-
insertPointAt
public final int insertPointAt(Point2D<?,?> point, int indexGroup, int indexInGroup)
Insert the specified point at the given index in the specified group.- Parameters:
point
- is the point to insertindexGroup
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).- Returns:
- the index of the new point in the element.
- Throws:
IndexOutOfBoundsException
- in case of error.
-
insertPointAt
public int insertPointAt(double x, double y, int groupIndex, int indexInGroup)
Insert the specified point at the given index in the specified group.- Parameters:
x
- is the point to inserty
- is the point to insertgroupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).- Returns:
- the index of the new point in the element.
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getPointAt
@Pure public Point2d getPointAt(int index)
Replies the specified point at the given index.If the index is negative, it will corresponds to an index starting from the end of the list.
- Parameters:
index
- is the index of the desired point- Returns:
- the point at the given index
- Throws:
IndexOutOfBoundsException
- in case of error.
-
getPointAt
@Pure public Point2d getPointAt(int groupIndex, int indexInGroup)
Replies the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the point in the group (0 for the first point of the group...).- Returns:
- the point
- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int index, double x, double y)
Set the specified point at the given index.If the index is negative, it will corresponds to an index starting from the end of the list.
- Parameters:
index
- is the index of the desired pointx
- is the new value of the pointy
- is the new value of the point- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public boolean setPointAt(int index, double x, double y, boolean canonize)
Set the specified point at the given index.If the index is negative, it will corresponds to an index starting from the end of the list.
- Parameters:
index
- is the index of the desired pointx
- is the new value of the pointy
- is the new value of the pointcanonize
- indicates if the functioncanonize(int)
must be called.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int index, Point2D<?,?> point)
Set the specified point at the given index.If the index is negative, it will corresponds to an index starting from the end of the list.
- Parameters:
index
- is the index of the desired pointpoint
- is the new value of the point- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int index, Point2D<?,?> point, boolean canonize)
Set the specified point at the given index.If the index is negative, it will corresponds to an index starting from the end of the list.
- Parameters:
index
- is the index of the desired pointpoint
- is the new value of the pointcanonize
- indicates if the functioncanonize(int)
must be called.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int groupIndex, int indexInGroup, double x, double y)
Set the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).x
- is the new value.y
- is the new value.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error
-
setPointAt
public boolean setPointAt(int groupIndex, int indexInGroup, double x, double y, boolean canonize)
Set the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).x
- is the new value.y
- is the new value.canonize
- indicates if the functioncanonize(int)
must be called.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int groupIndex, int indexInGroup, Point2D<?,?> point)
Set the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).point
- is the new value.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
setPointAt
public final boolean setPointAt(int groupIndex, int indexInGroup, Point2D<?,?> point, boolean canonize)
Set the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).point
- is the new value.canonize
- indicates if the functioncanonize(int)
must be called.- Returns:
true
if the point was set,false
if the specified coordinates correspond to the already existing point.- Throws:
IndexOutOfBoundsException
- in case of error.
-
removeGroupAt
public boolean removeGroupAt(int groupIndex)
Remove the specified group.- Parameters:
groupIndex
- the index of the group.- Returns:
true
on success, otherwisefalse
-
removePointAt
public Point2d removePointAt(int groupIndex, int indexInGroup)
Remove the specified point at the given index in the specified group.- Parameters:
groupIndex
- is the index of the groupindexInGroup
- is the index of the ponit in the group (0 for the first point of the group...).- Returns:
- the removed point
- Throws:
IndexOutOfBoundsException
- in case of error.
-
canonize
public boolean canonize()
Remove unnecessary points from the specified index.- Returns:
true
if points are removed, otherwisefalse
-
getPointFusionValidator
@Pure public PointFusionValidator getPointFusionValidator()
Replies the validator that is able to detect points at the same location.The validator provided by MapComposedElement is based on
Tuple2D.epsilonEquals(org.arakhne.afc.math.geometry.d2.Tuple2D, double)
. Subclasses should override this function to provide specifical implementation of a validator.- Returns:
- the validator, never
null
-
-