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

The CylinderLocator class, inheriting from the ShapeLocator class, is constructed with a cylinder geometry and includes one shape handler on the cylider face and two other shape handlers on the top and bottom faces. More...

#include <locator.h>

Inheritance diagram for cil::CylinderLocator:
cil::ShapeLocator cil::Locator cil::AbstractLocator cil::Node cil::Object cil::BottomCylinderLocator

Public Member Functions

 CylinderLocator ()
 
virtual ~CylinderLocator ()
 
virtual void update (const Handler &handler, Modifier modifier=Modifier::None)
 Scaling the cylinder 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 ()
 
void bind (const std::string &name, std::function< void()> callback)
 
void unbind (const std::string &name)
 
void send (const std::string &name)
 
- Public Member Functions inherited from cil::Object
 Object ()
 
virtual ~Object ()
 

Additional Inherited Members

- Public Types inherited from cil::Locator
enum class  Modifier {
  None = 0x0000 , Shift = 0x0200 , Ctrl = 0x0400 , Alt = 0x0800 ,
  Meta = 0x1000
}
 The Modifier enumeration defines various modifier keys for handling different keyboard events. More...
 
- 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.
 
MeshPtr mesh
 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< NodePtr > > 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.
 
Matrix4fPtr transform
 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.
 
BoundingBoxPtr boundingBox
 This member is a shared pointer to a BoundingBox.
 
MaterialPtr material
 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).
 
GeometryPtr geometry
 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.
 
QueryPtr query
 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

The CylinderLocator class, inheriting from the ShapeLocator class, is constructed with a cylinder geometry and includes one shape handler on the cylider face and two other shape handlers on the top and bottom faces.

Constructor & Destructor Documentation

◆ CylinderLocator()

cil::CylinderLocator::CylinderLocator ( )

◆ ~CylinderLocator()

virtual cil::CylinderLocator::~CylinderLocator ( )
virtual

Member Function Documentation

◆ update()

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

Scaling the cylinder 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 cylinder undergoes a dual-sided scaling operation.

Reimplemented from cil::Locator.

Reimplemented in cil::BottomCylinderLocator.