Cumulia Illustrator Rendering Engine v1.0.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
cil::BoxLocator Class Reference

BoxLocator class, inheriting from the ShapeLocator class, is specifically designed for bounding boxes. It's constructed with a box geometry and includes six shape handlers, one for each face of the box. More...

#include <locator.h>

Inheritance diagram for cil::BoxLocator:
cil::ShapeLocator cil::Locator cil::AbstractLocator cil::Node cil::EventWatcher cil::Object cil::BottomBoxLocator

Public Member Functions

 BoxLocator ()
 
virtual ~BoxLocator ()
 
virtual void update (const Handler &handler, Modifier modifier=Modifier::None)
 Scaling the box geometry boundaries based on the translation of its shape handlers and keyboard modifier key pressed during the event.
 
- Public Member Functions inherited from cil::ShapeLocator
 ShapeLocator ()
 Builds a shape locator with an initialized local matrix which represents the geometric extent in 3D space.
 
virtual ~ShapeLocator ()
 
std::shared_ptr< Matrix4flocal ()
 This function can return the local matrix of the current shape locator.
 
void setLocal (const std::shared_ptr< Matrix4f > &local)
 Sets the local matrix of the current shape locator.
 
void updateHandler ()
 Update the transformation matrix of the shape locator's other handlers once upon the shape locator is updated.
 
- Public Member Functions inherited from cil::Locator
 Locator ()
 
virtual ~Locator ()
 
void setTransform (const Matrix4f &transform)
 Sets the transform matrix of this locator node.
 
- Public Member Functions inherited from cil::AbstractLocator
 AbstractLocator ()
 
virtual ~AbstractLocator ()
 
- Public Member Functions inherited from cil::Object
 Object ()
 
virtual ~Object ()
 
- Public Member Functions inherited from cil::EventWatcher
 EventWatcher ()
 
virtual ~EventWatcher ()
 
void bind (const std::string &name, EventCallback callback)
 Binds a callback function to a specific event name.
 
void send (const std::string &name)
 Triggers an event by its name.
 

Additional Inherited Members

- Public Attributes inherited from cil::Locator
std::vector< std::shared_ptr< Handler > > handlers
 Handler is the draggable part of a Locator. A locator has one or multiple handlers which prodivde different interaction methods.
 
- Public Attributes inherited from cil::Node
std::string name
 This memeber stores the name of the node.
 
std::shared_ptr< Meshmesh
 This member is a shared pointer to a Mesh object, which means the node has a 3D object with its geometry defined by a mesh.
 
std::shared_ptr< std::vector< std::shared_ptr< Node > > > children
 This member is a dynamic array of shared pointers to the child Node objects. This allows the node to have a tree-like hierarchical structure.
 
std::shared_ptr< Matrix4ftransform
 This member is a shared pointer to a Matrix4f object. This matrix represents the transformation(position, rotation, scale) applied to the current node and its descendants.
 
std::shared_ptr< BoundingBoxboundingBox
 This member is a shared pointer to a BoundingBox.
 
std::shared_ptr< Materialmaterial
 This member is a shared pointer to a Mateiral object, which means the node can have its own material properties defining its appearance(color, texture, etc).
 
std::shared_ptr< Geometrygeometry
 This member is a shared pointer to a Geometry object, which maybe used for specific geometric data relevant to the node, potentially associated with the mesh or for other rendering purposes.
 
std::shared_ptr< Queryquery
 This member is a shared pointer to a Query object, and it is some type of query operation performed on the node or its descendants.
 
- Static Public Attributes inherited from cil::Locator
static std::map< std::string, Vector3ftrans
 This declaration defines a map object named trans which associates string keys with Vector3f values. The vector3f value represents a 3D vector defining the translation direction.
 
static std::map< std::string, Matrix4frot
 Similar to the map of trans, the vector3f value in this map represents a 3D vector defining the rotation axis.
 
- Protected Attributes inherited from cil::ShapeLocator
std::shared_ptr< Matrix4fm_local
 
std::vector< std::string > m_names
 

Detailed Description

BoxLocator class, inheriting from the ShapeLocator class, is specifically designed for bounding boxes. It's constructed with a box geometry and includes six shape handlers, one for each face of the box.

Constructor & Destructor Documentation

◆ BoxLocator()

cil::BoxLocator::BoxLocator ( )

◆ ~BoxLocator()

virtual cil::BoxLocator::~BoxLocator ( )
virtual

Member Function Documentation

◆ update()

virtual void cil::BoxLocator::update ( const Handler & handler,
Modifier modifier = Modifier::None )
virtual

Scaling the box geometry boundaries based on the translation of its shape handlers and keyboard modifier key pressed during the event.

Parameters
handlerThe handler is the one which has been dragged.
modifierThe modifier key provides additional flexibility in controlling the update process. When set to Modifier::SHIFT, the box undergoes a dual-sided scaling operation.

Reimplemented from cil::Locator.

Reimplemented in cil::BottomBoxLocator.