[quote user="Jon Summers"]
The ElementFacetSet class provides plenty of information about the facets it holds. Unfortunately the methods that reveal the information are sparsely documented in MicroStationAPI help.
For example...
- How are points (obtained using GetPoint()) and point indices (obtained using GetPointIndices()) related?
- Are facets always (a) triangular, (b) rectangular or a mixture of those?
- What does GetNumPerFace() tell us?
- Are ElementFacetSet and PolyFaceArrays related?
[/quote]
1. See 3.
2. That depends on ElementFacetOptions::GetMaxPerFace, which by default won't triangulate.
3. If > 1, each face is present in the index array as that number of indices, padded by 0 as needed, otherwise, the faces are variable size with 0 terminator.
4. No, but they are comparable...see below:
PolyfaceArrays arrays;
memset (&arrays, 0, sizeof (arrays));
arrays.pIndex = facets->GetIndexArray(); <- facets is ElementFacetSet*
arrays.pXYZ = facets->GetPointArray();
arrays.pUVIndex = facets->GetParamIndexArray();
arrays.pNormalIndex = facets->GetNormalIndexArray();
etc...
HTH
-B