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_CLOUD_H__
11 #define __MayaDM_CLOUD_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMTexture3d.h"
15 namespace MayaDM
16 {
17 class Cloud : public Texture3d
18 {
19 public:
20 public:
21 
Cloud()22 	Cloud():Texture3d(){}
23 	Cloud(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24 		:Texture3d(file, name, parent, "cloud", shared, create){}
~Cloud()25 	virtual ~Cloud(){}
26 
setXPixelAngle(float xpa)27 	void setXPixelAngle(float xpa)
28 	{
29 		if(xpa == 0.002053) return;
30 		fprintf(mFile,"\tsetAttr \".xpa\" %f;\n", xpa);
31 	}
setColor1(const float3 & c1)32 	void setColor1(const float3& c1)
33 	{
34 		if(c1 == float3(0.0f,0.0f,0.0f)) return;
35 		fprintf(mFile,"\tsetAttr \".c1\" -type \"float3\" ");
36 		c1.write(mFile);
37 		fprintf(mFile,";\n");
38 	}
setColor1R(float c1r)39 	void setColor1R(float c1r)
40 	{
41 		if(c1r == 0.0) return;
42 		fprintf(mFile,"\tsetAttr \".c1.c1r\" %f;\n", c1r);
43 	}
setColor1G(float c1g)44 	void setColor1G(float c1g)
45 	{
46 		if(c1g == 0.0) return;
47 		fprintf(mFile,"\tsetAttr \".c1.c1g\" %f;\n", c1g);
48 	}
setColor1B(float c1b)49 	void setColor1B(float c1b)
50 	{
51 		if(c1b == 0.0) return;
52 		fprintf(mFile,"\tsetAttr \".c1.c1b\" %f;\n", c1b);
53 	}
setColor2(const float3 & c2)54 	void setColor2(const float3& c2)
55 	{
56 		if(c2 == float3(1.0f,1.0f,1.0f)) return;
57 		fprintf(mFile,"\tsetAttr \".c2\" -type \"float3\" ");
58 		c2.write(mFile);
59 		fprintf(mFile,";\n");
60 	}
setColor2R(float c2r)61 	void setColor2R(float c2r)
62 	{
63 		if(c2r == 0.0) return;
64 		fprintf(mFile,"\tsetAttr \".c2.c2r\" %f;\n", c2r);
65 	}
setColor2G(float c2g)66 	void setColor2G(float c2g)
67 	{
68 		if(c2g == 0.0) return;
69 		fprintf(mFile,"\tsetAttr \".c2.c2g\" %f;\n", c2g);
70 	}
setColor2B(float c2b)71 	void setColor2B(float c2b)
72 	{
73 		if(c2b == 0.0) return;
74 		fprintf(mFile,"\tsetAttr \".c2.c2b\" %f;\n", c2b);
75 	}
setContrast(float c)76 	void setContrast(float c)
77 	{
78 		if(c == 0.5) return;
79 		fprintf(mFile,"\tsetAttr \".c\" %f;\n", c);
80 	}
setSoftEdges(bool se)81 	void setSoftEdges(bool se)
82 	{
83 		if(se == true) return;
84 		fprintf(mFile,"\tsetAttr \".se\" %i;\n", se);
85 	}
setTranspRange(float tr)86 	void setTranspRange(float tr)
87 	{
88 		if(tr == 0.5) return;
89 		fprintf(mFile,"\tsetAttr \".tr\" %f;\n", tr);
90 	}
setCenterThresh(float ct)91 	void setCenterThresh(float ct)
92 	{
93 		if(ct == 0.0) return;
94 		fprintf(mFile,"\tsetAttr \".ct\" %f;\n", ct);
95 	}
setEdgeThresh(float et)96 	void setEdgeThresh(float et)
97 	{
98 		if(et == 1.0) return;
99 		fprintf(mFile,"\tsetAttr \".et\" %f;\n", et);
100 	}
setRipples(const float3 & r)101 	void setRipples(const float3& r)
102 	{
103 		if(r == float3(1.0f,1.0f,1.0f)) return;
104 		fprintf(mFile,"\tsetAttr \".r\" -type \"float3\" ");
105 		r.write(mFile);
106 		fprintf(mFile,";\n");
107 	}
setRipplesX(float rx)108 	void setRipplesX(float rx)
109 	{
110 		if(rx == 0.0) return;
111 		fprintf(mFile,"\tsetAttr \".r.rx\" %f;\n", rx);
112 	}
setRipplesY(float ry)113 	void setRipplesY(float ry)
114 	{
115 		if(ry == 0.0) return;
116 		fprintf(mFile,"\tsetAttr \".r.ry\" %f;\n", ry);
117 	}
setRipplesZ(float rz)118 	void setRipplesZ(float rz)
119 	{
120 		if(rz == 0.0) return;
121 		fprintf(mFile,"\tsetAttr \".r.rz\" %f;\n", rz);
122 	}
setDepth(const float2 & d)123 	void setDepth(const float2& d)
124 	{
125 		if(d == float2(0.0f,8.0f)) return;
126 		fprintf(mFile,"\tsetAttr \".d\" -type \"float2\" ");
127 		d.write(mFile);
128 		fprintf(mFile,";\n");
129 	}
setDepthMin(float dmn)130 	void setDepthMin(float dmn)
131 	{
132 		if(dmn == 0.0) return;
133 		fprintf(mFile,"\tsetAttr \".d.dmn\" %f;\n", dmn);
134 	}
setDepthMax(float dmx)135 	void setDepthMax(float dmx)
136 	{
137 		if(dmx == 0.0) return;
138 		fprintf(mFile,"\tsetAttr \".d.dmx\" %f;\n", dmx);
139 	}
setAmplitude(float a)140 	void setAmplitude(float a)
141 	{
142 		if(a == 1.0) return;
143 		fprintf(mFile,"\tsetAttr \".a\" %f;\n", a);
144 	}
setRatio(float ra)145 	void setRatio(float ra)
146 	{
147 		if(ra == 0.707) return;
148 		fprintf(mFile,"\tsetAttr \".ra\" %f;\n", ra);
149 	}
getNormalCamera()150 	void getNormalCamera()const
151 	{
152 		fprintf(mFile,"\"%s.n\"",mName.c_str());
153 	}
getNormalCameraX()154 	void getNormalCameraX()const
155 	{
156 		fprintf(mFile,"\"%s.n.nx\"",mName.c_str());
157 	}
getNormalCameraY()158 	void getNormalCameraY()const
159 	{
160 		fprintf(mFile,"\"%s.n.ny\"",mName.c_str());
161 	}
getNormalCameraZ()162 	void getNormalCameraZ()const
163 	{
164 		fprintf(mFile,"\"%s.n.nz\"",mName.c_str());
165 	}
getRefPointObj()166 	void getRefPointObj()const
167 	{
168 		fprintf(mFile,"\"%s.rpo\"",mName.c_str());
169 	}
getRefPointObjX()170 	void getRefPointObjX()const
171 	{
172 		fprintf(mFile,"\"%s.rpo.rox\"",mName.c_str());
173 	}
getRefPointObjY()174 	void getRefPointObjY()const
175 	{
176 		fprintf(mFile,"\"%s.rpo.roy\"",mName.c_str());
177 	}
getRefPointObjZ()178 	void getRefPointObjZ()const
179 	{
180 		fprintf(mFile,"\"%s.rpo.roz\"",mName.c_str());
181 	}
getRefPointCamera()182 	void getRefPointCamera()const
183 	{
184 		fprintf(mFile,"\"%s.rpc\"",mName.c_str());
185 	}
getRefPointCameraX()186 	void getRefPointCameraX()const
187 	{
188 		fprintf(mFile,"\"%s.rpc.rcx\"",mName.c_str());
189 	}
getRefPointCameraY()190 	void getRefPointCameraY()const
191 	{
192 		fprintf(mFile,"\"%s.rpc.rcy\"",mName.c_str());
193 	}
getRefPointCameraZ()194 	void getRefPointCameraZ()const
195 	{
196 		fprintf(mFile,"\"%s.rpc.rcz\"",mName.c_str());
197 	}
getXPixelAngle()198 	void getXPixelAngle()const
199 	{
200 		fprintf(mFile,"\"%s.xpa\"",mName.c_str());
201 	}
getEyeToTextureMatrix()202 	void getEyeToTextureMatrix()const
203 	{
204 		fprintf(mFile,"\"%s.e2t\"",mName.c_str());
205 	}
getColor1()206 	void getColor1()const
207 	{
208 		fprintf(mFile,"\"%s.c1\"",mName.c_str());
209 	}
getColor1R()210 	void getColor1R()const
211 	{
212 		fprintf(mFile,"\"%s.c1.c1r\"",mName.c_str());
213 	}
getColor1G()214 	void getColor1G()const
215 	{
216 		fprintf(mFile,"\"%s.c1.c1g\"",mName.c_str());
217 	}
getColor1B()218 	void getColor1B()const
219 	{
220 		fprintf(mFile,"\"%s.c1.c1b\"",mName.c_str());
221 	}
getColor2()222 	void getColor2()const
223 	{
224 		fprintf(mFile,"\"%s.c2\"",mName.c_str());
225 	}
getColor2R()226 	void getColor2R()const
227 	{
228 		fprintf(mFile,"\"%s.c2.c2r\"",mName.c_str());
229 	}
getColor2G()230 	void getColor2G()const
231 	{
232 		fprintf(mFile,"\"%s.c2.c2g\"",mName.c_str());
233 	}
getColor2B()234 	void getColor2B()const
235 	{
236 		fprintf(mFile,"\"%s.c2.c2b\"",mName.c_str());
237 	}
getContrast()238 	void getContrast()const
239 	{
240 		fprintf(mFile,"\"%s.c\"",mName.c_str());
241 	}
getSoftEdges()242 	void getSoftEdges()const
243 	{
244 		fprintf(mFile,"\"%s.se\"",mName.c_str());
245 	}
getTranspRange()246 	void getTranspRange()const
247 	{
248 		fprintf(mFile,"\"%s.tr\"",mName.c_str());
249 	}
getCenterThresh()250 	void getCenterThresh()const
251 	{
252 		fprintf(mFile,"\"%s.ct\"",mName.c_str());
253 	}
getEdgeThresh()254 	void getEdgeThresh()const
255 	{
256 		fprintf(mFile,"\"%s.et\"",mName.c_str());
257 	}
getRipples()258 	void getRipples()const
259 	{
260 		fprintf(mFile,"\"%s.r\"",mName.c_str());
261 	}
getRipplesX()262 	void getRipplesX()const
263 	{
264 		fprintf(mFile,"\"%s.r.rx\"",mName.c_str());
265 	}
getRipplesY()266 	void getRipplesY()const
267 	{
268 		fprintf(mFile,"\"%s.r.ry\"",mName.c_str());
269 	}
getRipplesZ()270 	void getRipplesZ()const
271 	{
272 		fprintf(mFile,"\"%s.r.rz\"",mName.c_str());
273 	}
getDepth()274 	void getDepth()const
275 	{
276 		fprintf(mFile,"\"%s.d\"",mName.c_str());
277 	}
getDepthMin()278 	void getDepthMin()const
279 	{
280 		fprintf(mFile,"\"%s.d.dmn\"",mName.c_str());
281 	}
getDepthMax()282 	void getDepthMax()const
283 	{
284 		fprintf(mFile,"\"%s.d.dmx\"",mName.c_str());
285 	}
getAmplitude()286 	void getAmplitude()const
287 	{
288 		fprintf(mFile,"\"%s.a\"",mName.c_str());
289 	}
getRatio()290 	void getRatio()const
291 	{
292 		fprintf(mFile,"\"%s.ra\"",mName.c_str());
293 	}
294 protected:
295 	Cloud(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
Texture3d(file,name,parent,nodeType,shared,create)296 		:Texture3d(file, name, parent, nodeType, shared, create) {}
297 
298 };
299 }//namespace MayaDM
300 #endif//__MayaDM_CLOUD_H__
301