java.lang.Object | ||
↳ | com.esri.core.geometry.Geometry | |
↳ | com.esri.core.geometry.MultiPath |
![]() |
The MulitPath class is a base class for polygons and polylines.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
protected MultiPathImpl | m_impl |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
MultiPath() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
add(MultiPath src, boolean bReversePaths)
Appends all paths from another multipath.
| ||||||||||
void |
addEnvelope(Envelope envSrc, boolean bReverse)
Adds a rectangular closed path to this multipath.
| ||||||||||
void |
addPath(MultiPath src, int srcPathIndex, boolean bForward)
Copies a path from another multipath.
| ||||||||||
void |
addSegment(Segment segment, boolean bStartNewPath)
Adds a new segment to this multipath.
| ||||||||||
void |
applyTransformation(Transformation2D transform)
Applies 2D affine transformation in XY plane.
| ||||||||||
double |
calculateArea2D()
Calculates the area of the geometry.
| ||||||||||
double |
calculateLength2D()
Calculates the length of the geometry.
| ||||||||||
void |
closeAllPaths()
Closes all open paths by adding an implicit line segment from the end point to the start point.
| ||||||||||
void |
closePathWithLine()
Closes the last path of this multipath with a line segment.
| ||||||||||
void |
copyTo(Geometry dst)
Copies this geometry to another geometry of the same type.
| ||||||||||
int |
getPathCount()
Returns the number of paths in this multipath.
| ||||||||||
int |
getPathEnd(int pathIndex)
Returns the index immediately following the last index of the path.
| ||||||||||
int |
getPathIndexFromPointIndex(int pointIndex)
Returns the path index from the point index.
| ||||||||||
int |
getPathSize(int pathIndex)
Returns the number of vertices in a path.
| ||||||||||
int |
getPathStart(int pathIndex)
Returns the start index of the path.
| ||||||||||
void |
getPoint(int index, Point ptOut)
Returns given vertex of the Geometry by value.
| ||||||||||
Point |
getPoint(int index)
Returns given vertex of the Geometry.
| ||||||||||
int |
getPointCount()
Returns the total vertex count in this Geometry.
| ||||||||||
int |
getSegmentCount(int pathIndex)
Returns the segment count in the given multipath path.
| ||||||||||
int |
getSegmentCount()
Returns total segment count in the MultiPath.
| ||||||||||
int |
getStateFlag()
Returns the state of the geometry.
| ||||||||||
int |
hashCode()
Returns the hash code for the multipath.
| ||||||||||
void |
insertPath(int pathIndex, MultiPath src, int srcPathIndex, boolean bForward)
Inserts a path from another multipath.
| ||||||||||
void |
insertPoint(int pathIndex, int beforePointIndex, Point pt)
Inserts a point.
| ||||||||||
void |
insertPoints(int pathIndex, int beforePointIndex, MultiPath src, int srcPathIndex, int srcPointIndexFrom, int srcPointCount, boolean bForward)
Inserts vertices from the given multipath into this multipath.
| ||||||||||
boolean |
isClosedPath(int pathIndex)
Indicates if the given path is closed (represents a ring).
| ||||||||||
boolean |
isEmpty()
Indicates if the geometry object contains geometric information.
| ||||||||||
void |
lineTo(Point endPoint)
Adds a Line Segment to the given end point.
| ||||||||||
void |
lineTo(double x, double y)
Adds a line segment from the last point to the given end coordinates.
| ||||||||||
void |
queryEnvelope(Envelope env)
Gets the axis aligned bounding box of the geometry.
| ||||||||||
SegmentIterator |
querySegmentIterator()
Returns a SegmentIterator that is set right before the beginning of the multipath.
| ||||||||||
SegmentIterator |
querySegmentIteratorAtVertex(int startVertexIndex)
Returns a SegmentIterator that is set to a specific vertex of the MultiPath.
| ||||||||||
void |
removePath(int pathIndex)
Removes the path at the given index.
| ||||||||||
void |
removePoint(int pathIndex, int pointIndex)
Removes a point at a given index.
| ||||||||||
void |
reverseAllPaths()
Reverses the order of the vertices in each path.
| ||||||||||
void |
reversePath(int pathIndex)
Reverses the order of vertices in the path.
| ||||||||||
void |
setEmpty()
Sets the geometry to its original initialization state by releasing all data referenced by the geometry.
| ||||||||||
void |
setPoint(int index, Point point)
Sets the vertex at given index of the Geometry.
| ||||||||||
void |
startPath(Point point)
Starts a new path at a point.
| ||||||||||
void |
startPath(double x, double y)
Starts a new path at given coordinates.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Object |
_getImpl()
Returns implementation class of the geometry.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Appends all paths from another multipath.
src | The multipath to append to this multipath. |
---|---|
bReversePaths | TRUE if the multipath is added should be added with its paths reversed. |
Adds a rectangular closed path to this multipath.
envSrc | Is the envelope to add to this mulitpath. |
---|---|
bReverse | Adds the path reversed (counter-clockwise). |
Copies a path from another multipath.
src | The multipath to copy from. |
---|---|
srcPathIndex | The index of the path in the the source MultiPath. |
bForward | When FALSE, the points are inserted in reverse order. |
Adds a new segment to this multipath.
segment | The segment to be added to this mulitpath. |
---|---|
bStartNewPath | TRUE if a new path will be added. |
Applies 2D affine transformation in XY plane.
transform | The affine transformation to be applied to this geometry. |
---|
Calculates the area of the geometry. If the spatial reference is a Geographic Coordinate System (WGS84) then the 2D area calculation is defined in angular units.
Calculates the length of the geometry. If the spatial reference is a Geographic
Coordinate System (a system where coordinates are defined using angular units such
as longitude and latitude) then the 2D distance calculation is returned
in angular units. In cases where length must be calculated on a Geographic Coordinate
System consider the using the geodeticLength method in GeometryEngine
.
Closes all open paths by adding an implicit line segment from the end point to the start point. Call this method only for polylines.For polygons this method is implicitly called for the Polygon class.
Closes the last path of this multipath with a line segment. The closing segment is a segment that connects the last and the first points of the path. This is a virtual segment. The first point is not duplicated to close the path. Call this method only for polylines. For polygons this method is implicitly called for the Polygon class.
Copies this geometry to another geometry of the same type. The result geometry is an exact copy.
Returns the number of paths in this multipath.
Returns the index immediately following the last index of the path.
pathIndex | The index of the path to return the end index from. |
---|
Returns the path index from the point index. This is O(log N) operation.
pointIndex | The index of the point. |
---|
Returns the number of vertices in a path.
pathIndex | The index of the path to return the number of vertices from. |
---|
Returns the start index of the path.
pathIndex | The index of the path to return the start index from. |
---|
Returns the total vertex count in this Geometry.
Returns the segment count in the given multipath path.
pathIndex | The path to determine the segment. |
---|
Returns total segment count in the MultiPath.
Returns the state of the geometry. The stateFlag value changes with changes applied to this geometry. This allows the user to keep track of the geometry's state.
Returns the hash code for the multipath.
Inserts a path from another multipath.
pathIndex | The start index of the multipath to insert. |
---|---|
src | The multipath to insert into this multipath. Can be the same as the multipath being modified. |
srcPathIndex | The start index to insert the path into the multipath. |
bForward | When FALSE, the points are inserted in reverse order. |
Inserts a point.
pathIndex | The path index in this class to insert the point to. Must correspond to an existing path. |
---|---|
beforePointIndex | The point index in the given path of this multipath. This value must be between 0 and GetPathSize(pathIndex), or -1 to insert the point at the end of the given path. |
pt | The point to be inserted. |
Inserts vertices from the given multipath into this multipath. All added vertices are connected by linear segments with each other and with the existing vertices.
pathIndex | The path index in this multipath to insert points to. Must correspond to an existing path. |
---|---|
beforePointIndex | The point index before all other vertices to insert in the given path of this multipath. This value must be between 0 and GetPathSize(pathIndex), or -1 to insert points at the end of the given path. |
src | The source multipath. |
srcPathIndex | The source path index to copy points from. |
srcPointIndexFrom | The start point in the source path to start copying from. |
srcPointCount | The count of points to add. |
bForward | When FALSE, the points are inserted in reverse order. |
Indicates if the given path is closed (represents a ring). A closed path has a virtual segment that connects the last and the first points of the path. The first point is not duplicated to close the path. Polygons always have all paths closed.
pathIndex | The index of the path to check to be closed. |
---|
Indicates if the geometry object contains geometric information. IsEmpty returns true when the geometry object does not contain geometric information beyond its original initialization state.
Adds a Line Segment to the given end point.
endPoint | The end point to which the newly added line segment should point. |
---|
Adds a line segment from the last point to the given end coordinates.
x | The X coordinate to the end point. |
---|---|
y | The Y coordinate to the end point. |
Gets the axis aligned bounding box of the geometry.
env | The envelope to return the result in. |
---|
Returns a SegmentIterator that is set right before the beginning of the multipath. Calling nextPath() will set the iterator to the first path of this multipath.
Returns a SegmentIterator that is set to a specific vertex of the MultiPath. The call to nextSegment() will return the segment that starts at the vertex. Calling PreviousSegment () will return the segment that starts at the previous vertex.
startVertexIndex | The start index of the SegementIterator. |
---|
Removes the path at the given index.
pathIndex | The start index to remove the path. |
---|
Removes a point at a given index.
pathIndex | The path from whom to remove the point. |
---|---|
pointIndex | The index of the point to be removed. |
Reverses the order of the vertices in each path.
Reverses the order of vertices in the path.
pathIndex | The start index of the path to reverse the order. |
---|
Sets the geometry to its original initialization state by releasing all data referenced by the geometry.
Sets the vertex at given index of the Geometry.
index | The index of the vertex being changed. |
---|---|
point | The Point instance to set given vertex attributes from. The pointSrc can not be empty.
The method throws if the pointSrc is not of the Point type. The attributes, that are present in the pointSrc and missing in this Geometry, will be added to the Geometry. The vertex attributes missing in the pointSrc but present in the Geometry will be set to the default values (see VertexDescription::GetDefaultValue). |
Starts a new path at a point.
point | The point to start the path from. |
---|
Starts a new path at given coordinates.
x | The X coordinate of the start point. |
---|---|
y | The Y coordinate of the start point. |
Returns implementation class of the geometry. Subclass overrides this method.