00001 // Filename: mayaShader.h 00002 // Created by: drose (01Feb00) 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 MAYASHADER_H 00020 #define MAYASHADER_H 00021 00022 #include "pandatoolbase.h" 00023 #include "mayaShaderColorDef.h" 00024 00025 #include "luse.h" 00026 #include "lmatrix.h" 00027 #include "namable.h" 00028 00029 class MObject; 00030 00031 //////////////////////////////////////////////////////////////////// 00032 // Class : MayaShader 00033 // Description : Corresponds to a single "shader" in Maya. This 00034 // extracts out all the parameters of a Maya shader that 00035 // we might care about. There are many more parameters 00036 // that we don't care about or don't know enough to 00037 // extract. 00038 //////////////////////////////////////////////////////////////////// 00039 class MayaShader : public Namable { 00040 public: 00041 MayaShader(MObject engine); 00042 ~MayaShader(); 00043 00044 void output(ostream &out) const; 00045 void write(ostream &out) const; 00046 00047 Colorf get_rgba() const; 00048 00049 MayaShaderColorDef _color; 00050 MayaShaderColorDef _transparency; 00051 00052 private: 00053 bool read_surface_shader(MObject shader); 00054 }; 00055 00056 INLINE ostream &operator << (ostream &out, const MayaShader &shader) { 00057 shader.output(out); 00058 return out; 00059 } 00060 00061 #endif 00062