Loading [MathJax]/extensions/TeX/AMSmath.js
Radium Engine  1.5.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
PoseOperation.hpp
1 #pragma once
2 
3 #include <Core/Animation/Pose.hpp>
4 #include <Core/Types.hpp>
5 
6 namespace Ra {
7 namespace Core {
8 namespace Animation {
9 
10 /*
11  * Return true if the two poses are compatibile with each other.
12  * A pose is compatible with another if the size of the two poses are equal.
13  *
14  * Possible FUTURE WORKS:
15  * Two poses are compatible if their size is equal and if their transforms
16  * are within the constraints of each others.
17  */
18 RA_CORE_API bool compatible( const Pose& p0, const Pose& p1 );
19 
20 /*
21  * Given a model pose and a compatible rest pose, return the relative pose.
22  */
23 RA_CORE_API Pose relativePose( const Pose& modelPose, const RestPose& restPose );
24 
25 /*
26  * Return the pose resulting in applying the i-th transform to the i-th pose transform.
27  *
28  * The operation is equal to:
29  * pose[i] = transform[i] * pose[i];
30  */
31 RA_CORE_API Pose applyTransformation( const Pose& pose,
32  const AlignedStdVector<Transform>& transform );
33 
34 /*
35  * Return the pose resulting in applying the transform to the pose transforms.
36  *
37  * The operation is equal to:
38  * pose[i] = transform * pose[i];
39  */
40 RA_CORE_API Pose applyTransformation( const Pose& pose, const Transform& transform );
41 
42 RA_CORE_API bool areEqual( const Pose& p0, const Pose& p1 );
43 
44 RA_CORE_API Pose interpolatePoses( const Pose& a, const Pose& b, const Scalar t );
45 
46 } // namespace Animation
47 } // namespace Core
48 } // namespace Ra
Definition: Cage.cpp:3