/*
------------------------------------------------------------------------------------------------------------
Copyright (c) 2006 YanLiang
CRotationalSpline可以表示运动轨迹变换所需的缩放分量.
方法:
添加关键点.
计算某一位置t的值value. value = Interpolate(t). t = [0.0, 1.0].
-------------------------------------------------------------------------------------------------------------
*/
/*
------------------------------------------------------------------------------------------------------------
Copyright (c) 2006 YanLiang
CSimpleSpline可以表示运动轨迹变换所需的2个轨迹分量: 位移和缩放.
方法:
添加关键点.
计算某一位置t的值value. value = Interpolate(t). t = [0.0, 1.0].
-------------------------------------------------------------------------------------------------------------
*/
/*
------------------------------------------------------------------------------------------------------------
Copyright (c) 2006 YanLiang
AnimationTrack记录了在某一动画中物体的某一个部分的运动轨迹,如行走动画中手的运动.
AnimationTrack包括了运动轨迹变换所需的3个轨迹分量, 位移,旋转和缩放. 它们共同作用形成完整的运动轨迹.
这3个分量这在成员变量中已经定义并有相关的方法维护.但是并不是所有运动轨迹都需要3个分量共同作用的,有时只会用到1到2个.
运动轨迹记录的是一系列连续的值, 而通常程序只想知道某一时刻的运动信息,如: 行走动画中1/2时间点手的位置旋转及缩放.
因此, 在AnimationTrack中引入了一个CNode对象指针, CNode类中可以记录物体位移旋转和缩放信息.
只有将某一时刻AnimationTrack的运动信息记录到CNode对象中后, AnimationTrack的运算才具有实际意义,
因此,AnimationTrack 包含了将自身和特定CNode对象连接的方法 SetAssociation(CNode* node).
CNode的信息将帮助SubMesh等类的空间变换 (World Transform).
-------------------------------------------------------------------------------------------------------------
*/
/*
------------------------------------------------------------------------------------------------------------
Copyright (c) 2006 YanLiang
Animation由一个或多个AnimationTrack组成,一个Animation代表一个动画,比如人物的walk动作.
AnimationTrack则记录了在walk中人的每一个部分的运动轨迹,如手的运动.
一个AnimationTrack List 就包含了一个人物所有部分在当前动画中的运动轨迹.
Animation需要有名称,以便于数据保存,加载及查询检索时使用,大多数情况下Animation名称是键值.
Animation的大多数操作只是在维护若干AnimationTrack.
-------------------------------------------------------------------------------------------------------------
*/