#include <c4d_ccurve.h>

Public Types | |
| typedef BaseList2D | SUPER |
Public Types inherited from BaseList2D | |
| typedef GeListNode | SUPER |
Public Types inherited from GeListNode | |
| typedef PrivateChunk | SUPER |
Protected Member Functions | |
| void | CalcRemoveOvershoot (Int32 kidx, Float *vl, Float *vr, BaseTime *tl, BaseTime *tr) const |
| void | AdjustTangentAutoWeight (Int32 keyIndex) |
| void | CalcAutoWeight (Int32 kidx, Float *vl, Float *vr, BaseTime *tl, BaseTime *tr) const |
Protected Member Functions inherited from BaseList2D | |
| void | SetID (Int32 id) |
| virtual Bool | GetDParameter (const DescID &id, GeData &data) |
| virtual Bool | SetDParameter (const DescID &id, const GeData &data) |
| virtual Int32 | GetInstanceType () const |
Private Member Functions | |
| CCurve () | |
| ~CCurve () | |
| const CCurve & | operator= (const CCurve &seq) |
| Bool | _LoadKeysHack () |
| Float64 | GetPercent (Float64 prevValue, Float64 nextValue) const |
| CKey * | InsertKeyI (CKey *ckey, Int32 *idx) |
| virtual void | InsertBefore (GeListNode *op) |
| virtual void | InsertAfter (GeListNode *op) |
| virtual void | Remove () |
| virtual void | InsertUnder (GeListNode *op) |
| virtual void | InsertUnderLast (GeListNode *op) |
| virtual void | FlushChilds () |
Private Attributes | |
| GeTempDynArray< CKey > | m_keys |
| RootCKey | m_root_key |
| CTrack * | _parentTrack |
Friends | |
| class | CKey |
| class | CTrack |
Key | |
| Int32 | GetKeyCount () const |
| const CKey * | GetKey (Int32 index) const |
| CKey * | GetKey (Int32 index) |
| const CKey * | FindKey (const BaseTime &time, Int32 *idx=nullptr, FINDANIM match=FINDANIM_EXACT) const |
| CKey * | FindKey (const BaseTime &time, Int32 *idx=nullptr, FINDANIM match=FINDANIM_EXACT) |
| CKey * | AddKey (const BaseTime &time, Int32 *nidx=nullptr, Bool synchronizeKeys=false) |
| CKey * | AddKeyAdaptTangent (const BaseTime &time, Int32 *nidx=nullptr, Bool synchronizeKeys=false) |
| Bool | InsertKey (const CKey *ckey, Bool synchronizeKeys=false) |
| Bool | DelKey (Int32 index, Bool synchronizeKeys=false) |
| Int32 | MoveKey (const BaseTime &time, Int32 idx, CCurve *dseq=nullptr, Bool synchronizeKeys=false) |
| void | FlushKeys (Bool synchronizeKeys=false) |
Calculation | |
| Float64 | CalcHermite (Float64 time, Float64 t1, Float64 t2, Float64 val1, Float64 val2, Float64 tan1_val, Float64 tan2_val, Float64 tan1_t, Float64 tan2_t, Bool deriv) const |
| void | CalcSoftTangents (Int32 kidx, Float *vl, Float *vr, BaseTime *tl, BaseTime *tr) const |
| void | GetTangents (Int32 kidx, Float64 *vl, Float64 *vr, Float64 *tl, Float64 *tr) const |
| Float | GetValue (const BaseTime &time) const |
Miscellaneous | |
| CTrack * | GetTrack () |
| void | SetKeyDefault (BaseDocument *doc, Int32 kidx) |
Start/End Time | |
| BaseTime | GetStartTime () const |
| BaseTime | GetEndTime () const |
Unmuted | |
| const CKey * | FindNextUnmuted (Int32 idx, Int32 *ret_idx=nullptr) const |
| CKey * | FindNextUnmuted (Int32 idx, Int32 *ret_idx=nullptr) |
| const CKey * | FindPrevUnmuted (Int32 idx, Int32 *ret_idx=nullptr) const |
| CKey * | FindPrevUnmuted (Int32 idx, Int32 *ret_idx=nullptr) |
Private | |
| virtual Bool | CopyToX (PrivateChunk *dst, COPYFLAGS flags, AliasTrans *trans) |
| virtual Bool | HandleSubChunk (HyperFile *hf, Int32 id, Int32 level) |
| virtual Bool | Write (HyperFile *hf) |
| Float | GetValueCached (const BaseTime &time, Float64 _time, GetValueCache *cache) const |
| void | FlushKeysI () |
Additional Inherited Members | |
Protected Attributes inherited from BaseList2D | |
| Int32 | m_id |
| RootShader | mp_rootshader |
| RootShader | mp_rootshader_hidden |
| RootShader | root_shader_repository |
| Int32 | l_bitfeld |
| RootCTrack | mp_rootctrack |
| RootPluginNode | root_override |
| NotifyList * | notify_events |
| DescIdStore * | keyframestore |
| DescIdStore * | propstore |
| BaseContainer | m_bc |
| NodeData * | m_data |
Protected Attributes inherited from GeListNode | |
| GeAliasGoal | m_xgoal |
| UInt32 | m_bits [4] |
| RootList2D * | t_rootlist_parent |
| RootList2D * | m_children |
| BaseDocument * | parent_doc |
| void * | unknownData |
| Int | unknownDataSize |
| Int32 | unknownDataLevel |
| Int32 | pluginID |
| typedef BaseList2D SUPER |
|
private |
|
private |
|
virtual |
Reimplemented from BaseList2D.
| Int32 GetKeyCount | ( | ) | const |
Gets the number of keys in the curve.
Gets the const key at index in the curve.
| [in] | index | The key index: 0 <= index < GetKeyCount() |
Gets the key at index in the curve.
| [in] | index | The key index: 0 <= index < GetKeyCount() |
| const CKey* FindKey | ( | const BaseTime & | time, |
| Int32 * | idx = nullptr, |
||
| FINDANIM | match = FINDANIM_EXACT |
||
| ) | const |
Finds the const key at the given time.
| [in] | time | The time to find the key at. |
| [out] | idx | Assigned the index of the found key. |
| [in] | match | The search method: FINDANIM |
| CKey* FindKey | ( | const BaseTime & | time, |
| Int32 * | idx = nullptr, |
||
| FINDANIM | match = FINDANIM_EXACT |
||
| ) |
Finds the key at the given time.
| [in] | time | The time to find the key at. |
| [out] | idx | Assigned the index of the found key. |
| [in] | match | The search method: FINDANIM |
Adds a key to the curve.
| [in] | time | The time to add the key at. |
| [out] | nidx | Assigned the index of the added key. |
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
| CKey* AddKeyAdaptTangent | ( | const BaseTime & | time, |
| Int32 * | nidx = nullptr, |
||
| Bool | synchronizeKeys = false |
||
| ) |
Adds a key to the curve but retains the curve's current curvature.
| [in] | time | The time to add the key at. |
| [out] | nidx | Assigned the new key index. |
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
Inserts a key into the curve.
| [in] | ckey | The key to insert. The curve takes over the ownership of the pointed key. |
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
Deletes a key from the curve.
| [in] | index | The index of the key to delete: 0 <= index < GetKeyCount() |
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
| Int32 MoveKey | ( | const BaseTime & | time, |
| Int32 | idx, | ||
| CCurve * | dseq = nullptr, |
||
| Bool | synchronizeKeys = false |
||
| ) |
Moves a key in the curve.
| [in] | time | The time to move the key to. |
| [in] | idx | The index of the key to move: 0 <= index < GetKeyCount() |
| [in] | dseq | An optional destination curve to move the key to. |
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
| void FlushKeys | ( | Bool | synchronizeKeys = false | ) |
Removes all keys from the curve.
| [in] | synchronizeKeys | If true the routine is called on other components of the vector (if valid). Curve must be part of a Track. Since 18.002 |
| Float64 CalcHermite | ( | Float64 | time, |
| Float64 | t1, | ||
| Float64 | t2, | ||
| Float64 | val1, | ||
| Float64 | val2, | ||
| Float64 | tan1_val, | ||
| Float64 | tan2_val, | ||
| Float64 | tan1_t, | ||
| Float64 | tan2_t, | ||
| Bool | deriv | ||
| ) | const |
Calculates the Hermite spline between two sets of key values.
| [in] | time | The time to evaluate. |
| [in] | t1 | The first time. |
| [in] | t2 | The second time. |
| [in] | val1 | The first value. |
| [in] | val2 | The second value. |
| [in] | tan1_val | The first tangent value. |
| [in] | tan2_val | The second tangent value. |
| [in] | tan1_t | The first tangent time. |
| [in] | tan2_t | The second tangent time. |
| [in] | deriv | If true the derivative is calculated instead of the value. |
Calculates the soft tangents (i.e. auto interpolation) around a key.
| [in] | kidx | The key index: 0 <= kidx < GetKeyCount() |
| [out] | vl | Assigned the left value. |
| [out] | vr | Assigned the right value. |
| [out] | tl | Assigned the left time. |
| [out] | tr | Assigned the right time. |
Computes the tangents of a key, taking into account all options like zero slope, link slope etc.
| [in] | kidx | The key index: 0 <= kidx < GetKeyCount() |
| [out] | vl | Assigned the left value. |
| [out] | vr | Assigned the right value. |
| [out] | tl | Assigned the left time. |
| [out] | tr | Assigned the right time. |
Gets the value calculated at time, taking into account things like time curves.
| [in] | time | The time to calculate the value at. |
| CTrack* GetTrack | ( | ) |
Gets the track of the curve.
| void SetKeyDefault | ( | BaseDocument * | doc, |
| Int32 | kidx | ||
| ) |
Sets the defaults for key kidx of the curve.
This includes lock, mute, clamp, break, auto properties, interpolation and tangents.
This setup a value and complete the missing properties with the defaults.
| [in] | doc | The curve's document. |
| [in] | kidx | The key index. |
| BaseTime GetStartTime | ( | ) | const |
Gets the start time of the curve.
| BaseTime GetEndTime | ( | ) | const |
Gets the end time of the curve.
Finds the next unmuted key (read-only).
| [in] | idx | The key index to start the search from: 0 <= idx < GetKeyCount() |
| [out] | ret_idx | Assigned the found key index. |
Finds the next unmuted key (writable).
| [in] | idx | The key index to start the search from: 0 <= idx < GetKeyCount() |
| [out] | ret_idx | Assigned the found key index. |
Finds the previous unmuted key (read-only).
| [in] | idx | The key index to start the search from: 0 <= idx < GetKeyCount() |
| [out] | ret_idx | Assigned the found key index. |
Finds the previous unmuted key (writable).
| [in] | idx | The key index to start the search from: 0 <= idx < GetKeyCount() |
| [out] | ret_idx | Assigned the found key index. |
|
virtual |
Private.
Reimplemented from BaseList2D.
Private.
Reimplemented from BaseList2D.
Private.
Reimplemented from BaseList2D.
| Float GetValueCached | ( | const BaseTime & | time, |
| Float64 | _time, | ||
| GetValueCache * | cache | ||
| ) | const |
Private.
| void FlushKeysI | ( | ) |
Private.
|
protected |
|
protected |
|
protected |
|
private |
|
privatevirtual |
|
privatevirtual |
|
privatevirtual |
Removes the node from its list.
Reimplemented from BaseList2D.
|
privatevirtual |
|
privatevirtual |
|
privatevirtual |
|
friend |
|
friend |
|
private |
|
private |
|
private |