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.