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;
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 
48  create_s_channel(EggSAnimData *egg_anim, const std::string &name,
49  AnimGroup *parent);
51  create_xfm_channel(EggNode *egg_node, const std::string &name,
52  AnimGroup *parent);
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
This is the root of an AnimChannel hierarchy.
Definition: animBundle.h:29
A base class for nodes in the hierarchy that are not leaf nodes.
Definition: eggGroupNode.h:46
An animation channel that issues a scalar each frame, read from a table such as might have been read ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Corresponding to an <S$Anim> entry, this stores a single column of numbers, for instance for a morph ...
Definition: eggSAnimData.h:25
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the base class for AnimChannel and AnimBundle.
Definition: animGroup.h:33
This corresponds to an <Xfm$Anim_S$> entry, which is a collection of up to nine <S$Anim> entries that...
Definition: eggXfmSAnim.h:28
This corresponds to a.
Definition: eggTable.h:27
Converts an EggTable hierarchy, beginning with a <Bundle> entry, into an AnimBundle hierarchy.
A base class for things that may be directly added into the egg hierarchy.
Definition: eggNode.h:35
An animation channel that issues a matrix each frame, read from a table such as might have been read ...
This is a node that contains a pointer to an AnimBundle.