Rumba C++ SDK
maquina::AnimCurve Class Reference

An animation curve. More...

#include <AnimCurve.h>

Inheritance diagram for maquina::AnimCurve:
maquina::Value maquina::AnimCurveFloat

Classes

class  Key
 A curve key. More...
 

Public Member Functions

 AnimCurve (const Value &v)
 Cast a Value object in AnimCurve. More...
 
AnimCurve create_empty () const
 Return an empty curve of the same type than this. More...
 
size_t size () const
 Returns the number of keys. More...
 
AnimCurve copy_keys (const gsl::span< const int > &keys) const
 Duplicate a subset of the curve. More...
 
std::vector< int > selected_keys () const
 Return a vector of the selected key indices. More...
 
int key_index (float t) const
 Returns the key at t time or -1 if no such key. More...
 
int previous_key (float t) const
 Returns the key with the biggest but strictly lower than t time or -1 if no such key. More...
 
int next_key (float t) const
 Returns the key with the lowest but strictly higher than t time or -1 if no such key. More...
 
size_t insert_key (const Key &key, bool before=true)
 
void remove_key (size_t i)
 Remove the i-th key. More...
 
const Key operator[] (size_t i) const
 Get a key. More...
 
float interpolate (float t, CycleMode pre_cycle_mode, CycleMode post_cycle_mode) const
 This method is used by the curve editor to get a Y value. More...
 
void normalize (bool repeat)
 Normalize the curve once it has been modified to re-apply the tangents modes. More...
 
- Public Member Functions inherited from maquina::Value
 Value ()
 
 Value (Value &&other)=default
 
 Value (const Value &other)=default
 
Valueoperator= (Value &&other)=default
 
Valueoperator= (const Value &other)=default
 
virtual ~Value ()=default
 
Value duplicate () const
 Duplicate the value. More...
 
bool as_bool () const
 Returns the value as a bool. More...
 
int as_int () const
 Returns the value as an integer. More...
 
float as_float () const
 Returns the value as a float. More...
 
double as_double () const
 Returns the value as a double. More...
 
const std::string & as_string () const
 Returns the value as a string. More...
 
std::wstring as_wstring () const
 Returns the value as a wstring. More...
 
Imath::V2f as_V2f () const
 Returns the value as a V2f. More...
 
Imath::V3f as_V3f () const
 Returns the value as a V3f. More...
 
Imath::V4f as_V4f () const
 Returns the value as a V4f. More...
 
const Imath::V2das_V2d () const
 Returns the value as a V2d. More...
 
const Imath::V3das_V3d () const
 Returns the value as a V3d. More...
 
const Imath::V4das_V4d () const
 Returns the value as a V4d. More...
 
const Imath::V2ias_V2i () const
 Returns the value as a V2i. More...
 
const Imath::V3ias_V3i () const
 Returns the value as a V3i. More...
 
const Imath::V4ias_V4i () const
 Returns the value as a V4i. More...
 
Imath::M44f as_M44f () const
 Returns the value as a M44f. More...
 
const Imath::M44das_M44d () const
 Returns the value as a M44d. More...
 
const Imath::Box3fas_Box3f () const
 Returns the value as a Box3f. More...
 
const Imath::Color4fas_Color4f () const
 Returns the value as a Color4f. More...
 
Imath::Quatf as_Quatf () const
 Returns the value as a Quatf. More...
 
const Imath::Quatdas_Quatd () const
 Returns the value as a Quatd. More...
 
std::shared_ptr< const UserDataas_user_data () const
 Returns the value as a user data. More...
 
StringView type_name () const
 Return the type name of the Value. More...
 
virtual bool has_node_delegate () const
 Check if this value can produces a NodeDelegate. More...
 
virtual std::shared_ptr< NodeDelegatenode_delegate (const std::shared_ptr< NodeDelegate > &parent, const StringView &name) const
 
bool operator== (const Value &o) const
 Compare the two values. More...
 
bool operator!= (const Value &o) const
 
bool is_instance (const char *value_type_name) const
 Check if this type derives from another value type. More...
 
 operator bool () const
 
 Value (bool)
 Create a boolean value. More...
 
 Value (int)
 Create an integer value. More...
 
 Value (float)
 Create a float value. More...
 
 Value (double)
 Create a double value (stored in a float right now) More...
 
 Value (const char *string)
 Create a string value. More...
 
 Value (const wchar_t *string)
 Create a string value. More...
 
 Value (const std::string &string)
 Create a string value. More...
 
 Value (const std::wstring &string)
 Create a wide string value. More...
 
 Value (const Imath::V2f &)
 Create a Imath::V2f value. More...
 
 Value (const Imath::V3f &)
 Create a Imath::V3f value. More...
 
 Value (const Imath::V4f &)
 Create a Imath::V4f value. More...
 
 Value (const Imath::V2d &)
 Create a Imath::V2d value. More...
 
 Value (const Imath::V3d &)
 Create a Imath::V3d value. More...
 
 Value (const Imath::V4d &)
 Create a Imath::V4d value. More...
 
 Value (const Imath::V2i &)
 Create a Imath::V2i value. More...
 
 Value (const Imath::V3i &)
 Create a Imath::V3i value. More...
 
 Value (const Imath::V4i &)
 Create a Imath::V4i value. More...
 
 Value (const Imath::Color4f &)
 Create a Imath::Color4f value. More...
 
 Value (const Imath::M44f &)
 Create a Imath::M44f value. More...
 
 Value (const Imath::M44d &)
 Create a Imath::M44d value. More...
 
 Value (const Imath::Box3f &)
 Create a Imath::Box3f value. More...
 
 Value (const Imath::Quatf &)
 Create a Imath::Quatf value. More...
 
 Value (const Imath::Quatd &)
 Create a Imath::Quatd value. More...
 
 Value (const std::shared_ptr< const UserData > &user_data)
 Create a user data value. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from maquina::Value
static bool validate_type_name (const char *type_name)
 Return true if the name is a valid type name. More...
 
static Value get_default_value (const char *type_name)
 Return a default value for a given type. More...
 
- Static Public Attributes inherited from maquina::Value
static const Value default_value
 The default value. More...
 

Detailed Description

An animation curve.

Constructor & Destructor Documentation

◆ AnimCurve()

maquina::AnimCurve::AnimCurve ( const Value v)

Cast a Value object in AnimCurve.

If v has not the good type, a default value is constructed.

Member Function Documentation

◆ copy_keys()

AnimCurve maquina::AnimCurve::copy_keys ( const gsl::span< const int > &  keys) const

Duplicate a subset of the curve.

keys are the indices of the keys to include in the returned curve.

◆ create_empty()

AnimCurve maquina::AnimCurve::create_empty ( ) const

Return an empty curve of the same type than this.

◆ insert_key()

size_t maquina::AnimCurve::insert_key ( const Key key,
bool  before = true 
)

Insert a key and return its index. If the key is at the same time than another key, the key is inserted BEFORE the previous keys if before is true, AFTER if before is false.

◆ interpolate()

float maquina::AnimCurve::interpolate ( float  t,
CycleMode  pre_cycle_mode,
CycleMode  post_cycle_mode 
) const

This method is used by the curve editor to get a Y value.

◆ key_index()

int maquina::AnimCurve::key_index ( float  t) const

Returns the key at t time or -1 if no such key.

◆ next_key()

int maquina::AnimCurve::next_key ( float  t) const

Returns the key with the lowest but strictly higher than t time or -1 if no such key.

◆ normalize()

void maquina::AnimCurve::normalize ( bool  repeat)

Normalize the curve once it has been modified to re-apply the tangents modes.

◆ operator[]()

const Key maquina::AnimCurve::operator[] ( size_t  i) const
inline

Get a key.

◆ previous_key()

int maquina::AnimCurve::previous_key ( float  t) const

Returns the key with the biggest but strictly lower than t time or -1 if no such key.

◆ remove_key()

void maquina::AnimCurve::remove_key ( size_t  i)

Remove the i-th key.

◆ selected_keys()

std::vector<int> maquina::AnimCurve::selected_keys ( ) const

Return a vector of the selected key indices.

◆ size()

size_t maquina::AnimCurve::size ( ) const

Returns the number of keys.


The documentation for this class was generated from the following file: