GetConceptualFaceEx

Please rename GetConceptualFaceEx into GetConceptualFace.

Syntax

//
//   Linux, MacOS and non-Visual Studio Windows solutions (pure C++11 / C++98)
//
int64_t     GetConceptualFaceEx(
                    int64_t             owlInstance,
                    int64_t             index,
                    int64_t             * startIndexTriangles,
                    int64_t             * noIndicesTriangles,
                    int64_t             * startIndexLines,
                    int64_t             * noIndicesLines,
                    int64_t             * startIndexPoints,
                    int64_t             * noIndicesPoints,
                    int64_t             * startIndexFacePolygons,
                    int64_t             * noIndicesFacePolygons,
                    int64_t             * startIndexConceptualFacePolygons,
                    int64_t             * noIndicesConceptualFacePolygons
                );

static  inline  int64_t GetConceptualFaceEx(
                                int64_t             owlInstance,
                                int64_t             index,
                                int64_t             * startIndexTriangles,
                                int64_t             * noIndicesTriangles,
                                int64_t             * startIndexLines,
                                int64_t             * noIndicesLines,
                                int64_t             * startIndexPoints,
                                int64_t             * noIndicesPoints
                            )
{
    return  GetConceptualFaceEx(
                    owlInstance,
                    index,
                    startIndexTriangles,
                    noIndicesTriangles,
                    startIndexLines,
                    noIndicesLines,
                    startIndexPoints,
                    noIndicesPoints,
                    nullptr,        //    startIndexFacePolygons
                    nullptr,        //    noIndicesFacePolygons
                    nullptr,        //    startIndexConceptualFacePolygons
                    nullptr         //    noIndicesConceptualFacePolygons
                );
}

static  inline  int64_t GetConceptualFaceEx(
                                int64_t             owlInstance,
                                int64_t             index
                            )
{
    return  GetConceptualFaceEx(
                    owlInstance,
                    index,
                    nullptr,        //    startIndexTriangles
                    nullptr,        //    noIndicesTriangles
                    nullptr,        //    startIndexLines
                    nullptr,        //    noIndicesLines
                    nullptr,        //    startIndexPoints
                    nullptr         //    noIndicesPoints
                );
}


//
//   Visual Studio for Windows
//
__int64 __declspec(dllexport) __stdcall GetConceptualFaceEx(
                                                __int64             owlInstance,
                                                __int64             index,
                                                __int64             * startIndexTriangles,
                                                __int64             * noIndicesTriangles,
                                                __int64             * startIndexLines,
                                                __int64             * noIndicesLines,
                                                __int64             * startIndexPoints,
                                                __int64             * noIndicesPoints,
                                                __int64             * startIndexFacePolygons,
                                                __int64             * noIndicesFacePolygons,
                                                __int64             * startIndexConceptualFacePolygons,
                                                __int64             * noIndicesConceptualFacePolygons
                                            );

static  inline  __int64 GetConceptualFaceEx(
                                __int64             owlInstance,
                                __int64             index,
                                __int64             * startIndexTriangles,
                                __int64             * noIndicesTriangles,
                                __int64             * startIndexLines,
                                __int64             * noIndicesLines,
                                __int64             * startIndexPoints,
                                __int64             * noIndicesPoints
                            )
{
    return  GetConceptualFaceEx(
                    owlInstance,
                    index,
                    startIndexTriangles,
                    noIndicesTriangles,
                    startIndexLines,
                    noIndicesLines,
                    startIndexPoints,
                    noIndicesPoints,
                    nullptr,        //    startIndexFacePolygons
                    nullptr,        //    noIndicesFacePolygons
                    nullptr,        //    startIndexConceptualFacePolygons
                    nullptr         //    noIndicesConceptualFacePolygons
                );
}

static  inline  __int64 GetConceptualFaceEx(
                                __int64             owlInstance,
                                __int64             index
                            )
{
    return  GetConceptualFaceEx(
                    owlInstance,
                    index,
                    nullptr,        //    startIndexTriangles
                    nullptr,        //    noIndicesTriangles
                    nullptr,        //    startIndexLines
                    nullptr,        //    noIndicesLines
                    nullptr,        //    startIndexPoints
                    nullptr         //    noIndicesPoints
                );
}
    

Property owlInstance

Size: 64 bit / 8 byte (value)
The handle to the specific instance in the design tree. The instance handle is static within one open model but is most probably different when the same instance is opened in another model. The instance is always exactly of one unique class.

Property index

Size: 64 bit / 8 byte (value)
This is the index (0 based) of the face in the set of conceptual faces available.

Property startIndexTriangles

Size: 32 bit / 4 byte (reference)
The first index in the index buffer representing a Triangle by a reference in the vertex buffer.

Property noIndicesTriangles

Size: 32 bit / 4 byte (reference)
The number of lines within this conceptual face has exactly one third of the number in this noIndicesTriangles, each individual index from startIndexTriangles references a vertex element in the vertex buffer, the references could be duplicated. Each triple of references represents one triangle.

Property startIndexLines

Size: 32 bit / 4 byte (reference)
The first index in the index buffer representing a Line by a reference in the vertex buffer.

Property noIndicesLines

Size: 32 bit / 4 byte (reference)
The number of lines within this conceptual face has exactly half of the number in this noIndicesLines, each individual index from startIndexLines references a vertex element in the vertex buffer, the references could be duplicated. Each tuple of references represents one line.

Property startIndexPoints

Size: 32 bit / 4 byte (reference)
The first index in the index buffer representing a Point by a reference in the vertex buffer.

Property noIndicesPoints

Size: 32 bit / 4 byte (reference)
The number of points within this conceptual face exactly matched this noIndicesPoints, each individual index from startIndexPoints references a vertex element in the vertex buffer, the references could be duplicated.

Property startIndexFacePolygons

Size: 32 bit / 4 byte (reference)
The first index in the index buffer representing the polygon for that specific face (a face is always placed / defined in exactly 1 plane). SetFormat(..) has several options to structure how these polygons are exported with / without repeating line segments, line segments per line segment or list of vertex references ending with -1 (outer polygon) or -2 (inner polygon) [default]. For example by default a Cylinder has 38 faces, top and bottom have each one polygon with 37 points (first and last point the same) and surrounding face polygons represent rectangles (i.e. 6 elements including the last / first point being the same and -1 as ending).

Property noIndicesFacePolygons

Size: 32 bit / 4 byte (reference)
The number of indices in the index buffer for the face polygons. For example in default SetFormat(..) setting a square polygon represented by 6 indices, for example [0, 1, 2, 3, 0, -1] where the vertex buffer has at least 4 vertex elements.

Property startIndexConceptualFacePolygons

Size: 32 bit / 4 byte (reference)
The first index in the index buffer representing the polygon for that specific conceptual face. SetFormat(..) has several options to structure how these polygons are exported with / without repeating line segments, line segments per line segment or list of vertex references ending with -1 (outer polygon) or -2 (inner polygon) [default]. For example by default a Cylinder has three conceptual faces, top and bottom have each one polygon and surrounding polygon has two polygons.

Property noIndicesConceptualFacePolygons

Size: 32 bit / 4 byte (reference)
The number of indices in the index buffer for the conceptual face polgyons. For example in default SetFormat(..) setting a square polygon represented by 6 indices, for example [0, 1, 2, 3, 0, -1] where the vertex buffer has at least 4 vertex elements.