107 if (htree_name ==
NULL) {
109 }
else if (htree_name[0] == 0) {
111 HTree->Init_Default ();
114 if (source !=
NULL) {
117 WWDEBUG_SAY((
"Unable to find HTree: %s\r\n",htree_name));
119 HTree->Init_Default();
388 return HTree->Num_Pivots();
410 return HTree->Get_Bone_Name(bone_index);
412 return "RootTransform";
432 return HTree->Get_Bone_Index(bonename);
585 for (
int index = 0; index < count; index ++) {
638 int idx =
HTree->Get_Bone_Index(bonename);
671 return HTree->Get_Transform(boneindex);
693 HTree->Capture_Bone(boneindex);
713 HTree->Release_Bone(boneindex);
733 return HTree->Is_Bone_Captured(boneindex);
755 for (
int j=0; j<3; j++) {
756 for (
int i=0; i<4; i++) {
763 HTree->Control_Bone(bindex,objtm,world_space_translation);
807 if (
ModeAnim.Motion->Has_Embedded_Sounds() ) {
819 if (
ModeInterp.Motion0->Has_Embedded_Sounds() ) {
823 if (
ModeInterp.Motion1->Has_Embedded_Sounds() ) {
836 int count =
ModeCombo.AnimCombo->Get_Num_Anims();
837 for (
int index = 0; index < count; index ++) {
843 ModeCombo.AnimCombo->Set_Prev_Frame(index, prev_frame);
891 *tm =
HTree->Get_Transform(boneindex);
952 float direction =
ModeAnim.animDirection;
965 float delta =
ModeAnim.Motion->Get_Frame_Rate() *
ModeAnim.frameRateMultiplier *
ModeAnim.animDirection * sync_time_diff * 0.001f;
974 if (frame >=
ModeAnim.Motion->Get_Num_Frames() - 1) {
975 frame =
ModeAnim.Motion->Get_Num_Frames() - 1;
979 if ( frame >=
ModeAnim.Motion->Get_Num_Frames() - 1 ) {
980 frame -=
ModeAnim.Motion->Get_Num_Frames() - 1;
983 if ( frame >=
ModeAnim.Motion->Get_Num_Frames() - 1 ) {
994 frame +=
ModeAnim.Motion->Get_Num_Frames() - 1;
998 frame =
ModeAnim.Motion->Get_Num_Frames() - 1;
1002 if (
ModeAnim.animDirection >= 1.0f)
1004 if (frame >= (
ModeAnim.Motion->Get_Num_Frames() - 1))
1006 frame = (
ModeAnim.Motion->Get_Num_Frames() - 1)*2 - frame;
1008 if ( frame >=
ModeAnim.Motion->Get_Num_Frames() - 1 )
1009 frame = (
ModeAnim.Motion->Get_Num_Frames() - 1);
1010 direction =
ModeAnim.animDirection * -1.0f;
1019 if ( frame >=
ModeAnim.Motion->Get_Num_Frames() - 1 )
1021 direction =
ModeAnim.animDirection * -1.0f;
1032 *newDirection = direction;
1058 float oldprev =
ModeAnim.PrevFrame;
1113 mult =
ModeAnim.frameRateMultiplier;
1126 ModeAnim.frameRateMultiplier = multiplier;
virtual const Matrix3D & Get_Bone_Transform(const char *bonename)
virtual bool Simple_Evaluate_Bone(int boneindex, Matrix3D *tm) const
void Set_Hierarchy_Valid(bool onoff) const
virtual HAnimClass * Peek_Animation_And_Info(float &frame, int &numFrames, int &mode, float &mult)
Animatable3DObjClass(const char *htree_name)
virtual void Render(RenderInfoClass &rinfo)
virtual void Update_Sub_Object_Transforms(void)
virtual bool Is_Bone_Captured(int boneindex) const
float Compute_Current_Frame(float *newDirection=NULL) const
struct Animatable3DObjClass::@274255212152070234202005354334045134277330066032::@107271141224054257360210075076210275034114224025 ModeInterp
virtual void Control_Bone(int bindex, const Matrix3D &objtm, bool world_space_translation=false)
Animatable3DObjClass & operator=(const Animatable3DObjClass &)
virtual int Get_Bone_Index(const char *bonename)
bool Is_Hierarchy_Valid(void) const
virtual void Special_Render(SpecialRenderInfoClass &rinfo)
virtual void Set_HTree(HTreeClass *htree)
struct Animatable3DObjClass::@274255212152070234202005354334045134277330066032::@265165303263313322022336070002244172025153143316 ModeCombo
virtual HAnimClass * Peek_Animation(void)
struct Animatable3DObjClass::@274255212152070234202005354334045134277330066032::@111374312050245341017050215151003212205312230222 ModeAnim
virtual void Release_Bone(int boneindex)
void Base_Update(const Matrix3D &root)
virtual void Set_Animation_Frame_Rate_Multiplier(float multiplier)
virtual void Set_Animation(void)
virtual bool Is_Animation_Complete(void) const
void Blend_Update(const Matrix3D &root, HAnimClass *motion0, float frame0, HAnimClass *motion1, float frame1, float percentage)
virtual int Get_Num_Bones(void)
virtual const char * Get_Bone_Name(int bone_index)
void Single_Anim_Progress(void)
void Combo_Update(const Matrix3D &root, HAnimComboClass *anim)
void Anim_Update(const Matrix3D &root, HAnimClass *motion, float frame)
virtual void Set_Position(const Vector3 &v)
virtual void Capture_Bone(int boneindex)
virtual void Set_Transform(const Matrix3D &m)
virtual ~Animatable3DObjClass(void)
static const char * Get_Embedded_Sound_Name(HAnimClass *anim)
static float Trigger_Sound(HAnimClass *anim, float old_frame, float new_frame, const Matrix3D &tm)
CompositeRenderObjClass(void)
CompositeRenderObjClass & operator=(const CompositeRenderObjClass &that)
virtual bool Has_Embedded_Sounds(void) const
virtual int Get_Embedded_Sound_Bone_Index()
virtual void Set_Embedded_Sound_Bone_Index(int bone)
HAnimClass * Peek_Motion(int indx)
WWINLINE int Num_Pivots(void) const
virtual void Set_Transform(const Matrix3D &m)
virtual int Is_Not_Hidden_At_All(void)
@ ANIM_MODE_LOOP_PINGPONG
@ ANIM_MODE_LOOP_BACKWARDS
@ ANIM_MODE_ONCE_BACKWARDS
virtual void Set_Position(const Vector3 &v)
virtual void Update_Sub_Object_Transforms(void)
bool Are_Sub_Object_Transforms_Dirty(void)
const Matrix3D & Get_Transform(void) const
virtual void Validate_Transform(void) const
static WW3DAssetManager * Get_Instance(void)
virtual HTreeClass * Get_HTree(const char *name)
static unsigned int Get_Sync_Time(void)
static bool Is_Valid_Float(float x)
#define WWMEMLOG(category)