Rumba C++ SDK
maquina::VirtualAttributeNodeDelegate Class Reference

A node delegate for nodes with virtual attributes. More...

#include <NodeDelegateVirtualPlug.h>

Inheritance diagram for maquina::VirtualAttributeNodeDelegate:
maquina::NodeDelegateRumba maquina::NodeDelegate

Public Member Functions

 VirtualAttributeNodeDelegate (const maquina::Node &node, const std::shared_ptr< const VirtualAttributesStore > attribute_store)
 
std::shared_ptr< class AttributeDescriptordescription () const override
 Returns the node's description, always returns a valid pointer. More...
 
virtual int attribute_count () const override
 Returns the number of attributes. More...
 
virtual std::shared_ptr< maquina::NodeDelegate::AttributeDelegateattribute (const maquina::StringView &name) override
 Return a node attribute using its name. More...
 
std::shared_ptr< maquina::NodeDelegate::AttributeDelegateconcreteAttribute (const maquina::StringView &name)
 
virtual std::shared_ptr< AttributeIteratorDelegate_attributes_begin () override
 Return the begin iterator of the attributes. More...
 
virtual std::shared_ptr< AttributeIteratorDelegate_attributes_end () override
 Return the end iterator of the attributes. More...
 
- Public Member Functions inherited from maquina::NodeDelegateRumba
 NodeDelegateRumba (const std::shared_ptr< Impl > &node)
 
StringView type_name () const override
 From maquina::UserData. More...
 
std::shared_ptr< maquina::NodeDelegateparent () const override
 From maquina::NodeDelegate. More...
 
maquina::StringView name () const override
 The node's name. More...
 
std::string path () const override
 Returns the full path to the node. More...
 
Imath::Box3d bounding_box () const override
 Returns the bounding_box of the node. More...
 
bool operator== (const maquina::NodeDelegate &o) const override
 Return true if both nodes are the same or both nodes are invalid. More...
 
bool operator!= (const maquina::NodeDelegate &o) const override
 Return true if the nodes are different or if one is invalid. More...
 
int child_count () const override
 Returns the number of children in the node. More...
 
std::shared_ptr< ChildIteratorDelegate_children_begin () override
 Return the begin iterator of the attributes. More...
 
std::shared_ptr< ChildIteratorDelegate_children_end () override
 Return the end iterator of the attributes. More...
 
std::shared_ptr< maquina::NodeDelegatefind (const maquina::StringView &path) override
 Returns descendent node_delegate using a path starting at this node. More...
 
bool is_node () const override
 Return true if this node delegate is a Rumba Node. More...
 
maquina::Node node () const override
 Return the node behind this node delegate. More...
 
void channel_plugs (std::unordered_set< Plug > &result) const override
 
bool is_camera () const override
 Returns true if this node is a camera. More...
 
bool is_locked () const override
 Return true if the camera can't be moved. More...
 
void set_locked (bool locked, const ModificationContext &mc) override
 Set the locked attribute. More...
 
bool is_orthographic (const QueryContext &qc=QueryContext::at_current_frame) const override
 Does this camera has an orthographic projection. More...
 
float orthographic_width (const QueryContext &qc=QueryContext::at_current_frame) const override
 Return the orthographic width, the length projected in the width of the camera image. More...
 
void set_orthographic_width (float width, const ModificationContext &mc) override
 Set the orthographic width. More...
 
float center_of_interest (const QueryContext &qc=QueryContext::at_current_frame) const override
 Return the center of interest, the distance of the point the camera is looking at. More...
 
void set_center_of_interest (float coi, const ModificationContext &mc) override
 Set the center of interest. More...
 
float near_clipping_plane (const QueryContext &qc=QueryContext::at_current_frame) const override
 Return the near clipping plane. More...
 
void set_near_clipping_plane (float near_clipping_plane, const ModificationContext &mc) override
 Set the near clipping plane. More...
 
float far_clipping_plane (const QueryContext &qc=QueryContext::at_current_frame) const override
 Return the far clipping plane. More...
 
void set_far_clipping_plane (float far_clipping_plane, const ModificationContext &mc) override
 Set the far clipping plane. More...
 
Imath::M44d projection_matrix (const QueryContext &qc=QueryContext::at_current_frame) const override
 Return the camera's projection matrix. More...
 
float aspect_ratio () const override
 Return the camera's aspect ratio, width over height. This aspect ratio is used to shape the viewport's frame. More...
 
std::shared_ptr< NodeDelegateaim () const override
 Return the aim target node if available. More...
 
std::shared_ptr< NodeDelegateup () const override
 Return the up target node if available. More...
 
std::shared_ptr< Observercreate_camera_observer (const std::function< void()> &func, bool in_interactive=true) override
 Create an observer notified when the NodeDelegate camera attributes have changed. More...
 
- Public Member Functions inherited from maquina::NodeDelegate
virtual ~NodeDelegate ()
 
virtual std::string document_path () const
 Returns the document path to the node. More...
 
virtual std::shared_ptr< NodeDelegatechild (const StringView &name)
 Return a node child using its name. More...
 
Children children ()
 
virtual bool add_attribute (const StringView &name, const Value &value)
 Add a node attribute with the given name and value. More...
 
virtual std::shared_ptr< Channelchannel (const ChannelType sc)
 Return the specified channel if available, return nullptr otherwise. More...
 
virtual std::vector< Channelchannels ()
 Return all the node's channels. More...
 
virtual void animate ()
 Called when the node delegate is assigned to an animation system layer. More...
 
Attributes attributes ()
 
virtual bool has_transform () const
 Return true if this node is has a transformation matrix. More...
 
virtual Imath::M44d matrix (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node's local matrix which transforms a point from the local node space to the parent space. More...
 
virtual Imath::M44d world_matrix (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node's world matrix which transforms a point from the local node space to the world space. More...
 
virtual Imath::M44d parent_world_matrix (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node parent's world matrix which transforms a point from the parent space to the world space. More...
 
virtual Imath::V3d rotate_pivot (const QueryContext &qc=QueryContext::at_current_frame) const
 
virtual Imath::V3d scale_pivot (const QueryContext &qc=QueryContext::at_current_frame) const
 
virtual Imath::V3d joint_orient (const QueryContext &qc=QueryContext::at_current_frame) const
 
virtual Imath::V3d rotate_axis (const QueryContext &qc=QueryContext::at_current_frame) const
 
virtual int mutable_flags () const
 Returns the mutable transformation component. More...
 
virtual std::unique_ptr< TransformUserDatastart_transform (const QueryContext &qc=QueryContext::at_current_frame)
 Start a transform modification, time to backup an initial state. More...
 
virtual void end_transform (const ModificationContext &mc=ModificationContext::default_mc(), TransformUserData *user_data=nullptr)
 End a transform modification, time to backup an initial state. More...
 
virtual void set_matrix (const Imath::M44d &matrix, const ModificationContext &mc=ModificationContext::default_mc(), TransformUserData *user_data=nullptr)
 Set the node matrix. More...
 
virtual Imath::V3d scale (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the scale of the node matrix. More...
 
virtual void set_scale (const Imath::V3d &scale, const ModificationContext &mc=ModificationContext::default_mc(), TransformUserData *user_data=nullptr)
 Set the scale of the node matrix. More...
 
virtual Imath::V3d rotation (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node matrix's rotation as euler radians angles in the order returned by rotation_order. More...
 
virtual Imath::Eulerd::Order rotate_order (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node rotate order. More...
 
virtual void set_rotation (const Imath::V3d &rotation, const ModificationContext &mc=ModificationContext::default_mc(), TransformUserData *user_data=nullptr)
 Set the transformation rotation. More...
 
virtual Imath::V3d translation (const QueryContext &qc=QueryContext::at_current_frame) const
 Return the node's translation. More...
 
virtual void set_translation (const Imath::V3d &translation, const ModificationContext &mc=ModificationContext::default_mc(), TransformUserData *user_data=nullptr)
 Set the translation of the node matrix. More...
 
Imath::V3d extract_translation (const Imath::M44d &local_matrix, const QueryContext &mc=QueryContext::at_current_frame) const
 A helper function to extract the node delegate translation component out of a local matrix, regarding the different pivots. More...
 
Imath::V3d extract_rotation (Imath::M44d local_matrix, const QueryContext &mc=QueryContext::at_current_frame) const
 A helper function to extract the node delegate rotation component out of a local matrix, regarding the joint_orient and rotate_axis. More...
 
virtual std::shared_ptr< Observercreate_transform_observer (const std::function< void()> &func, bool in_interactive=true)
 Create an observer notified when the NodeDelegate transform attributes have changed. More...
 
virtual bool has_geometry () const
 Return true if this node has a geometry. More...
 
virtual Shape geometry () const
 Returns the node's geometry. More...
 
virtual bool is_sculpt () const
 This node is a sculpt node, i-e, displaces the vertices of the input scene's geometries using sparse buffers of delta position. More...
 
virtual BufferConstV3f input_points (const StringView &path, const QueryContext &qc=QueryContext::at_current_frame) const
 Return the points of the input scene node at the given path. More...
 
virtual SparseBufferConstV3f delta_points (const StringView &path, const QueryContext &qc=QueryContext::at_current_frame) const
 Return the delta points fot the scene node at the given path. More...
 
virtual void set_delta_points (const SparseBufferConstV3f &delta_points, const StringView &path, const ModificationContext &mc=ModificationContext::default_mc()) const
 Set the delta points fot the scene node at the given path. More...
 
virtual std::shared_ptr< maquina::NodeDelegate::Observercreate_sculpt_observer (const std::function< void()> &func, bool in_interactive)
 Create an observer notified when the NodeDelegate sculpt attributes have changed. More...
 

Protected Attributes

std::shared_ptr< const VirtualAttributesStore_attribute_store
 

Additional Inherited Members

- Public Types inherited from maquina::NodeDelegate
enum  MutableFlags {
  ScaleX = 0x001, ScaleY = 0x002, ScaleZ = 0x004, Scale = ScaleX|ScaleY|ScaleZ,
  RotateX = 0x008, RotateY = 0x010, RotateZ = 0x020, Rotate = RotateX|RotateY|RotateZ,
  TranslateX = 0x040, TranslateY = 0x080, TranslateZ = 0x100, Translate = TranslateX|TranslateY|TranslateZ,
  AllComponents = Scale|Rotate|Translate
}
 

Detailed Description

A node delegate for nodes with virtual attributes.

Constructor & Destructor Documentation

◆ VirtualAttributeNodeDelegate()

maquina::VirtualAttributeNodeDelegate::VirtualAttributeNodeDelegate ( const maquina::Node node,
const std::shared_ptr< const VirtualAttributesStore attribute_store 
)

Member Function Documentation

◆ _attributes_begin()

virtual std::shared_ptr<AttributeIteratorDelegate> maquina::VirtualAttributeNodeDelegate::_attributes_begin ( )
overridevirtual

Return the begin iterator of the attributes.

Reimplemented from maquina::NodeDelegateRumba.

◆ _attributes_end()

virtual std::shared_ptr<AttributeIteratorDelegate> maquina::VirtualAttributeNodeDelegate::_attributes_end ( )
overridevirtual

Return the end iterator of the attributes.

Reimplemented from maquina::NodeDelegateRumba.

◆ attribute()

virtual std::shared_ptr<maquina::NodeDelegate::AttributeDelegate> maquina::VirtualAttributeNodeDelegate::attribute ( const maquina::StringView name)
overridevirtual

Return a node attribute using its name.

Return nullptr if the attribute does not exist.

Reimplemented from maquina::NodeDelegateRumba.

◆ attribute_count()

virtual int maquina::VirtualAttributeNodeDelegate::attribute_count ( ) const
overridevirtual

Returns the number of attributes.

Reimplemented from maquina::NodeDelegateRumba.

◆ concreteAttribute()

std::shared_ptr<maquina::NodeDelegate::AttributeDelegate> maquina::VirtualAttributeNodeDelegate::concreteAttribute ( const maquina::StringView name)

◆ description()

std::shared_ptr<class AttributeDescriptor> maquina::VirtualAttributeNodeDelegate::description ( ) const
overridevirtual

Returns the node's description, always returns a valid pointer.

Reimplemented from maquina::NodeDelegateRumba.

Member Data Documentation

◆ _attribute_store

std::shared_ptr<const VirtualAttributesStore> maquina::VirtualAttributeNodeDelegate::_attribute_store
protected

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