Rumba C++ SDK
maquina Namespace Reference

This version of the SDK is unstable, i-e, it may change with no warning. More...

Classes

class  AddCurveAction
 
class  AnimCurve
 An animation curve. More...
 
class  AnimCurveFloat
 
class  AnimLayer
 
class  Array
 An array of values. More...
 
class  BaseLayer
 
class  BrushPlugin
 
class  BrushSculptPlugin
 Base class for the sculpt brush plug-ins. More...
 
class  Buffer
 A writable buffer for basic types like floats, integers, Imath::V3f, Imath::M44f.. More...
 
class  BufferAllocator
 Allocator to use with std::vector. Allocates memory first in the user provided buffer and then using the standard allocator. More...
 
class  BufferConst
 A readonly buffer for basic types like floats, integers, Imath::V3f, Imath::M44f.. More...
 
class  BVH3
 A bounding volume hierarchy to quickly select 3d shapes. More...
 
class  BVHTriangle
 A bounding volume hierarchy to quickly intersect 3d triangles. More...
 
class  CameraContext
 This class provides viewport space conversion services. More...
 
class  ChannelBool
 A boolean value with a default value. More...
 
class  ChannelFloat
 A float value with a default value. More...
 
class  ChannelInt
 An integer value with a default value. More...
 
class  Curves
 A mesh value. More...
 
class  CustomAction
 
class  DeformLayer
 
class  Dict
 A dictionnary to associate strings to values. More...
 
class  EvalContext
 This class holds the evaluation context passed to the evaluation handler during a plug evaluation. More...
 
class  EvaluationEngine
 An evaluation engine to compute plug values. More...
 
class  ExportHelper
 Helper class to export animations. More...
 
class  Expr
 
class  ExprCall
 
class  GraphProperties
 The graph properties of a node, its graph position, its radius, its graph flags. More...
 
class  Image
 An Image. More...
 
class  IndexedBuffer
 A writable IndexedBuffer. More...
 
class  IndexedBufferConst
 A read only buffer of indexed values. It is composed of a buffer of indexes of the size of the component. Those indexes point in the value buffer. More...
 
class  InteractionContext
 This interface is passed to the events and is implemented by the application. */. More...
 
class  KeySet
 A set of keyframes. More...
 
class  Lattice
 A lattice cage. More...
 
class  ManipulatorPlugin
 Derive this class to create your own Manipulator type. More...
 
class  Mesh
 A mesh value. More...
 
class  MeshBuilder
 
class  MeshEdit
 MeshEdit provide tools to modify a mesh topology. More...
 
class  ModificationContext
 
class  Node
 Base class of all Rumba nodes. More...
 
class  NodeDelegate
 This interface gives a high level access to the document structure. More...
 
class  NodeDelegateManipulator
 
class  NodeDelegateRumba
 
class  NodeLoaderPlugin
 A node loader plug-in interface. More...
 
class  NodePlugin
 Derive this class to create your own Node type. More...
 
class  NodeSet
 
class  NurbsCurve
 A nurbs curve value. More...
 
class  NurbsSurface
 A nurbs surface value. More...
 
class  PartialInvalidation
 A plug's partial invalidation descriptor. More...
 
struct  PickingResult
 
class  Plug
 A node plug. More...
 
class  PlugDescriptor
 A plug descriptor to pass to the Registry::register_node() function. More...
 
class  PlugList
 A value containing a list of plugs. More...
 
class  PlugListener
 
class  PlugModificationTracker
 
class  Points
 A set of 3d points. More...
 
class  QueryContext
 
class  Registry
 Registry class used to declare and register a plug-in node. More...
 
class  RemoveCurveAction
 
class  RenderablePlugin
 
struct  RenderParameters
 
struct  RenderTargets
 
class  Scene
 A mutable scene node value. More...
 
class  SceneConst
 An immutable scene node value. More...
 
class  Shader
 Gather shading parameters. More...
 
class  Shape
 A value with geometrical attributes. Base of all shape values. More...
 
class  SpanSpan
 A view on a "vector of sub-vectors of values" container. More...
 
class  SparseBuffer
 A writable SparseBuffer. More...
 
class  SparseBufferConst
 A read only buffer of sparse values. It is composed of a buffer of values and a buffer of the index in the whole buffer. More...
 
struct  string_view_less
 
class  StringSet
 A string set. More...
 
class  StringViewBase
 
struct  StringViewHasherBase
 
class  ToolPlugin
 A Tool node plug-in. More...
 
class  UserData
 
class  Value
 Base class of all Rumba values. More...
 
class  ViewportContext
 
class  WeightedComponent
 This class is a helper to iterate over a geometry component, with an weight per component element. More...
 
class  Workspace
 Workspace is the type of the root node of the maquina Node tree. More...
 

Typedefs

typedef BufferConst< int32_t > BufferConstInt32
 
typedef BufferConst< uint8_t > BufferConstUInt8
 
typedef BufferConst< uint32_t > BufferConstUInt32
 
typedef BufferConst< float > BufferConstFloat
 
typedef BufferConst< double > BufferConstDouble
 
typedef BufferConst< Imath::V2fBufferConstV2f
 
typedef BufferConst< Imath::V3fBufferConstV3f
 
typedef BufferConst< Imath::V4fBufferConstV4f
 
typedef BufferConst< Imath::V2iBufferConstV2i
 
typedef BufferConst< Imath::V3iBufferConstV3i
 
typedef BufferConst< Imath::V4iBufferConstV4i
 
typedef BufferConst< Imath::M33fBufferConstM33f
 
typedef BufferConst< Imath::M44fBufferConstM44f
 
typedef BufferConst< Imath::Box3fBufferConstBox3f
 
typedef Buffer< int32_t > BufferInt32
 
typedef Buffer< uint8_t > BufferUInt8
 
typedef Buffer< uint32_t > BufferUInt32
 
typedef Buffer< float > BufferFloat
 
typedef Buffer< double > BufferDouble
 
typedef Buffer< Imath::V2fBufferV2f
 
typedef Buffer< Imath::V3fBufferV3f
 
typedef Buffer< Imath::V4fBufferV4f
 
typedef Buffer< Imath::V2iBufferV2i
 
typedef Buffer< Imath::V3iBufferV3i
 
typedef Buffer< Imath::V4iBufferV4i
 
typedef Buffer< Imath::M33fBufferM33f
 
typedef Buffer< Imath::M44fBufferM44f
 
typedef Buffer< Imath::Box3fBufferBox3f
 
using PartialInvalidationPtr = Ptr< const PartialInvalidation >
 
typedef IndexedBufferConst< int32_t > IndexedBufferConstInt32
 
typedef IndexedBufferConst< uint8_t > IndexedBufferConstUInt8
 
typedef IndexedBufferConst< uint32_t > IndexedBufferConstUInt32
 
typedef IndexedBufferConst< float > IndexedBufferConstFloat
 
typedef IndexedBufferConst< double > IndexedBufferConstDouble
 
typedef IndexedBufferConst< Imath::V2fIndexedBufferConstV2f
 
typedef IndexedBufferConst< Imath::V3fIndexedBufferConstV3f
 
typedef IndexedBufferConst< Imath::V4fIndexedBufferConstV4f
 
typedef IndexedBufferConst< Imath::V2iIndexedBufferConstV2i
 
typedef IndexedBufferConst< Imath::V3iIndexedBufferConstV3i
 
typedef IndexedBufferConst< Imath::V4iIndexedBufferConstV4i
 
typedef IndexedBufferConst< Imath::M44fIndexedBufferConstM44f
 
typedef IndexedBufferConst< Imath::Box3fIndexedBufferConstBox3f
 
typedef IndexedBuffer< int32_t > IndexedBufferInt32
 
typedef IndexedBuffer< uint8_t > IndexedBufferUInt8
 
typedef IndexedBuffer< uint32_t > IndexedBufferUInt32
 
typedef IndexedBuffer< float > IndexedBufferFloat
 
typedef IndexedBuffer< double > IndexedBufferDouble
 
typedef IndexedBuffer< Imath::V2fIndexedBufferV2f
 
typedef IndexedBuffer< Imath::V3fIndexedBufferV3f
 
typedef IndexedBuffer< Imath::V4fIndexedBufferV4f
 
typedef IndexedBuffer< Imath::V2iIndexedBufferV2i
 
typedef IndexedBuffer< Imath::V3iIndexedBufferV3i
 
typedef IndexedBuffer< Imath::V4iIndexedBufferV4i
 
typedef IndexedBuffer< Imath::M44fIndexedBufferM44f
 
typedef IndexedBuffer< Imath::Box3fIndexedBufferBox3f
 
using verbosity_level = spdlog::level::level_enum
 
template<class T >
using Ptr = std::shared_ptr< T >
 
typedef SparseBufferConst< int32_t > SparseBufferConstInt32
 
typedef SparseBufferConst< uint8_t > SparseBufferConstUInt8
 
typedef SparseBufferConst< uint32_t > SparseBufferConstUInt32
 
typedef SparseBufferConst< float > SparseBufferConstFloat
 
typedef SparseBufferConst< double > SparseBufferConstDouble
 
typedef SparseBufferConst< Imath::V2fSparseBufferConstV2f
 
typedef SparseBufferConst< Imath::V3fSparseBufferConstV3f
 
typedef SparseBufferConst< Imath::V4fSparseBufferConstV4f
 
typedef SparseBufferConst< Imath::V2iSparseBufferConstV2i
 
typedef SparseBufferConst< Imath::V3iSparseBufferConstV3i
 
typedef SparseBufferConst< Imath::V4iSparseBufferConstV4i
 
typedef SparseBufferConst< Imath::M44fSparseBufferConstM44f
 
typedef SparseBufferConst< Imath::Box3fSparseBufferConstBox3f
 
typedef SparseBuffer< int32_t > SparseBufferInt32
 
typedef SparseBuffer< uint8_t > SparseBufferUInt8
 
typedef SparseBuffer< uint32_t > SparseBufferUInt32
 
typedef SparseBuffer< float > SparseBufferFloat
 
typedef SparseBuffer< double > SparseBufferDouble
 
typedef SparseBuffer< Imath::V2fSparseBufferV2f
 
typedef SparseBuffer< Imath::V3fSparseBufferV3f
 
typedef SparseBuffer< Imath::V4fSparseBufferV4f
 
typedef SparseBuffer< Imath::V2iSparseBufferV2i
 
typedef SparseBuffer< Imath::V3iSparseBufferV3i
 
typedef SparseBuffer< Imath::V4iSparseBufferV4i
 
typedef SparseBuffer< Imath::M44fSparseBufferM44f
 
typedef SparseBuffer< Imath::Box3fSparseBufferBox3f
 
typedef StringViewBase< char, std::string > StringView
 
typedef StringViewHasherBase< char, std::string > StringViewHasher
 
typedef StringViewBase< wchar_t, std::wstring > WStringView
 
typedef StringViewHasherBase< wchar_t, std::wstring > WStringViewHasher
 

Enumerations

enum  CycleMode { CycleMode::cycle_mode_constant = 0, CycleMode::cycle_mode_repeat, CycleMode::cycle_mode_repeat_continuous, CycleMode::cycle_mode_linear }
 
enum  SelectionMode { SelectionMode::Replace, SelectionMode::Add, SelectionMode::Remove, SelectionMode::Invert }
 Specify a way to alter the active selection. More...
 
enum  PasteMode { PasteMode::Clear, PasteMode::Merge, PasteMode::Replace, PasteMode::Insert }
 Specify a way to paste the clipboard. More...
 
enum  PasteType { PasteType::Null, PasteType::Soft, PasteType::Hard }
 
enum  FlattenMode { FlattenMode::In_Dest_Key, FlattenMode::Union_Keys, FlattenMode::All_Frames }
 Specify a way to flatten a layer into another. More...
 

Functions

template<typename T >
Buffer< T > duplicate (const BufferConst< T > &a)
 
MAQUINA_EXPORT std::vector< maquina::Valuescene_geometries (const std::vector< maquina::Value > &scene_values)
 
MAQUINA_EXPORT std::vector< maquina::Valuescene_child (const std::vector< maquina::Value > &scene_values, const std::string &child_name)
 
MAQUINA_EXPORT std::vector< maquina::Valuescene_matrices (const std::vector< maquina::Value > &scene_values)
 
MAQUINA_EXPORT std::vector< maquina::Valuescene_visibility (const std::vector< maquina::Value > &scene_values)
 
int hash_24 (const uint8_t *key, size_t length)
 
int hash_24 (const std::string &str)
 
MAQUINA_EXPORT std::vector< float > heat_geodesic (const maquina::Mesh &mesh, const Imath::M44f &local_to_ellipsoid, const Imath::V3f &source, const float max_dist=1.f, const bool crop_mesh=true, const float dt_multiplier=1.f, const float bound_blend=0.5f)
 Approximate geodesic distance through the heat method (cf https://www.cs.cmu.edu/~kmcrane/Projects/HeatMethod/index.html). More...
 
MAQUINA_EXPORT void initialize ()
 When the Rumba Engine is embedded in an application, this function should be called before any Rumba API calls. More...
 
MAQUINA_EXPORT void release ()
 When the Rumba Engine is embedded in an application, this function should be called before to leave the application. More...
 
MAQUINA_EXPORT void load_plugins (const std::vector< std::wstring > &plugin_directories)
 Load all the Rumba plug-ins from directories. More...
 
MAQUINA_EXPORT bool has_python ()
 Return true if Python is available. More...
 
MAQUINA_EXPORT void export_plug_values (const std::vector< Plug > &plugs, const std::wstring &filepath)
 Save the plugs values in a file. More...
 
MAQUINA_EXPORT void export_plug_animation (const std::vector< Plug > &plugs, const std::wstring &filepath, bool single_layer=false, const std::function< bool(float, const char *)> &progress=nullptr)
 Save the layer setup and plugs animation in a file. More...
 
MAQUINA_EXPORT void export_settings (const std::wstring &filepath)
 Save workspace settings to a file. More...
 
MAQUINA_EXPORT Dict load_pose (const std::wstring &filename)
 Import the plugs values from a file. More...
 
MAQUINA_EXPORT void apply_pose (const Dict &pose, float frame)
 Apply a pose. More...
 
MAQUINA_EXPORT Dict load_animation_pose (const std::wstring &filename)
 Import the animation pose from a file, in this case the value of the pose is not relevant. More...
 
MAQUINA_EXPORT void import_plug_values (const std::vector< Plug > &plugs, const std::wstring &filename)
 Import the plugs values from a file and apply them. More...
 
MAQUINA_EXPORT bool import_plug_animation (const std::vector< Plug > &plugs, const std::wstring &filename)
 Import an animation from a file. More...
 
MAQUINA_EXPORT void import_settings (const std::wstring &filepath)
 Import workspace settings from a file. More...
 
MAQUINA_EXPORT std::string serialize_nodes (const std::vector< Node > &nodes, bool serialize_external_input_connections=false)
 Serialize the nodes in a string. More...
 
MAQUINA_EXPORT std::vector< Nodedeserialize_nodes (std::string buffer, Node *parent=nullptr, const std::string &valid_types="")
 Deserialize the nodes from a string. More...
 
MAQUINA_EXPORT Value read_value (const std::wstring &file, const Dict &options)
 Load an object value from a file. More...
 
MAQUINA_EXPORT std::string serialize_pose (const Dict &pose)
 Serialize the pose in a string. More...
 
MAQUINA_EXPORT Dict deserialize_pose (std::string buffer)
 Deserialize the pose from a string. More...
 
template<typename... Args>
void debug (const char *format, const Args &... args)
 Log a debug message using the Rumba logger. More...
 
template<typename... Args>
void info (const char *format, const Args &... args)
 Log an informative message using the Rumba logger. More...
 
template<typename... Args>
void warn (const char *format, const Args &... args)
 Log a warning message using the Rumba logger. More...
 
template<typename... Args>
void error (const char *format, const Args &... args)
 Log an error message using the Rumba logger. More...
 
template<typename... Args>
void critical (const char *filename, int line, const char *function, const char *format, const Args &... args)
 Log a critical error message using the Rumba logger. More...
 
MAQUINA_EXPORT Node plug_node (const Plug &plug)
 Get a plug node. More...
 
template<class To , class From >
Ptr< To > static_assert_cast (const Ptr< From > &p)
 
MAQUINA_EXPORT Scene duplicate (const SceneConst &other)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer< Imath::V2fShape::write_attribute< Buffer< Imath::V2f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer< Imath::V3fShape::write_attribute< Buffer< Imath::V3f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer< Imath::V4fShape::write_attribute< Buffer< Imath::V4f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT IndexedBuffer< Imath::V2fShape::write_attribute< IndexedBuffer< Imath::V2f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT IndexedBuffer< Imath::V3fShape::write_attribute< IndexedBuffer< Imath::V3f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT IndexedBuffer< Imath::V4fShape::write_attribute< IndexedBuffer< Imath::V4f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT SparseBuffer< Imath::V2fShape::write_attribute< SparseBuffer< Imath::V2f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT SparseBuffer< Imath::V3fShape::write_attribute< SparseBuffer< Imath::V3f > > (const char *attribute_name, Topology topology)
 
MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT SparseBuffer< Imath::V4fShape::write_attribute< SparseBuffer< Imath::V4f > > (const char *attribute_name, Topology topology)
 
template<typename T >
SparseBuffer< T > duplicate (const SparseBufferConst< T > &a)
 
template<class C , class STDS >
bool operator== (const C *str, const StringViewBase< C, STDS > &sv) noexcept
 
template<class C , class STDS >
bool operator== (const StringViewBase< C, STDS > &sv, const C *str) noexcept
 
template<class C , class STDS >
bool operator== (const StringViewBase< C, STDS > &sv, const STDS &s) noexcept
 
template<class C , class STDS >
bool operator== (const STDS &s, const StringViewBase< C, STDS > &sv) noexcept
 
template<class C , class STDS >
bool operator!= (const C *str, const StringViewBase< C, STDS > &sv) noexcept
 
template<class C , class STDS >
bool operator!= (const StringViewBase< C, STDS > &sv, const C *str) noexcept
 
template<class C , class STDS >
bool operator!= (const StringViewBase< C, STDS > &sv, const STDS &s) noexcept
 
template<class C , class STDS >
bool operator!= (const STDS &s, const StringViewBase< C, STDS > &sv) noexcept
 
template<class C , class STDS >
bool operator< (const StringViewBase< C, STDS > &a, const StringViewBase< C, STDS > &b) noexcept
 
template<class _CharT , class _Traits , class C , class STDS >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &os, const StringViewBase< C, STDS > &sv)
 
template<class V , class M >
mul_pos (const V &src, const M &m)
 A faster alternative to multiply a position by a 4x4 matrix, ignoring the homogeneous normalization. More...
 
template<class V , class M >
mul_dir (const V &src, const M &m)
 A faster alternative to multiply a direction by a 4x4 matrix, ignoring the homogeneous normalization. More...
 
template<class T >
bool is_identity (const Imath::Matrix44< T > &m)
 Returns true if the matrix is the identity. More...
 
MAQUINA_EXPORT Imath::V3f closest_point_on_triangle (const Imath::V3f *triangle, const Imath::V3f &p, float *s_out=nullptr, float *t_out=nullptr)
 
MAQUINA_EXPORT int intersect_ray_sphere (const Imath::V3d &o, const Imath::V3d &d, const Imath::V3d &c, float r, float &t0, float &t1)
 Compute the intersections between an infinit ray and a sphere. More...
 
MAQUINA_EXPORT Imath::V3f closest_point_segment_to_segment (const Imath::V3f *s1, const Imath::V3f *s2)
 
MAQUINA_EXPORT Imath::V3d closest_point_segment_to_segment (const Imath::V3d *s1, const Imath::V3d *s2)
 
MAQUINA_EXPORT Imath::V3d closest_point_to_line (const Imath::V3d &o, const Imath::V3d &d, const Imath::V3d &p)
 Compute the closest point to p on a line. More...
 
MAQUINA_EXPORT void closest_point_between_lines (const Imath::V3f &o0, const Imath::V3f &d0, const Imath::V3f &o1, const Imath::V3f &d1, float &t0, float &t1)
 Compute the closest point between two lines. More...
 
MAQUINA_EXPORT void get_orthogonal_vectors (const Imath::V3d &fx, Imath::V3d &fy, Imath::V3d &fz)
 
MAQUINA_EXPORT Imath::M44f blend_to_identity (const Imath::M44f &a, float w)
 Blend a matrix to identity. More...
 
MAQUINA_EXPORT Imath::M44d blend_to_identity (const Imath::M44d &a, double w)
 
MAQUINA_EXPORT Imath::M44d lerp (const Imath::M44d &a, const Imath::M44d &b, double w)
 Interplate two matrices. More...
 
MAQUINA_EXPORT void ik_3_joints (const Imath::V3d &p0, const Imath::V3d &p1, const Imath::V3d &p2, const Imath::V3d &goal, const Imath::V3d &normal, Imath::Quatd &r0, double &a1, Imath::V3d &axis1, bool negate_normal=false)
 
MAQUINA_EXPORT int solve_cubic (float a, float b, float c, float d, float *roots)
 Solve a cubic equation. More...
 
MAQUINA_EXPORT int solve_cubic (double a, double b, double c, double d, double *roots)
 Solve a cubic equation. More...
 
MAQUINA_EXPORT std::vector< uint8_t > deflate (const uint8_t *data, size_t size)
 Compress a bunch of binary data with zlib. More...
 
MAQUINA_EXPORT std::vector< uint8_t > inflate (const uint8_t *data, size_t size)
 Uncompress a bunch of binary data with zlib. More...
 
MAQUINA_EXPORT std::string base64_encode (const uint8_t *data, size_t size)
 Encode a bunch of binary data in a base64 text. More...
 
MAQUINA_EXPORT std::vector< uint8_t > base64_decode (const char *text, size_t size)
 Decode a bunch of binary data from a base64 text. More...
 
MAQUINA_EXPORT std::wstring system_path (const wchar_t *path)
 Expand a document file path in a file system path. More...
 
MAQUINA_EXPORT std::string system_path_local (const wchar_t *path)
 Expand a document file path in a file system path. More...
 
MAQUINA_EXPORT const std::vector< std::pair< std::string, std::wstring > > & path_variables ()
 Return the currently registered path variables. More...
 
MAQUINA_EXPORT void set_path_variables (const std::vector< std::pair< std::string, std::wstring >> &path_vars)
 Register the path variables. More...
 
MAQUINA_EXPORT std::wstring project_path (const wchar_t *system_path)
 Reduce a file system path to a project file path. More...
 
MAQUINA_EXPORT std::wstring utf8_to_wstring (const char *uft8)
 Convert an utf-8 string into a std::wstring. More...
 
MAQUINA_EXPORT std::string wstring_to_utf8 (const wchar_t *str)
 Convert a std::wstring into an utf-8 string. More...
 
MAQUINA_EXPORT std::wstring local_to_wstring (const char *str)
 Convert a string in the default system charset into a std::wstring. More...
 
MAQUINA_EXPORT std::string wstring_to_local (const wchar_t *str)
 Convert a std::wstring into a string in the default system charset. More...
 
MAQUINA_EXPORT std::string to_log (const std::wstring &s)
 Convert a wide string in string to use in the logger functions. More...
 
MAQUINA_EXPORT std::wstring getenv_w (const char *name)
 Return the content of an environment variable. More...
 
MAQUINA_EXPORT bool list_directory_files (const wchar_t *directory, std::vector< std::wstring > &files)
 
MAQUINA_EXPORT bool file_exists (const wchar_t *file)
 Return true if a file exist. More...
 
MAQUINA_EXPORT std::string file_extension (const wchar_t *file)
 Return a file extension. More...
 
MAQUINA_EXPORT std::wstring file_name (const wchar_t *file)
 Return a file name. More...
 
MAQUINA_EXPORT std::wstring parent_path (const wchar_t *file)
 Return a file parent path. More...
 
MAQUINA_EXPORT std::wstring project_directory ()
 Return the project directory. More...
 
MAQUINA_EXPORT void set_project_directory (const wchar_t *path)
 Set the project directory. More...
 
MAQUINA_EXPORT void drm_init (const std::wstring &path, const std::string &license_server)
 Initialize the drm. More...
 
MAQUINA_EXPORT void drm_release ()
 Release the drm. More...
 
MAQUINA_EXPORT std::pair< bool, std::string > drm_status ()
 Return the drm status. More...
 
MAQUINA_EXPORT std::string drm_hostid ()
 Return the system host id. More...
 
MAQUINA_EXPORT bool has_tag (const std::string &tags, const char *tag)
 Check a tag exist in a comma separate tag list. More...
 
MAQUINA_EXPORT void parallel_for (uint32_t first, uint32_t last, uint32_t batch_size, const std::function< void(uint32_t first, uint32_t last)> &function)
 Perform a for loop using threads. More...
 
MAQUINA_EXPORT Imath::Box3f compute_aabb (const gsl::span< const Imath::V3f > &points)
 Compute points bounding box. More...
 
MAQUINA_EXPORT Value setting (const char *path)
 Get a setting value. More...
 
MAQUINA_EXPORT void set_setting (const char *path, const Value &value)
 Set a setting value. More...
 
MAQUINA_EXPORT Workspace workspace ()
 Return the workspace node. More...
 
MAQUINA_EXPORT Node active_document ()
 Return the active Document node. More...
 
MAQUINA_EXPORT bool has_active_document ()
 Return true if there is an active Document node. More...
 
MAQUINA_EXPORT Plug background_progress ()
 Use this plug to be notified on background engine progress. More...
 
MAQUINA_EXPORT std::wstring active_document_filename ()
 Return the active document filename. More...
 
MAQUINA_EXPORT void undo ()
 Make a undo step. More...
 
MAQUINA_EXPORT void redo ()
 Make a redo step. More...
 
MAQUINA_EXPORT void modify_begin (const char *modification_name, const gsl::span< const float > &interactive_frames={})
 Begin a modification of the current document. More...
 
MAQUINA_EXPORT void modify_curve_begin (const char *modification_name)
 Begin a modification of the current document. More...
 
MAQUINA_EXPORT bool modify_end ()
 End a modification of the current document. More...
 
MAQUINA_EXPORT void add_modify_action (const std::shared_ptr< maquina::CustomAction > &custom_action)
 Add a custom action to the current modifier. More...
 
MAQUINA_EXPORT bool delete_animation_graph (Node &node_to_delete)
 Delete properly the node animation graph. More...
 
MAQUINA_EXPORT float current_frame ()
 Shortcut for the active document current frame. More...
 
MAQUINA_EXPORT void set_current_frame (float frame)
 set the current frame More...
 
MAQUINA_EXPORT bool can_undo_blend ()
 Check if it's possible to undo blend. More...
 
MAQUINA_EXPORT void undo_blend (float undo_blend)
 Set the undo blend factor of the last modification. More...
 
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. More...
 
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. More...
 
MAQUINA_EXPORT Node duplicate_layer (Node &layer)
 Duplicate the layer and its animation. More...
 
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. More...
 
MAQUINA_EXPORT bool has_animated_plug (const Plug &plug)
 Check if the plug has an animated plug. More...
 
MAQUINA_EXPORT bool has_animated_plug_in_layer (const Plug &plug, Node &layer)
 Check if the plug has an animated plug in the layer. More...
 
MAQUINA_EXPORT std::vector< Nodein_animated_layers (const Plug &plug, bool skip_disabled=true)
 Return the animation layers that are modifying this plug. More...
 
MAQUINA_EXPORT bool has_target_layer (const Plug &plug)
 Check if the plug has a layer that can receive the plug animation. More...
 
MAQUINA_EXPORT Node target_layer (const Plug &plug)
 Return the layer receiving the plug animation. More...
 
MAQUINA_EXPORT Plug animated_plug (const Plug &plug)
 Return the animated plug, regarding the current layer. More...
 
MAQUINA_EXPORT Plug animated_plug_in_layer (const Plug &plug, Node &layer)
 Return the animated plug in the specific layer. More...
 
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. More...
 
MAQUINA_EXPORT bool has_animated_channel (Plug &animated_plug)
 Check if the animated plug has an animated channel. More...
 
MAQUINA_EXPORT Plug animated_channel (Plug &animated_plug)
 Return the animated channel connected to a layer. More...
 
MAQUINA_EXPORT Value default_rig_value (Plug &plug)
 Return the default value if available. More...
 
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. More...
 
MAQUINA_EXPORT bool rig_matrix (Plug &plug)
 Rig a matrix plug. More...
 
MAQUINA_EXPORT void constrain_node (Node &constraint, Node &node)
 Constrain the node to the constraint. More...
 
MAQUINA_EXPORT void key_layer (Node &layer, float frame, bool default_value=false)
 Add a key frame on a layer. More...
 
MAQUINA_EXPORT std::vector< Nodeselection ()
 Return the active selection. More...
 
MAQUINA_EXPORT std::vector< std::shared_ptr< NodeDelegate > > delegate_selection ()
 Return the active node delegate selection. More...
 
MAQUINA_EXPORT std::vector< std::string > selection_paths ()
 Return the paths of the active node delegate selection. More...
 
MAQUINA_EXPORT std::vector< std::shared_ptr< NodeDelegate > > tool_selection ()
 Return the active tool delegate selection. More...
 
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. More...
 
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. More...
 
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. More...
 
MAQUINA_EXPORT Value copy_keys (Node &anim_layer)
 Return a copy of the active key selection in a layer. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
MAQUINA_EXPORT void remove_keys (Node &anim_layer, bool normalize=true)
 Remove the active key selection in a layer. More...
 
MAQUINA_EXPORT void remove_key (Plug &plug, const float frame)
 Remove the key at frame in the active layer. More...
 
MAQUINA_EXPORT void transform_keys (Node &anim_layer)
 Transform the active key selection using the selection rubberband. More...
 
MAQUINA_EXPORT void transform_curve_keys (const Plug &plug, std::unordered_map< float, float > &original_to_transformed_keys)
 
MAQUINA_EXPORT int insert_key (const Plug &plug, float t, float v)
 
MAQUINA_EXPORT void time_warp_keys (Node &anim_layer)
 Time warp the active key selection using the selection rubberband. More...
 
MAQUINA_EXPORT void move_layer (Node &layer, int dest_id)
 Re-order layers. More...
 
MAQUINA_EXPORT void reparent_layers (Node &parent, const std::vector< Node > &layers)
 Move layers. More...
 
MAQUINA_EXPORT void ungroup_layer (Node &layer_group)
 Ungroup layer. More...
 
MAQUINA_EXPORT bool can_be_flatten (Node &layer)
 
MAQUINA_EXPORT void group_child_layers (Node &layer_group, std::vector< Node > &layers, const char *layer_type, bool recursive=false)
 
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. More...
 
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. More...
 
MAQUINA_EXPORT void bake_layer (Node &layer, int interval=1, int offset=0, int tangents_mode=1)
 Bake the layer. More...
 
MAQUINA_EXPORT void bake_curve (Node &curve, const Plug &value_plug, int interval=1, int offset=0, int tangents_mode=1)
 Bake curve. More...
 
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. More...
 
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. More...
 
MAQUINA_EXPORT Dict extract_pose (const std::vector< std::string > &channels, float frame)
 Extract a pose from a selection of plugs. More...
 
MAQUINA_EXPORT Dict blend_poses (const Dict &from_pose, const Dict &to_pose, float weight)
 Blend from pose to pose using weight factor. More...
 
MAQUINA_EXPORT Dict matching_pose (const Dict &pose, const std::vector< std::string > &channels)
 Match a pose to a set of channels. More...
 
MAQUINA_EXPORT bool has_controller (const Plug &plug)
 Test if a controller is associated to a plug. More...
 
MAQUINA_EXPORT Node controller (const Plug &plug)
 Return the controller associated to a plug. More...
 
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. More...
 
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) More...
 
MAQUINA_EXPORT bool is_right (Node &asset, const std::string &name)
 Return true if the name is right using the asset mirroring rules. More...
 
MAQUINA_EXPORT bool is_left (Node &asset, const std::string &name)
 Return true if the name is left using the asset mirroring rules. More...
 
MAQUINA_EXPORT std::string asset_mirror (Node &asset, const std::string &name)
 Return the mirrored name using the asset mirroring rules. More...
 
MAQUINA_EXPORT Node asset_mirror_node (Node &asset, const Node &node)
 Return the mirrored node using the asset mirroring rules. More...
 
MAQUINA_EXPORT bool asset_has_manipulator (Node &asset, const std::string &manipulator_name)
 Return true if the asset contain the manipulator. More...
 
MAQUINA_EXPORT Node asset_manipulator (Node &asset, const std::string &manipulator_name)
 Get the manipulator with the name manipulator name from this asset. More...
 
MAQUINA_EXPORT bool asset_has_child (Node &asset, const std::string &name)
 Return true if the asset contain a child named name. More...
 
MAQUINA_EXPORT Node asset_child (Node &asset, const std::string &name)
 Get the first child node named name of this asset. More...
 
MAQUINA_EXPORT bool asset_child_has_manipulator (Node &asset, const Node &child)
 Return true if the asset child has a manipulator. More...
 
MAQUINA_EXPORT Node asset_child_manipulator (Node &asset, const Node &child)
 Get the manipulator associated to the asset child. More...
 
MAQUINA_EXPORT Node manipulator_controller (Node &manipulator)
 Get the controller related to this manipulator. More...
 
MAQUINA_EXPORT std::vector< Nodeasset_controllers (Node &asset)
 Get the asset controllers. More...
 
MAQUINA_EXPORT void start_profiling ()
 Start an interactive profiling session. More...
 
MAQUINA_EXPORT std::vector< std::pair< std::string, float > > end_profiling ()
 Stop the interactive profiling session. More...
 
MAQUINA_EXPORT void load_document (const std::wstring &path)
 Open a new Rumba/Guerilla project. More...
 
MAQUINA_EXPORT void new_document ()
 Close the current document and create a new one. More...
 
MAQUINA_EXPORT bool is_demo_mode ()
 Test if Rumba/Guerilla is in demo mode. More...
 
MAQUINA_EXPORT void flush_observers ()
 Make sure all the observers have been called. More...
 
MAQUINA_EXPORT Node create_tool_geometry (const char *name, Node &parent)
 Create a geometry node for tools, i-e, not in a document. More...
 
MAQUINA_EXPORT void background_start ()
 Start the background evaluation engine. More...
 
MAQUINA_EXPORT void background_wait ()
 Wait for the baground evaluation engine. More...
 
MAQUINA_EXPORT Node asset_display (const Node &asset)
 
MAQUINA_EXPORT Value weighted_sum (const Array &values, const std::vector< double > &weights)
 Returns the weighted sum of the input values. More...
 

Variables

MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT BufferConst< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT BufferConst< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT BufferConst< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT BufferConst< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT BufferConst< double >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT Buffer< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT Buffer< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT Buffer< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT Buffer< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT Buffer< double >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBufferConst< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBufferConst< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBufferConst< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBufferConst< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBufferConst< double >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBuffer< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBuffer< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBuffer< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBuffer< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT IndexedBuffer< double >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBufferConst< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBufferConst< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBufferConst< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBufferConst< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBufferConst< double >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBuffer< int32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBuffer< uint8_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBuffer< uint32_t >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBuffer< float >
 
MAQUINA_EXTERN_TEMPLATE class MAQUINA_EXPORT SparseBuffer< double >
 

Detailed Description

This version of the SDK is unstable, i-e, it may change with no warning.

Using this version you may have to recompile your plugins when you update Rumba. If you need a binary stable API, consider to use a stable version.The Rumba C++ API

Typedef Documentation

◆ BufferBox3f

◆ BufferConstBox3f

◆ BufferConstDouble

◆ BufferConstFloat

◆ BufferConstInt32

A readonly integer buffer

◆ BufferConstM33f

◆ BufferConstM44f

◆ BufferConstUInt32

◆ BufferConstUInt8

◆ BufferConstV2f

◆ BufferConstV2i

◆ BufferConstV3f

◆ BufferConstV3i

◆ BufferConstV4f

◆ BufferConstV4i

◆ BufferDouble

typedef Buffer<double> maquina::BufferDouble

◆ BufferFloat

typedef Buffer<float> maquina::BufferFloat

◆ BufferInt32

typedef Buffer<int32_t> maquina::BufferInt32

◆ BufferM33f

◆ BufferM44f

◆ BufferUInt32

typedef Buffer<uint32_t> maquina::BufferUInt32

◆ BufferUInt8

typedef Buffer<uint8_t> maquina::BufferUInt8

◆ BufferV2f

◆ BufferV2i

◆ BufferV3f

◆ BufferV3i

◆ BufferV4f

◆ BufferV4i

◆ IndexedBufferBox3f

◆ IndexedBufferConstBox3f

◆ IndexedBufferConstDouble

◆ IndexedBufferConstFloat

◆ IndexedBufferConstInt32

◆ IndexedBufferConstM44f

◆ IndexedBufferConstUInt32

◆ IndexedBufferConstUInt8

◆ IndexedBufferConstV2f

◆ IndexedBufferConstV2i

◆ IndexedBufferConstV3f

◆ IndexedBufferConstV3i

◆ IndexedBufferConstV4f

◆ IndexedBufferConstV4i

◆ IndexedBufferDouble

◆ IndexedBufferFloat

◆ IndexedBufferInt32

◆ IndexedBufferM44f

◆ IndexedBufferUInt32

◆ IndexedBufferUInt8

◆ IndexedBufferV2f

◆ IndexedBufferV2i

◆ IndexedBufferV3f

◆ IndexedBufferV3i

◆ IndexedBufferV4f

◆ IndexedBufferV4i

◆ PartialInvalidationPtr

◆ Ptr

template<class T >
using maquina::Ptr = typedef std::shared_ptr<T>

◆ SparseBufferBox3f

◆ SparseBufferConstBox3f

◆ SparseBufferConstDouble

◆ SparseBufferConstFloat

◆ SparseBufferConstInt32

◆ SparseBufferConstM44f

◆ SparseBufferConstUInt32

◆ SparseBufferConstUInt8

◆ SparseBufferConstV2f

◆ SparseBufferConstV2i

◆ SparseBufferConstV3f

◆ SparseBufferConstV3i

◆ SparseBufferConstV4f

◆ SparseBufferConstV4i

◆ SparseBufferDouble

◆ SparseBufferFloat

◆ SparseBufferInt32

◆ SparseBufferM44f

◆ SparseBufferUInt32

◆ SparseBufferUInt8

◆ SparseBufferV2f

◆ SparseBufferV2i

◆ SparseBufferV3f

◆ SparseBufferV3i

◆ SparseBufferV4f

◆ SparseBufferV4i

◆ StringView

typedef StringViewBase<char, std::string> maquina::StringView

◆ StringViewHasher

typedef StringViewHasherBase<char, std::string> maquina::StringViewHasher

◆ verbosity_level

using maquina::verbosity_level = typedef spdlog::level::level_enum

◆ WStringView

typedef StringViewBase<wchar_t, std::wstring> maquina::WStringView

◆ WStringViewHasher

typedef StringViewHasherBase<wchar_t, std::wstring> maquina::WStringViewHasher

Enumeration Type Documentation

◆ CycleMode

enum maquina::CycleMode
strong
Enumerator
cycle_mode_constant 
cycle_mode_repeat 
cycle_mode_repeat_continuous 
cycle_mode_linear 

◆ FlattenMode

enum maquina::FlattenMode
strong

Specify a way to flatten a layer into another.

Enumerator
In_Dest_Key 

Only keep the destination layers key to perform the merge.

Union_Keys 

Keep both destination and origin layers key to perform the merge.

All_Frames 

Create a key at all frame to bake the whole animation of two layers into a single layer.

◆ PasteMode

enum maquina::PasteMode
strong

Specify a way to paste the clipboard.

Enumerator
Clear 

Clear destination before paste.

Merge 

Merge the clipboard with the destination.

Replace 

Replace the destination with the clipboard value.

Insert 

Insert the clipboard at the destination frame.

◆ PasteType

enum maquina::PasteType
strong
Enumerator
Null 

No paste match.

Soft 

Soft paste match.

Hard 

Hard paste match.

◆ SelectionMode

Specify a way to alter the active selection.

Enumerator
Replace 

Replace the active selection.

Add 

Add to the active selection.

Remove 

Remove from the active selection.

Invert 

Invert the active selection.

Function Documentation

◆ active_document()

MAQUINA_EXPORT Node maquina::active_document ( )

Return the active Document node.

◆ active_document_filename()

MAQUINA_EXPORT std::wstring maquina::active_document_filename ( )

Return the active document filename.

◆ add_channels_to_layer()

MAQUINA_EXPORT void maquina::add_channels_to_layer ( const std::vector< Plug > &  channels,
Node layer 
)

Create the animation graph to make this channel animated in the layer.

Parameters
channelsThe channel
layerThe layer

◆ add_modify_action()

MAQUINA_EXPORT void maquina::add_modify_action ( const std::shared_ptr< maquina::CustomAction > &  custom_action)

Add a custom action to the current modifier.

◆ animated_channel()

MAQUINA_EXPORT Plug maquina::animated_channel ( Plug animated_plug)

Return the animated channel connected to a layer.

Returns the related channel that is connected to the animation graph.

Parameters
animated_plugThe animated plug from the layer

◆ animated_plug()

MAQUINA_EXPORT Plug maquina::animated_plug ( const Plug plug)

Return the animated plug, regarding the current layer.

Returns the related plug from the animation graph.

Parameters
plugThe asset plug

◆ animated_plug_in_layer()

MAQUINA_EXPORT Plug maquina::animated_plug_in_layer ( const Plug plug,
Node layer 
)

Return the animated plug in the specific layer.

Returns the related plug from the animation graph.

Parameters
plugThe asset plug
layerThe layer

◆ animated_plug_value_in_layer()

MAQUINA_EXPORT Value maquina::animated_plug_value_in_layer ( const Plug plug,
const Node layer,
float  frame 
)

Return the animated plug value in the specific layer.

Returns the related plug value from the animation graph if no animated value in the layer, returns the equivalent value in the layer as if plug was override in the layer.

Exceptions
std::runtime_errorif no value can't be found.
Parameters
plugThe asset plug
layerThe layer
frameThe frame

◆ animation_node_channel_plug()

MAQUINA_EXPORT Plug maquina::animation_node_channel_plug ( Node node)

Get the channel plug (input of the rig) from an animation node (like an AnimCurveFloat node)

◆ apply_pose()

MAQUINA_EXPORT void maquina::apply_pose ( const Dict pose,
float  frame 
)

Apply a pose.

Parameters
poseThe pose to apply
frameThe frame to apply pose

◆ asset_child()

MAQUINA_EXPORT Node maquina::asset_child ( Node asset,
const std::string &  name 
)

Get the first child node named name of this asset.

◆ asset_child_has_manipulator()

MAQUINA_EXPORT bool maquina::asset_child_has_manipulator ( Node asset,
const Node child 
)

Return true if the asset child has a manipulator.

◆ asset_child_manipulator()

MAQUINA_EXPORT Node maquina::asset_child_manipulator ( Node asset,
const Node child 
)

Get the manipulator associated to the asset child.

◆ asset_controllers()

MAQUINA_EXPORT std::vector<Node> maquina::asset_controllers ( Node asset)

Get the asset controllers.

◆ asset_display()

MAQUINA_EXPORT Node maquina::asset_display ( const Node asset)

◆ asset_has_child()

MAQUINA_EXPORT bool maquina::asset_has_child ( Node asset,
const std::string &  name 
)

Return true if the asset contain a child named name.

◆ asset_has_manipulator()

MAQUINA_EXPORT bool maquina::asset_has_manipulator ( Node asset,
const std::string &  manipulator_name 
)

Return true if the asset contain the manipulator.

◆ asset_manipulator()

MAQUINA_EXPORT Node maquina::asset_manipulator ( Node asset,
const std::string &  manipulator_name 
)

Get the manipulator with the name manipulator name from this asset.

◆ asset_mirror()

MAQUINA_EXPORT std::string maquina::asset_mirror ( Node asset,
const std::string &  name 
)

Return the mirrored name using the asset mirroring rules.

◆ asset_mirror_node()

MAQUINA_EXPORT Node maquina::asset_mirror_node ( Node asset,
const Node node 
)

Return the mirrored node using the asset mirroring rules.

◆ background_progress()

MAQUINA_EXPORT Plug maquina::background_progress ( )

Use this plug to be notified on background engine progress.

◆ background_start()

MAQUINA_EXPORT void maquina::background_start ( )

Start the background evaluation engine.

◆ background_wait()

MAQUINA_EXPORT void maquina::background_wait ( )

Wait for the baground evaluation engine.

◆ bake_curve()

MAQUINA_EXPORT void maquina::bake_curve ( Node curve,
const Plug value_plug,
int  interval = 1,
int  offset = 0,
int  tangents_mode = 1 
)

Bake curve.

Parameters
curveThe curve to bake
value_plugThe plug with the value
intervalbakes frames every interval.
offsetbakes every frames matching (frameinterval) == offset.
tangents_modeThe tangent mode to set on keys, 0 for linear, 1 for auto, 3 for spline, 4 for flat, 5 for step

◆ bake_layer()

MAQUINA_EXPORT void maquina::bake_layer ( Node layer,
int  interval = 1,
int  offset = 0,
int  tangents_mode = 1 
)

Bake the layer.

Parameters
layerThe layer to bake
intervalbakes frames every interval.
offsetbakes every frames matching (frameinterval) == offset.
tangents_modeThe tangent mode to set on keys, 0 for linear, 1 for auto, 3 for spline, 4 for flat, 5 for step

◆ base64_decode()

MAQUINA_EXPORT std::vector<uint8_t> maquina::base64_decode ( const char *  text,
size_t  size 
)

Decode a bunch of binary data from a base64 text.

◆ base64_encode()

MAQUINA_EXPORT std::string maquina::base64_encode ( const uint8_t *  data,
size_t  size 
)

Encode a bunch of binary data in a base64 text.

◆ blend_poses()

MAQUINA_EXPORT Dict maquina::blend_poses ( const Dict from_pose,
const Dict to_pose,
float  weight 
)

Blend from pose to pose using weight factor.

Returns a new pose result of the blend

Parameters
from_poseThe starting pose
to_poseThe destination pose
weightThe weight factor

◆ blend_to_identity() [1/2]

MAQUINA_EXPORT Imath::M44f maquina::blend_to_identity ( const Imath::M44f a,
float  w 
)

Blend a matrix to identity.

w is the blend weight. If w is 0, the identity matrix is returned, if 1, a is returned, otherwise a blending is computed. The scale, shear and translation components are linearly interpolated. The rotation is interpolated using the shortest quaternion linear interpolation.

◆ blend_to_identity() [2/2]

MAQUINA_EXPORT Imath::M44d maquina::blend_to_identity ( const Imath::M44d a,
double  w 
)

◆ can_be_flatten()

MAQUINA_EXPORT bool maquina::can_be_flatten ( Node layer)
Parameters
layerThe layer to be flatten

◆ can_undo_blend()

MAQUINA_EXPORT bool maquina::can_undo_blend ( )

Check if it's possible to undo blend.

◆ closest_point_between_lines()

MAQUINA_EXPORT void maquina::closest_point_between_lines ( const Imath::V3f o0,
const Imath::V3f d0,
const Imath::V3f o1,
const Imath::V3f d1,
float &  t0,
float &  t1 
)

Compute the closest point between two lines.

◆ closest_point_on_triangle()

MAQUINA_EXPORT Imath::V3f maquina::closest_point_on_triangle ( const Imath::V3f triangle,
const Imath::V3f p,
float *  s_out = nullptr,
float *  t_out = nullptr 
)

triangle points on an array of 3 Imath::V3f, which are the triangle vertices. p is the lookup position. if s_out/t_out are specified, they are filled with the barycentric coordinate of the closest point on the triangle.

◆ closest_point_segment_to_segment() [1/2]

MAQUINA_EXPORT Imath::V3f maquina::closest_point_segment_to_segment ( const Imath::V3f s1,
const Imath::V3f s2 
)

◆ closest_point_segment_to_segment() [2/2]

MAQUINA_EXPORT Imath::V3d maquina::closest_point_segment_to_segment ( const Imath::V3d s1,
const Imath::V3d s2 
)

◆ closest_point_to_line()

MAQUINA_EXPORT Imath::V3d maquina::closest_point_to_line ( const Imath::V3d o,
const Imath::V3d d,
const Imath::V3d p 
)

Compute the closest point to p on a line.

line_o is any position on the line line_d is the NORMALIZED line direction p is the point position

◆ compute_aabb()

MAQUINA_EXPORT Imath::Box3f maquina::compute_aabb ( const gsl::span< const Imath::V3f > &  points)

Compute points bounding box.

◆ constrain_node()

MAQUINA_EXPORT void maquina::constrain_node ( Node constraint,
Node node 
)

Constrain the node to the constraint.

Returns true if the constraint has been setted.

Parameters
constraintThe constraint layer
nodeThe node to be constrain

◆ controller()

MAQUINA_EXPORT Node maquina::controller ( const Plug plug)

Return the controller associated to a plug.

◆ copy_keys()

MAQUINA_EXPORT Value maquina::copy_keys ( Node anim_layer)

Return a copy of the active key selection in a layer.

Parameters
anim_layerThe working layer

◆ create_tool_geometry()

MAQUINA_EXPORT Node maquina::create_tool_geometry ( const char *  name,
Node parent 
)

Create a geometry node for tools, i-e, not in a document.

◆ critical()

template<typename... Args>
void maquina::critical ( const char *  filename,
int  line,
const char *  function,
const char *  format,
const Args &...  args 
)

Log a critical error message using the Rumba logger.

One could use the convenient RUMBA_LOG_CRITICAL macro.

◆ current_frame()

MAQUINA_EXPORT float maquina::current_frame ( )

Shortcut for the active document current frame.

◆ debug()

template<typename... Args>
void maquina::debug ( const char *  format,
const Args &...  args 
)

Log a debug message using the Rumba logger.

◆ default_rig_value()

MAQUINA_EXPORT Value maquina::default_rig_value ( Plug plug)

Return the default value if available.

Parameters
plugThe plug to get the default rig value

◆ deflate()

MAQUINA_EXPORT std::vector<uint8_t> maquina::deflate ( const uint8_t *  data,
size_t  size 
)

Compress a bunch of binary data with zlib.

◆ delegate_selection()

MAQUINA_EXPORT std::vector<std::shared_ptr<NodeDelegate> > maquina::delegate_selection ( )

Return the active node delegate selection.

◆ delete_animation_graph()

MAQUINA_EXPORT bool maquina::delete_animation_graph ( Node node_to_delete)

Delete properly the node animation graph.

Returns true if success or false if the deletion failed.

◆ delete_channels_animation()

MAQUINA_EXPORT void maquina::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.

Parameters
channelsThe channels to be deleted
all_layersDelete the animation for all layers

◆ deserialize_nodes()

MAQUINA_EXPORT std::vector<Node> maquina::deserialize_nodes ( std::string  buffer,
Node parent = nullptr,
const std::string &  valid_types = "" 
)

Deserialize the nodes from a string.

Returns the vector of nodes deserialized if the deserialization has succeed.

Parameters
bufferThe buffer to be deserialized
parentIf non null, deserialize nodes with parent has parent
valid_typesIf non empty, use it to check if nodes in the buffer are valid types, if not skip the node

◆ deserialize_pose()

MAQUINA_EXPORT Dict maquina::deserialize_pose ( std::string  buffer)

Deserialize the pose from a string.

Parameters
bufferThe buffer to be deserialized

◆ drm_hostid()

MAQUINA_EXPORT std::string maquina::drm_hostid ( )

Return the system host id.

◆ drm_init()

MAQUINA_EXPORT void maquina::drm_init ( const std::wstring &  path,
const std::string &  license_server 
)

Initialize the drm.

◆ drm_release()

MAQUINA_EXPORT void maquina::drm_release ( )

Release the drm.

◆ drm_status()

MAQUINA_EXPORT std::pair<bool, std::string> maquina::drm_status ( )

Return the drm status.

◆ duplicate() [1/3]

template<typename T >
SparseBuffer<T> maquina::duplicate ( const SparseBufferConst< T > &  a)

◆ duplicate() [2/3]

template<typename T >
Buffer<T> maquina::duplicate ( const BufferConst< T > &  a)

◆ duplicate() [3/3]

MAQUINA_EXPORT Scene maquina::duplicate ( const SceneConst other)

◆ duplicate_layer()

MAQUINA_EXPORT Node maquina::duplicate_layer ( Node layer)

Duplicate the layer and its animation.

Exceptions
std::runtime_errorif the duplication failed.
Parameters
layerThe layer

◆ end_profiling()

MAQUINA_EXPORT std::vector<std::pair<std::string, float> > maquina::end_profiling ( )

Stop the interactive profiling session.

Returns a plug full path and the time in milliseconds spent in each evaluated plugs. The list is not sorted.

◆ error()

template<typename... Args>
void maquina::error ( const char *  format,
const Args &...  args 
)

Log an error message using the Rumba logger.

One could use the convinent RUMBA_LOG_ERROR macro.

◆ export_plug_animation()

MAQUINA_EXPORT void maquina::export_plug_animation ( const std::vector< Plug > &  plugs,
const std::wstring &  filepath,
bool  single_layer = false,
const std::function< bool(float, const char *)> &  progress = nullptr 
)

Save the layer setup and plugs animation in a file.

Exceptions
std::runtime_errorin case of writing errors.
Parameters
plugsThe plugs with the values or the animation to save
filepathThe file path, the extension should be ".rumbaanim"
single_layerExport the animation in a single layer, bake the plugs animation if needed
progressProgress callback

◆ export_plug_values()

MAQUINA_EXPORT void maquina::export_plug_values ( const std::vector< Plug > &  plugs,
const std::wstring &  filepath 
)

Save the plugs values in a file.

Exceptions
std::runtime_errorin case of writing errors.
Parameters
plugsThe plugs with the values or the animation to save
filepathThe file path, the extension should be ".rumbapose"

◆ export_settings()

MAQUINA_EXPORT void maquina::export_settings ( const std::wstring &  filepath)

Save workspace settings to a file.

Exceptions
std::runtime_errorin case of writing errors.
Parameters
filepathPath to the output file.

◆ extract_pose()

MAQUINA_EXPORT Dict maquina::extract_pose ( const std::vector< std::string > &  channels,
float  frame 
)

Extract a pose from a selection of plugs.

Returns the extracted pose

Parameters
channelsThe channels to extract the pose from
frameThe frame to extract the pose

◆ file_exists()

MAQUINA_EXPORT bool maquina::file_exists ( const wchar_t *  file)

Return true if a file exist.

◆ file_extension()

MAQUINA_EXPORT std::string maquina::file_extension ( const wchar_t *  file)

Return a file extension.

◆ file_name()

MAQUINA_EXPORT std::wstring maquina::file_name ( const wchar_t *  file)

Return a file name.

◆ flatten_group()

MAQUINA_EXPORT Node maquina::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.

Parameters
layer_groupThe layer group to be flatten
modeThe flatten mode, unifying the keys by default
all_frames_intervalIn All_Frames mode, bakes frames every all_frames_interval.
all_frames_offsetIn All_Frames mode, bakes every frames matching (frameall_frames_interval) == all_frames_offset.
all_frames_tangents_modeThe tangent mode to set on keys, 0 for linear, 1 for auto, 3 for spline, 4 for flat, 5 for step

◆ flatten_layer()

MAQUINA_EXPORT void maquina::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.

Parameters
layerThe layer to be flatten
dest_layerThe destination layer
modeThe flatten mode, unifying the keys by default
all_frames_intervalIn All_Frames mode, bakes frames every all_frames_interval.
all_frames_offsetIn All_Frames mode, bakes every frames matching (frameall_frames_interval) == all_frames_offset.
all_frames_tangents_modeThe tangent mode to set on keys, 0 for linear, 1 for auto, 3 for spline, 4 for flat, 5 for step

◆ flush_observers()

MAQUINA_EXPORT void maquina::flush_observers ( )

Make sure all the observers have been called.

◆ get_orthogonal_vectors()

MAQUINA_EXPORT void maquina::get_orthogonal_vectors ( const Imath::V3d fx,
Imath::V3d fy,
Imath::V3d fz 
)

◆ getenv_w()

MAQUINA_EXPORT std::wstring maquina::getenv_w ( const char *  name)

Return the content of an environment variable.

◆ group_child_layers()

MAQUINA_EXPORT void maquina::group_child_layers ( Node layer_group,
std::vector< Node > &  layers,
const char *  layer_type,
bool  recursive = false 
)

◆ has_active_document()

MAQUINA_EXPORT bool maquina::has_active_document ( )

Return true if there is an active Document node.

◆ has_animated_channel()

MAQUINA_EXPORT bool maquina::has_animated_channel ( Plug animated_plug)

Check if the animated plug has an animated channel.

Returns True if the plug has an animated channel.

Parameters
animated_plugThe asset plug

◆ has_animated_plug()

MAQUINA_EXPORT bool maquina::has_animated_plug ( const Plug plug)

Check if the plug has an animated plug.

Returns True if the plug has an animated plug.

Parameters
plugThe asset plug

◆ has_animated_plug_in_layer()

MAQUINA_EXPORT bool maquina::has_animated_plug_in_layer ( const Plug plug,
Node layer 
)

Check if the plug has an animated plug in the layer.

Returns True if the plug has an animated plug in the layer.

Parameters
plugThe asset plug
layerThe layer

◆ has_controller()

MAQUINA_EXPORT bool maquina::has_controller ( const Plug plug)

Test if a controller is associated to a plug.

◆ has_python()

MAQUINA_EXPORT bool maquina::has_python ( )

Return true if Python is available.

◆ has_tag()

MAQUINA_EXPORT bool maquina::has_tag ( const std::string &  tags,
const char *  tag 
)

Check a tag exist in a comma separate tag list.

◆ has_target_layer()

MAQUINA_EXPORT bool maquina::has_target_layer ( const Plug plug)

Check if the plug has a layer that can receive the plug animation.

Parameters
plugThe asset plug

◆ hash_24() [1/2]

int maquina::hash_24 ( const uint8_t *  key,
size_t  length 
)
inline

◆ hash_24() [2/2]

int maquina::hash_24 ( const std::string &  str)
inline

◆ heat_geodesic()

MAQUINA_EXPORT std::vector<float> maquina::heat_geodesic ( const maquina::Mesh mesh,
const Imath::M44f local_to_ellipsoid,
const Imath::V3f source,
const float  max_dist = 1.f,
const bool  crop_mesh = true,
const float  dt_multiplier = 1.f,
const float  bound_blend = 0.5f 
)

Approximate geodesic distance through the heat method (cf https://www.cs.cmu.edu/~kmcrane/Projects/HeatMethod/index.html).

Use the Heat method on the given mesh to approximate the geodesic distance to the given source point (in deformed world space). By giving the deformed_space_inv transform, one can specify the deformed world space in which the distance has to be computed. Returns the geodesic distance in ellipsoid space, capped to max_dist. One can specify whether the whole mesh is used for the distance computation or only the part contained in the deformed-space sphere of radius max_dist. Additional Heat method parameters can also specified: the time factor for heat diffusion solving, as well as the interpolation factor between Neumann and Dirichlet boundary conditions.

◆ ik_3_joints()

MAQUINA_EXPORT void maquina::ik_3_joints ( const Imath::V3d p0,
const Imath::V3d p1,
const Imath::V3d p2,
const Imath::V3d goal,
const Imath::V3d normal,
Imath::Quatd r0,
double &  a1,
Imath::V3d axis1,
bool  negate_normal = false 
)
Parameters
p0The first ik chain position
p1The second ik chain position
p2The third ik chain position
goalThe third ik chain goal position
normalThe ik plan normal, normal_original.dot((p0-p1).cross(p2-p1)) must be >= 0. Must be normalized.
a1The rotation to apply to the first joint matrix
axis1The delta angle in radian to apply to the second joint around axis1
negate_normalThe second joint rotation axis expressed in the same space than p0, p1, p2

◆ import_plug_animation()

MAQUINA_EXPORT bool maquina::import_plug_animation ( const std::vector< Plug > &  plugs,
const std::wstring &  filename 
)

Import an animation from a file.

Returns true if the import has succeed. Make sure to call modify_begin() before to call this function. The layer structure is added to the active document layers. The animation is then loaded in the new layers. The first new layer is set in 'blend' mode in order to override the old animation.

Exceptions
std::runtime_errorin case of reading errors.
Parameters
plugsThe channels to import from the file. If empty, imports everything.
filenameThe file path, the extension should be ".rumbaanim"

◆ import_plug_values()

MAQUINA_EXPORT void maquina::import_plug_values ( const std::vector< Plug > &  plugs,
const std::wstring &  filename 
)

Import the plugs values from a file and apply them.

Make sure to call modify_begin() before to call this function.

Exceptions
std::runtime_errorin case of reading errors.
Parameters
plugsThe channels to import from the file. If empty, imports everything.
filenameThe file path, the extension should be ".rumbapose"

◆ import_settings()

MAQUINA_EXPORT void maquina::import_settings ( const std::wstring &  filepath)

Import workspace settings from a file.

Exceptions
std::runtime_errorin case of readin errors.
Parameters
filepathPath to the input file.

◆ in_animated_layers()

MAQUINA_EXPORT std::vector<Node> maquina::in_animated_layers ( const Plug plug,
bool  skip_disabled = true 
)

Return the animation layers that are modifying this plug.

Returns the animation layers modifying this plug.

Parameters
plugThe asset plug
skip_disabledIf true skip the disabled layers

◆ inflate()

MAQUINA_EXPORT std::vector<uint8_t> maquina::inflate ( const uint8_t *  data,
size_t  size 
)

Uncompress a bunch of binary data with zlib.

◆ info()

template<typename... Args>
void maquina::info ( const char *  format,
const Args &...  args 
)

Log an informative message using the Rumba logger.

◆ init_crash_handler()

MAQUINA_EXPORT void maquina::init_crash_handler ( const std::string &  message,
bool  send_report 
)

Init the crash handler with the message to attach to the crash reports.

◆ initialize()

MAQUINA_EXPORT void maquina::initialize ( )

When the Rumba Engine is embedded in an application, this function should be called before any Rumba API calls.

◆ insert_key()

MAQUINA_EXPORT int maquina::insert_key ( const Plug plug,
float  t,
float  v 
)

◆ intersect_ray_sphere()

MAQUINA_EXPORT int maquina::intersect_ray_sphere ( const Imath::V3d o,
const Imath::V3d d,
const Imath::V3d c,
float  r,
float &  t0,
float &  t1 
)

Compute the intersections between an infinit ray and a sphere.

Returns the number of intersections (0, 1 or 2) ray_o is any position on the ray ray_d is any ray vector (doesn't have to be normalized) sphere_c is the sphere center sphere_r is the sphere radius

First intersection position is : p0 = ray_o + ray_d*t0 Second intersection position is : p1 = ray_o + ray_d*t1

◆ is_demo_mode()

MAQUINA_EXPORT bool maquina::is_demo_mode ( )

Test if Rumba/Guerilla is in demo mode.

Returns true if Rumba/Guerilla is running in demo mode.

◆ is_identity()

template<class T >
bool maquina::is_identity ( const Imath::Matrix44< T > &  m)
inline

Returns true if the matrix is the identity.

◆ is_left()

MAQUINA_EXPORT bool maquina::is_left ( Node asset,
const std::string &  name 
)

Return true if the name is left using the asset mirroring rules.

◆ is_paste_valid()

MAQUINA_EXPORT PasteType maquina::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.

Parameters
to_pasteThe values to be pasted
matched_channelsThe matching channels
dest_layerThe destination layer

◆ is_right()

MAQUINA_EXPORT bool maquina::is_right ( Node asset,
const std::string &  name 
)

Return true if the name is right using the asset mirroring rules.

◆ key_layer()

MAQUINA_EXPORT void maquina::key_layer ( Node layer,
float  frame,
bool  default_value = false 
)

Add a key frame on a layer.

Parameters
layerThe layer to key
frameThe frame to key
default_valueSet the default value

◆ lerp()

MAQUINA_EXPORT Imath::M44d maquina::lerp ( const Imath::M44d a,
const Imath::M44d b,
double  w 
)

Interplate two matrices.

w is the blend weight. If w is 0, a is returned, if 1, b is returned, otherwise a linear interpolation is computed. The scale, shear and translation components are linearly interpolated. The rotation is interpolated using the shortest quaternion linear interpolation.

◆ list_directory_files()

MAQUINA_EXPORT bool maquina::list_directory_files ( const wchar_t *  directory,
std::vector< std::wstring > &  files 
)

◆ load_animation_pose()

MAQUINA_EXPORT Dict maquina::load_animation_pose ( const std::wstring &  filename)

Import the animation pose from a file, in this case the value of the pose is not relevant.

Returns the animation pose.

Parameters
filenameThe file path, the extension should be ".rumbaanim"

◆ load_document()

MAQUINA_EXPORT void maquina::load_document ( const std::wstring &  path)

Open a new Rumba/Guerilla project.

Exceptions
std::runtime_errorif the file can't be loaded.

◆ load_node()

MAQUINA_EXPORT Node maquina::load_node ( Node root,
const std::wstring &  filepath,
const std::string &  root_name = "" 
)

Load the content of a file into the project.

Load the file content inside the root node. Any supported file format (.rumbanode/.guerillanode and .abc right now) can be loaded.

Exceptions
std::runtime_errorif the file can't be loaded.
Parameters
rootThe document node where to add the file content
filepathThe file path
root_nameSome file format (like alembic) have to gather the file content into a single node. In that case, root_name is the root node name of the file content. If root_name is empty, the filename is used.

◆ load_plugins()

MAQUINA_EXPORT void maquina::load_plugins ( const std::vector< std::wstring > &  plugin_directories)

Load all the Rumba plug-ins from directories.

◆ load_pose()

MAQUINA_EXPORT Dict maquina::load_pose ( const std::wstring &  filename)

Import the plugs values from a file.

Returns the pose.

Parameters
filenameThe file path, the extension should be ".rumbapose"

◆ local_to_wstring()

MAQUINA_EXPORT std::wstring maquina::local_to_wstring ( const char *  str)

Convert a string in the default system charset into a std::wstring.

◆ manipulator_controller()

MAQUINA_EXPORT Node maquina::manipulator_controller ( Node manipulator)

Get the controller related to this manipulator.

◆ match_channels()

MAQUINA_EXPORT std::vector< std::pair<std::string, std::string> > maquina::match_channels ( const Value to_match)

Return the best match between the channels to be pasted and the active selection.

Parameters
to_matchThe channels to match

◆ match_to_channels()

MAQUINA_EXPORT std::vector< std::pair<std::string, std::string> > maquina::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.

Parameters
channels_to_matchThe channels to match
selected_channelsSelected channels

◆ matching_pose()

MAQUINA_EXPORT Dict maquina::matching_pose ( const Dict pose,
const std::vector< std::string > &  channels 
)

Match a pose to a set of channels.

Returns a new pose that match to the set of channels

Parameters
poseThe pose to match
channelsThe channels to be matched

◆ modify_begin()

MAQUINA_EXPORT void maquina::modify_begin ( const char *  modification_name,
const gsl::span< const float > &  interactive_frames = {} 
)

Begin a modification of the current document.

Parameters
modification_nameThe name to display in the UI for this modification.
interactive_framesIf the modification is interactive, precise which frame of the animation to update during the intteraction. By default, only the current frame is updated.

◆ modify_curve_begin()

MAQUINA_EXPORT void maquina::modify_curve_begin ( const char *  modification_name)

Begin a modification of the current document.

◆ modify_end()

MAQUINA_EXPORT bool maquina::modify_end ( )

End a modification of the current document.

Returns true if success or false if there is no active modification or the modification stack is empty.

◆ move_layer()

MAQUINA_EXPORT void maquina::move_layer ( Node layer,
int  dest_id 
)

Re-order layers.

Parameters
layerThe layer to move
dest_idThe destination id

◆ mul_dir()

template<class V , class M >
V maquina::mul_dir ( const V &  src,
const M &  m 
)
inline

A faster alternative to multiply a direction by a 4x4 matrix, ignoring the homogeneous normalization.

◆ mul_pos()

template<class V , class M >
V maquina::mul_pos ( const V &  src,
const M &  m 
)
inline

A faster alternative to multiply a position by a 4x4 matrix, ignoring the homogeneous normalization.

◆ new_document()

MAQUINA_EXPORT void maquina::new_document ( )

Close the current document and create a new one.

◆ operator!=() [1/4]

template<class C , class STDS >
bool maquina::operator!= ( const C *  str,
const StringViewBase< C, STDS > &  sv 
)
inlinenoexcept

◆ operator!=() [2/4]

template<class C , class STDS >
bool maquina::operator!= ( const StringViewBase< C, STDS > &  sv,
const C *  str 
)
inlinenoexcept

◆ operator!=() [3/4]

template<class C , class STDS >
bool maquina::operator!= ( const StringViewBase< C, STDS > &  sv,
const STDS &  s 
)
inlinenoexcept

◆ operator!=() [4/4]

template<class C , class STDS >
bool maquina::operator!= ( const STDS &  s,
const StringViewBase< C, STDS > &  sv 
)
inlinenoexcept

◆ operator<()

template<class C , class STDS >
bool maquina::operator< ( const StringViewBase< C, STDS > &  a,
const StringViewBase< C, STDS > &  b 
)
inlinenoexcept

◆ operator<<()

template<class _CharT , class _Traits , class C , class STDS >
std::basic_ostream<_CharT, _Traits>& maquina::operator<< ( std::basic_ostream< _CharT, _Traits > &  os,
const StringViewBase< C, STDS > &  sv 
)

◆ operator==() [1/4]

template<class C , class STDS >
bool maquina::operator== ( const C *  str,
const StringViewBase< C, STDS > &  sv 
)
inlinenoexcept

◆ operator==() [2/4]

template<class C , class STDS >
bool maquina::operator== ( const StringViewBase< C, STDS > &  sv,
const C *  str 
)
inlinenoexcept

◆ operator==() [3/4]

template<class C , class STDS >
bool maquina::operator== ( const StringViewBase< C, STDS > &  sv,
const STDS &  s 
)
inlinenoexcept

◆ operator==() [4/4]

template<class C , class STDS >
bool maquina::operator== ( const STDS &  s,
const StringViewBase< C, STDS > &  sv 
)
inlinenoexcept

◆ parallel_for()

MAQUINA_EXPORT void maquina::parallel_for ( uint32_t  first,
uint32_t  last,
uint32_t  batch_size,
const std::function< void(uint32_t first, uint32_t last)> &  function 
)

Perform a for loop using threads.

Parameters
firstThe first index of the loop
lastThe last index of the loop (exclusive)
batch_sizeAn indicative size of the indices batch a thread should compute at each call
functionThe compute function to call in parallel, with its first and last (exclusive) indices to compute

◆ parent_path()

MAQUINA_EXPORT std::wstring maquina::parent_path ( const wchar_t *  file)

Return a file parent path.

◆ paste_keys()

MAQUINA_EXPORT void maquina::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.

frame_in and frame_out are used in Replace and Insert modes only. frame_in and frame_out define a range in the input curve time space. In Replace mode, the keys of the destination curve in the interval [frame_in+delta, frame_out+delta] will be erased before the paste operation. In Insert mode, an empty interval will be inserted in [frame_in+delta, frame_out+delta] before the paste operation.

Parameters
to_pasteThe values to be pasted
dest_layerThe destination layer
frame_inStarting frame of the pasted values
frame_outEnding frame of the pasted values
to_frameDestination frame in the destination layer
modePaste mode, merge by default
typePaste type, hard by default

◆ paste_keys_on_curve()

MAQUINA_EXPORT void maquina::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.

frame_in and frame_out are used in Replace and Insert modes only. frame_in and frame_out define a range in the input curve time space. In Replace mode, the keys of the destination curve in the interval [frame_in+delta, frame_out+delta] will be erased before the paste operation. In Insert mode, an empty interval will be inserted in [frame_in+delta, frame_out+delta] before the paste operation.

Parameters
anim_curve_nodeThe destination animation curve node
curveThe input curve with the keys to paste
frame_inStarting frame of the input range, in the input curve's time space
frame_outEnding frame of the input range, in the input curve's time space
to_frameDestination frame in the destination curve
modePaste mode, merge by default

◆ path_variables()

MAQUINA_EXPORT const std::vector<std::pair<std::string, std::wstring> >& maquina::path_variables ( )

Return the currently registered path variables.

Path variables are pairs (VARIABLE,path). Variables can be used inside document path like this : "$(VARIABLE)/local_path/file.ext"

◆ plug_node()

MAQUINA_EXPORT Node maquina::plug_node ( const Plug plug)

Get a plug node.

◆ project_directory()

MAQUINA_EXPORT std::wstring maquina::project_directory ( )

Return the project directory.

This directory is set by the user to a local filesystem path. It is used to prefix a relative file path and turn it into a local filesystem path.

◆ project_path()

MAQUINA_EXPORT std::wstring maquina::project_path ( const wchar_t *  system_path)

Reduce a file system path to a project file path.

This function is the inverse of system_path(). It makes the path relative to the project directory if possible, and clean the path to its simplest form. If not relative to the current project path, the function then tries to make the path relative to the longest registered path variable.

◆ read_value()

MAQUINA_EXPORT Value maquina::read_value ( const std::wstring &  file,
const Dict options 
)

Load an object value from a file.

The value can be any kind of Value loaded by a Reader plug-in.

◆ redo()

MAQUINA_EXPORT void maquina::redo ( )

Make a redo step.

◆ reference()

MAQUINA_EXPORT Node maquina::reference ( Node root,
const std::wstring &  filepath,
const std::string &  reference_root_name = "" 
)

Reference the content of a file into the project.

Load and reference the file content inside the root node. The content will be read-only, only the root node attributes are mutable. Any supported file format (.rumbanode/.guerillanode and .abc right now) can be referenced.

Exceptions
std::runtime_errorif the file can't be loaded.
Parameters
rootThe document node where to add the file content
filepathThe file path
reference_root_nameSome file format (like alembic) have to gather the file content into a single node. In that case, reference_root_name is the root node name of the file content. If reference_root_name is empty, the filename is used.

◆ release()

MAQUINA_EXPORT void maquina::release ( )

When the Rumba Engine is embedded in an application, this function should be called before to leave the application.

◆ remove_channels_from_layer()

MAQUINA_EXPORT void maquina::remove_channels_from_layer ( const std::vector< Plug > &  channels,
Node layer 
)

Remove the animation graph to remove this animated channel animated from the layer.

Parameters
channelsThe channel
layerThe layer

◆ remove_key()

MAQUINA_EXPORT void maquina::remove_key ( Plug plug,
const float  frame 
)

Remove the key at frame in the active layer.

Parameters
plugThe Plug to remove keys
frameThe frame to remove the key

◆ remove_keys()

MAQUINA_EXPORT void maquina::remove_keys ( Node anim_layer,
bool  normalize = true 
)

Remove the active key selection in a layer.

Parameters
anim_layerThe working layer
normalizeNormalize the resulting curves, true by default

◆ reparent_layers()

MAQUINA_EXPORT void maquina::reparent_layers ( Node parent,
const std::vector< Node > &  layers 
)

Move layers.

Parameters
parentThe new parent
layersLayers to be moved

◆ rig_matrix()

MAQUINA_EXPORT bool maquina::rig_matrix ( Plug plug)

Rig a matrix plug.

Return true if the matrix has been rigged

Parameters
plugThe plug to be rigged

◆ scene_child()

MAQUINA_EXPORT std::vector<maquina::Value> maquina::scene_child ( const std::vector< maquina::Value > &  scene_values,
const std::string &  child_name 
)

◆ scene_geometries()

MAQUINA_EXPORT std::vector<maquina::Value> maquina::scene_geometries ( const std::vector< maquina::Value > &  scene_values)

◆ scene_matrices()

MAQUINA_EXPORT std::vector<maquina::Value> maquina::scene_matrices ( const std::vector< maquina::Value > &  scene_values)

◆ scene_visibility()

MAQUINA_EXPORT std::vector<maquina::Value> maquina::scene_visibility ( const std::vector< maquina::Value > &  scene_values)

◆ select()

MAQUINA_EXPORT void maquina::select ( const std::vector< Node > &  nodes,
SelectionMode  mode = SelectionMode::Replace 
)

Update the active selection with a list of nodes according to the selection mode.

Parameters
nodesList of nodes to modify the active selection
modeSelection mode, replace by default

◆ select_delegate()

MAQUINA_EXPORT void maquina::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.

Parameters
pathsList of node paths to modify the active selection
modeSelection mode, replace by default

◆ selected_keys_channels()

MAQUINA_EXPORT std::unordered_set<std::string> maquina::selected_keys_channels ( Node anim_layer)

Return the channels associated with the active key selection in a layer.

◆ selection()

MAQUINA_EXPORT std::vector<Node> maquina::selection ( )

Return the active selection.

◆ selection_paths()

MAQUINA_EXPORT std::vector<std::string> maquina::selection_paths ( )

Return the paths of the active node delegate selection.

◆ serialize_nodes()

MAQUINA_EXPORT std::string maquina::serialize_nodes ( const std::vector< Node > &  nodes,
bool  serialize_external_input_connections = false 
)

Serialize the nodes in a string.

Parameters
nodesNodes to be serialized
serialize_external_input_connectionstrue if the input nodes connections on external plugs must be serialized

◆ serialize_pose()

MAQUINA_EXPORT std::string maquina::serialize_pose ( const Dict pose)

Serialize the pose in a string.

Parameters
poseThe pose with the values to serialize

◆ set_animated_plug_value()

MAQUINA_EXPORT void maquina::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.

value can be the plug value or an animation curve value to use to animate this plug.

Parameters
plugThe plug to set
valueThe value to set in the plug
frameIf the plug is animated or if create_curve is true, this is the frame where to insert the value in the animation curve.
create_curveIf true, create an animation curve on the plug if no curve already exist.
layer_valueIf true, value is directly stored in the layer curve with no modification. If false, value is expressed as a final channel value, being automatically modified and stored in the curve layer as an intermediate value so the evaluated channel value will be equal to asked value.

◆ set_current_frame()

MAQUINA_EXPORT void maquina::set_current_frame ( float  frame)

set the current frame

◆ set_path_variables()

MAQUINA_EXPORT void maquina::set_path_variables ( const std::vector< std::pair< std::string, std::wstring >> &  path_vars)

Register the path variables.

Path variables are pairs (VARIABLE,path). Variables can be used inside document path like this : "$(VARIABLE)/local_path/file.ext"

◆ set_project_directory()

MAQUINA_EXPORT void maquina::set_project_directory ( const wchar_t *  path)

Set the project directory.

This directory is set by the user to a local filesystem path. It is used to prefix a relative file path and turn it into a local filesystem path.

◆ set_setting()

MAQUINA_EXPORT void maquina::set_setting ( const char *  path,
const Value value 
)

Set a setting value.

Set the setting value using the setting path.

Exceptions
std::runtime_errorWhen the setting is not found.

◆ setting()

MAQUINA_EXPORT Value maquina::setting ( const char *  path)

Get a setting value.

Returns the setting value using the setting path.

Exceptions
std::runtime_errorWhen the setting is not found.

◆ Shape::write_attribute< Buffer< Imath::V2f > >()

MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer<Imath::V2f> maquina::Shape::write_attribute< Buffer< Imath::V2f > > ( const char *  attribute_name,
Topology  topology 
)

◆ Shape::write_attribute< Buffer< Imath::V3f > >()

MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer<Imath::V3f> maquina::Shape::write_attribute< Buffer< Imath::V3f > > ( const char *  attribute_name,
Topology  topology 
)

◆ Shape::write_attribute< Buffer< Imath::V4f > >()

MAQUINA_EXTERN_TEMPLATE MAQUINA_EXPORT Buffer<Imath::V4f> maquina::Shape::write_attribute< Buffer< Imath::V4f > > ( const char *  attribute_name,
Topology  topology 
)

◆ Shape::write_attribute< IndexedBuffer< Imath::V2f > >()

◆ Shape::write_attribute< IndexedBuffer< Imath::V3f > >()

◆ Shape::write_attribute< IndexedBuffer< Imath::V4f > >()

◆ Shape::write_attribute< SparseBuffer< Imath::V2f > >()

◆ Shape::write_attribute< SparseBuffer< Imath::V3f > >()

◆ Shape::write_attribute< SparseBuffer< Imath::V4f > >()

◆ solve_cubic() [1/2]

MAQUINA_EXPORT int maquina::solve_cubic ( float  a,
float  b,
float  c,
float  d,
float *  roots 
)

Solve a cubic equation.

◆ solve_cubic() [2/2]

MAQUINA_EXPORT int maquina::solve_cubic ( double  a,
double  b,
double  c,
double  d,
double *  roots 
)

Solve a cubic equation.

◆ start_profiling()

MAQUINA_EXPORT void maquina::start_profiling ( )

Start an interactive profiling session.

◆ static_assert_cast()

template<class To , class From >
Ptr<To> maquina::static_assert_cast ( const Ptr< From > &  p)
inline

◆ system_path()

MAQUINA_EXPORT std::wstring maquina::system_path ( const wchar_t *  path)

Expand a document file path in a file system path.

◆ system_path_local()

MAQUINA_EXPORT std::string maquina::system_path_local ( const wchar_t *  path)

Expand a document file path in a file system path.

Use this only with an API which does not support wchar_t.

◆ target_layer()

MAQUINA_EXPORT Node maquina::target_layer ( const Plug plug)

Return the layer receiving the plug animation.

Returns the layer that will receive the animation for this plug.

Parameters
plugThe asset plug

◆ time_warp_keys()

MAQUINA_EXPORT void maquina::time_warp_keys ( Node anim_layer)

Time warp the active key selection using the selection rubberband.

◆ to_log()

MAQUINA_EXPORT std::string maquina::to_log ( const std::wstring &  s)

Convert a wide string in string to use in the logger functions.

◆ tool_selection()

MAQUINA_EXPORT std::vector<std::shared_ptr<NodeDelegate> > maquina::tool_selection ( )

Return the active tool delegate selection.

◆ transform_curve_keys()

MAQUINA_EXPORT void maquina::transform_curve_keys ( const Plug plug,
std::unordered_map< float, float > &  original_to_transformed_keys 
)

◆ transform_keys()

MAQUINA_EXPORT void maquina::transform_keys ( Node anim_layer)

Transform the active key selection using the selection rubberband.

◆ undo()

MAQUINA_EXPORT void maquina::undo ( )

Make a undo step.

◆ undo_blend()

MAQUINA_EXPORT void maquina::undo_blend ( float  undo_blend)

Set the undo blend factor of the last modification.

◆ ungroup_layer()

MAQUINA_EXPORT void maquina::ungroup_layer ( Node layer_group)

Ungroup layer.

Parameters
layer_groupThe group layer

◆ utf8_to_wstring()

MAQUINA_EXPORT std::wstring maquina::utf8_to_wstring ( const char *  uft8)

Convert an utf-8 string into a std::wstring.

◆ warn()

template<typename... Args>
void maquina::warn ( const char *  format,
const Args &...  args 
)

Log a warning message using the Rumba logger.

◆ weighted_sum()

MAQUINA_EXPORT Value maquina::weighted_sum ( const Array values,
const std::vector< double > &  weights 
)

Returns the weighted sum of the input values.

Note
Expects all the values to have the same type, which must be weight-summable.

◆ workspace()

MAQUINA_EXPORT Workspace maquina::workspace ( )

Return the workspace node.

◆ wstring_to_local()

MAQUINA_EXPORT std::string maquina::wstring_to_local ( const wchar_t *  str)

Convert a std::wstring into a string in the default system charset.

◆ wstring_to_utf8()

MAQUINA_EXPORT std::string maquina::wstring_to_utf8 ( const wchar_t *  str)

Convert a std::wstring into an utf-8 string.

Variable Documentation

◆ Buffer< double >

◆ Buffer< float >

◆ Buffer< int32_t >

◆ Buffer< uint32_t >

◆ Buffer< uint8_t >

◆ BufferConst< double >

◆ BufferConst< float >

◆ BufferConst< int32_t >

◆ BufferConst< uint32_t >

◆ BufferConst< uint8_t >

◆ IndexedBuffer< double >

◆ IndexedBuffer< float >

◆ IndexedBuffer< int32_t >

◆ IndexedBuffer< uint32_t >

◆ IndexedBuffer< uint8_t >

◆ IndexedBufferConst< double >

◆ IndexedBufferConst< float >

◆ IndexedBufferConst< int32_t >

◆ IndexedBufferConst< uint32_t >

◆ IndexedBufferConst< uint8_t >

◆ SparseBuffer< double >

◆ SparseBuffer< float >

◆ SparseBuffer< int32_t >

◆ SparseBuffer< uint32_t >

◆ SparseBuffer< uint8_t >

◆ SparseBufferConst< double >

◆ SparseBufferConst< float >

◆ SparseBufferConst< int32_t >

◆ SparseBufferConst< uint32_t >

◆ SparseBufferConst< uint8_t >