Rumba C++ SDK
Utils.h File Reference
#include "Export.h"
#include <functional>
#include <gsl/gsl>

Go to the source code of this file.

Namespaces

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

Functions

template<class V , class M >
maquina::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 >
maquina::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 maquina::is_identity (const Imath::Matrix44< T > &m)
 Returns true if the matrix is the identity. More...
 
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)
 
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. More...
 
MAQUINA_EXPORT Imath::V3f maquina::closest_point_segment_to_segment (const Imath::V3f *s1, const Imath::V3f *s2)
 
MAQUINA_EXPORT Imath::V3d maquina::closest_point_segment_to_segment (const Imath::V3d *s1, const Imath::V3d *s2)
 
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. More...
 
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. More...
 
MAQUINA_EXPORT void maquina::get_orthogonal_vectors (const Imath::V3d &fx, Imath::V3d &fy, Imath::V3d &fz)
 
MAQUINA_EXPORT Imath::M44f maquina::blend_to_identity (const Imath::M44f &a, float w)
 Blend a matrix to identity. More...
 
MAQUINA_EXPORT Imath::M44d maquina::blend_to_identity (const Imath::M44d &a, double w)
 
MAQUINA_EXPORT Imath::M44d maquina::lerp (const Imath::M44d &a, const Imath::M44d &b, double w)
 Interplate two matrices. More...
 
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)
 
MAQUINA_EXPORT int maquina::solve_cubic (float a, float b, float c, float d, float *roots)
 Solve a cubic equation. More...
 
MAQUINA_EXPORT int maquina::solve_cubic (double a, double b, double c, double d, double *roots)
 Solve a cubic equation. More...
 
MAQUINA_EXPORT std::vector< uint8_t > maquina::deflate (const uint8_t *data, size_t size)
 Compress a bunch of binary data with zlib. More...
 
MAQUINA_EXPORT std::vector< uint8_t > maquina::inflate (const uint8_t *data, size_t size)
 Uncompress a bunch of binary data with zlib. More...
 
MAQUINA_EXPORT std::string maquina::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 > maquina::base64_decode (const char *text, size_t size)
 Decode a bunch of binary data from a base64 text. More...
 
MAQUINA_EXPORT std::wstring maquina::system_path (const wchar_t *path)
 Expand a document file path in a file system path. More...
 
MAQUINA_EXPORT std::string maquina::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 > > & maquina::path_variables ()
 Return the currently registered path variables. More...
 
MAQUINA_EXPORT void maquina::set_path_variables (const std::vector< std::pair< std::string, std::wstring >> &path_vars)
 Register the path variables. More...
 
MAQUINA_EXPORT std::wstring maquina::project_path (const wchar_t *system_path)
 Reduce a file system path to a project file path. More...
 
MAQUINA_EXPORT std::wstring maquina::utf8_to_wstring (const char *uft8)
 Convert an utf-8 string into a std::wstring. More...
 
MAQUINA_EXPORT std::string maquina::wstring_to_utf8 (const wchar_t *str)
 Convert a std::wstring into an utf-8 string. More...
 
MAQUINA_EXPORT std::wstring maquina::local_to_wstring (const char *str)
 Convert a string in the default system charset into a std::wstring. More...
 
MAQUINA_EXPORT std::string maquina::wstring_to_local (const wchar_t *str)
 Convert a std::wstring into a string in the default system charset. More...
 
MAQUINA_EXPORT std::string maquina::to_log (const std::wstring &s)
 Convert a wide string in string to use in the logger functions. More...
 
MAQUINA_EXPORT std::wstring maquina::getenv_w (const char *name)
 Return the content of an environment variable. More...
 
MAQUINA_EXPORT bool maquina::list_directory_files (const wchar_t *directory, std::vector< std::wstring > &files)
 
MAQUINA_EXPORT bool maquina::file_exists (const wchar_t *file)
 Return true if a file exist. More...
 
MAQUINA_EXPORT std::string maquina::file_extension (const wchar_t *file)
 Return a file extension. More...
 
MAQUINA_EXPORT std::wstring maquina::file_name (const wchar_t *file)
 Return a file name. More...
 
MAQUINA_EXPORT std::wstring maquina::parent_path (const wchar_t *file)
 Return a file parent path. More...
 
MAQUINA_EXPORT std::wstring maquina::project_directory ()
 Return the project directory. More...
 
MAQUINA_EXPORT void maquina::set_project_directory (const wchar_t *path)
 Set the project directory. More...
 
MAQUINA_EXPORT void maquina::drm_init (const std::wstring &path, const std::string &license_server)
 Initialize the drm. More...
 
MAQUINA_EXPORT void maquina::drm_release ()
 Release the drm. More...
 
MAQUINA_EXPORT std::pair< bool, std::string > maquina::drm_status ()
 Return the drm status. More...
 
MAQUINA_EXPORT std::string maquina::drm_hostid ()
 Return the system host id. More...
 
MAQUINA_EXPORT bool maquina::has_tag (const std::string &tags, const char *tag)
 Check a tag exist in a comma separate tag list. More...
 
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. More...
 
MAQUINA_EXPORT Imath::Box3f maquina::compute_aabb (const gsl::span< const Imath::V3f > &points)
 Compute points bounding box. More...
 
MAQUINA_EXPORT Value maquina::setting (const char *path)
 Get a setting value. More...
 
MAQUINA_EXPORT void maquina::set_setting (const char *path, const Value &value)
 Set a setting value. More...