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
FltToEggLevelState::set_transform
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.
Definition: fltToEggLevelState.cxx:127
pmap< LMatrix4d, ParentNodes * >
EggGroupNode
A base class for nodes in the hierarchy that are not leaf nodes.
Definition: eggGroupNode.h:46
fltGeometry.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
FltToEggLevelState::get_synthetic_group
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 ...
Definition: fltToEggLevelState.cxx:59
FltObject
The main objecting bead of the flt file.
Definition: fltObject.h:24
fltToEggLevelState.I
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
FltToEggLevelState
This keeps track of relevant things about the traversal as we walk through the flt hierarchy.
Definition: fltToEggLevelState.h:30
pandatoolbase.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
EggGroup
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
Definition: eggGroup.h:34
FltBead
A base class for any of a broad family of flt records that represent particular beads in the hierarch...
Definition: fltBead.h:29
FltToEggConverter
This class supervises the construction of an EggData structure from the data represented by the FltHe...
Definition: fltToEggConverter.h:49