26 #include <rapidjson/document.h> 61 typedef std::shared_ptr<std::vector<VirtualAttribute>>
Attributes;
66 bool needsRebuild()
const;
69 std::shared_ptr<class AttributeDescriptor> description()
const;
80 void _sortAttributes()
const;
81 void _setDescription(std::shared_ptr<class AttributeDescriptor> d)
const;
85 mutable std::shared_ptr<class AttributeDescriptor> _description;
94 std::shared_ptr<class AttributeDescriptor> description()
const override;
95 virtual int attribute_count()
const override;
96 virtual std::shared_ptr<maquina::NodeDelegate::AttributeDelegate> attribute(
const maquina::StringView& name)
override;
97 std::shared_ptr<maquina::NodeDelegate::AttributeDelegate> concreteAttribute(
const maquina::StringView& name);
98 virtual std::shared_ptr<AttributeIteratorDelegate> _attributes_begin()
override;
99 virtual std::shared_ptr<AttributeIteratorDelegate> _attributes_end()
override;
110 virtual std::shared_ptr<maquina::NodeDelegate> owner()
override;
111 virtual std::string name()
const override;
112 virtual bool is_mutable()
const override;
113 virtual bool is_visible()
const override;
114 virtual bool is_animable()
const override;
115 virtual bool accepts_overrides()
const override;
116 virtual bool is_overridden()
const override;
117 virtual void add_override()
override;
118 virtual void remove_override()
override;
121 virtual bool is_plug()
const override;
123 virtual std::shared_ptr<AttributeDescriptor> description()
const override;
124 virtual bool has_node_delegate()
const override;
125 virtual std::shared_ptr<maquina::NodeDelegate> node_delegate()
override;
128 std::shared_ptr<maquina::NodeDelegate::Observer> create_observer(
const std::function<
void()>&
function,
bool in_interactive =
true)
override;
131 std::shared_ptr<VirtualAttributeNodeDelegate> _owner;
158 void addPlug(
const std::string& plug_name,
const std::string& display_name);
160 void setRefreshPlug(
const std::string& plug_name);
161 std::string closeDescription();
164 void _collectGroups(rapidjson::Value& parent,
const std::string&
parent_path,
const std::string& parent_pointer);
165 rapidjson::Value& _createGroup(
const std::string& name, rapidjson::Value& parent,
const std::string&
parent_path,
const std::string& parent_pointer);
166 rapidjson::Value& _getGroup(
const std::string& name);
167 void _addPlug(
const std::string& name, rapidjson::Value& parent);
171 std::map<std::string, std::string> group_path_to_pointer;
std::shared_ptr< std::vector< VirtualAttribute > > Attributes
Definition: NodeDelegateVirtualPlug.h:61
std::shared_ptr< const VirtualAttributesStore > _attribute_store
Definition: NodeDelegateVirtualPlug.h:102
std::function< void(const maquina::Plug &)> plug_removed
Definition: NodeDelegateVirtualPlug.h:51
std::shared_ptr< const std::vector< VirtualAttribute > > AttributesConst
Definition: NodeDelegateVirtualPlug.h:62
Definition: NodeDelegateVirtualPlug.h:58
std::function< void(const maquina::Plug &)> plug_callback
Definition: NodeDelegateVirtualPlug.h:34
std::function< void(const maquina::Plug &)> plug_added
Definition: NodeDelegateVirtualPlug.h:51
VirtualAttribute(const std::string &name_, const maquina::Value &default_value_, const maquina::Value &plug_creation_value_, const std::string &description_, const plug_callback &plug_added_=plug_callback(), const plug_callback &plug_removed_=plug_callback())
Definition: NodeDelegateVirtualPlug.h:36
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
Definition: ModificationContext.h:21
A node delegate for nodes with virtual attributes.
Definition: NodeDelegateVirtualPlug.h:89
An attribute delegate for a virtual attribute.
Definition: NodeDelegateVirtualPlug.h:106
MAQUINA_EXPORT Value default_value(const maquina::StringView &type_name)
Return the default value of a type.
static const ModificationContext undoable
A static instance of ModificationContext to set undoable values but do not require to be done in a la...
Definition: ModificationContext.h:52
Definition: NodeDelegateRumba.h:32
maquina::Value default_value
Definition: NodeDelegateVirtualPlug.h:50
maquina::Value plug_creation_value
Definition: NodeDelegateVirtualPlug.h:50
An array of values.
Definition: Array.h:26
MAQUINA_EXPORT std::wstring parent_path(const wchar_t *file)
Return a file parent path.
std::shared_ptr< maquina::AttributeDescriptor > description
Definition: NodeDelegateVirtualPlug.h:49
#define MAQUINA_EXPORT
Definition: Export.h:31
A node attribute delegate.
Definition: NodeDelegate.h:216
A node plug.
Definition: Plug.h:59
std::string name
Definition: NodeDelegateVirtualPlug.h:48
Virtual Attributes are shown in a node's UI, but may not be backed by an actual plug. The plug is created when the value is set (plug is considered overwritten).
Definition: NodeDelegateVirtualPlug.h:32
Definition: NodeDelegateVirtualPlug.h:154
std::string value_type
Definition: NodeDelegateVirtualPlug.h:48
static const QueryContext at_current_frame
Query at the current frame.
Definition: QueryContext.h:36
MAQUINA_EXPORT std::optional< Node > document(const std::string &path, bool comparable=false)
Return the document node associated to that file path.
Definition: QueryContext.h:22
static MAQUINA_EXPORT std::shared_ptr< AttributeDescriptor > get_descriptor(const std::string &desc)
Base class of all Rumba nodes.
Definition: Node.h:37
Base class of all Rumba values.
Definition: Value.h:34