00001 // Filename: mayaShaders.h 00002 // Created by: drose (11Feb00) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 #ifndef MAYASHADERS_H 00020 #define MAYASHADERS_H 00021 00022 #include "pandatoolbase.h" 00023 00024 #include "pmap.h" 00025 #include "pvector.h" 00026 00027 class MayaShader; 00028 class MObject; 00029 00030 //////////////////////////////////////////////////////////////////// 00031 // Class : MayaShaders 00032 // Description : Collects the set of MayaShaders that have been 00033 // encountered so far. 00034 //////////////////////////////////////////////////////////////////// 00035 class MayaShaders { 00036 public: 00037 MayaShaders(); 00038 ~MayaShaders(); 00039 MayaShader *find_shader_for_node(MObject node); 00040 MayaShader *find_shader_for_shading_engine(MObject engine); 00041 00042 int get_num_shaders() const; 00043 MayaShader *get_shader(int n) const; 00044 00045 void clear(); 00046 00047 private: 00048 typedef pmap<string, MayaShader *> Shaders; 00049 Shaders _shaders; 00050 typedef pvector<MayaShader *> ShadersInOrder; 00051 ShadersInOrder _shaders_in_order; 00052 }; 00053 00054 #endif 00055