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
A base class for nodes in the hierarchy that are not leaf nodes.
Definition: eggGroupNode.h:46
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
Definition: eggGroup.h:34
A base class for any of a broad family of flt records that represent particular beads in the hierarch...
Definition: fltBead.h:29
The main objecting bead of the flt file.
Definition: fltObject.h:24
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.
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 ...
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.