Panda3D
Loading...
Searching...
No Matches
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 entries that specify...
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
This is our own Panda specialization on the default STL map.
Definition
pmap.h:49
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 Mon Jan 8 2024 17:18:47 for Panda3D by
1.10.0