Panda3D
Loading...
Searching...
No Matches
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
20class FltObject;
21class FltBead;
22class EggGroupNode;
23class EggGroup;
25
26/**
27 * This keeps track of relevant things about the traversal as we walk through
28 * the flt hierarchy.
29 */
31public:
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
46private:
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.
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.
This is our own Panda specialization on the default STL map.
Definition pmap.h:49
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.