#include #include #include #include int main() { iMesh_Instance mesh; int err; double coords[] = { 0,0,0, 1,1,1 }; iBase_EntityHandle *verts = NULL; int verts_alloc = 0,verts_size; iBase_EntityHandle line; int status; iBase_EntityHandle *adj = NULL; int adj_alloc = 0,adj_size; iMesh_newMesh("",&mesh,&err,0); assert(!err); iMesh_createVtxArr(mesh,2,iBase_INTERLEAVED,coords,6,&verts,&verts_alloc, &verts_size,&err); assert(!err); iMesh_createEnt(mesh,iMesh_LINE_SEGMENT,verts,2,&line,&status,&err); assert(!err && !status); iMesh_getEntAdj(mesh,verts[0],iBase_ALL_TYPES,&adj,&adj_alloc,&adj_size, &err); assert(!err); if(adj_size == 1 && adj[0] == line) printf("Good: found adjacency for vertex\n"); else printf("Bad: couldn't find adjacency for vertex\n"); free(adj); adj_alloc = adj = 0; iMesh_getEntAdj(mesh,line,iBase_ALL_TYPES,&adj,&adj_alloc,&adj_size, &err); assert(!err); if(adj_size == 2 && ((adj[0] == verts[0] && adj[1] == verts[1]) || (adj[0] == verts[1] && adj[1] == verts[0])) ) printf("Good: found adjacencies for line\n"); else printf("Bad: couldn't find adjacencies for line\n"); iMesh_dtor(mesh,&err); assert(!err); }