The delta morph targets are stored as a plugin extension of the base geometry data, and are compressed by excluding sequences of vertices where the delta is zero.
Although it is possible to directly manipulate the amounts of each morph target applied to the base geometry, a standard animation system is provided.
Before any of the plugin functions are used, the plugin should be attached using RpDMorphPluginAttach.
|
RpDMorphAnimationCreate is used to create a delta morph animation that may be used to control a delta morph atomic. The animation contains a keyframe sequence for every delta morph target which specifies how the amount of that target varies over time. The sequences can be created for each target using RpDMorphAnimationCreateFrames. A sequence may be absent for morph targets which are not controlled by the animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationCreateFrames creates a keyframe sequence in a delta morph animation for driving a particular morph target. This function must be called to create a sequence for every morph target that is to be controlled by the animation. Some sequences may be left absent for morph targets which are unused or which are to be procedurally controlled externally. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationDestroy destroys a delta morph animation and any keyframe sequences it contains. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationDestroyFrames destroys the keyframe sequence in a delta morph animation corresponding to a particular morph target. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameGetDuration is used to get the duration of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameGetEndValue is used to get the end value of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameGetNext is used to get the index of the next frame for a given frame in a morph target sequence of a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameGetStartValue is used to get the start value of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameSet is used to set all the values of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameSetDuration is used to set the duration of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameSetEndValue is used to set the end value of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameSetNext is used to set the next frame for a given frame in a morph target sequence of a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationFrameSetStartValue is used to set the start value of the indexed frame for the indexed morph target sequence in a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationGetNumDMorphTargets returns the number of delta morph targets which may be controlled by a delta morph animation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationGetNumFrames returns the number of keyframes in the sequence of a delta morph animation corresponding to a particular morph target. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationRead will read a delta morph animation from the named file. Internally, this opens a stream on the file, finds the delta morph animation chunk header and then calls RpDMorphAnimationStreamRead before closing the stream The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationStreamGetSize obtains the size in bytes of the binary representation of a delta morph animation. This is used in the binary chunk header to indicate the size of the chunk. The size does not include the size of the chunk header. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationStreamRead read a delta morph animation from the specified binary stream. Note that prior to this function call, a binary delta morph animation chunk (rwID_DMORPHANIMATION) must be found in the stream using the RwStreamFindChunk API function. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required. The sequence to locate and read a delta morph animation from a binary stream is as follows: RwStream *stream; RpDMorphAnimation *newDMorphAnimation; stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "mybinary.xxx"); if( stream ) { if( RwStreamFindChunk(stream, rwID_DMORPHANIMATION, NULL, NULL) ) { newDMorphAnimation = RpDMorphAnimationStreamRead(stream); } RwStreamClose(stream, NULL); }
|
|
RpDMorphAnimationStreamWrite writes a delta morph animation to the specified binary stream, which must have been opened prior to calling this function. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAnimationWrite writes a delta morph animation to the named file. Internally, this opens a stream on the file, calls RpDMorphAnimationStreamWrite, and then closes the stream. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicAddTime is used to advance the animation of a delta morph atomic by the given amount of time. An animation must have already been attached with RpDMorphAtomicSetAnimation. It is not possible to play an animation backwards, and adding negative time will produce invalid results. Note that if the animation loops, the time returned by this function does not reset to zero. It is the total time added to the animation including loops. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetAnimation is used to retrieve the current animation for a delta morph atomic. This would have previously been set using RpDMorphAtomicSetAnimation. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetAnimFrame is used to obtain the index of the current frame in an animation to which a specific delta morph target is attached. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetAnimFrameTime returns the interpolation time within the current animation frame of the specified delta morph target. The time is zero at the start of the frame and equal to the frame duration at the end. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetAnimLoopCallBack is used to retrieve the the function that will be called whenever a delta morph animation loops. The callback data pointer may also be returned if required. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetAnimTime is used to obtain the total amount of time added to the animation of a delta morph atomic. It is not possible to set the absolute animation time directly. However, this may be achieved by re-setting the animation using RpDMorphAtomicSetAnimation and then adding the appropriate time, with RpDMorphAtomicAddTime. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicGetDMorphValues is used to retrieve the array of values from a delta morph atomic specifying the amounts of each delta morph target in the current morph state. The values may be altered to change the morph state. This may be done in combination with a standard delta morph animation (RpDMorphAnimation) or as part of an alternative animation system. If the array does not currently exist then it will be created based on the number of delta morph targets in the geometry attached to the atomic. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicInitialize is used to setup the RpAtomic to render a delta morphed RpGeometry. The atomics' render callback is overloaded and chained after the delta morphing render callback. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicSetAnimation is used to set the current animation for a delta morph atomic. This is only applicable where the atomic has a delta morph target geometry attached. The atomic has an animation interpolator which is set to the initial frames in the delta morph animation for each morph target, and interpolation times are set to zero. The morph values are set to those at the start of the animation. It is possible to override a delta morph animation on an atomic, or control the morphing without an animation, by directly accessing the morph values (see RpDMorphAtomicGetDMorphValues). The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicSetAnimFrame will set the specified delta morph target to the start of a particular frame in an animation. A value of rpDMORPHNULLFRAME may be specified for the frame index. This effectively disconnects a particular morph target from the animation. During RpDMorphAtomicAddTime the value for the delta morph target will not be updated. However, it may be modified directly for procedural animation (see RpDMorphAtomicGetDMorphValues). The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicSetAnimFrameTime is used to set the interpolation time within the current animation frame for a particular delta morph target. A time of zero corresponds to the start of the frame, and the time should not bet set greater than the duration of the frame. The morph target value is updated according to the linear interpolation at the given time. To set the interpolator to a different frame use RpDMorphAtomicSetAnimFrame. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphAtomicSetAnimLoopCallBack is used to set an atomic callback that will be called whenever a delta morph animation loops during RpDMorphAtomicAddTime. A pointer to some data may also be specified for passing to the callback. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryAddDMorphTarget is used to add a delta morph target to the base geometry at the specified index. The flags determine what geometry elements the delta morph target will contain. The adding process calculates the delta from the given data and the base. The delta is stored in a compressed format as much of the morph target will be identical to the base. Those vertices with a delta of zero (within a small tolerance) are stripped out. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryCreateDMorphTargets is used to create space for a number of delta morph targets. Once the base geometry has been setup, RpDMorphGeometryAddDMorphTarget should be used to add delta morph targets to the base. When the delta morph targets are finished with they can be removed with RpDMorphGeometryRemoveDMorphTarget and emptied with RpDMorphGeometryDestroyDMorphTargets. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryDestroyDMorphTargets is used to destroy the base geometry's delta morph targets. This should only be used after a call to RpDMorphGeometryCreateDMorphTargets. Any delta morph targets that have not been removed will be automatically removed. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryGetDMorphTarget is used to get the indexed delta morph target of the base geometry. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryGetNumDMorphTargets is used to get the number of delta morph targets that were created by a call to RpDMorphGeometryCreateDMorphTargets. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryRemoveDMorphTarget is used to remove the index delta morph target from the base geometry. Once removed the index is then available for a new delta morph target. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphGeometryTransformDMorphTargets is used to apply the specified transformation matrix to the given geometry. The transformation is applied equally to all delta morph targets defined on the base geometry and for each delta morph target transforms both the vertex position deltas and vertex normal deltas. Note that the transformation modifies the delta morph target data and is permanent. It does not modify the base geometry, this should be done with RpGeometryTransform. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphPluginAttach is called by the application to indicate that the delta morph plugin should be used. The call to this function should be placed between RwEngineInit and RwEngineOpen and the world plugin must already be attached. The library rpdmorph and the header file rpdmorph.h are required.
|
|
RpDMorphTargetGetBoundingSphere is used to get the bounding sphere of the delta morph target. The bounding sphere returned is returned as if the delta morph had been fully applied. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphTargetGetFlags is used to get elements of geometry that the delta morph target contains. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphTargetGetName is used to get the name of the delta morph target. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
|
RpDMorphTargetSetName is used to set the name of the delta morph target. The world and delta morph plugins must be attached before using this function. The header file rpdmorph.h is required.
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |