SetFormat

This function sets the type of export format, by setting a mask

bit 0 & 1:

00 Each vertex is unique (although mostly irrelevant UpdateIndexBuffer() and

UpdateTransformationBuffer() are still returning information)

01 Each index is unique => vertices are not necessarily (although mostly

irrelevant UpdateTransformationBuffer() is still returning information)

10 Single level Transformations are used, most optimal when using DirectX till version 11

and OpenGL till version 2

11 Nested Transformations are used, most optimal but till 2011 no known support of

low level 3D interfaces like DirectX and OpenGL

bit 2:

0 Vertex items returned as float (4 byte/32 bit)

1 Vertex items returned as double (8 byte/64 bit)

bit 3:

0 Index items returned as int32_t (4 byte/32 bit)

1 Index items returned as int64_t (8 byte/64 bit) (only available in 64 bit mode)

bit 4:

0 Vertex does not contain 3D point info

1 Vertex does contain 3D point info

bit 5:

0 Vertex does not contain 3D normal vector info

1 Vertex does contain 3D normal vector info => if set, bit 4 will also be set

bit 6:

0 Vertex does not contain first 2D texture info

1 Vertex does contain first 2D texture info

bit 7:

0 Vertex does not contain second 2D texture info

1 Vertex does contain second 2D texture info => if set, bit 6 will also be set

bit 8:

0 No object form triangles are exported

1 Object form triangles are exported

bit 9:

0 No object polygon lines are exported

1 Object polygon lines are exported

bit 10:

0 No object points are exported

1 Object points are exported

bit 11: Reserved, by default 0

bit 12:

0 No object face polygon lines are exported

1 Object face polygon lines are exported => if set, bit 8 will also be set

bit 13:

0 No object conceptual face polygon lines are exported

1 Object conceptual face polygon lines are exported => if set, bit 12 will also be set

bit 14: Reserved, by default 0

bit 15:

0 All normals of triangles are transformed orthogonal to the 2D face they belong to

1 Normals are exported to be in line with the original semantic form description (could be non orthogonal to the 2D face)

bit 16:

0 no specific behavior

1 Where possible DirectX compatibility is given to exported data (i.e. order of components in vertices)

=> if set, bit 17 will be unset

bit 17:

0 no specific behavior

1 Where possible OpenGL compatibility is given to exported data (i.e. order of components in vertices and inverted texture coordinates in Y direction)

=> if set, bit 16 will be unset

bit 18: Reserved, by default 0

bit 19: Reserved, by default 0

bit 20-23:

0000 version 0 (used in case there is different behavior between versions in DirectX or OpenGL)

.... ...

1111 version 15

bit 24:

0 Vertex does not contain Ambient color information

1 Vertex does contain Ambient color information

bit 25:

0 Vertex does not contain Diffuse color information

1 Vertex does contain Diffuse color information

bit 26:

0 Vertex does not contain Emissive color information

1 Vertex does contain Emissive color information

bit 27:

0 Vertex does not contain Specular color information

1 Vertex does contain Specular color information

bit 28:

0 Vertex does not contain tangent vector for first texture

1 Vertex does contain tangent vector for first texture => if set, bit 6 will also be set

bit 29:

0 Vertex does not contain binormal vector for first texture

1 Vertex does contain binormal vector for first texture => if set, bit 6 will also be set

bit 30: ONLY WORKS IN 64 BIT MODE

0 Vertex does not contain tangent vector for second texture

1 Vertex does contain tangent vector for second texture => if set, bit 6 will also be set

bit 31: ONLY WORKS IN 64 BIT MODE

0 Vertex does not contain binormal vector for second texture

1 Vertex does contain binormal vector for second texture => if set, bit 6 will also be set

bit 26-31: Reserved, by default 0

bit 32-63: Reserved, by default 0

Note: default setting is 0000 0000 0000 0000 0000 0000 0000 0000 - 0000 0000 0000 0000 1000 0001 0011 0000 = h0000 0000 - 0000 8130 = 33072

Syntax

//   Visual Studio for Windows
public:
__int64 __declspec(dllexport) __stdcall SetFormat(
            __int64        model,
            __int64        setting,
            __int64        mask
        );

//   Linux, OS-X and non-Visual Studio Windows solutions
public:
int64_t SetFormat(
            int64_t        model,
            int64_t        setting,
            int64_t        mask
        );    

Property model

Size: 64 bit / 8 byte (value)
...

Property setting

Size: 64 bit / 8 byte (value)
...

Property mask

Size: 64 bit / 8 byte (value)
...