4 #ifndef _3ESMESSAGES_H_     5 #define _3ESMESSAGES_H_     9 #include "3espacketreader.h"    10 #include "3espacketwriter.h"    58     SIdBuiltInLast = SIdText2D
   148     CPFCompress = (1<<0),
   182     uint8_t reserved[35];
   190       ok = reader.
readElement(timeUnit) == 
sizeof(timeUnit) && ok;
   191       ok = reader.
readElement(coordinateFrame) == 
sizeof(coordinateFrame) && ok;
   192       ok = reader.
readArray(reserved, 
sizeof(reserved) / 
sizeof(reserved[0])) == 
sizeof(reserved) / 
sizeof(reserved[0]) && ok;
   202       ok = writer.
writeElement(timeUnit) == 
sizeof(timeUnit) && ok;
   203       ok = writer.
writeElement(defaultFrameTime) == 
sizeof(defaultFrameTime) && ok;
   204       ok = writer.
writeElement(coordinateFrame) == 
sizeof(coordinateFrame) && ok;
   205       ok = writer.
writeArray(reserved, 
sizeof(reserved) / 
sizeof(reserved[0])) == 
sizeof(reserved) / 
sizeof(reserved[0]) && ok;
   230       ok = reader.
readElement(controlFlags) == 
sizeof(controlFlags) && ok;
   231       ok = reader.
readElement(value32) == 
sizeof(value32) && ok;
   232       ok = reader.
readElement(value64) == 
sizeof(value64) && ok;
   242       ok = writer.
writeElement(controlFlags) == 
sizeof(controlFlags) && ok;
   243       ok = writer.
writeElement(value32) == 
sizeof(value32) && ok;
   244       ok = writer.
writeElement(value64) == 
sizeof(value64) && ok;
   273       ok = reader.
readElement(categoryId) == 
sizeof(categoryId) && ok;
   274       ok = reader.
readElement(parentId) == 
sizeof(parentId) && ok;
   275       ok = reader.
readElement(defaultActive) == 
sizeof(defaultActive) && ok;
   276       ok = reader.
readElement(nameLength) == 
sizeof(nameLength) && ok;
   279       if (!nameBuffer && nameLength || nameLength + 1 > nameBufferSize)
   284       reader.
readRaw((uint8_t *)nameBuffer, nameLength);
   285       nameBuffer[nameLength] = 
'\0';
   296       uint16_t nameLength = (uint16_t)((name) ? strlen(name) : 0);
   297       ok = writer.
writeElement(categoryId) == 
sizeof(categoryId) && ok;
   298       ok = writer.
writeElement(parentId) == 
sizeof(parentId) && ok;
   299       ok = writer.
writeElement(defaultActive) == 
sizeof(defaultActive) && ok;
   300       ok = writer.
writeElement(nameLength) == 
sizeof(nameLength) && ok;
   305           ok = writer.
writeRaw((
const uint8_t *)name, nameLength) == nameLength && ok;
   332       ok = reader.
readElement(flags) == 
sizeof(flags) && ok;
   333       ok = reader.
readElement(reserved) == 
sizeof(reserved) && ok;
   334       ok = reader.
readElement(uncompressedBytes) == 
sizeof(uncompressedBytes) && ok;
   345       ok = writer.
writeElement(reserved) == 
sizeof(reserved) && ok;
   346       ok = writer.
writeElement(uncompressedBytes) == 
sizeof(uncompressedBytes) && ok;
   363       colour = 0xffffffffu;
   364       position[0] = position[1] = position[2] =
   365         rotation[0] = rotation[1] = rotation[2] = 0.0f;
   367       scale[0] = scale[1] = scale[2] = 1.0f;
   376       ok = reader.
readElement(colour) == 
sizeof(colour) && ok;
   377       ok = reader.
readArray(&position[0], 3) == 3 && ok;
   378       ok = reader.
readArray(&rotation[0], 4) == 4 && ok;
   379       ok = reader.
readArray(&scale[0], 3) == 3 && ok;
   389       ok = writer.
writeElement(colour) == 
sizeof(colour) && ok;
   390       ok = writer.
writeArray(&position[0], 3) == 3 && ok;
   391       ok = writer.
writeArray(&rotation[0], 4) == 4 && ok;
   392       ok = writer.
writeArray(&scale[0], 3) == 3 && ok;
   402     enum { MessageId = OIdCreate };
   419       ok = reader.
readElement(category) == 
sizeof(category) && ok;
   420       ok = reader.
readElement(flags) == 
sizeof(flags) && ok;
   421       ok = reader.
readElement(reserved) == 
sizeof(reserved) && ok;
   422       ok = attributes.
read(reader) && ok;
   433       ok = writer.
writeElement(category) == 
sizeof(category) && ok;
   435       ok = writer.
writeElement(reserved) == 
sizeof(reserved) && ok;
   436       ok = attributes.
write(writer) && ok;
   448     enum { MessageId = OIdData };
   480     enum { MessageId = OIdUpdate };
   495       ok = reader.
readElement(flags) == 
sizeof(flags) && ok;
   496       ok = attributes.
read(reader) && ok;
   508       ok = attributes.
write(writer) && ok;
   517     enum { MessageId = OIdDestroy };
   545 #endif // _3ESMESSAGES_H_ uint16_t flags
Message flags. See CollatedPacketFlag. 
Definition: 3esmessages.h:320
 
Set the total number of frames to expect (value32). More for serialised streams. 
Definition: 3esmessages.h:67
 
uint32_t colour
Initial object colour. 
Definition: 3esmessages.h:355
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:239
 
uint32_t id
Id of the object to update data. 
Definition: 3esmessages.h:450
 
ControlFlag
Flags for various ControlId messages. 
Definition: 3esmessages.h:152
 
bool read(PacketReader &reader)
Read message content. 
Definition: 3esmessages.h:526
 
ObjectAttributes attributes
Initial transformation and colour. 
Definition: 3esmessages.h:484
 
size_t writeArray(const uint8_t *bytes, size_t elementSize, size_t elementCount)
Writes an array of data items from the current position. 
 
Position is given in world space and mapped to screen space. 
Definition: 3esmessages.h:118
 
Text is oriented to face the screen. 
Definition: 3esmessages.h:126
 
Update attributes using only explicitly specified flags from the following. 
Definition: 3esmessages.h:97
 
uint16_t reserved
Reserved: must be zero. 
Definition: 3esmessages.h:322
 
Per point normals. 
Definition: 3esmessages.h:111
 
uint16_t flags
Update flags from ObjectFlag. 
Definition: 3esmessages.h:483
 
size_t readRaw(uint8_t *bytes, size_t byteCount)
Reads raw bytes from the packet at the current position up to byteCount. 
 
Information about the server. 
Definition: 3esmessages.h:160
 
uint16_t nameLength
Number of bytes in name, excluding a null terminator. 
Definition: 3esmessages.h:261
 
ObjectMessageId
Object/shape management message ID. Used with ShapeHandlerIDs routing IDs. 
Definition: 3esmessages.h:80
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:386
 
Specifies the a change in coordinate frame view. 
Definition: 3esmessages.h:66
 
uint32_t controlFlags
Flags particular to this type of control message. 
Definition: 3esmessages.h:218
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:199
 
uint8_t coordinateFrame
Specifies the CoordinateFrame used by this server. 
Definition: 3esmessages.h:179
 
void identity()
Set to an identity transform coloured white. 
Definition: 3esmessages.h:361
 
uint16_t parentId
The (new) parent category for categoryId. Zero for none. 
Definition: 3esmessages.h:257
 
Text2DFlag
ObjectFlag extensions for Text2D rendering. 
Definition: 3esmessages.h:116
 
Clear the scene. This drops all existing data. 
Definition: 3esmessages.h:69
 
No flags. 
Definition: 3esmessages.h:138
 
bool read(PacketReader &reader)
Read message content. 
Definition: 3esmessages.h:457
 
A update message is identical in header to a CreateMessage. 
Definition: 3esmessages.h:477
 
uint32_t id
Id of the object to create. Zero for transient objects. 
Definition: 3esmessages.h:404
 
Use a two sided shader. 
Definition: 3esmessages.h:95
 
uint32_t id
Object creation id. Zero if defining a transient/single frame message. 
Definition: 3esmessages.h:482
 
size_t writeRaw(const uint8_t *bytes, size_t byteCount)
Writes raw bytes from the packet at the current position up to byteCount. 
 
Text3DFlag
ObjectFlag extensions for Text2D rendering. 
Definition: 3esmessages.h:124
 
Definition: 3esbounds.h:13
 
Update rotation data. 
Definition: 3esmessages.h:99
 
CollatedPacketFlag
Flags for CollatedPacketMessage. 
Definition: 3esmessages.h:146
 
First ID for renderers. 
Definition: 3esmessages.h:36
 
No flags. Default appearance. 
Definition: 3esmessages.h:92
 
UpdateFlag
Flags controlling the creation and appearance of an object. 
Definition: 3esmessages.h:136
 
uint32_t defaultFrameTime
The default time delta between frames to used when none is specified. 
Definition: 3esmessages.h:175
 
MeshShapeFlag
ObjectFlag extensions for MeshShape. 
Definition: 3esmessages.h:130
 
The object supports transparency. Use the colour alpha channel. 
Definition: 3esmessages.h:94
 
uint64_t timeUnit
Specifies the time unit in a CIdFrame ControlMessage. 
Definition: 3esmessages.h:168
 
Update position data. 
Definition: 3esmessages.h:98
 
A packet collation message header. 
Definition: 3esmessages.h:317
 
No additional data (points only) 
Definition: 3esmessages.h:110
 
Update colour data. 
Definition: 3esmessages.h:101
 
bool read(PacketReader &reader)
Read this message from reader. 
Definition: 3esmessages.h:329
 
Contains core object attributes. 
Definition: 3esmessages.h:353
 
Category name message. 
Definition: 3esmessages.h:250
 
ControlId
Message IDs for a ControlMessage. 
Definition: 3esmessages.h:62
 
uint32_t id
Id of the object to destroy, matching the CreateMessage id. 
Definition: 3esmessages.h:519
 
Forces a frame update (render) without advancing the time. 
Definition: 3esmessages.h:68
 
Request a frame snapshot during playback. value32 is the frame number to snap. 
Definition: 3esmessages.h:70
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:467
 
bool read(PacketReader &reader)
Read this message from reader. 
Definition: 3esmessages.h:227
 
size_t readArray(uint8_t *bytes, size_t elementSize, size_t elementCount)
Reads an array of data items from the current position. 
 
Defines an object data message. 
Definition: 3esmessages.h:445
 
Defines an object creation message. 
Definition: 3esmessages.h:399
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:536
 
uint32_t value32
32-bit value particular to this type of control message. 
Definition: 3esmessages.h:220
 
uint16_t reserved
Reserved for future use. 
Definition: 3esmessages.h:407
 
Extension. NYI. 
Definition: 3esmessages.h:33
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:503
 
First user ID. 
Definition: 3esmessages.h:38
 
uint16_t flags
Flags controlling the appearance and creation of the object. 
Definition: 3esmessages.h:406
 
uint16_t category
Object categorisation. Used to control visibility. 
Definition: 3esmessages.h:405
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:429
 
Show the object as a wireframe mesh. 
Definition: 3esmessages.h:93
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:341
 
Category name definition. 
Definition: 3esmessages.h:76
 
uint16_t categoryId
Identifies the category for the message. 
Definition: 3esmessages.h:255
 
Message to destroy an exiting object by id and type. 
Definition: 3esmessages.h:514
 
const char * name
The name string without a null terminator. 
Definition: 3esmessages.h:264
 
MessageTypeIDs
List of routing IDs of common, built in message handlers. 
Definition: 3esmessages.h:21
 
size_t readElement(uint8_t *bytes, size_t elementSize)
Reads a single data element from the current position. 
 
uint64_t value64
32-bit value particular to this type of control message. 
Definition: 3esmessages.h:222
 
bool read(PacketReader &reader)
Read this message from reader. 
Definition: 3esmessages.h:373
 
bool read(PacketReader &reader)
Read message content. 
Definition: 3esmessages.h:415
 
Defines a new frame. value32 is the delta time in microseconds. 
Definition: 3esmessages.h:65
 
bool write(PacketWriter &writer) const
Write this message to writer. 
Definition: 3esmessages.h:293
 
A system control message. 
Definition: 3esmessages.h:215
 
Update scale data. 
Definition: 3esmessages.h:100
 
CategoryMessageId
Message IDs for MtCategory routing. 
Definition: 3esmessages.h:74
 
bool read(PacketReader &reader)
Read this message from reader. 
Definition: 3esmessages.h:187
 
bool read(PacketReader &reader, char *nameBuffer, size_t nameBufferSize)
Read message content. 
Definition: 3esmessages.h:270
 
ObjectAttributes attributes
Initial transformation and colour. 
Definition: 3esmessages.h:408
 
A utility class for writing payload data to a PacketHeader. 
Definition: 3espacketwriter.h:34
 
uint16_t defaultActive
Default categoryId to active? Non zero for yes (1). 
Definition: 3esmessages.h:259
 
Per point colours. 
Definition: 3esmessages.h:112
 
ShapeHandlerIDs
Default/built in renderers (routing IDs). 
Definition: 3esmessages.h:42
 
uint32_t uncompressedBytes
Number of uncompressed bytes in the payload. 
Definition: 3esmessages.h:324
 
PointsAttributeFlag
Additional attributes for point data sources. 
Definition: 3esmessages.h:108
 
Calculate normals and rendering with lighting. 
Definition: 3esmessages.h:132
 
size_t writeElement(const uint8_t *bytes, size_t elementSize)
Writes a single data element from the current position. 
 
bool read(PacketReader &reader)
Read message content. 
Definition: 3esmessages.h:491
 
Flag for CIdFrame indicating transient objects should be maintained and not flushed for this frame...
Definition: 3esmessages.h:155
 
Transition to the new position, colour, etc., is interpolated over the render frames. 
Definition: 3esmessages.h:142
 
A utility class for dealing with reading packets. 
Definition: 3espacketreader.h:18
 
Spelling alias for colour. 
Definition: 3esmessages.h:102
 
void _3es_coreAPI initDefaultServerInfo(ServerInfoMessage *info)
Initialise info to the defaults. 
 
Use flags start here. 
Definition: 3esmessages.h:104