Rumba C++ SDK
NodeDelegateManipulator.h
Go to the documentation of this file.
1 /*
2 
3  *
4  ***
5  *****
6  ********************* Mercenaries Engineering SARL
7  ***************** Copyright (C) 2020
8  *************
9  ********* http://www.mercenaries-engineering.com
10  ***********
11  **** ****
12  ** **
13 
14 */
15 
16 #pragma once
17 
19 
20 namespace maquina
21 {
22 
23 // maquina::NodeDelegate implementation for Rumba nodes
25 {
26 public:
27  NodeDelegateManipulator(const std::shared_ptr<maquina::Impl>& node);
28 
30  bool has_transform() const override;
31  Imath::M44d matrix(const QueryContext& qc) const override;
32  Imath::M44d world_matrix(const QueryContext& qc) const override;
33  Imath::M44d parent_world_matrix(const QueryContext& qc) const override;
34  Imath::V3d rotate_pivot(const QueryContext& qc) const override;
35  Imath::V3d scale_pivot(const QueryContext& qc) const override;
36  Imath::V3d joint_orient(const QueryContext& qc) const override;
37  Imath::V3d rotate_axis(const QueryContext& qc) const override;
38  int mutable_flags() const override;
39  Imath::V3d scale(const QueryContext& qc) const override;
40  void set_scale(const Imath::V3d& scale, const maquina::ModificationContext& mc=maquina::ModificationContext::default_mc(), TransformUserData* user_data=nullptr) override;
41  Imath::V3d rotation(const QueryContext& qc) const override;
42  Imath::Eulerd::Order rotate_order(const QueryContext& qc) const override;
43  void set_rotation(const Imath::V3d& rotation, const maquina::ModificationContext& mc=maquina::ModificationContext::default_mc(), TransformUserData* user_data=nullptr) override;
44  void set_translation(const Imath::V3d& translation, const maquina::ModificationContext& mc=maquina::ModificationContext::default_mc(), TransformUserData* user_data=nullptr) override;
45  std::shared_ptr<Observer> create_transform_observer(const std::function<void()>& func, bool in_interactive=true) override;
46 
48  std::shared_ptr<NodeDelegate> controller_delegate() const;
49 };
50 
51 }
Order
Definition: ImathEuler.h:151
Definition: ImathFrame.h:42
Definition: ImathFrame.h:43
A blind data provided by the start_transform&#39;s implementation and passed to set_scale, set_rotation and set_translation.
Definition: NodeDelegate.h:440
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
Definition: ModificationContext.h:21
Definition: NodeDelegateManipulator.h:24
Definition: NodeDelegateRumba.h:32
static const ModificationContext & default_mc()
Automatically choose between undoable and layer.
#define MAQUINA_EXPORT
Definition: Export.h:31
Definition: QueryContext.h:22