Description: Tool for efficiently calculating a boundary polyline winding number with input tools that do not require the boundary polyline to be a contiguous array of points.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


const ON_2dPoint * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


const ON_2fPoint * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


const ON_3dPoint * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


const ON_3fPoint * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


size_t 
point_stride, 


const double * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. point_stride  [in] >= 2 The ith point has coordinates (boundary_points[i*point_stride],boundary_points[i*point_stride+1]). boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


size_t 
point_stride, 


const float * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. point_stride  [in] >= 2 The ith point has coordinates (boundary_points[i*point_stride],boundary_points[i*point_stride+1]). boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.
ON__UINT32 ON_WindingNumber::AddBoundary 
( 
size_t 
point_count, 


size_t 
point_stride, 


const int * 
boundary_points, 


bool 
bCloseBoundary 

) 
 
Description: After calling SetWindingPoint(), the boundary may be specified by one or more calls to various AddBoundary functions. The boundary may be specified one point at a time, one edge at a time, portions of the boundary at a time, or the entire boundary in a single call. The edges may be added in any order. The caller is responsible for insuring the collection calls to AddBoundary() results in a a continuous, oriented, and closed polyline. Parameters: point_count  [in] >= 2 number of points in boundary_points[] array. point_stride  [in] >= 2 The ith point has coordinates (boundary_points[i*point_stride],boundary_points[i*point_stride+1]). boundary_points  [in] Boundary points. bCloseBoundary  [in] If true, an edge segment is added from the last boundary point to the first boundary point. Returns: Number of boundary edge segments added. Remarks: The calculation tolerates zero length edge segments. The caller is responsible for insuring the coordinates in boundary_points[] are valid doubles.