NX二次开发 PK获得相邻面 PK_FACE_ask_faces_adjacent
bool PK_AskAdjacFaces(const PK_FACE_t pkFace, std::vector<PK_FACE_t>& pkAdjacFaces)
{
pkAdjacFaces.clear();
if (0 == pkFace)
return false;
#if _NX_VERSION >= _UGNX9000000//高版本pk才有这个函数
int i = 0, n_faces = 0;
tag_t object_tag = NULL_TAG;
PK_FACE_t pkFaces1[1] = { pkFace };
PK_FACE_t* pkFaces2 = NULL;
PK_FACE_ask_faces_adjacent_o_t options;
PK_FACE_ask_faces_adjacent_o_m(options);
if (PK_FACE_ask_faces_adjacent(1, pkFaces1, &options, &n_faces, &pkFaces2))
{
return false;
}
if (0 == n_faces)
return false;
for (i = 0; i < n_faces; i++)
{
pkAdjacFaces.push_back(pkFaces2[i]);
}
PK_MEMORY_free(pkFaces2);
pkFaces2 = NULL;
#else
int i = 0, j = 0, n_edges = 0, n_faces = 0;
PK_EDGE_t* edges = NULL;
PK_FACE_ask_edges(pkFace, &n_edges, &edges);
if (0 == n_edges)
return f