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