| bool is_on_free_store (void) | constfunction | 
| Returns true, if thePathwas dynamically allocated on the
free store, otherwisefalse. | 
| bool is_planar ([const bool verbose = false, [string text = ""]]) | constvirtual function | 
| Uses get_normal()to determine
whether thePathis planar or not.  Returnstrue, if it is,
otherwisefalse.  If verbose istrue, text is written to
standard output, or "Path:", if text is the empty string,
followed by a message saying whether thePathis planar or not. | 
| bool is_linear ([const bool verbose = false, [string text = ""]]) | constfunction | 
| Returns true, ifline_switchistrue.  Otherwise,is_linear()usesget_normal()to determine whether thePathis linear.  If it is,is_linear()returnstrue, otherwisefalse. | 
| bool is_cycle (void) | Inline constfunction | 
| Returns trueif thePathis cyclical, i.e.,cycle_switch = true, otherwisefalse.  Only cyclicalPathsare fillable. | 
| int size (void) | Inline function | 
| Returns the number of Pointsonpoints, i.e.,points.size(). | 
| bool get_line_switch (void) | Inline constfunction | 
| Returns the value of line_switch.line_switchis only
true, if thePathwas created, directly or indirectly, using the
constructor taking twoPointarguments only. 
See Path Reference; Constructors and Setting Functions. | 
| real slope ([char a = 'x', [char b = 'y']]) | Function | 
| Returns the slope of the Pathin the plane indicated by the
arguments, ifis_linear()returnstrue.  Otherwise,slope()issues an error message and returnsINVALID_REAL. | 
| Path subpath (size_t start, size_t end, [const bool cycle = false, [const string connector = ""]]) | constfunction | 
| Returns a new Pathusingpoints[start]throughpoints[end - 1].  If cycle istrue, then the newPathwill be a cycle, whether*thisis or not.  One optional connector
argument can be used.  If it is, it will be the only connector. 
Otherwise, the appropriate connectors from*thisare used.start must be < end.  It is not possible to
have start > end, even if  | 
| const Point& get_point (const unsigned short a) | constfunction | 
| Returns the Point*points[a], if a <points.size()and thePathis non-empty, otherwiseINVALID_POINT. | 
| const Point& get_last_point (void) | constfunction | 
| Returns the Pointpointed to by the last pointer onpoints. 
Equivalent toget_point(get_size() - 1), but more convenient to
type.  ReturnsINVALID_POINT, if thePathis empty. | 
| size_t get_size (void) | constinline virtual function | 
| Returns points.size(). | 
| Line get_line (void) | constfunction | 
| Returns a Linecorresponding to thePath, if the latter is
linear.  Otherwise,INVALID_LINEis returned. 
See Line Reference. | 
| Point get_normal (void) | constvirtual function | 
| Returns a Pointrepresenting a unit vector in the direction of the
normal to the plane of thePath, orINVALID_POINT, if
thePathis non-planar.          Point P(1, 1, 1);
          Rectangle r(P, 4, 4, 30, 30, 30);
          Point N = r.get_normal();
          
 In 3DLDF, plane figures generally have constructors taking a |Point|
argument for the center, a variable number of |real| arguments for the
dimensions, and three |real| arguments for the rotation about the major
axes.  The object is first created in the x-z plane, and the
 | 
| Plane get_plane (void) | constvirtual function | 
| Creates and returns a Planep corresponding to thePath,
if the latter is planar, otherwiseINVALID_PLANE. 
If thePathis planar, p.pointwill be thePointpointed to bythis->points[0]. 
See Plane Reference.          Point P(1, 1, 1);
          Rectangle r(P, 4, 4, 45, 20, 15);
          Plane q = r.get_plane();
          q.show("q:");
          -| q:
             normal: (0.0505914, 0.745607, -0.664463)
             point: (0.0178869, -0.727258, -1.01297)
             distance == -0.131735
          
 | 
| void set_cycle ([const bool c = true]) | Function | 
| Sets cycle_switchto c. | 
| Path reverse (bool assign) | Function | 
| Path reverse (void) | constfunction | 
| These functions return a Pathwith the samePointsand
connectors as*this, but in reversed order.reverse()can only be applied to non-cyclicalPaths.  If*thisis a cycle,reverse()issues an error message and
returns*thisunreversed.If the first version is called with assign =  |