Panda3D

animBundleMaker.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 animBundleMaker.h
10 * @author drose
11 * @date 1999-02-22
12 */
13
14 #ifndef ANIMBUNDLEMAKER_H
15 #define ANIMBUNDLEMAKER_H
16
17 #include "pandabase.h"
18 #include "typedef.h"
19
20 class EggNode;
21 class EggGroupNode;
22 class EggTable;
23 class EggXfmSAnim;
24 class EggSAnimData;
25 class AnimGroup;
26 class AnimBundle;
27 class AnimBundleNode;
28 class AnimChannelScalarTable;
29 class AnimChannelMatrixXfmTable;
30
31 /**
32 * Converts an EggTable hierarchy, beginning with a <Bundle> entry, into an
33 * AnimBundle hierarchy.
34 */
35 class EXPCL_PANDA_EGG2PG AnimBundleMaker {
36 public:
37 explicit AnimBundleMaker(EggTable *root);
38
39 AnimBundleNode *make_node();
40
41 private:
42 AnimBundle *make_bundle();
43
44 void inspect_tree(EggNode *node);
45 void build_hierarchy(EggTable *egg_table, AnimGroup *parent);
46
47 AnimChannelScalarTable *
48 create_s_channel(EggSAnimData *egg_anim, const std::string &name,
49 AnimGroup *parent);
50 AnimChannelMatrixXfmTable *
51 create_xfm_channel(EggNode *egg_node, const std::string &name,
52 AnimGroup *parent);
53 AnimChannelMatrixXfmTable *
54 create_xfm_channel(EggXfmSAnim *egg_anim, const std::string &name,
55 AnimGroup *parent);
56
57 PN_stdfloat _fps;
58 int _num_frames;
59 bool _ok_fps;
60 bool _ok_num_frames;
61
62 EggTable *_root;
63
64 };
65
66 #endif
AnimBundleMaker
Converts an EggTable hierarchy, beginning with a <Bundle> entry, into an AnimBundle hierarchy.
Definition: animBundleMaker.h:35
AnimBundleNode
This is a node that contains a pointer to an AnimBundle.
Definition: animBundleNode.h:29
AnimBundle
This is the root of an AnimChannel hierarchy.
Definition: animBundle.h:29
AnimChannelMatrixXfmTable
An animation channel that issues a matrix each frame, read from a table such as might have been read ...
Definition: animChannelMatrixXfmTable.h:31
AnimChannelScalarTable
An animation channel that issues a scalar each frame, read from a table such as might have been read ...
Definition: animChannelScalarTable.h:28
AnimGroup
This is the base class for AnimChannel and AnimBundle.
Definition: animGroup.h:33
EggGroupNode
A base class for nodes in the hierarchy that are not leaf nodes.
Definition: eggGroupNode.h:46
EggNode
A base class for things that may be directly added into the egg hierarchy.
Definition: eggNode.h:36
EggSAnimData
Corresponding to an <S$Anim> entry, this stores a single column of numbers, for instance for a morph ...
Definition: eggSAnimData.h:25
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
pandabase.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
typedef.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.