18 #include <unordered_map> 19 #include <unordered_set> 36 Workspace(
const std::shared_ptr<Impl>& impl)
64 const char* modification_name,
65 const gsl::span<const float>& interactive_frames = {}
95 const std::vector<Plug>& channels,
101 const std::vector<Plug>& channels,
120 bool layer_value=
false 140 bool skip_disabled=
true 197 std::vector<Plug> channels,
198 bool all_layers=
false 220 bool default_value=
false 246 const std::vector<Node>& nodes,
252 const std::vector<std::string>& paths,
284 const Value& to_match
295 const std::unordered_set<std::string>& channels_to_match,
296 const std::unordered_set<std::string>& selected_channels
308 const Value& to_paste,
309 const std::vector< std::pair<std::string, std::string> >& matched_channels,
319 const Value& to_paste,
320 const std::vector< std::pair<std::string, std::string> >& matched_channels,
335 Node& anim_curve_node,
336 const AnimCurve& curve,
373 const std::vector<Node>& layers
388 std::vector<Node>& layers,
389 const char* layer_type,
390 bool recursive =
false 406 int all_frames_interval = 1,
407 int all_frames_offset = 0,
408 int all_frames_tangents_mode = 1
416 int all_frames_interval=1,
417 int all_frames_offset=0,
418 int all_frames_tangents_mode=1
426 int tangents_mode = 1
432 const Plug& value_plug,
435 int tangents_mode = 1
445 const std::wstring& filepath,
446 const std::string& reference_root_name =
"" 456 const std::wstring& filepath,
457 const std::string& root_name =
"" 463 const std::vector<std::string>& channels,
470 const Dict& from_pose,
479 const std::vector<std::string>& channels
MAQUINA_EXPORT void flush_observers()
Make sure all the observers have been called.
PasteType
Definition: Workspace.h:299
MAQUINA_EXPORT void set_current_frame(float frame)
set the current frame
MAQUINA_EXPORT Node manipulator_controller(Node &manipulator)
Get the controller related to this manipulator.
MAQUINA_EXPORT Node asset_child_manipulator(Node &asset, const Node &child)
Get the manipulator associated to the asset child.
MAQUINA_EXPORT void background_wait()
Wait for the baground evaluation engine.
MAQUINA_EXPORT bool is_left(Node &asset, const std::string &name)
Return true if the name is left using the asset mirroring rules.
MAQUINA_EXPORT Dict blend_poses(const Dict &from_pose, const Dict &to_pose, float weight)
Blend from pose to pose using weight factor.
MAQUINA_EXPORT bool has_animated_plug_in_layer(const Plug &plug, Node &layer)
Check if the plug has an animated plug in the layer.
MAQUINA_EXPORT bool can_be_flatten(Node &layer)
MAQUINA_EXPORT void background_start()
Start the background evaluation engine.
MAQUINA_EXPORT void move_layer(Node &layer, int dest_id)
Re-order layers.
MAQUINA_EXPORT Node active_document()
Return the active Document node.
MAQUINA_EXPORT void modify_begin(const char *modification_name, const gsl::span< const float > &interactive_frames={})
Begin a modification of the current document.
MAQUINA_EXPORT bool is_demo_mode()
Test if Rumba/Guerilla is in demo mode.
Add to the active selection.
MAQUINA_EXPORT Plug animated_plug_in_layer(const Plug &plug, Node &layer)
Return the animated plug in the specific layer.
MAQUINA_EXPORT Value weighted_sum(const Array &values, const std::vector< double > &weights)
Returns the weighted sum of the input values.
MAQUINA_EXPORT Node reference(Node &root, const std::wstring &filepath, const std::string &reference_root_name="")
Reference the content of a file into the project.
MAQUINA_EXPORT Value default_rig_value(Plug &plug)
Return the default value if available.
MAQUINA_EXPORT Node load_node(Node &root, const std::wstring &filepath, const std::string &root_name="")
Load the content of a file into the project.
MAQUINA_EXPORT Plug background_progress()
Use this plug to be notified on background engine progress.
MAQUINA_EXPORT std::vector< Node > asset_controllers(Node &asset)
Get the asset controllers.
FlattenMode
Specify a way to flatten a layer into another.
Definition: Workspace.h:394
MAQUINA_EXPORT bool asset_has_child(Node &asset, const std::string &name)
Return true if the asset contain a child named name.
MAQUINA_EXPORT std::wstring active_document_filename()
Return the active document filename.
Keep both destination and origin layers key to perform the merge.
MAQUINA_EXPORT bool is_right(Node &asset, const std::string &name)
Return true if the name is right using the asset mirroring rules.
MAQUINA_EXPORT void add_modify_action(const std::shared_ptr< maquina::CustomAction > &custom_action)
Add a custom action to the current modifier.
MAQUINA_EXPORT void add_channels_to_layer(const std::vector< Plug > &channels, Node &layer)
Create the animation graph to make this channel animated in the layer.
MAQUINA_EXPORT bool has_animated_channel(Plug &animated_plug)
Check if the animated plug has an animated channel.
MAQUINA_EXPORT bool delete_animation_graph(Node &node_to_delete)
Delete properly the node animation graph.
MAQUINA_EXPORT void bake_layer(Node &layer, int interval=1, int offset=0, int tangents_mode=1)
Bake the layer.
MAQUINA_EXPORT void paste_keys_on_curve(Node &anim_curve_node, const AnimCurve &curve, float frame_in, float frame_out, float to_frame, PasteMode mode=PasteMode::Merge)
Paste the curve keys into an animation curve node.
MAQUINA_EXPORT void remove_keys(Node &anim_layer, bool normalize=true)
Remove the active key selection in a layer.
Insert the clipboard at the destination frame.
PasteMode
Specify a way to paste the clipboard.
Definition: Workspace.h:268
MAQUINA_EXPORT Node create_tool_geometry(const char *name, Node &parent)
Create a geometry node for tools, i-e, not in a document.
MAQUINA_EXPORT void time_warp_keys(Node &anim_layer)
Time warp the active key selection using the selection rubberband.
MAQUINA_EXPORT Node duplicate_layer(Node &layer)
Duplicate the layer and its animation.
MAQUINA_EXPORT bool has_target_layer(const Plug &plug)
Check if the plug has a layer that can receive the plug animation.
MAQUINA_EXPORT void redo()
Make a redo step.
MAQUINA_EXPORT std::vector< Node > in_animated_layers(const Plug &plug, bool skip_disabled=true)
Return the animation layers that are modifying this plug.
MAQUINA_EXPORT void select(const std::vector< Node > &nodes, SelectionMode mode=SelectionMode::Replace)
Update the active selection with a list of nodes according to the selection mode. ...
MAQUINA_EXPORT bool asset_has_manipulator(Node &asset, const std::string &manipulator_name)
Return true if the asset contain the manipulator.
MAQUINA_EXPORT void ungroup_layer(Node &layer_group)
Ungroup layer.
MAQUINA_EXPORT Plug animated_channel(Plug &animated_plug)
Return the animated channel connected to a layer.
MAQUINA_EXPORT void transform_keys(Node &anim_layer)
Transform the active key selection using the selection rubberband.
MAQUINA_EXPORT Node asset_mirror_node(Node &asset, const Node &node)
Return the mirrored node using the asset mirroring rules.
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
MAQUINA_EXPORT Dict matching_pose(const Dict &pose, const std::vector< std::string > &channels)
Match a pose to a set of channels.
MAQUINA_EXPORT bool has_controller(const Plug &plug)
Test if a controller is associated to a plug.
MAQUINA_EXPORT std::unordered_set< std::string > selected_keys_channels(Node &anim_layer)
Return the channels associated with the active key selection in a layer.
MAQUINA_EXPORT std::vector< std::string > selection_paths()
Return the paths of the active node delegate selection.
MAQUINA_EXPORT std::string asset_mirror(Node &asset, const std::string &name)
Return the mirrored name using the asset mirroring rules.
Only keep the destination layers key to perform the merge.
MAQUINA_EXPORT void select_delegate(const std::vector< std::string > &paths, SelectionMode mode=SelectionMode::Replace)
Update the active selection with a list of node paths according to the selection mode.
MAQUINA_EXPORT Node asset_display(const Node &asset)
MAQUINA_EXPORT Value animated_plug_value_in_layer(const Plug &plug, const Node &layer, float frame)
Return the animated plug value in the specific layer.
MAQUINA_EXPORT void delete_channels_animation(std::vector< Plug > channels, bool all_layers=false)
Reset the channels value in their target layer without removing the channel from the layer...
MAQUINA_EXPORT Node controller(const Plug &plug)
Return the controller associated to a plug.
MAQUINA_EXPORT PasteType is_paste_valid(const Value &to_paste, const std::vector< std::pair< std::string, std::string > > &matched_channels, Node &dest_layer)
Test if the targeted channels are open to be modified by the clipboard in a layer.
MAQUINA_EXPORT void load_document(const std::wstring &path)
Open a new Rumba/Guerilla project.
MAQUINA_EXPORT void constrain_node(Node &constraint, Node &node)
Constrain the node to the constraint.
Workspace is the type of the root node of the maquina Node tree.
Definition: Workspace.h:32
MAQUINA_EXPORT void start_profiling()
Start an interactive profiling session.
MAQUINA_EXPORT bool rig_matrix(Plug &plug)
Rig a matrix plug.
MAQUINA_EXPORT void set_animated_plug_value(Plug &plug, const Value &value, float frame, bool create_curve, bool layer_value=false)
Set a value to plug, regarding the target layer and the current plug animation.
MAQUINA_EXPORT void remove_channels_from_layer(const std::vector< Plug > &channels, Node &layer)
Remove the animation graph to remove this animated channel animated from the layer.
#define MAQUINA_EXPORT
Definition: Export.h:31
MAQUINA_EXPORT std::vector< std::shared_ptr< NodeDelegate > > tool_selection()
Return the active tool delegate selection.
A node plug.
Definition: Plug.h:52
MAQUINA_EXPORT void undo_blend(float undo_blend)
Set the undo blend factor of the last modification.
Invert the active selection.
MAQUINA_EXPORT void group_child_layers(Node &layer_group, std::vector< Node > &layers, const char *layer_type, bool recursive=false)
MAQUINA_EXPORT void paste_keys(const Value &to_paste, const std::vector< std::pair< std::string, std::string > > &matched_channels, Node &dest_layer, float frame_in, float frame_out, float to_frame, PasteMode mode=PasteMode::Merge, PasteType type=PasteType::Hard)
Paste values onto matching channels in a targeted layer.
SelectionMode
Specify a way to alter the active selection.
Definition: Workspace.h:236
MAQUINA_EXPORT void undo()
Make a undo step.
Replace the active selection.
MAQUINA_EXPORT Value copy_keys(Node &anim_layer)
Return a copy of the active key selection in a layer.
MAQUINA_EXPORT float current_frame()
Shortcut for the active document current frame.
MAQUINA_EXPORT std::vector< std::pair< std::string, float > > end_profiling()
Stop the interactive profiling session.
Remove from the active selection.
MAQUINA_EXPORT bool asset_child_has_manipulator(Node &asset, const Node &child)
Return true if the asset child has a manipulator.
MAQUINA_EXPORT Plug animated_plug(const Plug &plug)
Return the animated plug, regarding the current layer.
MAQUINA_EXPORT Dict extract_pose(const std::vector< std::string > &channels, float frame)
Extract a pose from a selection of plugs.
MAQUINA_EXPORT std::vector< Node > selection()
Return the active selection.
MAQUINA_EXPORT Node target_layer(const Plug &plug)
Return the layer receiving the plug animation.
MAQUINA_EXPORT std::vector< std::pair< std::string, std::string > > match_channels(const Value &to_match)
Return the best match between the channels to be pasted and the active selection. ...
MAQUINA_EXPORT Node flatten_group(Node &layer_group, FlattenMode mode=FlattenMode::Union_Keys, int all_frames_interval=1, int all_frames_offset=0, int all_frames_tangents_mode=1)
Flatten a group layer.
MAQUINA_EXPORT Node asset_child(Node &asset, const std::string &name)
Get the first child node named name of this asset.
MAQUINA_EXPORT void reparent_layers(Node &parent, const std::vector< Node > &layers)
Move layers.
MAQUINA_EXPORT void modify_curve_begin(const char *modification_name)
Begin a modification of the current document.
MAQUINA_EXPORT Node asset_manipulator(Node &asset, const std::string &manipulator_name)
Get the manipulator with the name manipulator name from this asset.
MAQUINA_EXPORT std::vector< std::shared_ptr< NodeDelegate > > delegate_selection()
Return the active node delegate selection.
Create a key at all frame to bake the whole animation of two layers into a single layer...
MAQUINA_EXPORT bool has_active_document()
Return true if there is an active Document node.
MAQUINA_EXPORT std::vector< std::pair< std::string, std::string > > match_to_channels(const std::unordered_set< std::string > &channels_to_match, const std::unordered_set< std::string > &selected_channels)
Return the best match between the channels to be pasted and the active selection. ...
MAQUINA_EXPORT bool modify_end()
End a modification of the current document.
MAQUINA_EXPORT void transform_curve_keys(const Plug &plug, std::unordered_map< float, float > &original_to_transformed_keys)
MAQUINA_EXPORT Workspace workspace()
Return the workspace node.
MAQUINA_EXPORT Plug animation_node_channel_plug(Node &node)
Get the channel plug (input of the rig) from an animation node (like an AnimCurveFloat node) ...
MAQUINA_EXPORT void bake_curve(Node &curve, const Plug &value_plug, int interval=1, int offset=0, int tangents_mode=1)
Bake curve.
MAQUINA_EXPORT void flatten_layer(Node &layer, Node &dest_layer, FlattenMode mode=FlattenMode::Union_Keys, int all_frames_interval=1, int all_frames_offset=0, int all_frames_tangents_mode=1)
Flatten a layer into the previous one.
Clear destination before paste.
MAQUINA_EXPORT bool has_animated_plug(const Plug &plug)
Check if the plug has an animated plug.
Merge the clipboard with the destination.
MAQUINA_EXPORT void init_crash_handler(const std::string &message, bool send_report)
Init the crash handler with the message to attach to the crash reports.
MAQUINA_EXPORT bool can_undo_blend()
Check if it's possible to undo blend.
MAQUINA_EXPORT int insert_key(const Plug &plug, float t, float v)
MAQUINA_EXPORT void key_layer(Node &layer, float frame, bool default_value=false)
Add a key frame on a layer.
MAQUINA_EXPORT void remove_key(Plug &plug, const float frame)
Remove the key at frame in the active layer.
MAQUINA_EXPORT void new_document()
Close the current document and create a new one.
Base class of all Rumba nodes.
Definition: Node.h:36