42 Node(
const char* type,
44 Node* parent =
nullptr,
50 Node* parent =
nullptr,
51 bool undo_stack =
false 63 bool undo_stack =
false 67 const char* name()
const;
70 std::string full_name()
const;
73 std::string full_document_name()
const;
76 std::shared_ptr<AttributeDescriptor> description()
const;
79 void set_description(
const std::string& description,
bool undo_stack =
false);
82 const char* type_name()
const;
85 bool is_deleted()
const;
88 bool is_instance(
const char* node_type_name )
const;
92 bool is_referenced()
const;
96 bool is_mutable()
const;
100 bool is_reference_root()
const;
103 bool is_reference_loaded()
const;
106 bool is_serializable()
const;
108 bool is_singleton()
const;
109 void set_singleton(
bool singleton);
113 bool is_document_node()
const;
117 void set_serializable(
bool serialize );
121 std::wstring reference_filename()
const;
126 void unload_reference();
132 void load_reference();
137 void replace_reference(
const std::wstring& new_reference);
143 void flatten_reference();
147 void write(
const std::wstring& filename)
const;
178 Iterator begin()
const;
179 Iterator end()
const;
188 Children children()
const;
191 bool has_parent()
const;
199 void set_parent(Node& parent,
bool undo_stack);
203 std::optional<Node>
document()
const;
206 bool has_child(
const char* child_name)
const;
210 Node child(
const char* name)
const;
213 bool is_child_of(
const Node& parent)
const;
217 Node find_first(
const char* name)
const;
238 Iterator(
const std::shared_ptr< Impl > &node,
void *iterator );
242 std::shared_ptr< Impl > _node;
259 bool has_plug(
const char* plug_name)
const;
270 Plug add_plug(
const char* name,
const Value&
default_value,
int flags = Flags::serial,
bool undo_stack =
false,
const std::string & description =
"" );
278 void rename_plug(
const Plug& plug,
const char* new_name,
bool undo_stack =
false );
288 void remove_plug(
const char* name,
bool undo_stack =
false );
298 void remove_plug(
const Plug& plug,
bool undo_stack =
false );
313 Plug plug(
const char* plug_name)
const;
316 std::vector<Plug> channel_plugs()
const;
319 std::vector<Channel> channels()
const;
322 std::shared_ptr<Channel> channel(
ChannelType channel_type)
const;
327 std::vector<Node> relationship();
330 const std::vector<std::string>& bases()
const;
336 std::shared_ptr<NodePlugin> plugin()
const;
340 std::vector<Node> search(
341 const std::string& key
346 std::shared_ptr<class NodeDelegate> node_delegate();
352 void notify_first_init(
bool undo_stack);
361 bool is_selected()
const;
364 std::optional<Plug> channel_switch_sub_channel(
const std::string_view& sub_channel)
const;
370 std::shared_ptr<Impl> _impl;
373 Node(
const std::shared_ptr<Impl>& impl)
std::forward_iterator_tag iterator_category
Definition: Node.h:158
bool operator==(const Node &o) const
Definition: Node.h:366
The graph properties of a node, its graph position, its radius, its graph flags.
Definition: GraphProperties.h:23
ChannelType
Predefined channel types.
Definition: ChannelType.h:23
Buffer< T > duplicate(const BufferConst< T > &a)
Definition: Buffer.h:169
bool operator!=(const Node &o) const
Definition: Node.h:367
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
std::forward_iterator_tag iterator_category
Definition: Node.h:228
MAQUINA_EXPORT Value default_value(const maquina::StringView &type_name)
Return the default value of a type.
A Plug accessor.
Definition: Node.h:221
Plugs(void *node)
Definition: Node.h:246
#define MAQUINA_EXPORT
Definition: Export.h:31
A node plug.
Definition: Plug.h:59
std::ptrdiff_t difference_type
Definition: Node.h:160
A Node children iterator.
Definition: Node.h:155
MAQUINA_EXPORT Node plug_node(const Plug &plug)
Get a plug node.
bool operator!=(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:306
bool operator==(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:274
std::ptrdiff_t difference_type
Definition: Node.h:230
A Plug iterator.
Definition: Node.h:225
Color4< T > operator*(S a, const Color4< T > &v)
Definition: ImathColor.h:727
A Node children accessor.
Definition: Node.h:151
MAQUINA_EXPORT std::optional< Node > document(const std::string &path, bool comparable=false)
Return the document node associated to that file path.
Children(void *node)
Definition: Node.h:175
Base class of all Rumba nodes.
Definition: Node.h:37
Base class of all Rumba values.
Definition: Value.h:34