fastest 3D software for linux

Linux 3D
interactive ray-tracing
[1 introduction] [2 overview] [3 reference] [4 GUI]

Index

 E3dAnimation_AddChannel
 E3dAnimation_RemoveChannel
 E3dAnimation_RemoveChannels
 E3dAnimation_ClassFindByName
 E3dAnimation_ClassRegister
 E3dAnimation_ClassRegisterInactive
 E3dAnimation_ClassDeactivate
 E3dKeyframeAmination_AddChannel
 E3dAnimation_ChannelAddKeyFrame
 E3dKeyFrameAnimation_AddKey
 E3dAnimationChannel_SampleFrames
 E3dAnimStack_AnimationAppend
 E3dAnimStack_AnimationAdd
 E3dAnimStack_AnimationRemove


E3dAnimation_AddChannel

Add a new Channel to an Animation

Syntax
E3dAnimationChannel* E3dAnimation_AddChannel(E3dAnimation* PAnimation)

Argument
E3dAnimation* PAnimation Pointer to the Animation
Description
Adds a new Channel to PAnimation.

Return value
Pointer to the new Channel, or NULL, in case of an error.

E3dAnimation_RemoveChannel

Remove a Channel from an Animation

Syntax
int E3dAnimation_RemoveChannel(E3dAnimation* PAnimation, E3dAnimationChannel* PChannel)

Argument
E3dAnimation* PAnimation Pointer to the Animation E3dAnimationChannel* PChannel Pointer to the Channel to remove
Description
Removes PChannel from PAnimation.

Return value
E_SUCCESS on success, or an error code.

E3dAnimation_RemoveChannels

Remove all Channels from an Animation

Syntax
void E3dAnimation_RemoveChannels(E3dAnimation* PAnimation)

Argument
E3dAnimation* PAnimation Pointer to the Animation
Description
Removes all Channels from PAnimation.

Return value
None.

E3dAnimation_ClassFindByName

Find an Animation class by its name

Syntax
E3dAnimationClass* E3dAnimation_ClassFindByName(const char* PName)

Argument
const char* PName The name
Description
Find a registered Animation class by name.

Return value
Pointer to the Animation class, or NULL, if it was not found.

E3dAnimation_ClassRegister

Register a new Animation class

Syntax
E3dAnimationClass* E3dAnimation_ClassRegister(const E3dAnimationClass* PDescriptor)

Argument
const E3dAnimationClass* PDescriptor Template structure for the new class
Description
Register a new Animation class.

Return value
Pointer to the newly registered Animation class, or NULL, in case of an error.

E3dAnimation_ClassRegisterInactive

Register a "blank" Animation class

Syntax
E3dAnimationClass* E3dAnimation_ClassRegisterInactive(const char* PName)

Argument
const char* PName The name
Description
Register a new, inactive Animation class, with only the class name (no constructor/destructor etc.).
These are used as place holders until, for example until the plugin that implements this class is loaded.
This allows for creating instances of this class (e.g. when reading a file) before the class implementation is available.

Return value
Pointer to the newly registered Animation class, or NULL, in case of an error.

E3dAnimation_ClassDeactivate

Deactivate an Animation class

Syntax
void E3dAnimation_ClassDeactivate(E3dAnimationClass* PClass)

Argument
E3dAnimationClass* PClass Pointer to the class
Description
Deactivate a registered Animation class, but don't remove it from the database. This is usualy done when the plugin that registered the class is unloaded. This allows for unloading / modifying / recompiling / reloading plugins without losing all the objects of this class. All instances (objects of this class) will be deactivated. If the plugin is reloaded, it can reconfigure and reactivate the class and all objects of this class will be functional again.

Return value
None.

E3dKeyframeAmination_AddChannel

Add a Channel to a KeyFrameAnimation

Syntax
E3dKeyFrameAnimationChannel* E3dKeyframeAmination_AddChannel(E3dKeyFrameAnimation* PAnimation, const char* PName, const EcRGBAp8Color PColor, EObject* PTargetObject, EObject* PTargetSubObject, const EResource* PTargetMember, const EIndex PTargetIndex, const EIndex PNCurvePoints)

Arguments
E3dKeyFrameAnimation* PAnimation The Animation const char* PName The name of the new Channel const EcRGBAp8Color PColor Color for the new Channel's curve EObject* PTargetObject The targetted Object (e.g. Node) EObject* PTargetSubObject The targetted SubObject (Rotation, ObjectComponent, etc.) const EResource* PTargetMember The targetted member (field) of PTargetSubObject (".X", ".Offset", etc.) const EIndex PTargetIndex The targetted element if PTargetMember is an array const EIndex PNCurvePoints Numbe of points to allocate on the curve
Description
Add a new Channel to a KeyFrameAnimation and initialize it. If PNCurvePoints is -1, no Spline is created. Otherwise, a Spline is created and assigned to the Curve member. If PNCurvePoints > 0, CVs will be allocated for the Spline as well.

Return value
Pointer to the new Channel, or NULL in case of an error

E3dAnimation_ChannelAddKeyFrame

Add a KeyFrame to an AnimationChannel

Syntax
EIndex E3dAnimation_ChannelAddKeyFrame(E3dKeyFrameAnimationChannel* PChannel, const double PTime, const double PTimeEpsilon, const double PValue, const int PInterpolation, const E3dCoordinate PEaseInOut, const EBool PTesselateCurves)

Arguments
E3dKeyFrameAnimationChannel* PChannel Pointer to the AnimationChannel const double PTime Time value (X) const double PTimeEpsilon Find closest existing key within this distance from PTime const double PValue Output value (Y) const int PInterpolation Interpolation type of the segment starting at the new key (e.g. E3dSplLINEAR) const E3dCoordinate PEaseInOut Smooth tranision (spline CV tangent length proportional to the closest key in that direction) PUpdateSplines If TRUE, call E3dSpline_CreateLinearSegments for the curve
Description
Add a new key (CV) to a KeyFrame Animation channel. If PTimeEpsilon is negative, the new key will be simply added after the last one (no proximity range is used for finding the insertion position).

Return value
The index of the new key (Spline CV)

E3dKeyFrameAnimation_AddKey

Add KeyFrame to a KeyFrame Animation

Syntax
EIndex E3dKeyFrameAnimation_AddKey(E3dKeyFrameAnimation* PAnimation, E3dKeyFrameAnimationChannel** PChannelRet, const char* PName, const EcRGBAp8Color PColor, const double PTime, const double PTimeEpsilon, const double PValue, const int PInterpolation, const E3dCoordinate PEaseInOut, EObject* PTargetObject, EObject* PTargetSubObject, const EResource* PTargetMember, const EIndex PTargetIndex, const EBool PUpdateSplines)

Arguments
E3dKeyFrameAnimation* PAnimation Pointer to the Animation E3dKeyFrameAnimationChannel** PChannelRet Return value for the Channel const char* PName Channel name const EcRGBAp8Color PColor RGBA8 color for the Channel's curve (Spline) const double PTime Time value (X) const double PTimeEpsilon Find closest existing key within this distance from PTime const double PValue Output value (Y) const E3dCoordinate PEaseInOut Smooth tranision (spline CV tangent length proportional to the closest key in that direction) const int PInterpolation Interpolation type of the segment starting at the new key (e.g. E3dSplLINEAR) EObject* PTargetObject The targetted Object (e.g. Node) EObject* PTargetSubObject The targetted SubObject (Rotation, ObjectComponent, etc.) const EResource* PTargetMember The targetted member (field) of PTargetSubObject (".X", ".Offset", etc.) const EIndex PTargetIndex The targetted element if PTargetMember is an array const EBool PUpdateSplines If TRUE, call E3dSpline_CreateLinearSegments for the curve
Description
Add a new key (CV) to a KeyFrame Animation. It looks up the Animation Channel, based on PTargetObject, PTargetSubObject and PTargetMember. If that channel does not exist under PAnimation, it creates a new Channel, wit the given name and curve (Spline ) color. If PTimeEpsilon is negative, no proximity range is used for finding the insertion position for the new key.

Return value
PName Channel name PColor RGBA8 color for the Channel's curve (Spline) PTime Time value (X) PTimeEpsilon Find closest existing key within this distance from PTime PValue Output value (Y) PEaseInOut Smooth tranision (spline CV tangent length proportional to the closest key in that direction) PInterpolation Interpolation type of the segment starting at the new key (e.g. E3dSplLINEAR) PTargetObject The targetted Object (e.g. Node) PTargetSubObject The targetted SubObject (Rotation, ObjectComponent, etc.) PTargetMember The targetted member (field) of PTargetSubObject (".X", ".Offset", etc.) PTargetIndex The targetted element if PTargetMember is an array PUpdateSplines If TRUE, call E3dSpline_CreateLinearSegments for the curve

E3dAnimationChannel_SampleFrames

Sample the values of an AnimationChannel at a regular interval

Syntax
EIndex E3dAnimationChannel_SampleFrames(E3dAnimationChannel* PChannel, const double PStartTime, const double PEndTime, const double PFramesPerSecond, float** PValuesP, EIndex* PValues_CountAllocatedP)

Arguments
E3dAnimationChannel* PChannel The channel const double PStartTime The starting time const double PEndTime The ending time const double PFramesPerSecond Sample rate float** PValuesP Pointer to return the resulting array EIndex* PValues_CountAllocatedP Number of entries allocated
Description
Samples the Y values of PChannel in 1/PFramesPerSecond steps in the time interval given. PValues_CountAllocatedP allows for reusing an array between calls to this function, rather than allocating/freeing several times. If PStartTime is E3dSTARTF, sample from the beginning of data found in the animation (e.g. the lowest X value of an animation curve). If PEndTime is E3dENDF, sample to the end of data found in the animation (e.g. the largest X value of an animation curve).

Return value
The number of samples.

E3dAnimStack_AnimationAppend

Append an Animation to an AnimStack

Syntax
void E3dAnimStack_AnimationAppend(E3dAnimStack* PStack, E3dAnimation* PAnimation)

Arguments
E3dAnimStack* PStack Pointer to the AnimStack structure E3dAnimation* PAnimation Pointer to the new Animation structure
Description
Checks if the given Animation is in the given stack. If not, adds it to the array: PStack->Animations.

Return value
None.

See also
E3dAnimStack_AnimationRemove

E3dAnimStack_AnimationAdd

Create a new Animation and add it to an AnimStack

Syntax
E3dAnimation* E3dAnimStack_AnimationAdd(E3dAnimStack* PStack, E3dAnimationClass* PClass)

Arguments
E3dAnimStack* PStack Pointer to the AnimStack structure PAnimation Pointer to the new Animation structure
Description
Creates an Animation of the given Class, and adds it to the array: PAnimStack->Animations.

Return value
None.

See also
E3dAnimStack_AnimationRemove

E3dAnimStack_AnimationRemove

Remove an Animation from an AnimStack

Syntax
EBool E3dAnimStack_AnimationRemove(E3dAnimStack* PStack, E3dAnimation* PAnimation, const EBool PRemoveResidentAnim)

Arguments
E3dAnimStack* PStack Pointer to the AnimStack E3dAnimation* PAnimation Pointer to the Animation const EBool PRemoveResidentAnim Remove Animation, even if it's marked non-Removable
Description
Checks if the given hierarchy is in the Scene (it's in Animations array of the Scene). If it is, it removes it from that array.

Return value
TRUE on success, FALSE if failed (e.g. PAnimation was not in PScene)

See also
E3dAnimStack_AnimationAdd
© 1996-2022 By Gabor Nagy