Safe Haskell | None |
---|
- delete :: HG3DClass -> IO ()
- getName :: HG3DClass -> IO String
- getLength :: HG3DClass -> IO Float
- setLength :: HG3DClass -> Float -> IO ()
- createNodeTrack :: HG3DClass -> Int -> IO HG3DClass
- createNumericTrack :: HG3DClass -> Int -> IO HG3DClass
- createVertexTrack :: HG3DClass -> Int -> EnumVertexAnimationType -> IO HG3DClass
- createNodeTrack2 :: HG3DClass -> Int -> HG3DClass -> IO HG3DClass
- getNumNodeTracks :: HG3DClass -> IO Int
- getNodeTrack :: HG3DClass -> Int -> IO HG3DClass
- hasNodeTrack :: HG3DClass -> Int -> IO Bool
- getNumNumericTracks :: HG3DClass -> IO Int
- getNumericTrack :: HG3DClass -> Int -> IO HG3DClass
- hasNumericTrack :: HG3DClass -> Int -> IO Bool
- getNumVertexTracks :: HG3DClass -> IO Int
- getVertexTrack :: HG3DClass -> Int -> IO HG3DClass
- hasVertexTrack :: HG3DClass -> Int -> IO Bool
- destroyNodeTrack :: HG3DClass -> Int -> IO ()
- destroyNumericTrack :: HG3DClass -> Int -> IO ()
- destroyVertexTrack :: HG3DClass -> Int -> IO ()
- destroyAllTracks :: HG3DClass -> IO ()
- destroyAllNodeTracks :: HG3DClass -> IO ()
- destroyAllNumericTracks :: HG3DClass -> IO ()
- destroyAllVertexTracks :: HG3DClass -> IO ()
- apply :: HG3DClass -> Float -> Float -> Float -> IO ()
- applyToNode :: HG3DClass -> HG3DClass -> Float -> Float -> Float -> IO ()
- apply2 :: HG3DClass -> HG3DClass -> Float -> Float -> Float -> IO ()
- apply4 :: HG3DClass -> HG3DClass -> Float -> Float -> Bool -> Bool -> IO ()
- setInterpolationMode :: HG3DClass -> EnumAnimationInterpolationMode -> IO ()
- getInterpolationMode :: HG3DClass -> IO EnumAnimationInterpolationMode
- setRotationInterpolationMode :: HG3DClass -> EnumAnimationRotationInterpolationMode -> IO ()
- getRotationInterpolationMode :: HG3DClass -> IO EnumAnimationRotationInterpolationMode
- optimise :: HG3DClass -> Bool -> IO ()
- clone :: HG3DClass -> String -> IO HG3DClass
- setUseBaseKeyFrame :: HG3DClass -> Bool -> Float -> String -> IO ()
- getUseBaseKeyFrame :: HG3DClass -> IO Bool
- getBaseKeyFrameTime :: HG3DClass -> IO Float
- getBaseKeyFrameAnimationName :: HG3DClass -> IO String
- setDefaultInterpolationMode :: EnumAnimationInterpolationMode -> IO ()
- getDefaultInterpolationMode :: IO EnumAnimationInterpolationMode
- setDefaultRotationInterpolationMode :: EnumAnimationRotationInterpolationMode -> IO ()
- getDefaultRotationInterpolationMode :: IO EnumAnimationRotationInterpolationMode
- delete'_ :: HG3DClassPtr -> IO ()
- getName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- getLength'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()
- setLength'_ :: HG3DClassPtr -> CFloat -> IO ()
- createNodeTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- createNumericTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- createVertexTrack'_ :: HG3DClassPtr -> CUShort -> CInt -> HG3DClassPtr -> IO ()
- createNodeTrack2'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> HG3DClassPtr -> IO ()
- getNumNodeTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()
- getNodeTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- hasNodeTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()
- getNumNumericTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()
- getNumericTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- hasNumericTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()
- getNumVertexTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()
- getVertexTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- hasVertexTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()
- destroyNodeTrack'_ :: HG3DClassPtr -> CUShort -> IO ()
- destroyNumericTrack'_ :: HG3DClassPtr -> CUShort -> IO ()
- destroyVertexTrack'_ :: HG3DClassPtr -> CUShort -> IO ()
- destroyAllTracks'_ :: HG3DClassPtr -> IO ()
- destroyAllNodeTracks'_ :: HG3DClassPtr -> IO ()
- destroyAllNumericTracks'_ :: HG3DClassPtr -> IO ()
- destroyAllVertexTracks'_ :: HG3DClassPtr -> IO ()
- apply'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- applyToNode'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- apply2'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- apply4'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CInt -> CInt -> IO ()
- setInterpolationMode'_ :: HG3DClassPtr -> CInt -> IO ()
- getInterpolationMode'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- setRotationInterpolationMode'_ :: HG3DClassPtr -> CInt -> IO ()
- getRotationInterpolationMode'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- optimise'_ :: HG3DClassPtr -> CInt -> IO ()
- clone'_ :: HG3DClassPtr -> Ptr CChar -> HG3DClassPtr -> IO ()
- setUseBaseKeyFrame'_ :: HG3DClassPtr -> CInt -> CFloat -> Ptr CChar -> IO ()
- getUseBaseKeyFrame'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getBaseKeyFrameTime'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()
- getBaseKeyFrameAnimationName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- setDefaultInterpolationMode'_ :: CInt -> IO ()
- getDefaultInterpolationMode'_ :: Ptr CInt -> IO ()
- setDefaultRotationInterpolationMode'_ :: CInt -> IO ()
- getDefaultRotationInterpolationMode'_ :: Ptr CInt -> IO ()
Documentation
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO String |
Gets the name of this animation.
Gets the total length of the animation.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | len |
-> IO () |
Creates a NodeAnimationTrack for animating a Node.
Sets the length of the animation. Changing the length of an animation may invalidate existing AnimationState
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle - Handle to give the track, used for accessing the track later. Must be unique within this Animation. |
-> IO HG3DClass |
Creates a NumericAnimationTrack for animating any numeric value.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle - Handle to give the track, used for accessing the track later. Must be unique within this Animation. |
-> IO HG3DClass |
Creates a VertexAnimationTrack for animating vertex position data.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle - Handle to give the track, used for accessing the track later. Must be unique within this Animation, and is used to identify the target. For example when applied to a Mesh, the handle must reference the index of the geometry being modified; 0 for the shared geometry, and 1+ for SubMesh geometry with the same index-1. |
-> EnumVertexAnimationType | animType - Either morph or pose animation, |
-> IO HG3DClass |
Creates a new AnimationTrack automatically associated with a Node. This method creates a standard AnimationTrackNode
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle - Numeric handle to give the track, used for accessing the track later. Must be unique within this Animation. |
-> HG3DClass | node - A pointer to the Node object which will be affected by this track |
-> IO HG3DClass |
Gets the number of NodeAnimationTrack
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO HG3DClass |
Gets a node track by it's handle.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO Bool |
Does a track exist with the given handle?
Gets the number of NumericAnimationTrack
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO HG3DClass |
Gets a numeric track by it's handle.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO Bool |
Does a track exist with the given handle?
Gets the number of VertexAnimationTrack
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO HG3DClass |
Gets a Vertex track by it's handle.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO Bool |
Does a track exist with the given handle?
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO () |
Destroys the numeric track with the given handle.
Destroys the node track with the given handle.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO () |
Destroys the Vertex track with the given handle.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | handle |
-> IO () |
Removes and destroys all tracks making up this animation.
Removes and destroys all tracks making up this animation.
Removes and destroys all tracks making up this animation.
Removes and destroys all tracks making up this animation.
Applies an animation given a specific time point and weight. Where you have associated animation tracks with objects, you can easily apply an animation to those objects by calling this method.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | timePos - The time position in the animation to apply. |
-> Float | weight - The influence to give to this track, 1.0 for full influence, less to blend with other animations. |
-> Float | scale - The scale to apply to translations and scalings, useful for adapting an animation to a different size target. |
-> IO () |
Applies all node tracks given a specific time point and weight to the specified node. It does not consider the actual node tracks are attached to. As such, it resembles the apply method for a given skeleton (see below).
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> HG3DClass | node |
-> Float | timePos - The time position in the animation to apply. |
-> Float | weight - The influence to give to this track, 1.0 for full influence, less to blend with other animations. |
-> Float | scale - The scale to apply to translations and scalings, useful for adapting an animation to a different size target. |
-> IO () |
Applies all node tracks given a specific time point and weight to a given skeleton. Where you have associated animation tracks with Node
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> HG3DClass | skeleton |
-> Float | timePos - The time position in the animation to apply. |
-> Float | weight - The influence to give to this track, 1.0 for full influence, less to blend with other animations. |
-> Float | scale - The scale to apply to translations and scalings, useful for adapting an animation to a different size target. |
-> IO () |
Applies all vertex tracks given a specific time point and weight to a given entity.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> HG3DClass | entity - The Entity to which this animation should be applied |
-> Float | timePos - The time position in the animation to apply. |
-> Float | weight - The weight at which the animation should be applied (only affects pose animation) |
-> Bool | software - Whether to populate the software morph vertex data |
-> Bool | hardware - Whether to populate the hardware morph vertex data |
-> IO () |
Tells the animation how to interpolate between keyframes. By default, animations normally interpolate linearly between keyframes. This is fast, but when animations include quick changes in direction it can look a little unnatural because directions change instantly at keyframes. An alternative is to tell the animation to interpolate along a spline, which is more expensive in terms of calculation time, but looks smoother because major changes in direction are distributed around the keyframes rather than just at the keyframe. You can also change the default animation behaviour by calling Animation::setDefaultInterpolationMode
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> EnumAnimationInterpolationMode | im |
-> IO () |
Gets the current interpolation mode of this animation. See setInterpolationMode for more info.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO EnumAnimationInterpolationMode |
Tells the animation how to interpolate rotations. By default, animations interpolate linearly between rotations. This is fast but not necessarily completely accurate. If you want more accurate interpolation, use spherical interpolation, but be aware that it will incur a higher cost. You can also change the default rotation behaviour by calling Animation::setDefaultRotationInterpolationMode
setRotationInterpolationModeSource
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> EnumAnimationRotationInterpolationMode | im |
-> IO () |
Gets the current rotation interpolation mode of this animation. See setRotationInterpolationMode for more info.
getRotationInterpolationModeSource
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO EnumAnimationRotationInterpolationMode |
Optimise an animation by removing unnecessary tracks and keyframes. When you export an animation, it is possible that certain tracks have been keyframed but actually don't include anything useful - the keyframes include no transformation. These tracks can be completely eliminated from the animation and thus speed up the animation. In addition, if several keyframes in a row have the same value, then they are just adding overhead and can be removed. Since track-less and identity track has difference behavior for accumulate animation blending if corresponding track presenting at other animation that is non-identity, and in normally this method didn't known about the situation of other animation, it can't deciding whether or not discards identity tracks. So there have a parameter allow you choose what you want, in case you aren't sure how to do that, you should use Skeleton::optimiseAllAnimations
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | discardIdentityNodeTracks - If true, discard identity node tracks. |
-> IO () |
Clone this animation. The pointer returned from this method is the only one recorded, thus it is up to the caller to arrange for the deletion of this object.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | newName |
-> IO HG3DClass |
Sets a base keyframe which for the skeletal / pose keyframes in this animation. Skeletal and pose animation keyframes are expressed as deltas from a given base state. By default, that is the binding setup of the skeleton, or the object space mesh positions for pose animation. However, sometimes it is useful for animators to create animations with a different starting pose, because that's more convenient, and the animation is designed to simply be added to the existing animation state and not globally averaged with other animations (this is always the case with pose animations, but is activated for skeletal animations via ANIMBLEND_CUMULATIVE). In order for this to work, the keyframes need to be 're-based' against this new starting state, for example by treating the first keyframe as the reference point (and therefore representing no change). This can be achieved by applying the inverse of this reference keyframe against all other keyframes. Since this fundamentally changes the animation, this method just marks the animation as requiring this rebase, which is performed at the next AnimationAnimation_applyBaseKeyFrame
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | useBaseKeyFrame - Whether a base keyframe should be used |
-> Float | keyframeTime - The time corresponding to the base keyframe, if any |
-> String | baseAnimName - Optionally a different base animation (must contain the same tracks) |
-> IO () |
Whether a base keyframe is being used for this Animation
If a base keyframe is being used, the time of that keyframe.
getBaseKeyFrameAnimationNameSource
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO String |
If a base keyframe is being used, the Animation
setDefaultInterpolationModeSource
:: EnumAnimationInterpolationMode | im |
-> IO () |
Gets the default interpolation mode for all animations.
Sets the default animation interpolation mode. Every animation created after this option is set will have the new interpolation mode specified. You can also change the mode per animation by calling the setInterpolationMode method on the instance in question.
setDefaultRotationInterpolationModeSource
:: EnumAnimationRotationInterpolationMode | im |
-> IO () |
Gets the default rotation interpolation mode for all animations.
Sets the default rotation interpolation mode. Every animation created after this option is set will have the new interpolation mode specified. You can also change the mode per animation by calling the setInterpolationMode method on the instance in question.
delete'_ :: HG3DClassPtr -> IO ()Source
getLength'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()Source
setLength'_ :: HG3DClassPtr -> CFloat -> IO ()Source
createNodeTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
createNumericTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
createVertexTrack'_ :: HG3DClassPtr -> CUShort -> CInt -> HG3DClassPtr -> IO ()Source
createNodeTrack2'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> HG3DClassPtr -> IO ()Source
getNumNodeTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()Source
getNodeTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
hasNodeTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()Source
getNumNumericTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()Source
getNumericTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
hasNumericTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()Source
getNumVertexTracks'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()Source
getVertexTrack'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
hasVertexTrack'_ :: HG3DClassPtr -> CUShort -> Ptr CInt -> IO ()Source
destroyNodeTrack'_ :: HG3DClassPtr -> CUShort -> IO ()Source
destroyNumericTrack'_ :: HG3DClassPtr -> CUShort -> IO ()Source
destroyVertexTrack'_ :: HG3DClassPtr -> CUShort -> IO ()Source
destroyAllTracks'_ :: HG3DClassPtr -> IO ()Source
destroyAllNodeTracks'_ :: HG3DClassPtr -> IO ()Source
destroyAllVertexTracks'_ :: HG3DClassPtr -> IO ()Source
applyToNode'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()Source
apply2'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()Source
apply4'_ :: HG3DClassPtr -> HG3DClassPtr -> CFloat -> CFloat -> CInt -> CInt -> IO ()Source
setInterpolationMode'_ :: HG3DClassPtr -> CInt -> IO ()Source
getInterpolationMode'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
setRotationInterpolationMode'_ :: HG3DClassPtr -> CInt -> IO ()Source
getRotationInterpolationMode'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
optimise'_ :: HG3DClassPtr -> CInt -> IO ()Source
clone'_ :: HG3DClassPtr -> Ptr CChar -> HG3DClassPtr -> IO ()Source
setUseBaseKeyFrame'_ :: HG3DClassPtr -> CInt -> CFloat -> Ptr CChar -> IO ()Source
getUseBaseKeyFrame'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
getBaseKeyFrameTime'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()Source
getBaseKeyFrameAnimationName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
setDefaultInterpolationMode'_ :: CInt -> IO ()Source
getDefaultInterpolationMode'_ :: Ptr CInt -> IO ()Source