获取体的面
int getBodyFaces(tag_t tagBody, int iType, vector<tag_t> *vecFaces)
{
uf_list_p_t list1 = NULL;
UF_MODL_create_list(&list1);
double douFaceBox[6];
double douOFaceRadius;
double douFaceRadData;
int iFaceNormDir;
int iFaceType;
double douFacePoint[3];
double douFaceDir[3];
UF_MODL_ask_body_faces(tagBody, &list1);
int count = 0;
UF_MODL_ask_list_count(list1, &count);
for (int i = 0; i < count; i++)
{
tag_t tagPlane = NULL_TAG;
UF_MODL_ask_list_item(list1, i, &tagPlane);
UF_MODL_ask_face_data(tagPlane, &iFaceType, douFacePoint, douFaceDir, douFaceBox,
&douOFaceRadius, &douFaceRadData, &iFaceNormDir);
if ((iType == -1) || (iFaceType == iType))
{
(*vecFaces).push_back(tagPlane);
}
}
UF_free(list1);
list1 = NULL;
return 0;
}
iType:
| 17 |
UF_cone_type |
圆锥面 |
| 18 |
UF_sphere_type |
球面 |
| 19 |
UF_surface_of_revolution_type |
|
| 20 |
UF_tabulated_cylinder_type |
|
| 22 |
UF_bounded_plane_type |
有界平面 |
| 23 |
UF_blended_face_type |
|
| 43 |
UF_b_surface_type |
|
| 65 |
UF_offset_surface_type |
|
| 66 |
UF_foreign_surface_type |
|
| -1 |
|
所有面 |