Panda3D
pandatool
src
xfileegg
xFileAnimationSet.h
Go to the documentation of this file.
1
/**
2
* PANDA 3D SOFTWARE
3
* Copyright (c) Carnegie Mellon University. All rights reserved.
4
*
5
* All use of this software is subject to the terms of the revised BSD
6
* license. You should have received a copy of this license along
7
* with this source code in a file named "LICENSE."
8
*
9
* @file xFileAnimationSet.h
10
* @author drose
11
* @date 2004-10-02
12
*/
13
14
#ifndef XFILEANIMATIONSET_H
15
#define XFILEANIMATIONSET_H
16
17
#include "
pandatoolbase.h
"
18
#include "
pmap.h
"
19
#include "
epvector.h
"
20
#include "
luse.h
"
21
#include "
namable.h
"
22
23
class
XFileToEggConverter
;
24
class
EggGroup
;
25
class
EggTable
;
26
class
EggXfmSAnim
;
27
28
/**
29
* This represents a tree of EggTables, corresponding to Animation entries in
30
* the X file. There is one EggTable for each joint in the character's joint
31
* set, and the whole tree is structured as a mirror of the joint set.
32
*/
33
class
XFileAnimationSet
:
public
Namable
{
34
public
:
35
XFileAnimationSet
();
36
~
XFileAnimationSet
();
37
38
bool
create_hierarchy
(
XFileToEggConverter
*converter);
39
EggXfmSAnim
*
get_table
(
const
std::string &joint_name)
const
;
40
41
enum
FrameDataFlags {
42
FDF_scale = 0x01,
43
FDF_rot = 0x02,
44
FDF_trans = 0x04,
45
FDF_mat = 0x08,
46
};
47
48
class
FrameEntry
{
49
public
:
50
INLINE
FrameEntry
();
51
INLINE
const
LMatrix4d &
get_mat
(
int
flags)
const
;
52
53
LVecBase3d _scale;
54
LQuaterniond _rot;
55
LVector3d _trans;
56
LMatrix4d _mat;
57
};
58
59
typedef
epvector<FrameEntry> FrameEntries;
60
61
class
FrameData
{
62
public
:
63
INLINE
FrameData
();
64
FrameEntries _entries;
65
int
_flags;
66
};
67
68
FrameData
&
create_frame_data
(
const
std::string &joint_name);
69
70
public
:
71
double
_frame_rate;
72
73
private
:
74
void
mirror_table(
XFileToEggConverter
*converter,
75
EggGroup
*model_node,
EggTable
*anim_node);
76
77
typedef
pmap<std::string, FrameData>
JointData
;
78
JointData
_joint_data;
79
80
class
TablePair {
81
public
:
82
EggGroup
*_joint;
83
EggXfmSAnim
*_table;
84
};
85
86
typedef
pmap<std::string, TablePair>
Tables;
87
Tables _tables;
88
};
89
90
#include "
xFileAnimationSet.I
"
91
92
#endif
EggGroup
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
Definition:
eggGroup.h:34
EggTable
This corresponds to a.
Definition:
eggTable.h:27
EggXfmSAnim
This corresponds to an <Xfm$Anim_S$> entry, which is a collection of up to nine <S$Anim> entries that...
Definition:
eggXfmSAnim.h:28
Namable
A base class for all things which can have a name.
Definition:
namable.h:26
XFileAnimationSet::FrameData
Definition:
xFileAnimationSet.h:61
XFileAnimationSet::FrameEntry
Definition:
xFileAnimationSet.h:48
XFileAnimationSet::FrameEntry::get_mat
const LMatrix4d & get_mat(int flags) const
Returns the frame's data as a matrix, composing the matrix first if necessary, as indicated by the Fr...
Definition:
xFileAnimationSet.I:31
XFileAnimationSet
This represents a tree of EggTables, corresponding to Animation entries in the X file.
Definition:
xFileAnimationSet.h:33
XFileAnimationSet::create_hierarchy
bool create_hierarchy(XFileToEggConverter *converter)
Sets up the hierarchy of EggTables corresponding to this AnimationSet.
Definition:
xFileAnimationSet.cxx:42
XFileAnimationSet::get_table
EggXfmSAnim * get_table(const std::string &joint_name) const
Returns the table associated with the indicated joint name.
Definition:
xFileAnimationSet.cxx:101
XFileAnimationSet::create_frame_data
FrameData & create_frame_data(const std::string &joint_name)
Returns a reference to a new FrameData table corresponding to the indicated joint.
Definition:
xFileAnimationSet.cxx:115
XFileToEggConverter
Definition:
xFileToEggConverter.h:40
pmap< std::string, FrameData >
epvector.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
luse.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
namable.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pandatoolbase.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pmap.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
xFileAnimationSet.I
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Generated on Tue Aug 31 2021 11:10:31 for Panda3D by
1.9.1