TKE_Mesh

Opcode

ASCII

M

Hexadecimal

0x4D

Decimal

77

Operands

Byte suboptions, int rows, int columns, variable points, [variable attributes]

suboptions

information about formatting. Uses a subset of the bits defined in TKE_Shell

rows

the number of rows of vertices in the mesh

columns

the number of columns of vertices in the mesh

points

the vertex locations

attributes

polyhedron attributes bound to faces, edges or vertices. Present if and only if suboptions has the TKSH_HAS_OPTIONALS bit set. See attributes.html for details.

Suboptions

As mentioned above, TKE_Mesh suboption share a definition with TKE_Shell, and use a subset of its suboptions bits. The following bits are relevant here:

0x01

TKSH_COMPRESSED_POINTS – Points are compressed

0x08

TKSH_HAS_OPTIONALS – Vertices, edges and/or faces have attributes, and the attributes section of the format exists. See attributes.html

0x80

TKSH_EXPANDED – Suboptions2 currently has no bits relevant to TKE_Mesh, so this bit will not be set (and thus there is currently no suboptions2)

Notes

A mesh is a rectangular array of faces with implicit regular connectivity. The mesh is inserted into the currently opened segment.

As in TKE_Shell, points are either compressed or uncompressed vertex data. Compression status is dictated by the TKSH_COMPRESSED_POINTS bit in the shell suboptions. If uncompressed, it will consist of triples of 32-bit floating point coordinates in the order xyzxyz… If compressed, it will consist of a compression scheme identifier, followed by data that is specific to that compression scheme. The specifics of the compressed format are described in attributes.html in the “array of compressed floats” section.

Points (uncompressed)

int pointcount, float array uncompressed triplets of point data, in order xyzxyz…

Points (compressed)

byte compression scheme, int pointcount, variable array of compressed floats. See the “array of compressed floats” section of attributes.html.