1 /* 2 Copyright (c) 2008-2009 NetAllied Systems GmbH 3 4 This file is part of MayaDataModel. 5 6 Licensed under the MIT Open Source License, 7 for details please see LICENSE file or the website 8 http://www.opensource.org/licenses/mit-license.php 9 */ 10 #ifndef __MayaDM_SHADINGENGINE_H__ 11 #define __MayaDM_SHADINGENGINE_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMObjectSet.h" 15 namespace MayaDM 16 { 17 class ShadingEngine : public ObjectSet 18 { 19 public: 20 public: 21 ShadingEngine()22 ShadingEngine():ObjectSet(){} 23 ShadingEngine(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 24 :ObjectSet(file, name, parent, "shadingEngine", shared, create){} ~ShadingEngine()25 virtual ~ShadingEngine(){} 26 setMiExportMrMaterial(bool mimt)27 void setMiExportMrMaterial(bool mimt) 28 { 29 if(mimt == false) return; 30 fprintf(mFile,"\tsetAttr \".mimt\" %i;\n", mimt); 31 } setMiOpaque(bool miop)32 void setMiOpaque(bool miop) 33 { 34 if(miop == false) return; 35 fprintf(mFile,"\tsetAttr \".miop\" %i;\n", miop); 36 } setMiCutAwayOpacity(float mico)37 void setMiCutAwayOpacity(float mico) 38 { 39 if(mico == 0.0) return; 40 fprintf(mFile,"\tsetAttr \".mico\" %f;\n", mico); 41 } setMiExportShadingEngine(bool mise)42 void setMiExportShadingEngine(bool mise) 43 { 44 if(mise == false) return; 45 fprintf(mFile,"\tsetAttr \".mise\" %i;\n", mise); 46 } setMiExportVolumeSampler(bool mism)47 void setMiExportVolumeSampler(bool mism) 48 { 49 if(mism == false) return; 50 fprintf(mFile,"\tsetAttr \".mism\" %i;\n", mism); 51 } setMiContourEnable(bool mice)52 void setMiContourEnable(bool mice) 53 { 54 if(mice == false) return; 55 fprintf(mFile,"\tsetAttr \".mice\" %i;\n", mice); 56 } setMiContourColor(const float3 & micc)57 void setMiContourColor(const float3& micc) 58 { 59 fprintf(mFile,"\tsetAttr \".micc\" -type \"float3\" "); 60 micc.write(mFile); 61 fprintf(mFile,";\n"); 62 } setMiContourColorR(float micr)63 void setMiContourColorR(float micr) 64 { 65 if(micr == 1.0) return; 66 fprintf(mFile,"\tsetAttr \".micc.micr\" %f;\n", micr); 67 } setMiContourColorG(float micg)68 void setMiContourColorG(float micg) 69 { 70 if(micg == 1.0) return; 71 fprintf(mFile,"\tsetAttr \".micc.micg\" %f;\n", micg); 72 } setMiContourColorB(float micb)73 void setMiContourColorB(float micb) 74 { 75 if(micb == 1.0) return; 76 fprintf(mFile,"\tsetAttr \".micc.micb\" %f;\n", micb); 77 } setMiContourAlpha(float mica)78 void setMiContourAlpha(float mica) 79 { 80 if(mica == 1.0) return; 81 fprintf(mFile,"\tsetAttr \".mica\" %f;\n", mica); 82 } setMiContourWidth(float micw)83 void setMiContourWidth(float micw) 84 { 85 if(micw == 1.25) return; 86 fprintf(mFile,"\tsetAttr \".micw\" %f;\n", micw); 87 } setMiContourRelativeWidth(bool mirw)88 void setMiContourRelativeWidth(bool mirw) 89 { 90 if(mirw == false) return; 91 fprintf(mFile,"\tsetAttr \".mirw\" %i;\n", mirw); 92 } getSurfaceShader()93 void getSurfaceShader()const 94 { 95 fprintf(mFile,"\"%s.ss\"",mName.c_str()); 96 } getDisplacementShader()97 void getDisplacementShader()const 98 { 99 fprintf(mFile,"\"%s.ds\"",mName.c_str()); 100 } getVolumeShader()101 void getVolumeShader()const 102 { 103 fprintf(mFile,"\"%s.vs\"",mName.c_str()); 104 } getImageShader()105 void getImageShader()const 106 { 107 fprintf(mFile,"\"%s.is\"",mName.c_str()); 108 } getMiExportMrMaterial()109 void getMiExportMrMaterial()const 110 { 111 fprintf(mFile,"\"%s.mimt\"",mName.c_str()); 112 } getMiOpaque()113 void getMiOpaque()const 114 { 115 fprintf(mFile,"\"%s.miop\"",mName.c_str()); 116 } getMiCutAwayOpacity()117 void getMiCutAwayOpacity()const 118 { 119 fprintf(mFile,"\"%s.mico\"",mName.c_str()); 120 } getMiExportShadingEngine()121 void getMiExportShadingEngine()const 122 { 123 fprintf(mFile,"\"%s.mise\"",mName.c_str()); 124 } getMiMaterialShader()125 void getMiMaterialShader()const 126 { 127 fprintf(mFile,"\"%s.mims\"",mName.c_str()); 128 } getMiShadowShader()129 void getMiShadowShader()const 130 { 131 fprintf(mFile,"\"%s.miss\"",mName.c_str()); 132 } getMiExportVolumeSampler()133 void getMiExportVolumeSampler()const 134 { 135 fprintf(mFile,"\"%s.mism\"",mName.c_str()); 136 } getMiVolumeShader()137 void getMiVolumeShader()const 138 { 139 fprintf(mFile,"\"%s.mivs\"",mName.c_str()); 140 } getMiPhotonShader()141 void getMiPhotonShader()const 142 { 143 fprintf(mFile,"\"%s.mips\"",mName.c_str()); 144 } getMiPhotonVolumeShader()145 void getMiPhotonVolumeShader()const 146 { 147 fprintf(mFile,"\"%s.mipv\"",mName.c_str()); 148 } getMiDisplacementShader()149 void getMiDisplacementShader()const 150 { 151 fprintf(mFile,"\"%s.mids\"",mName.c_str()); 152 } getMiEnvironmentShader()153 void getMiEnvironmentShader()const 154 { 155 fprintf(mFile,"\"%s.mies\"",mName.c_str()); 156 } getMiLightMapShader()157 void getMiLightMapShader()const 158 { 159 fprintf(mFile,"\"%s.milm\"",mName.c_str()); 160 } getMiContourShader()161 void getMiContourShader()const 162 { 163 fprintf(mFile,"\"%s.mics\"",mName.c_str()); 164 } getMiContourEnable()165 void getMiContourEnable()const 166 { 167 fprintf(mFile,"\"%s.mice\"",mName.c_str()); 168 } getMiContourColor()169 void getMiContourColor()const 170 { 171 fprintf(mFile,"\"%s.micc\"",mName.c_str()); 172 } getMiContourColorR()173 void getMiContourColorR()const 174 { 175 fprintf(mFile,"\"%s.micc.micr\"",mName.c_str()); 176 } getMiContourColorG()177 void getMiContourColorG()const 178 { 179 fprintf(mFile,"\"%s.micc.micg\"",mName.c_str()); 180 } getMiContourColorB()181 void getMiContourColorB()const 182 { 183 fprintf(mFile,"\"%s.micc.micb\"",mName.c_str()); 184 } getMiContourAlpha()185 void getMiContourAlpha()const 186 { 187 fprintf(mFile,"\"%s.mica\"",mName.c_str()); 188 } getMiContourWidth()189 void getMiContourWidth()const 190 { 191 fprintf(mFile,"\"%s.micw\"",mName.c_str()); 192 } getMiContourRelativeWidth()193 void getMiContourRelativeWidth()const 194 { 195 fprintf(mFile,"\"%s.mirw\"",mName.c_str()); 196 } 197 protected: 198 ShadingEngine(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) ObjectSet(file,name,parent,nodeType,shared,create)199 :ObjectSet(file, name, parent, nodeType, shared, create) {} 200 201 }; 202 }//namespace MayaDM 203 #endif//__MayaDM_SHADINGENGINE_H__ 204