Panda3D
Loading...
Searching...
No Matches
panda
src
egg
eggUtilities.cxx
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 eggUtilities.cxx
10
* @author drose
11
* @date 1999-01-28
12
*/
13
14
#include "
eggUtilities.h
"
15
#include "
eggPrimitive.h
"
16
#include "
eggGroupNode.h
"
17
#include "
pt_EggTexture.h
"
18
#include "
dcast.h
"
19
20
21
/**
22
* Extracts from the egg subgraph beginning at the indicated node a set of all
23
* the texture objects referenced, grouped together by filename. Texture
24
* objects that share a common filename (but possibly differ in other
25
* properties) are returned together in the same element of the map.
26
*/
27
void
28
get_textures_by_filename
(
const
EggNode
*node,
EggTextureFilenames
&result) {
29
if
(node->
is_of_type
(EggPrimitive::get_class_type())) {
30
const
EggPrimitive
*prim = DCAST(
EggPrimitive
, node);
31
32
int
num_textures = prim->
get_num_textures
();
33
for
(
int
i = 0; i < num_textures; i++) {
34
PT_EggTexture tex = prim->
get_texture
(i);
35
result[tex->get_filename()].insert(tex);
36
}
37
38
}
else
if
(node->
is_of_type
(EggGroupNode::get_class_type())) {
39
const
EggGroupNode
*group = DCAST(
EggGroupNode
, node);
40
41
EggGroupNode::const_iterator ci;
42
for
(ci = group->begin(); ci != group->end(); ++ci) {
43
get_textures_by_filename
(*ci, result);
44
}
45
}
46
}
EggGroupNode
A base class for nodes in the hierarchy that are not leaf nodes.
Definition
eggGroupNode.h:46
EggNode
A base class for things that may be directly added into the egg hierarchy.
Definition
eggNode.h:36
EggPrimitive
A base class for any of a number of kinds of geometry primitives: polygons, point lights,...
Definition
eggPrimitive.h:49
EggPrimitive::get_num_textures
get_num_textures
Returns the number of textures applied to the primitive.
Definition
eggPrimitive.h:100
EggPrimitive::get_texture
get_texture
Returns the first texture on the primitive, if any, or NULL if there are no textures on the primitive...
Definition
eggPrimitive.h:100
TypedObject::is_of_type
bool is_of_type(TypeHandle handle) const
Returns true if the current object is or derives from the indicated type.
Definition
typedObject.I:28
pmap
This is our own Panda specialization on the default STL map.
Definition
pmap.h:49
dcast.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
eggGroupNode.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
eggPrimitive.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
get_textures_by_filename
void get_textures_by_filename(const EggNode *node, EggTextureFilenames &result)
Extracts from the egg subgraph beginning at the indicated node a set of all the texture objects refer...
Definition
eggUtilities.cxx:28
eggUtilities.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pt_EggTexture.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Generated on Mon Jan 8 2024 17:18:39 for Panda3D by
1.10.0