24 #include <unordered_set> 30 class NodeDelegateRumba;
33 template class MAQUINA_EXPORT std::weak_ptr< maquina::NodeDelegate >;
34 template class MAQUINA_EXPORT std::enable_shared_from_this< maquina::NodeDelegate >;
75 virtual std::shared_ptr<NodeDelegate> parent() = 0;
85 virtual std::string path()
const = 0;
91 virtual bool is_node()
const;
99 virtual Node node()
const;
114 virtual std::shared_ptr<NodeDelegate> find(
const StringView& path);
123 virtual int child_count()
const;
127 virtual std::shared_ptr<NodeDelegate> child(
const StringView& name);
134 virtual std::shared_ptr<NodeDelegate>
operator*()
const = 0;
135 virtual std::shared_ptr<NodeDelegate> operator->()
const = 0;
145 ChildIterator(
const std::shared_ptr<ChildIteratorDelegate>& impl);
146 std::shared_ptr<NodeDelegate>
operator*()
const;
147 std::shared_ptr<NodeDelegate> operator->()
const;
152 std::shared_ptr<ChildIteratorDelegate> _impl;
158 virtual std::shared_ptr<ChildIteratorDelegate> _children_begin();
160 virtual std::shared_ptr<ChildIteratorDelegate> _children_end();
170 Children(
const std::shared_ptr<NodeDelegate>& node);
176 const std::shared_ptr<NodeDelegate> _node;
198 virtual std::shared_ptr<AttributeDelegate> attribute() = 0;
209 virtual std::shared_ptr<NodeDelegate> owner() = 0;
212 virtual std::string name()
const = 0;
217 virtual bool is_mutable()
const;
222 virtual bool is_visible()
const;
227 virtual bool is_animable()
const;
232 virtual bool accepts_overrides()
const;
237 virtual bool is_overridden()
const;
242 virtual void add_override();
247 virtual void remove_override();
250 virtual Value value()
const = 0;
256 virtual bool is_plug()
const;
261 virtual Plug plug()
const;
264 virtual std::string description()
const;
268 virtual bool has_node_delegate()
const;
273 virtual std::shared_ptr<NodeDelegate> node_delegate();
286 virtual std::shared_ptr<Observer> create_observer(
const std::function<
void()>& func,
bool in_interactive=
true);
290 virtual int attribute_count()
const;
294 virtual std::shared_ptr<AttributeDelegate> attribute(
const StringView& name);
297 virtual void channels( std::unordered_set<Plug>&
set )
const;
304 virtual std::shared_ptr<AttributeDelegate>
operator*()
const = 0;
305 virtual std::shared_ptr<AttributeDelegate> operator->()
const = 0;
316 std::shared_ptr<AttributeDelegate>
operator*()
const;
317 std::shared_ptr<AttributeDelegate> operator->()
const;
322 std::shared_ptr<AttributeIteratorDelegate> _impl;
328 virtual std::shared_ptr<AttributeIteratorDelegate> _attributes_begin();
330 virtual std::shared_ptr<AttributeIteratorDelegate> _attributes_end();
336 Attributes(
const std::shared_ptr<NodeDelegate>& node ) : node{ node }{}
339 std::shared_ptr<NodeDelegate>
node;
353 virtual bool has_transform()
const;
373 Scale = ScaleX|ScaleY|ScaleZ,
377 Rotate = RotateX|RotateY|RotateZ,
381 Translate = TranslateX|TranslateY|TranslateZ,
382 AllComponents = Scale|Rotate|Translate
387 virtual int mutable_flags()
const;
390 virtual void start_transform(
const QueryContext& qc=QueryContext::at_current_frame);
422 virtual std::shared_ptr<Observer> create_transform_observer(
const std::function<
void()>& func,
bool in_interactive=
true);
430 virtual bool is_camera()
const;
434 virtual bool is_orthographic(
const QueryContext& qc=QueryContext::at_current_frame)
const;
437 virtual float orthographic_width(
const QueryContext& qc=QueryContext::at_current_frame)
const;
443 virtual float center_of_interest(
const QueryContext& qc=QueryContext::at_current_frame)
const;
449 virtual float focal_length(
const QueryContext& qc=QueryContext::at_current_frame)
const;
455 virtual float horizontal_aperture(
const QueryContext& qc=QueryContext::at_current_frame)
const;
458 virtual void set_horizontal_aperture(
float horizontal_aperture,
const ModificationContext& mc);
461 virtual float vertical_aperture(
const QueryContext& qc=QueryContext::at_current_frame)
const;
464 virtual void set_vertical_aperture(
float vertical_aperture,
const ModificationContext& mc);
467 virtual float near_clipping_plane(
const QueryContext& qc=QueryContext::at_current_frame)
const;
470 virtual void set_near_clipping_plane(
float near_clipping_plane,
const ModificationContext& mc);
473 virtual float far_clipping_plane(
const QueryContext& qc=QueryContext::at_current_frame)
const;
476 virtual void set_far_clipping_plane(
float far_clipping_plane,
const ModificationContext& mc);
483 inline NodeDelegate::Children::Children(
const std::shared_ptr<NodeDelegate>& node) : _node(node)
488 return _node->_children_begin();
493 return _node->_children_end();
506 return (*_impl).operator->();
512 return (!_impl || !other._impl) ? _impl == other._impl : (*_impl).operator==(*other._impl);
517 return (!_impl || !other._impl) ? _impl != other._impl : (*_impl).operator!=(*other._impl);
536 return (*_impl).operator->();
542 return (!_impl || !other._impl) ? _impl == other._impl : (*_impl).operator==(*other._impl);
547 return (!_impl || !other._impl) ? _impl != other._impl : (*_impl).operator!=(*other._impl);
std::shared_ptr< AttributeDelegate > operator->() const
Definition: NodeDelegate.h:534
A node attributes iteration.
Definition: NodeDelegate.h:335
Definition: ImathBox.h:71
AttributeIterator(const std::shared_ptr< AttributeIteratorDelegate > &impl)
Definition: NodeDelegate.h:526
AttributeIterator begin() const
Definition: NodeDelegate.h:337
Order
Definition: ImathEuler.h:151
Definition: ImathFrame.h:42
AttributeIterator & operator++()
Definition: NodeDelegate.h:550
Definition: ImathFrame.h:43
A node attribute iterator delegate to implement a child iterator in the plugin.
Definition: NodeDelegate.h:130
ChildIterator end() const
Return the end iterator of the children.
Definition: NodeDelegate.h:491
std::shared_ptr< NodeDelegate > operator*() const
Definition: NodeDelegate.h:499
AttributeIterator end() const
Definition: NodeDelegate.h:338
Attributes attributes()
Definition: NodeDelegate.h:342
ChildIterator(const std::shared_ptr< ChildIteratorDelegate > &impl)
Definition: NodeDelegate.h:496
std::shared_ptr< NodeDelegate > operator->() const
Definition: NodeDelegate.h:504
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
virtual ~Observer()
Definition: NodeDelegate.h:193
Definition: ModificationContext.h:21
bool operator==(const ChildIterator &other) const
Definition: NodeDelegate.h:509
ChildIterator & operator++()
Definition: NodeDelegate.h:520
bool operator==(const AttributeIterator &other) const
Definition: NodeDelegate.h:539
ChildIterator begin() const
Return the begin iterator of the children.
Definition: NodeDelegate.h:486
bool operator!=(const AttributeIterator &other) const
Definition: NodeDelegate.h:545
An object to keep an observer alive.
Definition: NodeDelegate.h:190
#define MAQUINA_EXPORT
Definition: Export.h:31
A node attribute delegate.
Definition: NodeDelegate.h:202
std::shared_ptr< NodeDelegate > node
Definition: NodeDelegate.h:339
A node plug.
Definition: Plug.h:52
std::shared_ptr< AttributeDelegate > operator*() const
Definition: NodeDelegate.h:529
A node children iteration.
Definition: NodeDelegate.h:165
bool operator!=(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:305
virtual ~AttributeIteratorDelegate()
Definition: NodeDelegate.h:303
bool operator==(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:273
bool operator!=(const ChildIterator &other) const
Definition: NodeDelegate.h:515
A node attribute iterator.
Definition: NodeDelegate.h:142
Definition: UserData.h:26
virtual ~ChildIteratorDelegate()
Definition: NodeDelegate.h:133
Attributes(const std::shared_ptr< NodeDelegate > &node)
Definition: NodeDelegate.h:336
This interface gives a high level access to the document structure.
Definition: NodeDelegate.h:68
A node attribute iterator.
Definition: NodeDelegate.h:312
Color4< T > operator*(S a, const Color4< T > &v)
Definition: ImathColor.h:727
Definition: QueryContext.h:21
friend class NodeDelegate
Definition: NodeDelegate.h:167
A node attribute iterator delegate to implement in the plugin.
Definition: NodeDelegate.h:300
virtual ~AttributeDelegate()
Definition: NodeDelegate.h:205
Base class of all Rumba nodes.
Definition: Node.h:36
Base class of all Rumba values.
Definition: Value.h:34