[libgfc Index] [libgfc Hierarchy] [Headers]
The Arc ADT represents a linear feature with branches More...
#include <src/gadt_arc.h>
Inherits: GSpatial
The Arc ADT represents a linear feature with branches. An arc consists of multiple branch polylines which are not necessarily connected to each other. Each polyline is a sereis of connected points or segments.
[public virtual]
user format: "n_polylines, num_points_1, num_points_2,...num_pooints_N, x1 y1 x2 y2 ... xm ym"
[public virtual]
generates a stpolyline with same format for input
[public virtual]
pack the arc into a binary structure. The structure is the same as the geometry part of the Arc record in ArcView Shapefile (ie, no record header, no type info.)
[public virtual]
unpack a binary stream into an Arc. The binary stream should have same structure as the geometry part of the Arc record in an ArcView shapefile.
[public virtual]
return the mbr of the Arc.
[public virtual]
compares the length with the arc 'a's area. Returns -1 if 'a' has larger length; zero if equal, otherwise 1.
[public virtual]
this method accepts severl "parts" each of which are a series of ordered points. All existing data will be replaced by the new data.
[public]
return total number of verticies in all polylines.
[public]
return number of branches.
[public]
return length of the arc
[public]
return the length of the nth branch.
[public]
add a polyline (branch) to this arc
[public]
get information about a particular branch/polyline.
coords | where its coordinates are stored |
nth | which branch to retrieve |
[public]
check if there is a loop in this Arc. Having a loop means it either has duplicate points or the some polylines intersect themselves. We need an algorithm better than O(N*N). Currently two iterators are used to loop over all the possible combination of vertices. currently always returns false!!!
[public virtual]
This function is not defined for Arcs. it always returns 0.
[public virtual]
check if this arc intersects a segment. This method calls the segment's intersects(GSegment) function for each edge of the arc.
[public virtual]
check if this polygon intersects with a linear series of connected coordinates.
[public virtual]
check if the arc intersects a set of ordered point series.
[public]
Check if this arc completely falls within a rectangle.
[public]
check if this polyline complete falls inside a circle. simply loop through all nodes.
[public]
scan the verticies and generate an MBR
[public]
set the MBR
Documentation generated by lqian@lqian-sun on Wed Jul 14 09:36:10 EDT 1999 | Kdoc |