3es  0.7
tes::Box Class Reference

Defines a rectangular prism shape. More...

#include <3esbox.h>

Inheritance diagram for tes::Box:
tes::Shape

Public Member Functions

 Box (uint32_t id=0u, const V3Arg &pos=V3Arg(0, 0, 0), const V3Arg &scale=V3Arg(1.0f, 1.0f, 1.0f), const QuaternionArg &rot=QuaternionArg(0, 0, 0, 1))
 
 Box (uint32_t id, uint16_t category, const V3Arg &pos=V3Arg(0, 0, 0), const V3Arg &scale=V3Arg(1, 1, 1), const QuaternionArg &rot=QuaternionArg(0, 0, 0, 1))
 Construct a box object. More...
 
- Public Member Functions inherited from tes::Shape
 Shape (uint16_t routingId, uint32_t id=0)
 
 Shape (uint16_t routingId, uint32_t id, uint16_t category)
 Construct a box object. More...
 
uint16_t routingId () const
 
uint32_t id () const
 
ShapesetId (uint32_t id)
 
uint16_t category () const
 
ShapesetCategory (uint16_t category)
 
ShapesetWireframe (bool wire)
 Sets the wireframe flag value for this shape. More...
 
bool isWireframe () const
 Returns true if the wireframe flag is set. More...
 
ShapesetTransparent (bool transparent)
 Sets the transparent flag value for this shape. More...
 
bool isTransparent () const
 Returns true if the transparent flag is set. More...
 
ShapesetTwoSided (bool twoSided)
 Sets the two sided shader flag value for this shape. More...
 
bool isTwoSided () const
 Returns true if the two sided shader flag is set. More...
 
ShapesetFlags (uint16_t flags)
 Set the full set of ObjectFlag values. More...
 
uint16_t flags () const
 Retrieve the full set of ObjectFlag values. More...
 
ShapesetPosition (const V3Arg &pos)
 
Vector3f position () const
 
ShapesetPosX (float p)
 
ShapesetPosY (float p)
 
ShapesetPosZ (float p)
 
ShapesetRotation (const QuaternionArg &rot)
 
Quaternionf rotation () const
 
ShapesetScale (const V3Arg &scale)
 
Vector3f scale () const
 
ShapesetColour (const Colour &colour)
 
Colour colour () const
 
virtual void updateFrom (const Shape &other)
 Update the attributes of this shape to match other. More...
 
virtual bool writeCreate (PacketWriter &stream) const
 Writes the create message to stream. More...
 
virtual int writeData (PacketWriter &stream, unsigned &progressMarker) const
 Called only for complex shapes to write additional creation data. More...
 
bool writeUpdate (PacketWriter &stream) const
 
bool writeDestroy (PacketWriter &stream) const
 
virtual bool isComplex () const
 Is this a complex shape? Complex shapes have writeData() called. More...
 
virtual int enumerateResources (const Resource **resources, int capacity, int fetchOffset=0) const
 Enumerate the resources used by this shape. More...
 
virtual Shapeclone () const
 Deep copy clone. More...
 

Additional Inherited Members

- Protected Member Functions inherited from tes::Shape
void onClone (Shape *copy) const
 Called when copy is created from this object to copy appropriate attributes to copy. More...
 
void init (uint32_t id, uint16_t cat=0, uint16_t flags=0)
 
- Protected Attributes inherited from tes::Shape
uint16_t _routingId
 
CreateMessage _data
 

Detailed Description

Defines a rectangular prism shape.

The box is defined by its centre, scale and orientation. The scale defines the full extents from one corner to another.

A box is defined by:

Component Description
position() The box base position.
scale() The box size/scale, where (1, 1, 1) defines a unit box.
rotation() Quaternion rotation to apply to the box.

Constructor & Destructor Documentation

◆ Box() [1/2]

tes::Box::Box ( uint32_t  id = 0u,
const V3Arg pos = V3Arg(0, 0, 0),
const V3Arg scale = V3Arg(1.0f, 1.0f, 1.0f),
const QuaternionArg rot = QuaternionArg(0, 0, 0, 1) 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ Box() [2/2]

tes::Box::Box ( uint32_t  id,
uint16_t  category,
const V3Arg pos = V3Arg(0, 0, 0),
const V3Arg scale = V3Arg(1, 1, 1),
const QuaternionArg rot = QuaternionArg(0, 0, 0, 1) 
)
inline

Construct a box object.

Parameters
idThe shape ID, unique among Box objects, or zero for a transient shape.
categoryThe category grouping for the shape used for filtering.
posMarks the centre position of the box.
scaleDefines the size of the box, were (1, 1, 1) denotes a unit box.
rotQuaternion rotation to apply to the box.

The documentation for this class was generated from the following file: