00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "eggUtilities.h"
00016 #include "eggPrimitive.h"
00017 #include "eggGroupNode.h"
00018 #include "pt_EggTexture.h"
00019 #include "dcast.h"
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 void
00032 get_textures_by_filename(const EggNode *node, EggTextureFilenames &result) {
00033 if (node->is_of_type(EggPrimitive::get_class_type())) {
00034 const EggPrimitive *prim = DCAST(EggPrimitive, node);
00035
00036 int num_textures = prim->get_num_textures();
00037 for (int i = 0; i < num_textures; i++) {
00038 PT_EggTexture tex = prim->get_texture(i);
00039 result[tex->get_filename()].insert(tex);
00040 }
00041
00042 } else if (node->is_of_type(EggGroupNode::get_class_type())) {
00043 const EggGroupNode *group = DCAST(EggGroupNode, node);
00044
00045 EggGroupNode::const_iterator ci;
00046 for (ci = group->begin(); ci != group->end(); ++ci) {
00047 get_textures_by_filename(*ci, result);
00048 }
00049 }
00050 }
00051