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