Panda3D
fltToEggLevelState.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 fltToEggLevelState.h
10  * @author drose
11  * @date 2001-04-18
12  */
13 
14 #ifndef FLTTOEGGLEVELSTATE_H
15 #define FLTTOEGGLEVELSTATE_H
16 
17 #include "pandatoolbase.h"
18 #include "fltGeometry.h"
19 
20 class FltObject;
21 class FltBead;
22 class EggGroupNode;
23 class EggGroup;
24 class FltToEggConverter;
25 
26 /**
27  * This keeps track of relevant things about the traversal as we walk through
28  * the flt hierarchy.
29  */
31 public:
32  INLINE FltToEggLevelState(FltToEggConverter *converter);
33  INLINE FltToEggLevelState(const FltToEggLevelState &copy);
34  INLINE void operator = (const FltToEggLevelState &copy);
36 
37  EggGroupNode *get_synthetic_group(const std::string &name,
38  const FltBead *transform_bead,
39  FltGeometry::BillboardType type = FltGeometry::BT_none);
40 
41  void set_transform(const FltBead *flt_bead, EggGroup *egg_group);
42 
43  const FltObject *_flt_object;
44  EggGroupNode *_egg_parent;
45 
46 private:
47  class ParentNodes {
48  public:
49  ParentNodes();
50 
51  EggGroup *_axial_billboard;
52  EggGroup *_point_billboard;
53  EggGroup *_plain;
54  };
55 
57  Parents _parents;
58 
59  FltToEggConverter *_converter;
60 };
61 
62 #include "fltToEggLevelState.I"
63 
64 #endif
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A base class for nodes in the hierarchy that are not leaf nodes.
Definition: eggGroupNode.h:46
A base class for any of a broad family of flt records that represent particular beads in the hierarch...
Definition: fltBead.h:29
This class supervises the construction of an EggData structure from the data represented by the FltHe...
This keeps track of relevant things about the traversal as we walk through the flt hierarchy.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
Definition: eggGroup.h:34
EggGroupNode * get_synthetic_group(const std::string &name, const FltBead *transform_bead, FltGeometry::BillboardType type=FltGeometry::BT_none)
Sometimes it is necessary to synthesize a group within a particular EggGroup, for instance to insert ...
The main objecting bead of the flt file.
Definition: fltObject.h:24
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void set_transform(const FltBead *flt_bead, EggGroup *egg_group)
Sets up the group to reflect the transform indicated by the given record, if any.