Functions | |
int | Compute_Points_On_Shell (int test_point_count, const HC_POINT *test_points, double tolerance, int point_count, const HC_POINT *points, int face_list_length, const int *face_list, int *results) |
int Compute_Points_On_Shell | ( | int | test_point_count, |
const HC_POINT * | test_points, | ||
double | tolerance, | ||
int | point_count, | ||
const HC_POINT * | points, | ||
int | face_list_length, | ||
const int * | face_list, | ||
int * | results | ||
) |
Tests, within a certain tolerance, whether a given set of points reside on the surface of a shell.
test_point_count | - Number of points in the point cloud. |
test_points | - Vector of x-y-z triplets defining the points to be tested. |
tolerance | - Distance from shell, in object space, inside which a point will be considered to be on the shell. |
point_count | - Number of points in the shell that may enclose the points defined in test_points |
points | - Vector of x-y-z triplets for the coordinates of the vertices to be used to build the shell. (A simple N x 3 array may also be used). Passed by reference always. |
face_list_length | - Size of the array of integers which define the faces in face_list. |
face_list | - Encoded description of how to connect the points to build the faces of the shell (see Insert_Shell() ). |
results | - Array of size test_point_count that specifies whether the point contained at that index within test_points is within the given tolerance of the face of the shell. Passed by reference. Returned to user. |
Compute_Points_On_Shell can be used to determine which points within a point cloud are within a given tolerance of the surface of a defined Shell. The array returned to a user is a series of 1's and 0's. If the value is 1 at a given index then the location specified at the corresponding index in the point cloud is within the specified tolerance of the surface of the Shell.
Models that use non-planar faces may also cause this function to generate incorrect results. Also, though the tolerance is provided as a double the tolerance is only calculated to within floating point accuracy.