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
XFileAnimationSet::FrameData
Definition:
xFileAnimationSet.h:61
pmap.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pmap< std::string, FrameData >
XFileAnimationSet::create_hierarchy
bool create_hierarchy(XFileToEggConverter *converter)
Sets up the hierarchy of EggTables corresponding to this AnimationSet.
Definition:
xFileAnimationSet.cxx:42
pandatoolbase.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
luse.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
XFileAnimationSet
This represents a tree of EggTables, corresponding to Animation entries in the X file.
Definition:
xFileAnimationSet.h:33
EggGroup
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
Definition:
eggGroup.h:34
Namable
A base class for all things which can have a name.
Definition:
namable.h:26
XFileAnimationSet::FrameEntry
Definition:
xFileAnimationSet.h:48
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
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
namable.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
EggTable
This corresponds to a.
Definition:
eggTable.h:27
XFileToEggConverter
Definition:
xFileToEggConverter.h:40
epvector.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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::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.I
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Generated on Wed Jan 23 2019 21:40:23 for Panda3D by
1.8.15