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_BRUSH_H__
11 #define __MayaDM_BRUSH_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMDependNode.h"
15 namespace MayaDM
16 {
17 class Brush : public DependNode
18 {
19 public:
20 	struct LeafCurl{
21 		float leafCurl_Position;
22 		float leafCurl_FloatValue;
23 		unsigned int leafCurl_Interp;
writeLeafCurl24 		void write(FILE* file) const
25 		{
26 			fprintf(file,"%f ", leafCurl_Position);
27 			fprintf(file,"%f ", leafCurl_FloatValue);
28 			fprintf(file,"%i", leafCurl_Interp);
29 		}
30 	};
31 	struct PetalCurl{
32 		float petalCurl_Position;
33 		float petalCurl_FloatValue;
34 		unsigned int petalCurl_Interp;
writePetalCurl35 		void write(FILE* file) const
36 		{
37 			fprintf(file,"%f ", petalCurl_Position);
38 			fprintf(file,"%f ", petalCurl_FloatValue);
39 			fprintf(file,"%i", petalCurl_Interp);
40 		}
41 	};
42 	struct WidthScale{
43 		float widthScale_Position;
44 		float widthScale_FloatValue;
45 		unsigned int widthScale_Interp;
writeWidthScale46 		void write(FILE* file) const
47 		{
48 			fprintf(file,"%f ", widthScale_Position);
49 			fprintf(file,"%f ", widthScale_FloatValue);
50 			fprintf(file,"%i", widthScale_Interp);
51 		}
52 	};
53 	struct LeafWidthScale{
54 		float leafWidthScale_Position;
55 		float leafWidthScale_FloatValue;
56 		unsigned int leafWidthScale_Interp;
writeLeafWidthScale57 		void write(FILE* file) const
58 		{
59 			fprintf(file,"%f ", leafWidthScale_Position);
60 			fprintf(file,"%f ", leafWidthScale_FloatValue);
61 			fprintf(file,"%i", leafWidthScale_Interp);
62 		}
63 	};
64 	struct PetalWidthScale{
65 		float petalWidthScale_Position;
66 		float petalWidthScale_FloatValue;
67 		unsigned int petalWidthScale_Interp;
writePetalWidthScale68 		void write(FILE* file) const
69 		{
70 			fprintf(file,"%f ", petalWidthScale_Position);
71 			fprintf(file,"%f ", petalWidthScale_FloatValue);
72 			fprintf(file,"%i", petalWidthScale_Interp);
73 		}
74 	};
75 	struct TwigLengthScale{
76 		float twigLengthScale_Position;
77 		float twigLengthScale_FloatValue;
78 		unsigned int twigLengthScale_Interp;
writeTwigLengthScale79 		void write(FILE* file) const
80 		{
81 			fprintf(file,"%f ", twigLengthScale_Position);
82 			fprintf(file,"%f ", twigLengthScale_FloatValue);
83 			fprintf(file,"%i", twigLengthScale_Interp);
84 		}
85 	};
86 	struct Environment{
87 		float environment_Position;
88 		float3 environment_Color;
89 		unsigned int environment_Interp;
writeEnvironment90 		void write(FILE* file) const
91 		{
92 			fprintf(file,"%f ", environment_Position);
93 			environment_Color.write(file);
94 			fprintf(file, " ");
95 			fprintf(file,"%i", environment_Interp);
96 		}
97 	};
98 	struct ReflectionRolloff{
99 		float reflectionRolloff_Position;
100 		float reflectionRolloff_FloatValue;
101 		unsigned int reflectionRolloff_Interp;
writeReflectionRolloff102 		void write(FILE* file) const
103 		{
104 			fprintf(file,"%f ", reflectionRolloff_Position);
105 			fprintf(file,"%f ", reflectionRolloff_FloatValue);
106 			fprintf(file,"%i", reflectionRolloff_Interp);
107 		}
108 	};
109 public:
110 
Brush()111 	Brush():DependNode(){}
112 	Brush(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
113 		:DependNode(file, name, parent, "brush", shared, create){}
~Brush()114 	virtual ~Brush(){}
115 
setTime(double tim)116 	void setTime(double tim)
117 	{
118 		if(tim == 0) return;
119 		fprintf(mFile,"\tsetAttr \".tim\" %f;\n", tim);
120 	}
setGlobalScale(double gsc)121 	void setGlobalScale(double gsc)
122 	{
123 		if(gsc == 1.0) return;
124 		fprintf(mFile,"\tsetAttr \".gsc\" %f;\n", gsc);
125 	}
setDepth(bool dep)126 	void setDepth(bool dep)
127 	{
128 		if(dep == false) return;
129 		fprintf(mFile,"\tsetAttr \".dep\" %i;\n", dep);
130 	}
setModifyDepth(bool mdp)131 	void setModifyDepth(bool mdp)
132 	{
133 		if(mdp == true) return;
134 		fprintf(mFile,"\tsetAttr \".mdp\" %i;\n", mdp);
135 	}
setModifyColor(bool mdc)136 	void setModifyColor(bool mdc)
137 	{
138 		if(mdc == true) return;
139 		fprintf(mFile,"\tsetAttr \".mdc\" %i;\n", mdc);
140 	}
setModifyAlpha(bool mda)141 	void setModifyAlpha(bool mda)
142 	{
143 		if(mda == true) return;
144 		fprintf(mFile,"\tsetAttr \".mda\" %i;\n", mda);
145 	}
setIlluminated(bool ill)146 	void setIlluminated(bool ill)
147 	{
148 		if(ill == false) return;
149 		fprintf(mFile,"\tsetAttr \".ill\" %i;\n", ill);
150 	}
setCastShadows(bool csd)151 	void setCastShadows(bool csd)
152 	{
153 		if(csd == false) return;
154 		fprintf(mFile,"\tsetAttr \".csd\" %i;\n", csd);
155 	}
setLightingBasedWidth(double lbw)156 	void setLightingBasedWidth(double lbw)
157 	{
158 		if(lbw == 0.0) return;
159 		fprintf(mFile,"\tsetAttr \".lbw\" %f;\n", lbw);
160 	}
setBranches(bool brc)161 	void setBranches(bool brc)
162 	{
163 		if(brc == false) return;
164 		fprintf(mFile,"\tsetAttr \".brc\" %i;\n", brc);
165 	}
setTwigs(bool twg)166 	void setTwigs(bool twg)
167 	{
168 		if(twg == false) return;
169 		fprintf(mFile,"\tsetAttr \".twg\" %i;\n", twg);
170 	}
setBuds(bool bud)171 	void setBuds(bool bud)
172 	{
173 		if(bud == false) return;
174 		fprintf(mFile,"\tsetAttr \".bud\" %i;\n", bud);
175 	}
setLeaves(bool lvs)176 	void setLeaves(bool lvs)
177 	{
178 		if(lvs == false) return;
179 		fprintf(mFile,"\tsetAttr \".lvs\" %i;\n", lvs);
180 	}
setFlowers(bool flw)181 	void setFlowers(bool flw)
182 	{
183 		if(flw == false) return;
184 		fprintf(mFile,"\tsetAttr \".flw\" %i;\n", flw);
185 	}
setBrushType(unsigned int brt)186 	void setBrushType(unsigned int brt)
187 	{
188 		if(brt == 0) return;
189 		fprintf(mFile,"\tsetAttr \".brt\" %i;\n", brt);
190 	}
setBrushWidth(double bwd)191 	void setBrushWidth(double bwd)
192 	{
193 		if(bwd == 0.05) return;
194 		fprintf(mFile,"\tsetAttr \".bwd\" %f;\n", bwd);
195 	}
setScreenspaceWidth(bool spw)196 	void setScreenspaceWidth(bool spw)
197 	{
198 		if(spw == false) return;
199 		fprintf(mFile,"\tsetAttr \".spw\" %i;\n", spw);
200 	}
setDistanceScaling(double dsl)201 	void setDistanceScaling(double dsl)
202 	{
203 		if(dsl == 0.0) return;
204 		fprintf(mFile,"\tsetAttr \".dsl\" %f;\n", dsl);
205 	}
setMinPixelWidth(double mpw)206 	void setMinPixelWidth(double mpw)
207 	{
208 		if(mpw == 0.0) return;
209 		fprintf(mFile,"\tsetAttr \".mpw\" %f;\n", mpw);
210 	}
setMaxPixelWidth(double mxp)211 	void setMaxPixelWidth(double mxp)
212 	{
213 		if(mxp == 1000.0) return;
214 		fprintf(mFile,"\tsetAttr \".mxp\" %f;\n", mxp);
215 	}
setStampDensity(double sdn)216 	void setStampDensity(double sdn)
217 	{
218 		if(sdn == 8.0) return;
219 		fprintf(mFile,"\tsetAttr \".sdn\" %f;\n", sdn);
220 	}
setSoftness(double sft)221 	void setSoftness(double sft)
222 	{
223 		if(sft == 0.2) return;
224 		fprintf(mFile,"\tsetAttr \".sft\" %f;\n", sft);
225 	}
setEdgeAntialias(bool eaa)226 	void setEdgeAntialias(bool eaa)
227 	{
228 		if(eaa == true) return;
229 		fprintf(mFile,"\tsetAttr \".eaa\" %i;\n", eaa);
230 	}
setEdgeClip(bool ecl)231 	void setEdgeClip(bool ecl)
232 	{
233 		if(ecl == false) return;
234 		fprintf(mFile,"\tsetAttr \".ecl\" %i;\n", ecl);
235 	}
setEdgeClipDepth(double ecd)236 	void setEdgeClipDepth(double ecd)
237 	{
238 		if(ecd == 0.1) return;
239 		fprintf(mFile,"\tsetAttr \".ecd\" %f;\n", ecd);
240 	}
setOcclusionWidthScale(bool ows)241 	void setOcclusionWidthScale(bool ows)
242 	{
243 		if(ows == false) return;
244 		fprintf(mFile,"\tsetAttr \".ows\" %i;\n", ows);
245 	}
setBlurIntensity(int bin)246 	void setBlurIntensity(int bin)
247 	{
248 		if(bin == 4) return;
249 		fprintf(mFile,"\tsetAttr \".bin\" %i;\n", bin);
250 	}
setColor1(const float3 & cl1)251 	void setColor1(const float3& cl1)
252 	{
253 		fprintf(mFile,"\tsetAttr \".cl1\" -type \"float3\" ");
254 		cl1.write(mFile);
255 		fprintf(mFile,";\n");
256 	}
setColor1R(float c1r)257 	void setColor1R(float c1r)
258 	{
259 		if(c1r == 0.0) return;
260 		fprintf(mFile,"\tsetAttr \".cl1.c1r\" %f;\n", c1r);
261 	}
setColor1G(float c1g)262 	void setColor1G(float c1g)
263 	{
264 		if(c1g == 0.0) return;
265 		fprintf(mFile,"\tsetAttr \".cl1.c1g\" %f;\n", c1g);
266 	}
setColor1B(float c1b)267 	void setColor1B(float c1b)
268 	{
269 		if(c1b == 0.0) return;
270 		fprintf(mFile,"\tsetAttr \".cl1.c1b\" %f;\n", c1b);
271 	}
setColor2(const float3 & cl2)272 	void setColor2(const float3& cl2)
273 	{
274 		fprintf(mFile,"\tsetAttr \".cl2\" -type \"float3\" ");
275 		cl2.write(mFile);
276 		fprintf(mFile,";\n");
277 	}
setColor2R(float c2r)278 	void setColor2R(float c2r)
279 	{
280 		if(c2r == 1.0) return;
281 		fprintf(mFile,"\tsetAttr \".cl2.c2r\" %f;\n", c2r);
282 	}
setColor2G(float c2g)283 	void setColor2G(float c2g)
284 	{
285 		if(c2g == 1.0) return;
286 		fprintf(mFile,"\tsetAttr \".cl2.c2g\" %f;\n", c2g);
287 	}
setColor2B(float c2b)288 	void setColor2B(float c2b)
289 	{
290 		if(c2b == 1.0) return;
291 		fprintf(mFile,"\tsetAttr \".cl2.c2b\" %f;\n", c2b);
292 	}
setTransparency1(const float3 & tn1)293 	void setTransparency1(const float3& tn1)
294 	{
295 		fprintf(mFile,"\tsetAttr \".tn1\" -type \"float3\" ");
296 		tn1.write(mFile);
297 		fprintf(mFile,";\n");
298 	}
setTransparency1R(float t1r)299 	void setTransparency1R(float t1r)
300 	{
301 		if(t1r == 0.0) return;
302 		fprintf(mFile,"\tsetAttr \".tn1.t1r\" %f;\n", t1r);
303 	}
setTransparency1G(float t1g)304 	void setTransparency1G(float t1g)
305 	{
306 		if(t1g == 0.0) return;
307 		fprintf(mFile,"\tsetAttr \".tn1.t1g\" %f;\n", t1g);
308 	}
setTransparency1B(float t1b)309 	void setTransparency1B(float t1b)
310 	{
311 		if(t1b == 0.0) return;
312 		fprintf(mFile,"\tsetAttr \".tn1.t1b\" %f;\n", t1b);
313 	}
setTransparency2(const float3 & tn2)314 	void setTransparency2(const float3& tn2)
315 	{
316 		fprintf(mFile,"\tsetAttr \".tn2\" -type \"float3\" ");
317 		tn2.write(mFile);
318 		fprintf(mFile,";\n");
319 	}
setTransparency2R(float t2r)320 	void setTransparency2R(float t2r)
321 	{
322 		if(t2r == 0.0) return;
323 		fprintf(mFile,"\tsetAttr \".tn2.t2r\" %f;\n", t2r);
324 	}
setTransparency2G(float t2g)325 	void setTransparency2G(float t2g)
326 	{
327 		if(t2g == 0.0) return;
328 		fprintf(mFile,"\tsetAttr \".tn2.t2g\" %f;\n", t2g);
329 	}
setTransparency2B(float t2b)330 	void setTransparency2B(float t2b)
331 	{
332 		if(t2b == 0.0) return;
333 		fprintf(mFile,"\tsetAttr \".tn2.t2b\" %f;\n", t2b);
334 	}
setIncandescence1(const float3 & in1)335 	void setIncandescence1(const float3& in1)
336 	{
337 		fprintf(mFile,"\tsetAttr \".in1\" -type \"float3\" ");
338 		in1.write(mFile);
339 		fprintf(mFile,";\n");
340 	}
setIncandescence1R(float i1r)341 	void setIncandescence1R(float i1r)
342 	{
343 		if(i1r == 0.0) return;
344 		fprintf(mFile,"\tsetAttr \".in1.i1r\" %f;\n", i1r);
345 	}
setIncandescence1G(float i1g)346 	void setIncandescence1G(float i1g)
347 	{
348 		if(i1g == 0.0) return;
349 		fprintf(mFile,"\tsetAttr \".in1.i1g\" %f;\n", i1g);
350 	}
setIncandescence1B(float i1b)351 	void setIncandescence1B(float i1b)
352 	{
353 		if(i1b == 0.0) return;
354 		fprintf(mFile,"\tsetAttr \".in1.i1b\" %f;\n", i1b);
355 	}
setIncandescence2(const float3 & in2)356 	void setIncandescence2(const float3& in2)
357 	{
358 		fprintf(mFile,"\tsetAttr \".in2\" -type \"float3\" ");
359 		in2.write(mFile);
360 		fprintf(mFile,";\n");
361 	}
setIncandescence2R(float i2r)362 	void setIncandescence2R(float i2r)
363 	{
364 		if(i2r == 0.0) return;
365 		fprintf(mFile,"\tsetAttr \".in2.i2r\" %f;\n", i2r);
366 	}
setIncandescence2G(float i2g)367 	void setIncandescence2G(float i2g)
368 	{
369 		if(i2g == 0.0) return;
370 		fprintf(mFile,"\tsetAttr \".in2.i2g\" %f;\n", i2g);
371 	}
setIncandescence2B(float i2b)372 	void setIncandescence2B(float i2b)
373 	{
374 		if(i2b == 0.0) return;
375 		fprintf(mFile,"\tsetAttr \".in2.i2b\" %f;\n", i2b);
376 	}
setSpecularColor(const float3 & spc)377 	void setSpecularColor(const float3& spc)
378 	{
379 		fprintf(mFile,"\tsetAttr \".spc\" -type \"float3\" ");
380 		spc.write(mFile);
381 		fprintf(mFile,";\n");
382 	}
setSpecularColorR(float spr)383 	void setSpecularColorR(float spr)
384 	{
385 		if(spr == 1.0) return;
386 		fprintf(mFile,"\tsetAttr \".spc.spr\" %f;\n", spr);
387 	}
setSpecularColorG(float spg)388 	void setSpecularColorG(float spg)
389 	{
390 		if(spg == 1.0) return;
391 		fprintf(mFile,"\tsetAttr \".spc.spg\" %f;\n", spg);
392 	}
setSpecularColorB(float spb)393 	void setSpecularColorB(float spb)
394 	{
395 		if(spb == 1.0) return;
396 		fprintf(mFile,"\tsetAttr \".spc.spb\" %f;\n", spb);
397 	}
setSpecular(double spe)398 	void setSpecular(double spe)
399 	{
400 		if(spe == 0.0) return;
401 		fprintf(mFile,"\tsetAttr \".spe\" %f;\n", spe);
402 	}
setSpecularPower(double spp)403 	void setSpecularPower(double spp)
404 	{
405 		if(spp == 10.0) return;
406 		fprintf(mFile,"\tsetAttr \".spp\" %f;\n", spp);
407 	}
setTranslucence(double trn)408 	void setTranslucence(double trn)
409 	{
410 		if(trn == 0.2) return;
411 		fprintf(mFile,"\tsetAttr \".trn\" %f;\n", trn);
412 	}
setGlow(double glw)413 	void setGlow(double glw)
414 	{
415 		if(glw == 0.0) return;
416 		fprintf(mFile,"\tsetAttr \".glw\" %f;\n", glw);
417 	}
setGlowColor(const float3 & glc)418 	void setGlowColor(const float3& glc)
419 	{
420 		fprintf(mFile,"\tsetAttr \".glc\" -type \"float3\" ");
421 		glc.write(mFile);
422 		fprintf(mFile,";\n");
423 	}
setGlowColorR(float glr)424 	void setGlowColorR(float glr)
425 	{
426 		if(glr == 0.5) return;
427 		fprintf(mFile,"\tsetAttr \".glc.glr\" %f;\n", glr);
428 	}
setGlowColorG(float glg)429 	void setGlowColorG(float glg)
430 	{
431 		if(glg == 0.5) return;
432 		fprintf(mFile,"\tsetAttr \".glc.glg\" %f;\n", glg);
433 	}
setGlowColorB(float glb)434 	void setGlowColorB(float glb)
435 	{
436 		if(glb == 0.5) return;
437 		fprintf(mFile,"\tsetAttr \".glc.glb\" %f;\n", glb);
438 	}
setGlowSpread(double gls)439 	void setGlowSpread(double gls)
440 	{
441 		if(gls == 3.0) return;
442 		fprintf(mFile,"\tsetAttr \".gls\" %f;\n", gls);
443 	}
setShaderGlow(double sgl)444 	void setShaderGlow(double sgl)
445 	{
446 		if(sgl == 0.0) return;
447 		fprintf(mFile,"\tsetAttr \".sgl\" %f;\n", sgl);
448 	}
setHueRand(double chr)449 	void setHueRand(double chr)
450 	{
451 		if(chr == 0.0) return;
452 		fprintf(mFile,"\tsetAttr \".chr\" %f;\n", chr);
453 	}
setSatRand(double csr)454 	void setSatRand(double csr)
455 	{
456 		if(csr == 0.0) return;
457 		fprintf(mFile,"\tsetAttr \".csr\" %f;\n", csr);
458 	}
setValRand(double cvr)459 	void setValRand(double cvr)
460 	{
461 		if(cvr == 0.0) return;
462 		fprintf(mFile,"\tsetAttr \".cvr\" %f;\n", cvr);
463 	}
setRootFade(double rfd)464 	void setRootFade(double rfd)
465 	{
466 		if(rfd == 0.0) return;
467 		fprintf(mFile,"\tsetAttr \".rfd\" %f;\n", rfd);
468 	}
setTipFade(double tfd)469 	void setTipFade(double tfd)
470 	{
471 		if(tfd == 0.0) return;
472 		fprintf(mFile,"\tsetAttr \".tfd\" %f;\n", tfd);
473 	}
setFakeShadow(unsigned int fks)474 	void setFakeShadow(unsigned int fks)
475 	{
476 		if(fks == 0) return;
477 		fprintf(mFile,"\tsetAttr \".fks\" %i;\n", fks);
478 	}
setShadowOffset(double sof)479 	void setShadowOffset(double sof)
480 	{
481 		if(sof == 0.5) return;
482 		fprintf(mFile,"\tsetAttr \".sof\" %f;\n", sof);
483 	}
setShadowDiffusion(double sdf)484 	void setShadowDiffusion(double sdf)
485 	{
486 		if(sdf == 0.1) return;
487 		fprintf(mFile,"\tsetAttr \".sdf\" %f;\n", sdf);
488 	}
setShadowTransparency(double stn)489 	void setShadowTransparency(double stn)
490 	{
491 		if(stn == 0.8) return;
492 		fprintf(mFile,"\tsetAttr \".stn\" %f;\n", stn);
493 	}
setBackShadow(double bks)494 	void setBackShadow(double bks)
495 	{
496 		if(bks == 0.0) return;
497 		fprintf(mFile,"\tsetAttr \".bks\" %f;\n", bks);
498 	}
setBrightnessRand(double brn)499 	void setBrightnessRand(double brn)
500 	{
501 		if(brn == 0.0) return;
502 		fprintf(mFile,"\tsetAttr \".brn\" %f;\n", brn);
503 	}
setCenterShadow(double cns)504 	void setCenterShadow(double cns)
505 	{
506 		if(cns == 0.0) return;
507 		fprintf(mFile,"\tsetAttr \".cns\" %f;\n", cns);
508 	}
setDepthShadowType(unsigned int dpt)509 	void setDepthShadowType(unsigned int dpt)
510 	{
511 		if(dpt == 0) return;
512 		fprintf(mFile,"\tsetAttr \".dpt\" %i;\n", dpt);
513 	}
setDepthShadow(double dpl)514 	void setDepthShadow(double dpl)
515 	{
516 		if(dpl == 0.0) return;
517 		fprintf(mFile,"\tsetAttr \".dpl\" %f;\n", dpl);
518 	}
setDepthShadowDepth(double dps)519 	void setDepthShadowDepth(double dps)
520 	{
521 		if(dps == 0.0) return;
522 		fprintf(mFile,"\tsetAttr \".dps\" %f;\n", dps);
523 	}
setRealLights(bool rll)524 	void setRealLights(bool rll)
525 	{
526 		if(rll == false) return;
527 		fprintf(mFile,"\tsetAttr \".rll\" %i;\n", rll);
528 	}
setLightDirection(const double3 & ldr)529 	void setLightDirection(const double3& ldr)
530 	{
531 		fprintf(mFile,"\tsetAttr \".ldr\" -type \"double3\" ");
532 		ldr.write(mFile);
533 		fprintf(mFile,";\n");
534 	}
setLightDirectionX(double ldx)535 	void setLightDirectionX(double ldx)
536 	{
537 		if(ldx == 0.5) return;
538 		fprintf(mFile,"\tsetAttr \".ldr.ldx\" %f;\n", ldx);
539 	}
setLightDirectionY(double ldy)540 	void setLightDirectionY(double ldy)
541 	{
542 		if(ldy == 0.5) return;
543 		fprintf(mFile,"\tsetAttr \".ldr.ldy\" %f;\n", ldy);
544 	}
setLightDirectionZ(double ldz)545 	void setLightDirectionZ(double ldz)
546 	{
547 		if(ldz == -0.5) return;
548 		fprintf(mFile,"\tsetAttr \".ldr.ldz\" %f;\n", ldz);
549 	}
setGapSize(double gsz)550 	void setGapSize(double gsz)
551 	{
552 		if(gsz == 0.0) return;
553 		fprintf(mFile,"\tsetAttr \".gsz\" %f;\n", gsz);
554 	}
setGapSpacing(double gsp)555 	void setGapSpacing(double gsp)
556 	{
557 		if(gsp == 1.0) return;
558 		fprintf(mFile,"\tsetAttr \".gsp\" %f;\n", gsp);
559 	}
setGapRand(double grn)560 	void setGapRand(double grn)
561 	{
562 		if(grn == 0.0) return;
563 		fprintf(mFile,"\tsetAttr \".grn\" %f;\n", grn);
564 	}
setFlowSpeed(double fws)565 	void setFlowSpeed(double fws)
566 	{
567 		if(fws == 0.0) return;
568 		fprintf(mFile,"\tsetAttr \".fws\" %f;\n", fws);
569 	}
setTextureFlow(bool tfl)570 	void setTextureFlow(bool tfl)
571 	{
572 		if(tfl == true) return;
573 		fprintf(mFile,"\tsetAttr \".tfl\" %i;\n", tfl);
574 	}
setTimeClip(bool tcl)575 	void setTimeClip(bool tcl)
576 	{
577 		if(tcl == false) return;
578 		fprintf(mFile,"\tsetAttr \".tcl\" %i;\n", tcl);
579 	}
setStrokeTime(bool srm)580 	void setStrokeTime(bool srm)
581 	{
582 		if(srm == false) return;
583 		fprintf(mFile,"\tsetAttr \".srm\" %i;\n", srm);
584 	}
setStartTime(double sti)585 	void setStartTime(double sti)
586 	{
587 		if(sti == 0.0) return;
588 		fprintf(mFile,"\tsetAttr \".sti\" %f;\n", sti);
589 	}
setEndTime(double eti)590 	void setEndTime(double eti)
591 	{
592 		if(eti == 1000.0) return;
593 		fprintf(mFile,"\tsetAttr \".eti\" %f;\n", eti);
594 	}
setTubes(bool tub)595 	void setTubes(bool tub)
596 	{
597 		if(tub == false) return;
598 		fprintf(mFile,"\tsetAttr \".tub\" %i;\n", tub);
599 	}
setCreationScript(const string & csc)600 	void setCreationScript(const string& csc)
601 	{
602 		if(csc == "NULL") return;
603 		fprintf(mFile,"\tsetAttr \".csc\" -type \"string\" ");
604 		csc.write(mFile);
605 		fprintf(mFile,";\n");
606 	}
setRuntimeScript(const string & rsc)607 	void setRuntimeScript(const string& rsc)
608 	{
609 		if(rsc == "NULL") return;
610 		fprintf(mFile,"\tsetAttr \".rsc\" -type \"string\" ");
611 		rsc.write(mFile);
612 		fprintf(mFile,";\n");
613 	}
setTubeCompletion(bool tcm)614 	void setTubeCompletion(bool tcm)
615 	{
616 		if(tcm == true) return;
617 		fprintf(mFile,"\tsetAttr \".tcm\" %i;\n", tcm);
618 	}
setTubesPerStep(double tps)619 	void setTubesPerStep(double tps)
620 	{
621 		if(tps == 0.5) return;
622 		fprintf(mFile,"\tsetAttr \".tps\" %f;\n", tps);
623 	}
setTubeRand(double trd)624 	void setTubeRand(double trd)
625 	{
626 		if(trd == 1.0) return;
627 		fprintf(mFile,"\tsetAttr \".trd\" %f;\n", trd);
628 	}
setStartTubes(int stb)629 	void setStartTubes(int stb)
630 	{
631 		if(stb == 0) return;
632 		fprintf(mFile,"\tsetAttr \".stb\" %i;\n", stb);
633 	}
setLengthMax(double lnx)634 	void setLengthMax(double lnx)
635 	{
636 		if(lnx == 1.0) return;
637 		fprintf(mFile,"\tsetAttr \".lnx\" %f;\n", lnx);
638 	}
setLengthMin(double lnn)639 	void setLengthMin(double lnn)
640 	{
641 		if(lnn == 0.0) return;
642 		fprintf(mFile,"\tsetAttr \".lnn\" %f;\n", lnn);
643 	}
setSegments(int sgm)644 	void setSegments(int sgm)
645 	{
646 		if(sgm == 10) return;
647 		fprintf(mFile,"\tsetAttr \".sgm\" %i;\n", sgm);
648 	}
setTubeWidth1(double tw1)649 	void setTubeWidth1(double tw1)
650 	{
651 		if(tw1 == 0.01) return;
652 		fprintf(mFile,"\tsetAttr \".tw1\" %f;\n", tw1);
653 	}
setTubeWidth2(double tw2)654 	void setTubeWidth2(double tw2)
655 	{
656 		if(tw2 == 0.01) return;
657 		fprintf(mFile,"\tsetAttr \".tw2\" %f;\n", tw2);
658 	}
setWidthRand(double wdr)659 	void setWidthRand(double wdr)
660 	{
661 		if(wdr == 0.0) return;
662 		fprintf(mFile,"\tsetAttr \".wdr\" %f;\n", wdr);
663 	}
setWidthBias(double wdb)664 	void setWidthBias(double wdb)
665 	{
666 		if(wdb == 0.0) return;
667 		fprintf(mFile,"\tsetAttr \".wdb\" %f;\n", wdb);
668 	}
setLengthFlex(double lfx)669 	void setLengthFlex(double lfx)
670 	{
671 		if(lfx == 0.0) return;
672 		fprintf(mFile,"\tsetAttr \".lfx\" %f;\n", lfx);
673 	}
setSegmentLengthBias(double sgb)674 	void setSegmentLengthBias(double sgb)
675 	{
676 		if(sgb == 0.0) return;
677 		fprintf(mFile,"\tsetAttr \".sgb\" %f;\n", sgb);
678 	}
setSegmentWidthBias(double swb)679 	void setSegmentWidthBias(double swb)
680 	{
681 		if(swb == 0.0) return;
682 		fprintf(mFile,"\tsetAttr \".swb\" %f;\n", swb);
683 	}
setTubeDirection(unsigned int tdr)684 	void setTubeDirection(unsigned int tdr)
685 	{
686 		if(tdr == 0) return;
687 		fprintf(mFile,"\tsetAttr \".tdr\" %i;\n", tdr);
688 	}
setElevationMin(double elm)689 	void setElevationMin(double elm)
690 	{
691 		if(elm == 0.2) return;
692 		fprintf(mFile,"\tsetAttr \".elm\" %f;\n", elm);
693 	}
setElevationMax(double elx)694 	void setElevationMax(double elx)
695 	{
696 		if(elx == 0.5) return;
697 		fprintf(mFile,"\tsetAttr \".elx\" %f;\n", elx);
698 	}
setAzimuthMin(double azn)699 	void setAzimuthMin(double azn)
700 	{
701 		if(azn == -0.1) return;
702 		fprintf(mFile,"\tsetAttr \".azn\" %f;\n", azn);
703 	}
setAzimuthMax(double azx)704 	void setAzimuthMax(double azx)
705 	{
706 		if(azx == 0.1) return;
707 		fprintf(mFile,"\tsetAttr \".azx\" %f;\n", azx);
708 	}
setFlatness1(double fl1)709 	void setFlatness1(double fl1)
710 	{
711 		if(fl1 == 0.0) return;
712 		fprintf(mFile,"\tsetAttr \".fl1\" %f;\n", fl1);
713 	}
setFlatness2(double fl2)714 	void setFlatness2(double fl2)
715 	{
716 		if(fl2 == 0.0) return;
717 		fprintf(mFile,"\tsetAttr \".fl2\" %f;\n", fl2);
718 	}
setTwist(double twi)719 	void setTwist(double twi)
720 	{
721 		if(twi == 0.0) return;
722 		fprintf(mFile,"\tsetAttr \".twi\" %f;\n", twi);
723 	}
setTwistRate(double twr)724 	void setTwistRate(double twr)
725 	{
726 		if(twr == 0.0) return;
727 		fprintf(mFile,"\tsetAttr \".twr\" %f;\n", twr);
728 	}
setTwistRand(double twd)729 	void setTwistRand(double twd)
730 	{
731 		if(twd == 1.0) return;
732 		fprintf(mFile,"\tsetAttr \".twd\" %f;\n", twd);
733 	}
setSpiralMin(double spm)734 	void setSpiralMin(double spm)
735 	{
736 		if(spm == 0.0) return;
737 		fprintf(mFile,"\tsetAttr \".spm\" %f;\n", spm);
738 	}
setSpiralMax(double spx)739 	void setSpiralMax(double spx)
740 	{
741 		if(spx == 0.0) return;
742 		fprintf(mFile,"\tsetAttr \".spx\" %f;\n", spx);
743 	}
setSpiralDecay(double spd)744 	void setSpiralDecay(double spd)
745 	{
746 		if(spd == 0.0) return;
747 		fprintf(mFile,"\tsetAttr \".spd\" %f;\n", spd);
748 	}
setBend(double ben)749 	void setBend(double ben)
750 	{
751 		if(ben == 0.0) return;
752 		fprintf(mFile,"\tsetAttr \".ben\" %f;\n", ben);
753 	}
setBendBias(double bnb)754 	void setBendBias(double bnb)
755 	{
756 		if(bnb == 0.0) return;
757 		fprintf(mFile,"\tsetAttr \".bnb\" %f;\n", bnb);
758 	}
setDisplacementDelay(double ddl)759 	void setDisplacementDelay(double ddl)
760 	{
761 		if(ddl == 0.2) return;
762 		fprintf(mFile,"\tsetAttr \".ddl\" %f;\n", ddl);
763 	}
setWiggle(double wgl)764 	void setWiggle(double wgl)
765 	{
766 		if(wgl == 0.0) return;
767 		fprintf(mFile,"\tsetAttr \".wgl\" %f;\n", wgl);
768 	}
setWiggleFrequency(double wgf)769 	void setWiggleFrequency(double wgf)
770 	{
771 		if(wgf == 3) return;
772 		fprintf(mFile,"\tsetAttr \".wgf\" %f;\n", wgf);
773 	}
setWiggleOffset(double wgo)774 	void setWiggleOffset(double wgo)
775 	{
776 		if(wgo == 0.0) return;
777 		fprintf(mFile,"\tsetAttr \".wgo\" %f;\n", wgo);
778 	}
setCurl(double crl)779 	void setCurl(double crl)
780 	{
781 		if(crl == 0.0) return;
782 		fprintf(mFile,"\tsetAttr \".crl\" %f;\n", crl);
783 	}
setCurlFrequency(double crf)784 	void setCurlFrequency(double crf)
785 	{
786 		if(crf == 1) return;
787 		fprintf(mFile,"\tsetAttr \".crf\" %f;\n", crf);
788 	}
setCurlOffset(double cro)789 	void setCurlOffset(double cro)
790 	{
791 		if(cro == 0.0) return;
792 		fprintf(mFile,"\tsetAttr \".cro\" %f;\n", cro);
793 	}
setNoise(double noi)794 	void setNoise(double noi)
795 	{
796 		if(noi == 0.0) return;
797 		fprintf(mFile,"\tsetAttr \".noi\" %f;\n", noi);
798 	}
setNoiseFrequency(double nof)799 	void setNoiseFrequency(double nof)
800 	{
801 		if(nof == 0.2) return;
802 		fprintf(mFile,"\tsetAttr \".nof\" %f;\n", nof);
803 	}
setNoiseOffset(double noo)804 	void setNoiseOffset(double noo)
805 	{
806 		if(noo == 0.0) return;
807 		fprintf(mFile,"\tsetAttr \".noo\" %f;\n", noo);
808 	}
setSplitMaxDepth(double smd)809 	void setSplitMaxDepth(double smd)
810 	{
811 		if(smd == 2.0) return;
812 		fprintf(mFile,"\tsetAttr \".smd\" %f;\n", smd);
813 	}
setSplitRand(double srd)814 	void setSplitRand(double srd)
815 	{
816 		if(srd == 0.0) return;
817 		fprintf(mFile,"\tsetAttr \".srd\" %f;\n", srd);
818 	}
setSplitAngle(double spa)819 	void setSplitAngle(double spa)
820 	{
821 		if(spa == 30.0) return;
822 		fprintf(mFile,"\tsetAttr \".spa\" %f;\n", spa);
823 	}
setSplitSizeDecay(double ssd)824 	void setSplitSizeDecay(double ssd)
825 	{
826 		if(ssd == 0.7) return;
827 		fprintf(mFile,"\tsetAttr \".ssd\" %f;\n", ssd);
828 	}
setSplitBias(double slb)829 	void setSplitBias(double slb)
830 	{
831 		if(slb == 0.0) return;
832 		fprintf(mFile,"\tsetAttr \".slb\" %f;\n", slb);
833 	}
setSplitTwist(double slt)834 	void setSplitTwist(double slt)
835 	{
836 		if(slt == 0.5) return;
837 		fprintf(mFile,"\tsetAttr \".slt\" %f;\n", slt);
838 	}
setStartBranches(double sbr)839 	void setStartBranches(double sbr)
840 	{
841 		if(sbr == 0) return;
842 		fprintf(mFile,"\tsetAttr \".sbr\" %f;\n", sbr);
843 	}
setNumBranches(int nbr)844 	void setNumBranches(int nbr)
845 	{
846 		if(nbr == 2) return;
847 		fprintf(mFile,"\tsetAttr \".nbr\" %i;\n", nbr);
848 	}
setBranchDropout(double bdr)849 	void setBranchDropout(double bdr)
850 	{
851 		if(bdr == 0.0) return;
852 		fprintf(mFile,"\tsetAttr \".bdr\" %f;\n", bdr);
853 	}
setMiddleBranch(bool mbr)854 	void setMiddleBranch(bool mbr)
855 	{
856 		if(mbr == false) return;
857 		fprintf(mFile,"\tsetAttr \".mbr\" %i;\n", mbr);
858 	}
setMinSize(double mms)859 	void setMinSize(double mms)
860 	{
861 		if(mms == 0.0001) return;
862 		fprintf(mFile,"\tsetAttr \".mms\" %f;\n", mms);
863 	}
setPathFollow(double pfl)864 	void setPathFollow(double pfl)
865 	{
866 		if(pfl == 0.0) return;
867 		fprintf(mFile,"\tsetAttr \".pfl\" %f;\n", pfl);
868 	}
setPathAttract(double pat)869 	void setPathAttract(double pat)
870 	{
871 		if(pat == 0.0) return;
872 		fprintf(mFile,"\tsetAttr \".pat\" %f;\n", pat);
873 	}
setCurveFollow(double cfw)874 	void setCurveFollow(double cfw)
875 	{
876 		if(cfw == 0.0) return;
877 		fprintf(mFile,"\tsetAttr \".cfw\" %f;\n", cfw);
878 	}
setCurveAttract(double cva)879 	void setCurveAttract(double cva)
880 	{
881 		if(cva == 0.0) return;
882 		fprintf(mFile,"\tsetAttr \".cva\" %f;\n", cva);
883 	}
setCurveMaxDist(double cmd)884 	void setCurveMaxDist(double cmd)
885 	{
886 		if(cmd == 0.0) return;
887 		fprintf(mFile,"\tsetAttr \".cmd\" %f;\n", cmd);
888 	}
setUniformForce(const double3 & ufr)889 	void setUniformForce(const double3& ufr)
890 	{
891 		fprintf(mFile,"\tsetAttr \".ufr\" -type \"double3\" ");
892 		ufr.write(mFile);
893 		fprintf(mFile,";\n");
894 	}
setUniformForceX(double ufx)895 	void setUniformForceX(double ufx)
896 	{
897 		if(ufx == 0.0) return;
898 		fprintf(mFile,"\tsetAttr \".ufr.ufx\" %f;\n", ufx);
899 	}
setUniformForceY(double ufy)900 	void setUniformForceY(double ufy)
901 	{
902 		if(ufy == 0.0) return;
903 		fprintf(mFile,"\tsetAttr \".ufr.ufy\" %f;\n", ufy);
904 	}
setUniformForceZ(double ufz)905 	void setUniformForceZ(double ufz)
906 	{
907 		if(ufz == 0.0) return;
908 		fprintf(mFile,"\tsetAttr \".ufr.ufz\" %f;\n", ufz);
909 	}
setTurbulenceType(unsigned int trt)910 	void setTurbulenceType(unsigned int trt)
911 	{
912 		if(trt == 0) return;
913 		fprintf(mFile,"\tsetAttr \".trt\" %i;\n", trt);
914 	}
setTurbulenceInterpolation(unsigned int tin)915 	void setTurbulenceInterpolation(unsigned int tin)
916 	{
917 		if(tin == 0) return;
918 		fprintf(mFile,"\tsetAttr \".tin\" %i;\n", tin);
919 	}
setTurbulence(double tur)920 	void setTurbulence(double tur)
921 	{
922 		if(tur == 0.2) return;
923 		fprintf(mFile,"\tsetAttr \".tur\" %f;\n", tur);
924 	}
setTurbulenceFrequency(double trf)925 	void setTurbulenceFrequency(double trf)
926 	{
927 		if(trf == 0.2) return;
928 		fprintf(mFile,"\tsetAttr \".trf\" %f;\n", trf);
929 	}
setTurbulenceSpeed(double trs)930 	void setTurbulenceSpeed(double trs)
931 	{
932 		if(trs == 0.5) return;
933 		fprintf(mFile,"\tsetAttr \".trs\" %f;\n", trs);
934 	}
setTurbulenceOffset(const double3 & tro)935 	void setTurbulenceOffset(const double3& tro)
936 	{
937 		fprintf(mFile,"\tsetAttr \".tro\" -type \"double3\" ");
938 		tro.write(mFile);
939 		fprintf(mFile,";\n");
940 	}
setTurbulenceOffsetX(double trx)941 	void setTurbulenceOffsetX(double trx)
942 	{
943 		if(trx == 0.0) return;
944 		fprintf(mFile,"\tsetAttr \".tro.trx\" %f;\n", trx);
945 	}
setTurbulenceOffsetY(double try_)946 	void setTurbulenceOffsetY(double try_)
947 	{
948 		if(try_ == 0.0) return;
949 		fprintf(mFile,"\tsetAttr \".tro.try\" %f;\n", try_);
950 	}
setTurbulenceOffsetZ(double trz)951 	void setTurbulenceOffsetZ(double trz)
952 	{
953 		if(trz == 0.0) return;
954 		fprintf(mFile,"\tsetAttr \".tro.trz\" %f;\n", trz);
955 	}
setRandom(double ran)956 	void setRandom(double ran)
957 	{
958 		if(ran == 0.0) return;
959 		fprintf(mFile,"\tsetAttr \".ran\" %f;\n", ran);
960 	}
setGravity(double grv)961 	void setGravity(double grv)
962 	{
963 		if(grv == 0.0) return;
964 		fprintf(mFile,"\tsetAttr \".grv\" %f;\n", grv);
965 	}
setMomentum(double mmt)966 	void setMomentum(double mmt)
967 	{
968 		if(mmt == 1.0) return;
969 		fprintf(mFile,"\tsetAttr \".mmt\" %f;\n", mmt);
970 	}
setDeflection(bool def)971 	void setDeflection(bool def)
972 	{
973 		if(def == false) return;
974 		fprintf(mFile,"\tsetAttr \".def\" %i;\n", def);
975 	}
setDeflectionMin(double dfm)976 	void setDeflectionMin(double dfm)
977 	{
978 		if(dfm == 0.0) return;
979 		fprintf(mFile,"\tsetAttr \".dfm\" %f;\n", dfm);
980 	}
setDeflectionMax(double dfx)981 	void setDeflectionMax(double dfx)
982 	{
983 		if(dfx == 0.3) return;
984 		fprintf(mFile,"\tsetAttr \".dfx\" %f;\n", dfx);
985 	}
setTwigsInCluster(int tic)986 	void setTwigsInCluster(int tic)
987 	{
988 		if(tic == 1) return;
989 		fprintf(mFile,"\tsetAttr \".tic\" %i;\n", tic);
990 	}
setTwigDropout(double tdp)991 	void setTwigDropout(double tdp)
992 	{
993 		if(tdp == 0.0) return;
994 		fprintf(mFile,"\tsetAttr \".tdp\" %f;\n", tdp);
995 	}
setTwigAngle1(double ta1)996 	void setTwigAngle1(double ta1)
997 	{
998 		if(ta1 == 90.0) return;
999 		fprintf(mFile,"\tsetAttr \".ta1\" %f;\n", ta1);
1000 	}
setTwigAngle2(double ta2)1001 	void setTwigAngle2(double ta2)
1002 	{
1003 		if(ta2 == 80.0) return;
1004 		fprintf(mFile,"\tsetAttr \".ta2\" %f;\n", ta2);
1005 	}
setTwigTwist(double ttw)1006 	void setTwigTwist(double ttw)
1007 	{
1008 		if(ttw == 0.0) return;
1009 		fprintf(mFile,"\tsetAttr \".ttw\" %f;\n", ttw);
1010 	}
setTwigLength(double twl)1011 	void setTwigLength(double twl)
1012 	{
1013 		if(twl == 0.5) return;
1014 		fprintf(mFile,"\tsetAttr \".twl\" %f;\n", twl);
1015 	}
setTwigStart(double tst)1016 	void setTwigStart(double tst)
1017 	{
1018 		if(tst == 0.5) return;
1019 		fprintf(mFile,"\tsetAttr \".tst\" %f;\n", tst);
1020 	}
setNumTwigClusters(double ntc)1021 	void setNumTwigClusters(double ntc)
1022 	{
1023 		if(ntc == 4) return;
1024 		fprintf(mFile,"\tsetAttr \".ntc\" %f;\n", ntc);
1025 	}
setTwigBaseWidth(double twb)1026 	void setTwigBaseWidth(double twb)
1027 	{
1028 		if(twb == 0.4) return;
1029 		fprintf(mFile,"\tsetAttr \".twb\" %f;\n", twb);
1030 	}
setTwigTipWidth(double twt)1031 	void setTwigTipWidth(double twt)
1032 	{
1033 		if(twt == 0.2) return;
1034 		fprintf(mFile,"\tsetAttr \".twt\" %f;\n", twt);
1035 	}
setTwigStiffness(double tgs)1036 	void setTwigStiffness(double tgs)
1037 	{
1038 		if(tgs == 0.5) return;
1039 		fprintf(mFile,"\tsetAttr \".tgs\" %f;\n", tgs);
1040 	}
setBranchAfterTwigs(bool bat)1041 	void setBranchAfterTwigs(bool bat)
1042 	{
1043 		if(bat == false) return;
1044 		fprintf(mFile,"\tsetAttr \".bat\" %i;\n", bat);
1045 	}
setLeavesInCluster(int lic)1046 	void setLeavesInCluster(int lic)
1047 	{
1048 		if(lic == 1) return;
1049 		fprintf(mFile,"\tsetAttr \".lic\" %i;\n", lic);
1050 	}
setLeafLocation(unsigned int llo)1051 	void setLeafLocation(unsigned int llo)
1052 	{
1053 		if(llo == 0) return;
1054 		fprintf(mFile,"\tsetAttr \".llo\" %i;\n", llo);
1055 	}
setLeafDropout(double ldp)1056 	void setLeafDropout(double ldp)
1057 	{
1058 		if(ldp == 0.0) return;
1059 		fprintf(mFile,"\tsetAttr \".ldp\" %f;\n", ldp);
1060 	}
setLeafAngle1(double ll1)1061 	void setLeafAngle1(double ll1)
1062 	{
1063 		if(ll1 == 75.0) return;
1064 		fprintf(mFile,"\tsetAttr \".ll1\" %f;\n", ll1);
1065 	}
setLeafAngle2(double ll2)1066 	void setLeafAngle2(double ll2)
1067 	{
1068 		if(ll2 == 25.0) return;
1069 		fprintf(mFile,"\tsetAttr \".ll2\" %f;\n", ll2);
1070 	}
setLeafTwist(double ltw)1071 	void setLeafTwist(double ltw)
1072 	{
1073 		if(ltw == 0.0) return;
1074 		fprintf(mFile,"\tsetAttr \".ltw\" %f;\n", ltw);
1075 	}
setLeafBend(double lbn)1076 	void setLeafBend(double lbn)
1077 	{
1078 		if(lbn == 0.0) return;
1079 		fprintf(mFile,"\tsetAttr \".lbn\" %f;\n", lbn);
1080 	}
setLeafCurl(size_t lcl_i,const LeafCurl & lcl)1081 	void setLeafCurl(size_t lcl_i,const LeafCurl& lcl)
1082 	{
1083 		fprintf(mFile,"\tsetAttr \".lcl[%i]\" ",lcl_i);
1084 		lcl.write(mFile);
1085 		fprintf(mFile,";\n");
1086 	}
setLeafCurl(size_t lcl_start,size_t lcl_end,LeafCurl * lcl)1087 	void setLeafCurl(size_t lcl_start,size_t lcl_end,LeafCurl* lcl)
1088 	{
1089 		fprintf(mFile,"\tsetAttr \".lcl[%i:%i]\" ", lcl_start,lcl_end);
1090 		size_t size = (lcl_end-lcl_start)*1+1;
1091 		for(size_t i=0;i<size;++i)
1092 		{
1093 			lcl[i].write(mFile);
1094 			fprintf(mFile,"\n");
1095 		}
1096 		fprintf(mFile,";\n");
1097 	}
startLeafCurl(size_t lcl_start,size_t lcl_end)1098 	void startLeafCurl(size_t lcl_start,size_t lcl_end)const
1099 	{
1100 		fprintf(mFile,"\tsetAttr \".lcl[%i:%i]\"",lcl_start,lcl_end);
1101 		fprintf(mFile," -type \"LeafCurl\" ");
1102 	}
appendLeafCurl(const LeafCurl & lcl)1103 	void appendLeafCurl(const LeafCurl& lcl)const
1104 	{
1105 		fprintf(mFile," ");
1106 		lcl.write(mFile);
1107 	}
endLeafCurl()1108 	void endLeafCurl()const
1109 	{
1110 		fprintf(mFile,";\n");
1111 	}
setLeafCurl_Position(size_t lcl_i,float lclp)1112 	void setLeafCurl_Position(size_t lcl_i,float lclp)
1113 	{
1114 		if(lclp == 0.0) return;
1115 		fprintf(mFile,"\tsetAttr \".lcl[%i].lclp\" %f;\n", lcl_i,lclp);
1116 	}
setLeafCurl_FloatValue(size_t lcl_i,float lclfv)1117 	void setLeafCurl_FloatValue(size_t lcl_i,float lclfv)
1118 	{
1119 		if(lclfv == 0.0) return;
1120 		fprintf(mFile,"\tsetAttr \".lcl[%i].lclfv\" %f;\n", lcl_i,lclfv);
1121 	}
setLeafCurl_Interp(size_t lcl_i,unsigned int lcli)1122 	void setLeafCurl_Interp(size_t lcl_i,unsigned int lcli)
1123 	{
1124 		if(lcli == 0) return;
1125 		fprintf(mFile,"\tsetAttr \".lcl[%i].lcli\" %i;\n", lcl_i,lcli);
1126 	}
setLeafTwirl(double ltwl)1127 	void setLeafTwirl(double ltwl)
1128 	{
1129 		if(ltwl == 0.0) return;
1130 		fprintf(mFile,"\tsetAttr \".ltwl\" %f;\n", ltwl);
1131 	}
setLeafSegments(int lsg)1132 	void setLeafSegments(int lsg)
1133 	{
1134 		if(lsg == 5) return;
1135 		fprintf(mFile,"\tsetAttr \".lsg\" %i;\n", lsg);
1136 	}
setLeafStart(double lst)1137 	void setLeafStart(double lst)
1138 	{
1139 		if(lst == .5) return;
1140 		fprintf(mFile,"\tsetAttr \".lst\" %f;\n", lst);
1141 	}
setNumLeafClusters(double nlc)1142 	void setNumLeafClusters(double nlc)
1143 	{
1144 		if(nlc == 3) return;
1145 		fprintf(mFile,"\tsetAttr \".nlc\" %f;\n", nlc);
1146 	}
setLeafFlatness(double lft)1147 	void setLeafFlatness(double lft)
1148 	{
1149 		if(lft == 1.0) return;
1150 		fprintf(mFile,"\tsetAttr \".lft\" %f;\n", lft);
1151 	}
setLeafLength(double lln)1152 	void setLeafLength(double lln)
1153 	{
1154 		if(lln == 0.3) return;
1155 		fprintf(mFile,"\tsetAttr \".lln\" %f;\n", lln);
1156 	}
setLeafBaseWidth(double leb)1157 	void setLeafBaseWidth(double leb)
1158 	{
1159 		if(leb == 0.15) return;
1160 		fprintf(mFile,"\tsetAttr \".leb\" %f;\n", leb);
1161 	}
setLeafTipWidth(double let)1162 	void setLeafTipWidth(double let)
1163 	{
1164 		if(let == 0.05) return;
1165 		fprintf(mFile,"\tsetAttr \".let\" %f;\n", let);
1166 	}
setLeafSizeDecay(double lsd)1167 	void setLeafSizeDecay(double lsd)
1168 	{
1169 		if(lsd == 0.7) return;
1170 		fprintf(mFile,"\tsetAttr \".lsd\" %f;\n", lsd);
1171 	}
setLeafTranslucence(double ltr)1172 	void setLeafTranslucence(double ltr)
1173 	{
1174 		if(ltr == 0.7) return;
1175 		fprintf(mFile,"\tsetAttr \".ltr\" %f;\n", ltr);
1176 	}
setLeafSpecular(double lsp)1177 	void setLeafSpecular(double lsp)
1178 	{
1179 		if(lsp == 0.0) return;
1180 		fprintf(mFile,"\tsetAttr \".lsp\" %f;\n", lsp);
1181 	}
setTerminalLeaf(bool tml)1182 	void setTerminalLeaf(bool tml)
1183 	{
1184 		if(tml == false) return;
1185 		fprintf(mFile,"\tsetAttr \".tml\" %i;\n", tml);
1186 	}
setLeafColor1(const float3 & lc1)1187 	void setLeafColor1(const float3& lc1)
1188 	{
1189 		fprintf(mFile,"\tsetAttr \".lc1\" -type \"float3\" ");
1190 		lc1.write(mFile);
1191 		fprintf(mFile,";\n");
1192 	}
setLeafColor1R(float lr1)1193 	void setLeafColor1R(float lr1)
1194 	{
1195 		if(lr1 == 0.2) return;
1196 		fprintf(mFile,"\tsetAttr \".lc1.lr1\" %f;\n", lr1);
1197 	}
setLeafColor1G(float lg1)1198 	void setLeafColor1G(float lg1)
1199 	{
1200 		if(lg1 == 0.6) return;
1201 		fprintf(mFile,"\tsetAttr \".lc1.lg1\" %f;\n", lg1);
1202 	}
setLeafColor1B(float lb1)1203 	void setLeafColor1B(float lb1)
1204 	{
1205 		if(lb1 == 0.3) return;
1206 		fprintf(mFile,"\tsetAttr \".lc1.lb1\" %f;\n", lb1);
1207 	}
setLeafColor2(const float3 & lc2)1208 	void setLeafColor2(const float3& lc2)
1209 	{
1210 		fprintf(mFile,"\tsetAttr \".lc2\" -type \"float3\" ");
1211 		lc2.write(mFile);
1212 		fprintf(mFile,";\n");
1213 	}
setLeafColor2R(float lr2)1214 	void setLeafColor2R(float lr2)
1215 	{
1216 		if(lr2 == 0.4) return;
1217 		fprintf(mFile,"\tsetAttr \".lc2.lr2\" %f;\n", lr2);
1218 	}
setLeafColor2G(float lg2)1219 	void setLeafColor2G(float lg2)
1220 	{
1221 		if(lg2 == 0.6) return;
1222 		fprintf(mFile,"\tsetAttr \".lc2.lg2\" %f;\n", lg2);
1223 	}
setLeafColor2B(float lb2)1224 	void setLeafColor2B(float lb2)
1225 	{
1226 		if(lb2 == 0.3) return;
1227 		fprintf(mFile,"\tsetAttr \".lc2.lb2\" %f;\n", lb2);
1228 	}
setLeafHueRand(double lhr)1229 	void setLeafHueRand(double lhr)
1230 	{
1231 		if(lhr == 0.0) return;
1232 		fprintf(mFile,"\tsetAttr \".lhr\" %f;\n", lhr);
1233 	}
setLeafSatRand(double lsr)1234 	void setLeafSatRand(double lsr)
1235 	{
1236 		if(lsr == 0.0) return;
1237 		fprintf(mFile,"\tsetAttr \".lsr\" %f;\n", lsr);
1238 	}
setLeafValRand(double lvr)1239 	void setLeafValRand(double lvr)
1240 	{
1241 		if(lvr == 0.0) return;
1242 		fprintf(mFile,"\tsetAttr \".lvr\" %f;\n", lvr);
1243 	}
setLeafUseBranchTex(bool lub)1244 	void setLeafUseBranchTex(bool lub)
1245 	{
1246 		if(lub == true) return;
1247 		fprintf(mFile,"\tsetAttr \".lub\" %i;\n", lub);
1248 	}
setLeafImage(const string & lim)1249 	void setLeafImage(const string& lim)
1250 	{
1251 		if(lim == "NULL") return;
1252 		fprintf(mFile,"\tsetAttr \".lim\" -type \"string\" ");
1253 		lim.write(mFile);
1254 		fprintf(mFile,";\n");
1255 	}
setLeafStiffness(double lfs)1256 	void setLeafStiffness(double lfs)
1257 	{
1258 		if(lfs == 0.5) return;
1259 		fprintf(mFile,"\tsetAttr \".lfs\" %f;\n", lfs);
1260 	}
setBudSize(double bds)1261 	void setBudSize(double bds)
1262 	{
1263 		if(bds == 0.03) return;
1264 		fprintf(mFile,"\tsetAttr \".bds\" %f;\n", bds);
1265 	}
setBudColor(const float3 & bcr)1266 	void setBudColor(const float3& bcr)
1267 	{
1268 		fprintf(mFile,"\tsetAttr \".bcr\" -type \"float3\" ");
1269 		bcr.write(mFile);
1270 		fprintf(mFile,";\n");
1271 	}
setBudColorR(float bur)1272 	void setBudColorR(float bur)
1273 	{
1274 		if(bur == 0.4) return;
1275 		fprintf(mFile,"\tsetAttr \".bcr.bur\" %f;\n", bur);
1276 	}
setBudColorG(float bug)1277 	void setBudColorG(float bug)
1278 	{
1279 		if(bug == 0.8) return;
1280 		fprintf(mFile,"\tsetAttr \".bcr.bug\" %f;\n", bug);
1281 	}
setBudColorB(float bub)1282 	void setBudColorB(float bub)
1283 	{
1284 		if(bub == 0.2) return;
1285 		fprintf(mFile,"\tsetAttr \".bcr.bub\" %f;\n", bub);
1286 	}
setPetalsInFlower(int pif)1287 	void setPetalsInFlower(int pif)
1288 	{
1289 		if(pif == 1) return;
1290 		fprintf(mFile,"\tsetAttr \".pif\" %i;\n", pif);
1291 	}
setFlowerLocation(unsigned int flc)1292 	void setFlowerLocation(unsigned int flc)
1293 	{
1294 		if(flc == 0) return;
1295 		fprintf(mFile,"\tsetAttr \".flc\" %i;\n", flc);
1296 	}
setPetalDropout(double pdp)1297 	void setPetalDropout(double pdp)
1298 	{
1299 		if(pdp == 0.0) return;
1300 		fprintf(mFile,"\tsetAttr \".pdp\" %f;\n", pdp);
1301 	}
setFlowerAngle1(double fw1)1302 	void setFlowerAngle1(double fw1)
1303 	{
1304 		if(fw1 == 75.0) return;
1305 		fprintf(mFile,"\tsetAttr \".fw1\" %f;\n", fw1);
1306 	}
setFlowerAngle2(double fw2)1307 	void setFlowerAngle2(double fw2)
1308 	{
1309 		if(fw2 == 25.0) return;
1310 		fprintf(mFile,"\tsetAttr \".fw2\" %f;\n", fw2);
1311 	}
setFlowerTwist(double ftw)1312 	void setFlowerTwist(double ftw)
1313 	{
1314 		if(ftw == 0.23) return;
1315 		fprintf(mFile,"\tsetAttr \".ftw\" %f;\n", ftw);
1316 	}
setPetalBend(double pbn)1317 	void setPetalBend(double pbn)
1318 	{
1319 		if(pbn == 0.0) return;
1320 		fprintf(mFile,"\tsetAttr \".pbn\" %f;\n", pbn);
1321 	}
setPetalCurl(size_t pcl_i,const PetalCurl & pcl)1322 	void setPetalCurl(size_t pcl_i,const PetalCurl& pcl)
1323 	{
1324 		fprintf(mFile,"\tsetAttr \".pcl[%i]\" ",pcl_i);
1325 		pcl.write(mFile);
1326 		fprintf(mFile,";\n");
1327 	}
setPetalCurl(size_t pcl_start,size_t pcl_end,PetalCurl * pcl)1328 	void setPetalCurl(size_t pcl_start,size_t pcl_end,PetalCurl* pcl)
1329 	{
1330 		fprintf(mFile,"\tsetAttr \".pcl[%i:%i]\" ", pcl_start,pcl_end);
1331 		size_t size = (pcl_end-pcl_start)*1+1;
1332 		for(size_t i=0;i<size;++i)
1333 		{
1334 			pcl[i].write(mFile);
1335 			fprintf(mFile,"\n");
1336 		}
1337 		fprintf(mFile,";\n");
1338 	}
startPetalCurl(size_t pcl_start,size_t pcl_end)1339 	void startPetalCurl(size_t pcl_start,size_t pcl_end)const
1340 	{
1341 		fprintf(mFile,"\tsetAttr \".pcl[%i:%i]\"",pcl_start,pcl_end);
1342 		fprintf(mFile," -type \"PetalCurl\" ");
1343 	}
appendPetalCurl(const PetalCurl & pcl)1344 	void appendPetalCurl(const PetalCurl& pcl)const
1345 	{
1346 		fprintf(mFile," ");
1347 		pcl.write(mFile);
1348 	}
endPetalCurl()1349 	void endPetalCurl()const
1350 	{
1351 		fprintf(mFile,";\n");
1352 	}
setPetalCurl_Position(size_t pcl_i,float pclp)1353 	void setPetalCurl_Position(size_t pcl_i,float pclp)
1354 	{
1355 		if(pclp == 0.0) return;
1356 		fprintf(mFile,"\tsetAttr \".pcl[%i].pclp\" %f;\n", pcl_i,pclp);
1357 	}
setPetalCurl_FloatValue(size_t pcl_i,float pclfv)1358 	void setPetalCurl_FloatValue(size_t pcl_i,float pclfv)
1359 	{
1360 		if(pclfv == 0.0) return;
1361 		fprintf(mFile,"\tsetAttr \".pcl[%i].pclfv\" %f;\n", pcl_i,pclfv);
1362 	}
setPetalCurl_Interp(size_t pcl_i,unsigned int pcli)1363 	void setPetalCurl_Interp(size_t pcl_i,unsigned int pcli)
1364 	{
1365 		if(pcli == 0) return;
1366 		fprintf(mFile,"\tsetAttr \".pcl[%i].pcli\" %i;\n", pcl_i,pcli);
1367 	}
setPetalTwirl(double lpwl)1368 	void setPetalTwirl(double lpwl)
1369 	{
1370 		if(lpwl == 0.0) return;
1371 		fprintf(mFile,"\tsetAttr \".lpwl\" %f;\n", lpwl);
1372 	}
setPetalSegments(int psg)1373 	void setPetalSegments(int psg)
1374 	{
1375 		if(psg == 5) return;
1376 		fprintf(mFile,"\tsetAttr \".psg\" %i;\n", psg);
1377 	}
setFlowerStart(double fst)1378 	void setFlowerStart(double fst)
1379 	{
1380 		if(fst == 1) return;
1381 		fprintf(mFile,"\tsetAttr \".fst\" %f;\n", fst);
1382 	}
setNumFlowers(double nfl)1383 	void setNumFlowers(double nfl)
1384 	{
1385 		if(nfl == 10) return;
1386 		fprintf(mFile,"\tsetAttr \".nfl\" %f;\n", nfl);
1387 	}
setPetalFlatness(double pft)1388 	void setPetalFlatness(double pft)
1389 	{
1390 		if(pft == 1.0) return;
1391 		fprintf(mFile,"\tsetAttr \".pft\" %f;\n", pft);
1392 	}
setPetalLength(double pln)1393 	void setPetalLength(double pln)
1394 	{
1395 		if(pln == 0.2) return;
1396 		fprintf(mFile,"\tsetAttr \".pln\" %f;\n", pln);
1397 	}
setPetalBaseWidth(double ptb)1398 	void setPetalBaseWidth(double ptb)
1399 	{
1400 		if(ptb == 0.05) return;
1401 		fprintf(mFile,"\tsetAttr \".ptb\" %f;\n", ptb);
1402 	}
setPetalTipWidth(double ptt)1403 	void setPetalTipWidth(double ptt)
1404 	{
1405 		if(ptt == 0.1) return;
1406 		fprintf(mFile,"\tsetAttr \".ptt\" %f;\n", ptt);
1407 	}
setFlowerSizeDecay(double fsd)1408 	void setFlowerSizeDecay(double fsd)
1409 	{
1410 		if(fsd == 0.7) return;
1411 		fprintf(mFile,"\tsetAttr \".fsd\" %f;\n", fsd);
1412 	}
setFlowerTranslucence(double ftr)1413 	void setFlowerTranslucence(double ftr)
1414 	{
1415 		if(ftr == 0.7) return;
1416 		fprintf(mFile,"\tsetAttr \".ftr\" %f;\n", ftr);
1417 	}
setFlowerSpecular(double fsp)1418 	void setFlowerSpecular(double fsp)
1419 	{
1420 		if(fsp == 0.0) return;
1421 		fprintf(mFile,"\tsetAttr \".fsp\" %f;\n", fsp);
1422 	}
setPetalColor1(const float3 & pc1)1423 	void setPetalColor1(const float3& pc1)
1424 	{
1425 		fprintf(mFile,"\tsetAttr \".pc1\" -type \"float3\" ");
1426 		pc1.write(mFile);
1427 		fprintf(mFile,";\n");
1428 	}
setPetalColor1R(float pr1)1429 	void setPetalColor1R(float pr1)
1430 	{
1431 		if(pr1 == 0.8) return;
1432 		fprintf(mFile,"\tsetAttr \".pc1.pr1\" %f;\n", pr1);
1433 	}
setPetalColor1G(float pg1)1434 	void setPetalColor1G(float pg1)
1435 	{
1436 		if(pg1 == 0.2) return;
1437 		fprintf(mFile,"\tsetAttr \".pc1.pg1\" %f;\n", pg1);
1438 	}
setPetalColor1B(float pb1)1439 	void setPetalColor1B(float pb1)
1440 	{
1441 		if(pb1 == 0.1) return;
1442 		fprintf(mFile,"\tsetAttr \".pc1.pb1\" %f;\n", pb1);
1443 	}
setPetalColor2(const float3 & pc2)1444 	void setPetalColor2(const float3& pc2)
1445 	{
1446 		fprintf(mFile,"\tsetAttr \".pc2\" -type \"float3\" ");
1447 		pc2.write(mFile);
1448 		fprintf(mFile,";\n");
1449 	}
setPetalColor2R(float pr2)1450 	void setPetalColor2R(float pr2)
1451 	{
1452 		if(pr2 == 1.0) return;
1453 		fprintf(mFile,"\tsetAttr \".pc2.pr2\" %f;\n", pr2);
1454 	}
setPetalColor2G(float pg2)1455 	void setPetalColor2G(float pg2)
1456 	{
1457 		if(pg2 == 1.0) return;
1458 		fprintf(mFile,"\tsetAttr \".pc2.pg2\" %f;\n", pg2);
1459 	}
setPetalColor2B(float pb2)1460 	void setPetalColor2B(float pb2)
1461 	{
1462 		if(pb2 == 1.0) return;
1463 		fprintf(mFile,"\tsetAttr \".pc2.pb2\" %f;\n", pb2);
1464 	}
setFlowerHueRand(double fhr)1465 	void setFlowerHueRand(double fhr)
1466 	{
1467 		if(fhr == 0.0) return;
1468 		fprintf(mFile,"\tsetAttr \".fhr\" %f;\n", fhr);
1469 	}
setFlowerSatRand(double fsr)1470 	void setFlowerSatRand(double fsr)
1471 	{
1472 		if(fsr == 0.0) return;
1473 		fprintf(mFile,"\tsetAttr \".fsr\" %f;\n", fsr);
1474 	}
setFlowerValRand(double fvr)1475 	void setFlowerValRand(double fvr)
1476 	{
1477 		if(fvr == 0.0) return;
1478 		fprintf(mFile,"\tsetAttr \".fvr\" %f;\n", fvr);
1479 	}
setFlowerUseBranchTex(bool fub)1480 	void setFlowerUseBranchTex(bool fub)
1481 	{
1482 		if(fub == true) return;
1483 		fprintf(mFile,"\tsetAttr \".fub\" %i;\n", fub);
1484 	}
setFlowerImage(const string & fim)1485 	void setFlowerImage(const string& fim)
1486 	{
1487 		if(fim == "NULL") return;
1488 		fprintf(mFile,"\tsetAttr \".fim\" -type \"string\" ");
1489 		fim.write(mFile);
1490 		fprintf(mFile,";\n");
1491 	}
setFlowerStiffness(double fls)1492 	void setFlowerStiffness(double fls)
1493 	{
1494 		if(fls == 0.5) return;
1495 		fprintf(mFile,"\tsetAttr \".fls\" %f;\n", fls);
1496 	}
setSimplifyMethod(unsigned int smp)1497 	void setSimplifyMethod(unsigned int smp)
1498 	{
1499 		if(smp == 0) return;
1500 		fprintf(mFile,"\tsetAttr \".smp\" %i;\n", smp);
1501 	}
setColorLengthMap(unsigned int clm)1502 	void setColorLengthMap(unsigned int clm)
1503 	{
1504 		if(clm == 0) return;
1505 		fprintf(mFile,"\tsetAttr \".clm\" %i;\n", clm);
1506 	}
setTranspLengthMap(unsigned int tlm)1507 	void setTranspLengthMap(unsigned int tlm)
1508 	{
1509 		if(tlm == 0) return;
1510 		fprintf(mFile,"\tsetAttr \".tlm\" %i;\n", tlm);
1511 	}
setIncandLengthMap(unsigned int ilm)1512 	void setIncandLengthMap(unsigned int ilm)
1513 	{
1514 		if(ilm == 0) return;
1515 		fprintf(mFile,"\tsetAttr \".ilm\" %i;\n", ilm);
1516 	}
setWidthLengthMap(unsigned int wlm)1517 	void setWidthLengthMap(unsigned int wlm)
1518 	{
1519 		if(wlm == 0) return;
1520 		fprintf(mFile,"\tsetAttr \".wlm\" %i;\n", wlm);
1521 	}
setSplitLengthMap(unsigned int spl)1522 	void setSplitLengthMap(unsigned int spl)
1523 	{
1524 		if(spl == 0) return;
1525 		fprintf(mFile,"\tsetAttr \".spl\" %i;\n", spl);
1526 	}
setMapColor(bool mcl)1527 	void setMapColor(bool mcl)
1528 	{
1529 		if(mcl == false) return;
1530 		fprintf(mFile,"\tsetAttr \".mcl\" %i;\n", mcl);
1531 	}
setMapOpacity(bool mop)1532 	void setMapOpacity(bool mop)
1533 	{
1534 		if(mop == false) return;
1535 		fprintf(mFile,"\tsetAttr \".mop\" %i;\n", mop);
1536 	}
setMapDisplacement(bool mds)1537 	void setMapDisplacement(bool mds)
1538 	{
1539 		if(mds == false) return;
1540 		fprintf(mFile,"\tsetAttr \".mds\" %i;\n", mds);
1541 	}
setTextureType(unsigned int txt)1542 	void setTextureType(unsigned int txt)
1543 	{
1544 		if(txt == 0) return;
1545 		fprintf(mFile,"\tsetAttr \".txt\" %i;\n", txt);
1546 	}
setMapMethod(unsigned int mmd)1547 	void setMapMethod(unsigned int mmd)
1548 	{
1549 		if(mmd == 0) return;
1550 		fprintf(mFile,"\tsetAttr \".mmd\" %i;\n", mmd);
1551 	}
setTexColorScale(double tcs)1552 	void setTexColorScale(double tcs)
1553 	{
1554 		if(tcs == 1.0) return;
1555 		fprintf(mFile,"\tsetAttr \".tcs\" %f;\n", tcs);
1556 	}
setTexColorOffset(double tco)1557 	void setTexColorOffset(double tco)
1558 	{
1559 		if(tco == 0.0) return;
1560 		fprintf(mFile,"\tsetAttr \".tco\" %f;\n", tco);
1561 	}
setTexOpacityScale(double tos)1562 	void setTexOpacityScale(double tos)
1563 	{
1564 		if(tos == 1.0) return;
1565 		fprintf(mFile,"\tsetAttr \".tos\" %f;\n", tos);
1566 	}
setTexOpacityOffset(double too)1567 	void setTexOpacityOffset(double too)
1568 	{
1569 		if(too == 0.0) return;
1570 		fprintf(mFile,"\tsetAttr \".too\" %f;\n", too);
1571 	}
setDisplacementScale(double dsc)1572 	void setDisplacementScale(double dsc)
1573 	{
1574 		if(dsc == 1.0) return;
1575 		fprintf(mFile,"\tsetAttr \".dsc\" %f;\n", dsc);
1576 	}
setDisplacementOffset(double dof)1577 	void setDisplacementOffset(double dof)
1578 	{
1579 		if(dof == 0.0) return;
1580 		fprintf(mFile,"\tsetAttr \".dof\" %f;\n", dof);
1581 	}
setBumpIntensity(double bmi)1582 	void setBumpIntensity(double bmi)
1583 	{
1584 		if(bmi == 1.0) return;
1585 		fprintf(mFile,"\tsetAttr \".bmi\" %f;\n", bmi);
1586 	}
setBumpBlur(double bbl)1587 	void setBumpBlur(double bbl)
1588 	{
1589 		if(bbl == 0.5) return;
1590 		fprintf(mFile,"\tsetAttr \".bbl\" %f;\n", bbl);
1591 	}
setLuminanceIsDisplacement(bool lid)1592 	void setLuminanceIsDisplacement(bool lid)
1593 	{
1594 		if(lid == true) return;
1595 		fprintf(mFile,"\tsetAttr \".lid\" %i;\n", lid);
1596 	}
setTexColor1(const float3 & tc1)1597 	void setTexColor1(const float3& tc1)
1598 	{
1599 		fprintf(mFile,"\tsetAttr \".tc1\" -type \"float3\" ");
1600 		tc1.write(mFile);
1601 		fprintf(mFile,";\n");
1602 	}
setTexColor1R(float x1r)1603 	void setTexColor1R(float x1r)
1604 	{
1605 		if(x1r == 1.0) return;
1606 		fprintf(mFile,"\tsetAttr \".tc1.x1r\" %f;\n", x1r);
1607 	}
setTexColor1G(float x1g)1608 	void setTexColor1G(float x1g)
1609 	{
1610 		if(x1g == 1.0) return;
1611 		fprintf(mFile,"\tsetAttr \".tc1.x1g\" %f;\n", x1g);
1612 	}
setTexColor1B(float x1b)1613 	void setTexColor1B(float x1b)
1614 	{
1615 		if(x1b == 1.0) return;
1616 		fprintf(mFile,"\tsetAttr \".tc1.x1b\" %f;\n", x1b);
1617 	}
setTexColor2(const float3 & tc2)1618 	void setTexColor2(const float3& tc2)
1619 	{
1620 		fprintf(mFile,"\tsetAttr \".tc2\" -type \"float3\" ");
1621 		tc2.write(mFile);
1622 		fprintf(mFile,";\n");
1623 	}
setTexColor2R(float x2r)1624 	void setTexColor2R(float x2r)
1625 	{
1626 		if(x2r == 0.0) return;
1627 		fprintf(mFile,"\tsetAttr \".tc2.x2r\" %f;\n", x2r);
1628 	}
setTexColor2G(float x2g)1629 	void setTexColor2G(float x2g)
1630 	{
1631 		if(x2g == 0.0) return;
1632 		fprintf(mFile,"\tsetAttr \".tc2.x2g\" %f;\n", x2g);
1633 	}
setTexColor2B(float x2b)1634 	void setTexColor2B(float x2b)
1635 	{
1636 		if(x2b == 0.0) return;
1637 		fprintf(mFile,"\tsetAttr \".tc2.x2b\" %f;\n", x2b);
1638 	}
setTexAlpha1(double al1)1639 	void setTexAlpha1(double al1)
1640 	{
1641 		if(al1 == 1.0) return;
1642 		fprintf(mFile,"\tsetAttr \".al1\" %f;\n", al1);
1643 	}
setTexAlpha2(double al2)1644 	void setTexAlpha2(double al2)
1645 	{
1646 		if(al2 == 0.0) return;
1647 		fprintf(mFile,"\tsetAttr \".al2\" %f;\n", al2);
1648 	}
setTexUniformity(double txu)1649 	void setTexUniformity(double txu)
1650 	{
1651 		if(txu == 0.5) return;
1652 		fprintf(mFile,"\tsetAttr \".txu\" %f;\n", txu);
1653 	}
setFringeRemoval(bool frm)1654 	void setFringeRemoval(bool frm)
1655 	{
1656 		if(frm == true) return;
1657 		fprintf(mFile,"\tsetAttr \".frm\" %i;\n", frm);
1658 	}
setRepeatU(double rpu)1659 	void setRepeatU(double rpu)
1660 	{
1661 		if(rpu == 1.0) return;
1662 		fprintf(mFile,"\tsetAttr \".rpu\" %f;\n", rpu);
1663 	}
setRepeatV(double rpv)1664 	void setRepeatV(double rpv)
1665 	{
1666 		if(rpv == 1.0) return;
1667 		fprintf(mFile,"\tsetAttr \".rpv\" %f;\n", rpv);
1668 	}
setOffsetU(double ofu)1669 	void setOffsetU(double ofu)
1670 	{
1671 		if(ofu == 0.0) return;
1672 		fprintf(mFile,"\tsetAttr \".ofu\" %f;\n", ofu);
1673 	}
setOffsetV(double ofv)1674 	void setOffsetV(double ofv)
1675 	{
1676 		if(ofv == 0.0) return;
1677 		fprintf(mFile,"\tsetAttr \".ofv\" %f;\n", ofv);
1678 	}
setBlurMult(double bmt)1679 	void setBlurMult(double bmt)
1680 	{
1681 		if(bmt == 1.0) return;
1682 		fprintf(mFile,"\tsetAttr \".bmt\" %f;\n", bmt);
1683 	}
setSmear(double smr)1684 	void setSmear(double smr)
1685 	{
1686 		if(smr == 0.1) return;
1687 		fprintf(mFile,"\tsetAttr \".smr\" %f;\n", smr);
1688 	}
setSmearU(double sru)1689 	void setSmearU(double sru)
1690 	{
1691 		if(sru == 0.0) return;
1692 		fprintf(mFile,"\tsetAttr \".sru\" %f;\n", sru);
1693 	}
setSmearV(double srv)1694 	void setSmearV(double srv)
1695 	{
1696 		if(srv == 0.0) return;
1697 		fprintf(mFile,"\tsetAttr \".srv\" %f;\n", srv);
1698 	}
setImageName(const string & imn)1699 	void setImageName(const string& imn)
1700 	{
1701 		if(imn == "NULL") return;
1702 		fprintf(mFile,"\tsetAttr \".imn\" -type \"string\" ");
1703 		imn.write(mFile);
1704 		fprintf(mFile,";\n");
1705 	}
setUseFrameExtension(bool ufe)1706 	void setUseFrameExtension(bool ufe)
1707 	{
1708 		if(ufe == false) return;
1709 		fprintf(mFile,"\tsetAttr \".ufe\" %i;\n", ufe);
1710 	}
setFrameExtension(int fe)1711 	void setFrameExtension(int fe)
1712 	{
1713 		if(fe == 1) return;
1714 		fprintf(mFile,"\tsetAttr \".fe\" %i;\n", fe);
1715 	}
setFractalRatio(double fra)1716 	void setFractalRatio(double fra)
1717 	{
1718 		if(fra == 0.7) return;
1719 		fprintf(mFile,"\tsetAttr \".fra\" %f;\n", fra);
1720 	}
setFractalAmplitude(double fam)1721 	void setFractalAmplitude(double fam)
1722 	{
1723 		if(fam == 1.0) return;
1724 		fprintf(mFile,"\tsetAttr \".fam\" %f;\n", fam);
1725 	}
setFractalThreshold(double fth)1726 	void setFractalThreshold(double fth)
1727 	{
1728 		if(fth == 0.0) return;
1729 		fprintf(mFile,"\tsetAttr \".fth\" %f;\n", fth);
1730 	}
setMultiStreaks(int mst)1731 	void setMultiStreaks(int mst)
1732 	{
1733 		if(mst == 0) return;
1734 		fprintf(mFile,"\tsetAttr \".mst\" %i;\n", mst);
1735 	}
setMultiStreakSpread1(double ms1)1736 	void setMultiStreakSpread1(double ms1)
1737 	{
1738 		if(ms1 == 0.2) return;
1739 		fprintf(mFile,"\tsetAttr \".ms1\" %f;\n", ms1);
1740 	}
setMultiStreakSpread2(double ms2)1741 	void setMultiStreakSpread2(double ms2)
1742 	{
1743 		if(ms2 == 0.2) return;
1744 		fprintf(mFile,"\tsetAttr \".ms2\" %f;\n", ms2);
1745 	}
setMultiStreakDiffuseRand(double msdr)1746 	void setMultiStreakDiffuseRand(double msdr)
1747 	{
1748 		if(msdr == 0.0) return;
1749 		fprintf(mFile,"\tsetAttr \".msdr\" %f;\n", msdr);
1750 	}
setMultiStreakSpecularRand(double mssr)1751 	void setMultiStreakSpecularRand(double mssr)
1752 	{
1753 		if(mssr == 0.0) return;
1754 		fprintf(mFile,"\tsetAttr \".mssr\" %f;\n", mssr);
1755 	}
setMultiStreakLightAll(bool msla)1756 	void setMultiStreakLightAll(bool msla)
1757 	{
1758 		if(msla == false) return;
1759 		fprintf(mFile,"\tsetAttr \".msla\" %i;\n", msla);
1760 	}
setSingleSided(bool snsd)1761 	void setSingleSided(bool snsd)
1762 	{
1763 		if(snsd == false) return;
1764 		fprintf(mFile,"\tsetAttr \".snsd\" %i;\n", snsd);
1765 	}
setTubeSections(int tbs)1766 	void setTubeSections(int tbs)
1767 	{
1768 		if(tbs == 6) return;
1769 		fprintf(mFile,"\tsetAttr \".tbs\" %i;\n", tbs);
1770 	}
setSubSegments(int ssg)1771 	void setSubSegments(int ssg)
1772 	{
1773 		if(ssg == 1) return;
1774 		fprintf(mFile,"\tsetAttr \".ssg\" %i;\n", ssg);
1775 	}
setPerPixelLighting(bool ppl)1776 	void setPerPixelLighting(bool ppl)
1777 	{
1778 		if(ppl == false) return;
1779 		fprintf(mFile,"\tsetAttr \".ppl\" %i;\n", ppl);
1780 	}
setWidthScale(size_t wsc_i,const WidthScale & wsc)1781 	void setWidthScale(size_t wsc_i,const WidthScale& wsc)
1782 	{
1783 		fprintf(mFile,"\tsetAttr \".wsc[%i]\" ",wsc_i);
1784 		wsc.write(mFile);
1785 		fprintf(mFile,";\n");
1786 	}
setWidthScale(size_t wsc_start,size_t wsc_end,WidthScale * wsc)1787 	void setWidthScale(size_t wsc_start,size_t wsc_end,WidthScale* wsc)
1788 	{
1789 		fprintf(mFile,"\tsetAttr \".wsc[%i:%i]\" ", wsc_start,wsc_end);
1790 		size_t size = (wsc_end-wsc_start)*1+1;
1791 		for(size_t i=0;i<size;++i)
1792 		{
1793 			wsc[i].write(mFile);
1794 			fprintf(mFile,"\n");
1795 		}
1796 		fprintf(mFile,";\n");
1797 	}
startWidthScale(size_t wsc_start,size_t wsc_end)1798 	void startWidthScale(size_t wsc_start,size_t wsc_end)const
1799 	{
1800 		fprintf(mFile,"\tsetAttr \".wsc[%i:%i]\"",wsc_start,wsc_end);
1801 		fprintf(mFile," -type \"WidthScale\" ");
1802 	}
appendWidthScale(const WidthScale & wsc)1803 	void appendWidthScale(const WidthScale& wsc)const
1804 	{
1805 		fprintf(mFile," ");
1806 		wsc.write(mFile);
1807 	}
endWidthScale()1808 	void endWidthScale()const
1809 	{
1810 		fprintf(mFile,";\n");
1811 	}
setWidthScale_Position(size_t wsc_i,float wscp)1812 	void setWidthScale_Position(size_t wsc_i,float wscp)
1813 	{
1814 		if(wscp == 0.0) return;
1815 		fprintf(mFile,"\tsetAttr \".wsc[%i].wscp\" %f;\n", wsc_i,wscp);
1816 	}
setWidthScale_FloatValue(size_t wsc_i,float wscfv)1817 	void setWidthScale_FloatValue(size_t wsc_i,float wscfv)
1818 	{
1819 		if(wscfv == 0.0) return;
1820 		fprintf(mFile,"\tsetAttr \".wsc[%i].wscfv\" %f;\n", wsc_i,wscfv);
1821 	}
setWidthScale_Interp(size_t wsc_i,unsigned int wsci)1822 	void setWidthScale_Interp(size_t wsc_i,unsigned int wsci)
1823 	{
1824 		if(wsci == 0) return;
1825 		fprintf(mFile,"\tsetAttr \".wsc[%i].wsci\" %i;\n", wsc_i,wsci);
1826 	}
setLeafWidthScale(size_t lws_i,const LeafWidthScale & lws)1827 	void setLeafWidthScale(size_t lws_i,const LeafWidthScale& lws)
1828 	{
1829 		fprintf(mFile,"\tsetAttr \".lws[%i]\" ",lws_i);
1830 		lws.write(mFile);
1831 		fprintf(mFile,";\n");
1832 	}
setLeafWidthScale(size_t lws_start,size_t lws_end,LeafWidthScale * lws)1833 	void setLeafWidthScale(size_t lws_start,size_t lws_end,LeafWidthScale* lws)
1834 	{
1835 		fprintf(mFile,"\tsetAttr \".lws[%i:%i]\" ", lws_start,lws_end);
1836 		size_t size = (lws_end-lws_start)*1+1;
1837 		for(size_t i=0;i<size;++i)
1838 		{
1839 			lws[i].write(mFile);
1840 			fprintf(mFile,"\n");
1841 		}
1842 		fprintf(mFile,";\n");
1843 	}
startLeafWidthScale(size_t lws_start,size_t lws_end)1844 	void startLeafWidthScale(size_t lws_start,size_t lws_end)const
1845 	{
1846 		fprintf(mFile,"\tsetAttr \".lws[%i:%i]\"",lws_start,lws_end);
1847 		fprintf(mFile," -type \"LeafWidthScale\" ");
1848 	}
appendLeafWidthScale(const LeafWidthScale & lws)1849 	void appendLeafWidthScale(const LeafWidthScale& lws)const
1850 	{
1851 		fprintf(mFile," ");
1852 		lws.write(mFile);
1853 	}
endLeafWidthScale()1854 	void endLeafWidthScale()const
1855 	{
1856 		fprintf(mFile,";\n");
1857 	}
setLeafWidthScale_Position(size_t lws_i,float lwsp)1858 	void setLeafWidthScale_Position(size_t lws_i,float lwsp)
1859 	{
1860 		if(lwsp == 0.0) return;
1861 		fprintf(mFile,"\tsetAttr \".lws[%i].lwsp\" %f;\n", lws_i,lwsp);
1862 	}
setLeafWidthScale_FloatValue(size_t lws_i,float lwsfv)1863 	void setLeafWidthScale_FloatValue(size_t lws_i,float lwsfv)
1864 	{
1865 		if(lwsfv == 0.0) return;
1866 		fprintf(mFile,"\tsetAttr \".lws[%i].lwsfv\" %f;\n", lws_i,lwsfv);
1867 	}
setLeafWidthScale_Interp(size_t lws_i,unsigned int lwsi)1868 	void setLeafWidthScale_Interp(size_t lws_i,unsigned int lwsi)
1869 	{
1870 		if(lwsi == 0) return;
1871 		fprintf(mFile,"\tsetAttr \".lws[%i].lwsi\" %i;\n", lws_i,lwsi);
1872 	}
setPetalWidthScale(size_t pws_i,const PetalWidthScale & pws)1873 	void setPetalWidthScale(size_t pws_i,const PetalWidthScale& pws)
1874 	{
1875 		fprintf(mFile,"\tsetAttr \".pws[%i]\" ",pws_i);
1876 		pws.write(mFile);
1877 		fprintf(mFile,";\n");
1878 	}
setPetalWidthScale(size_t pws_start,size_t pws_end,PetalWidthScale * pws)1879 	void setPetalWidthScale(size_t pws_start,size_t pws_end,PetalWidthScale* pws)
1880 	{
1881 		fprintf(mFile,"\tsetAttr \".pws[%i:%i]\" ", pws_start,pws_end);
1882 		size_t size = (pws_end-pws_start)*1+1;
1883 		for(size_t i=0;i<size;++i)
1884 		{
1885 			pws[i].write(mFile);
1886 			fprintf(mFile,"\n");
1887 		}
1888 		fprintf(mFile,";\n");
1889 	}
startPetalWidthScale(size_t pws_start,size_t pws_end)1890 	void startPetalWidthScale(size_t pws_start,size_t pws_end)const
1891 	{
1892 		fprintf(mFile,"\tsetAttr \".pws[%i:%i]\"",pws_start,pws_end);
1893 		fprintf(mFile," -type \"PetalWidthScale\" ");
1894 	}
appendPetalWidthScale(const PetalWidthScale & pws)1895 	void appendPetalWidthScale(const PetalWidthScale& pws)const
1896 	{
1897 		fprintf(mFile," ");
1898 		pws.write(mFile);
1899 	}
endPetalWidthScale()1900 	void endPetalWidthScale()const
1901 	{
1902 		fprintf(mFile,";\n");
1903 	}
setPetalWidthScale_Position(size_t pws_i,float pwsp)1904 	void setPetalWidthScale_Position(size_t pws_i,float pwsp)
1905 	{
1906 		if(pwsp == 0.0) return;
1907 		fprintf(mFile,"\tsetAttr \".pws[%i].pwsp\" %f;\n", pws_i,pwsp);
1908 	}
setPetalWidthScale_FloatValue(size_t pws_i,float pwsfv)1909 	void setPetalWidthScale_FloatValue(size_t pws_i,float pwsfv)
1910 	{
1911 		if(pwsfv == 0.0) return;
1912 		fprintf(mFile,"\tsetAttr \".pws[%i].pwsfv\" %f;\n", pws_i,pwsfv);
1913 	}
setPetalWidthScale_Interp(size_t pws_i,unsigned int pwsi)1914 	void setPetalWidthScale_Interp(size_t pws_i,unsigned int pwsi)
1915 	{
1916 		if(pwsi == 0) return;
1917 		fprintf(mFile,"\tsetAttr \".pws[%i].pwsi\" %i;\n", pws_i,pwsi);
1918 	}
setTwigLengthScale(size_t tls_i,const TwigLengthScale & tls)1919 	void setTwigLengthScale(size_t tls_i,const TwigLengthScale& tls)
1920 	{
1921 		fprintf(mFile,"\tsetAttr \".tls[%i]\" ",tls_i);
1922 		tls.write(mFile);
1923 		fprintf(mFile,";\n");
1924 	}
setTwigLengthScale(size_t tls_start,size_t tls_end,TwigLengthScale * tls)1925 	void setTwigLengthScale(size_t tls_start,size_t tls_end,TwigLengthScale* tls)
1926 	{
1927 		fprintf(mFile,"\tsetAttr \".tls[%i:%i]\" ", tls_start,tls_end);
1928 		size_t size = (tls_end-tls_start)*1+1;
1929 		for(size_t i=0;i<size;++i)
1930 		{
1931 			tls[i].write(mFile);
1932 			fprintf(mFile,"\n");
1933 		}
1934 		fprintf(mFile,";\n");
1935 	}
startTwigLengthScale(size_t tls_start,size_t tls_end)1936 	void startTwigLengthScale(size_t tls_start,size_t tls_end)const
1937 	{
1938 		fprintf(mFile,"\tsetAttr \".tls[%i:%i]\"",tls_start,tls_end);
1939 		fprintf(mFile," -type \"TwigLengthScale\" ");
1940 	}
appendTwigLengthScale(const TwigLengthScale & tls)1941 	void appendTwigLengthScale(const TwigLengthScale& tls)const
1942 	{
1943 		fprintf(mFile," ");
1944 		tls.write(mFile);
1945 	}
endTwigLengthScale()1946 	void endTwigLengthScale()const
1947 	{
1948 		fprintf(mFile,";\n");
1949 	}
setTwigLengthScale_Position(size_t tls_i,float tlsp)1950 	void setTwigLengthScale_Position(size_t tls_i,float tlsp)
1951 	{
1952 		if(tlsp == 0.0) return;
1953 		fprintf(mFile,"\tsetAttr \".tls[%i].tlsp\" %f;\n", tls_i,tlsp);
1954 	}
setTwigLengthScale_FloatValue(size_t tls_i,float tlsfv)1955 	void setTwigLengthScale_FloatValue(size_t tls_i,float tlsfv)
1956 	{
1957 		if(tlsfv == 0.0) return;
1958 		fprintf(mFile,"\tsetAttr \".tls[%i].tlsfv\" %f;\n", tls_i,tlsfv);
1959 	}
setTwigLengthScale_Interp(size_t tls_i,unsigned int tlsi)1960 	void setTwigLengthScale_Interp(size_t tls_i,unsigned int tlsi)
1961 	{
1962 		if(tlsi == 0) return;
1963 		fprintf(mFile,"\tsetAttr \".tls[%i].tlsi\" %i;\n", tls_i,tlsi);
1964 	}
setBranchThorns(bool bth)1965 	void setBranchThorns(bool bth)
1966 	{
1967 		if(bth == false) return;
1968 		fprintf(mFile,"\tsetAttr \".bth\" %i;\n", bth);
1969 	}
setTwigThorns(bool tth)1970 	void setTwigThorns(bool tth)
1971 	{
1972 		if(tth == false) return;
1973 		fprintf(mFile,"\tsetAttr \".tth\" %i;\n", tth);
1974 	}
setLeafThorns(bool lth)1975 	void setLeafThorns(bool lth)
1976 	{
1977 		if(lth == false) return;
1978 		fprintf(mFile,"\tsetAttr \".lth\" %i;\n", lth);
1979 	}
setFlowerThorns(bool flt)1980 	void setFlowerThorns(bool flt)
1981 	{
1982 		if(flt == false) return;
1983 		fprintf(mFile,"\tsetAttr \".flt\" %i;\n", flt);
1984 	}
setThornDensity(double nth)1985 	void setThornDensity(double nth)
1986 	{
1987 		if(nth == 10.0) return;
1988 		fprintf(mFile,"\tsetAttr \".nth\" %f;\n", nth);
1989 	}
setThornLength(double tln)1990 	void setThornLength(double tln)
1991 	{
1992 		if(tln == 0.5) return;
1993 		fprintf(mFile,"\tsetAttr \".tln\" %f;\n", tln);
1994 	}
setThornBaseWidth(double tbwd)1995 	void setThornBaseWidth(double tbwd)
1996 	{
1997 		if(tbwd == 0.05) return;
1998 		fprintf(mFile,"\tsetAttr \".tbwd\" %f;\n", tbwd);
1999 	}
setThornTipWidth(double ttwd)2000 	void setThornTipWidth(double ttwd)
2001 	{
2002 		if(ttwd == 0.01) return;
2003 		fprintf(mFile,"\tsetAttr \".ttwd\" %f;\n", ttwd);
2004 	}
setThornElevation(double tel)2005 	void setThornElevation(double tel)
2006 	{
2007 		if(tel == 0.6) return;
2008 		fprintf(mFile,"\tsetAttr \".tel\" %f;\n", tel);
2009 	}
setThornSpecular(double tsp)2010 	void setThornSpecular(double tsp)
2011 	{
2012 		if(tsp == 0.4) return;
2013 		fprintf(mFile,"\tsetAttr \".tsp\" %f;\n", tsp);
2014 	}
setThornBaseColor(const float3 & tbc)2015 	void setThornBaseColor(const float3& tbc)
2016 	{
2017 		fprintf(mFile,"\tsetAttr \".tbc\" -type \"float3\" ");
2018 		tbc.write(mFile);
2019 		fprintf(mFile,";\n");
2020 	}
setThornBaseColorR(float tbcr)2021 	void setThornBaseColorR(float tbcr)
2022 	{
2023 		if(tbcr == 0.5) return;
2024 		fprintf(mFile,"\tsetAttr \".tbc.tbcr\" %f;\n", tbcr);
2025 	}
setThornBaseColorG(float tbcg)2026 	void setThornBaseColorG(float tbcg)
2027 	{
2028 		if(tbcg == 0.5) return;
2029 		fprintf(mFile,"\tsetAttr \".tbc.tbcg\" %f;\n", tbcg);
2030 	}
setThornBaseColorB(float tbcb)2031 	void setThornBaseColorB(float tbcb)
2032 	{
2033 		if(tbcb == 0.5) return;
2034 		fprintf(mFile,"\tsetAttr \".tbc.tbcb\" %f;\n", tbcb);
2035 	}
setThornTipColor(const float3 & ttc)2036 	void setThornTipColor(const float3& ttc)
2037 	{
2038 		fprintf(mFile,"\tsetAttr \".ttc\" -type \"float3\" ");
2039 		ttc.write(mFile);
2040 		fprintf(mFile,";\n");
2041 	}
setThornTipColorR(float ttcr)2042 	void setThornTipColorR(float ttcr)
2043 	{
2044 		if(ttcr == 0.5) return;
2045 		fprintf(mFile,"\tsetAttr \".ttc.ttcr\" %f;\n", ttcr);
2046 	}
setThornTipColorG(float ttcg)2047 	void setThornTipColorG(float ttcg)
2048 	{
2049 		if(ttcg == 0.5) return;
2050 		fprintf(mFile,"\tsetAttr \".ttc.ttcg\" %f;\n", ttcg);
2051 	}
setThornTipColorB(float ttcb)2052 	void setThornTipColorB(float ttcb)
2053 	{
2054 		if(ttcb == 0.5) return;
2055 		fprintf(mFile,"\tsetAttr \".ttc.ttcb\" %f;\n", ttcb);
2056 	}
setEnvironment(size_t env_i,const Environment & env)2057 	void setEnvironment(size_t env_i,const Environment& env)
2058 	{
2059 		fprintf(mFile,"\tsetAttr \".env[%i]\" ",env_i);
2060 		env.write(mFile);
2061 		fprintf(mFile,";\n");
2062 	}
setEnvironment(size_t env_start,size_t env_end,Environment * env)2063 	void setEnvironment(size_t env_start,size_t env_end,Environment* env)
2064 	{
2065 		fprintf(mFile,"\tsetAttr \".env[%i:%i]\" ", env_start,env_end);
2066 		size_t size = (env_end-env_start)*1+1;
2067 		for(size_t i=0;i<size;++i)
2068 		{
2069 			env[i].write(mFile);
2070 			fprintf(mFile,"\n");
2071 		}
2072 		fprintf(mFile,";\n");
2073 	}
startEnvironment(size_t env_start,size_t env_end)2074 	void startEnvironment(size_t env_start,size_t env_end)const
2075 	{
2076 		fprintf(mFile,"\tsetAttr \".env[%i:%i]\"",env_start,env_end);
2077 		fprintf(mFile," -type \"Environment\" ");
2078 	}
appendEnvironment(const Environment & env)2079 	void appendEnvironment(const Environment& env)const
2080 	{
2081 		fprintf(mFile," ");
2082 		env.write(mFile);
2083 	}
endEnvironment()2084 	void endEnvironment()const
2085 	{
2086 		fprintf(mFile,";\n");
2087 	}
setEnvironment_Position(size_t env_i,float envp)2088 	void setEnvironment_Position(size_t env_i,float envp)
2089 	{
2090 		if(envp == 0.0) return;
2091 		fprintf(mFile,"\tsetAttr \".env[%i].envp\" %f;\n", env_i,envp);
2092 	}
setEnvironment_Color(size_t env_i,const float3 & envc)2093 	void setEnvironment_Color(size_t env_i,const float3& envc)
2094 	{
2095 		fprintf(mFile,"\tsetAttr \".env[%i].envc\" -type \"float3\" ",env_i);
2096 		envc.write(mFile);
2097 		fprintf(mFile,";\n");
2098 	}
setEnvironment_ColorR(size_t env_i,float envcr)2099 	void setEnvironment_ColorR(size_t env_i,float envcr)
2100 	{
2101 		if(envcr == 0.0) return;
2102 		fprintf(mFile,"\tsetAttr \".env[%i].envc.envcr\" %f;\n", env_i,envcr);
2103 	}
setEnvironment_ColorG(size_t env_i,float envcg)2104 	void setEnvironment_ColorG(size_t env_i,float envcg)
2105 	{
2106 		if(envcg == 0.0) return;
2107 		fprintf(mFile,"\tsetAttr \".env[%i].envc.envcg\" %f;\n", env_i,envcg);
2108 	}
setEnvironment_ColorB(size_t env_i,float envcb)2109 	void setEnvironment_ColorB(size_t env_i,float envcb)
2110 	{
2111 		if(envcb == 0.0) return;
2112 		fprintf(mFile,"\tsetAttr \".env[%i].envc.envcb\" %f;\n", env_i,envcb);
2113 	}
setEnvironment_Interp(size_t env_i,unsigned int envi)2114 	void setEnvironment_Interp(size_t env_i,unsigned int envi)
2115 	{
2116 		if(envi == 0) return;
2117 		fprintf(mFile,"\tsetAttr \".env[%i].envi\" %i;\n", env_i,envi);
2118 	}
setReflectionRolloff(size_t rro_i,const ReflectionRolloff & rro)2119 	void setReflectionRolloff(size_t rro_i,const ReflectionRolloff& rro)
2120 	{
2121 		fprintf(mFile,"\tsetAttr \".rro[%i]\" ",rro_i);
2122 		rro.write(mFile);
2123 		fprintf(mFile,";\n");
2124 	}
setReflectionRolloff(size_t rro_start,size_t rro_end,ReflectionRolloff * rro)2125 	void setReflectionRolloff(size_t rro_start,size_t rro_end,ReflectionRolloff* rro)
2126 	{
2127 		fprintf(mFile,"\tsetAttr \".rro[%i:%i]\" ", rro_start,rro_end);
2128 		size_t size = (rro_end-rro_start)*1+1;
2129 		for(size_t i=0;i<size;++i)
2130 		{
2131 			rro[i].write(mFile);
2132 			fprintf(mFile,"\n");
2133 		}
2134 		fprintf(mFile,";\n");
2135 	}
startReflectionRolloff(size_t rro_start,size_t rro_end)2136 	void startReflectionRolloff(size_t rro_start,size_t rro_end)const
2137 	{
2138 		fprintf(mFile,"\tsetAttr \".rro[%i:%i]\"",rro_start,rro_end);
2139 		fprintf(mFile," -type \"ReflectionRolloff\" ");
2140 	}
appendReflectionRolloff(const ReflectionRolloff & rro)2141 	void appendReflectionRolloff(const ReflectionRolloff& rro)const
2142 	{
2143 		fprintf(mFile," ");
2144 		rro.write(mFile);
2145 	}
endReflectionRolloff()2146 	void endReflectionRolloff()const
2147 	{
2148 		fprintf(mFile,";\n");
2149 	}
setReflectionRolloff_Position(size_t rro_i,float rrop)2150 	void setReflectionRolloff_Position(size_t rro_i,float rrop)
2151 	{
2152 		if(rrop == 0.0) return;
2153 		fprintf(mFile,"\tsetAttr \".rro[%i].rrop\" %f;\n", rro_i,rrop);
2154 	}
setReflectionRolloff_FloatValue(size_t rro_i,float rrofv)2155 	void setReflectionRolloff_FloatValue(size_t rro_i,float rrofv)
2156 	{
2157 		if(rrofv == 0.0) return;
2158 		fprintf(mFile,"\tsetAttr \".rro[%i].rrofv\" %f;\n", rro_i,rrofv);
2159 	}
setReflectionRolloff_Interp(size_t rro_i,unsigned int rroi)2160 	void setReflectionRolloff_Interp(size_t rro_i,unsigned int rroi)
2161 	{
2162 		if(rroi == 0) return;
2163 		fprintf(mFile,"\tsetAttr \".rro[%i].rroi\" %i;\n", rro_i,rroi);
2164 	}
setBranchReflectivity(double brf)2165 	void setBranchReflectivity(double brf)
2166 	{
2167 		if(brf == 0.0) return;
2168 		fprintf(mFile,"\tsetAttr \".brf\" %f;\n", brf);
2169 	}
setLeafReflectivity(double lrf)2170 	void setLeafReflectivity(double lrf)
2171 	{
2172 		if(lrf == 0.0) return;
2173 		fprintf(mFile,"\tsetAttr \".lrf\" %f;\n", lrf);
2174 	}
setFlowerReflectivity(double frf)2175 	void setFlowerReflectivity(double frf)
2176 	{
2177 		if(frf == 0.0) return;
2178 		fprintf(mFile,"\tsetAttr \".frf\" %f;\n", frf);
2179 	}
setForwardTwist(bool fwt)2180 	void setForwardTwist(bool fwt)
2181 	{
2182 		if(fwt == false) return;
2183 		fprintf(mFile,"\tsetAttr \".fwt\" %i;\n", fwt);
2184 	}
setLeafForwardTwist(bool lfwt)2185 	void setLeafForwardTwist(bool lfwt)
2186 	{
2187 		if(lfwt == false) return;
2188 		fprintf(mFile,"\tsetAttr \".lfwt\" %i;\n", lfwt);
2189 	}
setPetalForwardTwist(bool lpwt)2190 	void setPetalForwardTwist(bool lpwt)
2191 	{
2192 		if(lpwt == false) return;
2193 		fprintf(mFile,"\tsetAttr \".lpwt\" %i;\n", lpwt);
2194 	}
setEndCaps(bool edc)2195 	void setEndCaps(bool edc)
2196 	{
2197 		if(edc == false) return;
2198 		fprintf(mFile,"\tsetAttr \".edc\" %i;\n", edc);
2199 	}
setHardEdges(bool hde)2200 	void setHardEdges(bool hde)
2201 	{
2202 		if(hde == false) return;
2203 		fprintf(mFile,"\tsetAttr \".hde\" %i;\n", hde);
2204 	}
getOutBrush()2205 	void getOutBrush()const
2206 	{
2207 		fprintf(mFile,"\"%s.obr\"",mName.c_str());
2208 	}
getTime()2209 	void getTime()const
2210 	{
2211 		fprintf(mFile,"\"%s.tim\"",mName.c_str());
2212 	}
getGlobalScale()2213 	void getGlobalScale()const
2214 	{
2215 		fprintf(mFile,"\"%s.gsc\"",mName.c_str());
2216 	}
getDepth()2217 	void getDepth()const
2218 	{
2219 		fprintf(mFile,"\"%s.dep\"",mName.c_str());
2220 	}
getModifyDepth()2221 	void getModifyDepth()const
2222 	{
2223 		fprintf(mFile,"\"%s.mdp\"",mName.c_str());
2224 	}
getModifyColor()2225 	void getModifyColor()const
2226 	{
2227 		fprintf(mFile,"\"%s.mdc\"",mName.c_str());
2228 	}
getModifyAlpha()2229 	void getModifyAlpha()const
2230 	{
2231 		fprintf(mFile,"\"%s.mda\"",mName.c_str());
2232 	}
getIlluminated()2233 	void getIlluminated()const
2234 	{
2235 		fprintf(mFile,"\"%s.ill\"",mName.c_str());
2236 	}
getCastShadows()2237 	void getCastShadows()const
2238 	{
2239 		fprintf(mFile,"\"%s.csd\"",mName.c_str());
2240 	}
getLightingBasedWidth()2241 	void getLightingBasedWidth()const
2242 	{
2243 		fprintf(mFile,"\"%s.lbw\"",mName.c_str());
2244 	}
getBranches()2245 	void getBranches()const
2246 	{
2247 		fprintf(mFile,"\"%s.brc\"",mName.c_str());
2248 	}
getTwigs()2249 	void getTwigs()const
2250 	{
2251 		fprintf(mFile,"\"%s.twg\"",mName.c_str());
2252 	}
getBuds()2253 	void getBuds()const
2254 	{
2255 		fprintf(mFile,"\"%s.bud\"",mName.c_str());
2256 	}
getLeaves()2257 	void getLeaves()const
2258 	{
2259 		fprintf(mFile,"\"%s.lvs\"",mName.c_str());
2260 	}
getFlowers()2261 	void getFlowers()const
2262 	{
2263 		fprintf(mFile,"\"%s.flw\"",mName.c_str());
2264 	}
getBrushType()2265 	void getBrushType()const
2266 	{
2267 		fprintf(mFile,"\"%s.brt\"",mName.c_str());
2268 	}
getBrushWidth()2269 	void getBrushWidth()const
2270 	{
2271 		fprintf(mFile,"\"%s.bwd\"",mName.c_str());
2272 	}
getScreenspaceWidth()2273 	void getScreenspaceWidth()const
2274 	{
2275 		fprintf(mFile,"\"%s.spw\"",mName.c_str());
2276 	}
getDistanceScaling()2277 	void getDistanceScaling()const
2278 	{
2279 		fprintf(mFile,"\"%s.dsl\"",mName.c_str());
2280 	}
getMinPixelWidth()2281 	void getMinPixelWidth()const
2282 	{
2283 		fprintf(mFile,"\"%s.mpw\"",mName.c_str());
2284 	}
getMaxPixelWidth()2285 	void getMaxPixelWidth()const
2286 	{
2287 		fprintf(mFile,"\"%s.mxp\"",mName.c_str());
2288 	}
getStampDensity()2289 	void getStampDensity()const
2290 	{
2291 		fprintf(mFile,"\"%s.sdn\"",mName.c_str());
2292 	}
getSoftness()2293 	void getSoftness()const
2294 	{
2295 		fprintf(mFile,"\"%s.sft\"",mName.c_str());
2296 	}
getEdgeAntialias()2297 	void getEdgeAntialias()const
2298 	{
2299 		fprintf(mFile,"\"%s.eaa\"",mName.c_str());
2300 	}
getEdgeClip()2301 	void getEdgeClip()const
2302 	{
2303 		fprintf(mFile,"\"%s.ecl\"",mName.c_str());
2304 	}
getEdgeClipDepth()2305 	void getEdgeClipDepth()const
2306 	{
2307 		fprintf(mFile,"\"%s.ecd\"",mName.c_str());
2308 	}
getOcclusionWidthScale()2309 	void getOcclusionWidthScale()const
2310 	{
2311 		fprintf(mFile,"\"%s.ows\"",mName.c_str());
2312 	}
getBlurIntensity()2313 	void getBlurIntensity()const
2314 	{
2315 		fprintf(mFile,"\"%s.bin\"",mName.c_str());
2316 	}
getColor1()2317 	void getColor1()const
2318 	{
2319 		fprintf(mFile,"\"%s.cl1\"",mName.c_str());
2320 	}
getColor1R()2321 	void getColor1R()const
2322 	{
2323 		fprintf(mFile,"\"%s.cl1.c1r\"",mName.c_str());
2324 	}
getColor1G()2325 	void getColor1G()const
2326 	{
2327 		fprintf(mFile,"\"%s.cl1.c1g\"",mName.c_str());
2328 	}
getColor1B()2329 	void getColor1B()const
2330 	{
2331 		fprintf(mFile,"\"%s.cl1.c1b\"",mName.c_str());
2332 	}
getColor2()2333 	void getColor2()const
2334 	{
2335 		fprintf(mFile,"\"%s.cl2\"",mName.c_str());
2336 	}
getColor2R()2337 	void getColor2R()const
2338 	{
2339 		fprintf(mFile,"\"%s.cl2.c2r\"",mName.c_str());
2340 	}
getColor2G()2341 	void getColor2G()const
2342 	{
2343 		fprintf(mFile,"\"%s.cl2.c2g\"",mName.c_str());
2344 	}
getColor2B()2345 	void getColor2B()const
2346 	{
2347 		fprintf(mFile,"\"%s.cl2.c2b\"",mName.c_str());
2348 	}
getTransparency1()2349 	void getTransparency1()const
2350 	{
2351 		fprintf(mFile,"\"%s.tn1\"",mName.c_str());
2352 	}
getTransparency1R()2353 	void getTransparency1R()const
2354 	{
2355 		fprintf(mFile,"\"%s.tn1.t1r\"",mName.c_str());
2356 	}
getTransparency1G()2357 	void getTransparency1G()const
2358 	{
2359 		fprintf(mFile,"\"%s.tn1.t1g\"",mName.c_str());
2360 	}
getTransparency1B()2361 	void getTransparency1B()const
2362 	{
2363 		fprintf(mFile,"\"%s.tn1.t1b\"",mName.c_str());
2364 	}
getTransparency2()2365 	void getTransparency2()const
2366 	{
2367 		fprintf(mFile,"\"%s.tn2\"",mName.c_str());
2368 	}
getTransparency2R()2369 	void getTransparency2R()const
2370 	{
2371 		fprintf(mFile,"\"%s.tn2.t2r\"",mName.c_str());
2372 	}
getTransparency2G()2373 	void getTransparency2G()const
2374 	{
2375 		fprintf(mFile,"\"%s.tn2.t2g\"",mName.c_str());
2376 	}
getTransparency2B()2377 	void getTransparency2B()const
2378 	{
2379 		fprintf(mFile,"\"%s.tn2.t2b\"",mName.c_str());
2380 	}
getIncandescence1()2381 	void getIncandescence1()const
2382 	{
2383 		fprintf(mFile,"\"%s.in1\"",mName.c_str());
2384 	}
getIncandescence1R()2385 	void getIncandescence1R()const
2386 	{
2387 		fprintf(mFile,"\"%s.in1.i1r\"",mName.c_str());
2388 	}
getIncandescence1G()2389 	void getIncandescence1G()const
2390 	{
2391 		fprintf(mFile,"\"%s.in1.i1g\"",mName.c_str());
2392 	}
getIncandescence1B()2393 	void getIncandescence1B()const
2394 	{
2395 		fprintf(mFile,"\"%s.in1.i1b\"",mName.c_str());
2396 	}
getIncandescence2()2397 	void getIncandescence2()const
2398 	{
2399 		fprintf(mFile,"\"%s.in2\"",mName.c_str());
2400 	}
getIncandescence2R()2401 	void getIncandescence2R()const
2402 	{
2403 		fprintf(mFile,"\"%s.in2.i2r\"",mName.c_str());
2404 	}
getIncandescence2G()2405 	void getIncandescence2G()const
2406 	{
2407 		fprintf(mFile,"\"%s.in2.i2g\"",mName.c_str());
2408 	}
getIncandescence2B()2409 	void getIncandescence2B()const
2410 	{
2411 		fprintf(mFile,"\"%s.in2.i2b\"",mName.c_str());
2412 	}
getSpecularColor()2413 	void getSpecularColor()const
2414 	{
2415 		fprintf(mFile,"\"%s.spc\"",mName.c_str());
2416 	}
getSpecularColorR()2417 	void getSpecularColorR()const
2418 	{
2419 		fprintf(mFile,"\"%s.spc.spr\"",mName.c_str());
2420 	}
getSpecularColorG()2421 	void getSpecularColorG()const
2422 	{
2423 		fprintf(mFile,"\"%s.spc.spg\"",mName.c_str());
2424 	}
getSpecularColorB()2425 	void getSpecularColorB()const
2426 	{
2427 		fprintf(mFile,"\"%s.spc.spb\"",mName.c_str());
2428 	}
getSpecular()2429 	void getSpecular()const
2430 	{
2431 		fprintf(mFile,"\"%s.spe\"",mName.c_str());
2432 	}
getSpecularPower()2433 	void getSpecularPower()const
2434 	{
2435 		fprintf(mFile,"\"%s.spp\"",mName.c_str());
2436 	}
getTranslucence()2437 	void getTranslucence()const
2438 	{
2439 		fprintf(mFile,"\"%s.trn\"",mName.c_str());
2440 	}
getGlow()2441 	void getGlow()const
2442 	{
2443 		fprintf(mFile,"\"%s.glw\"",mName.c_str());
2444 	}
getGlowColor()2445 	void getGlowColor()const
2446 	{
2447 		fprintf(mFile,"\"%s.glc\"",mName.c_str());
2448 	}
getGlowColorR()2449 	void getGlowColorR()const
2450 	{
2451 		fprintf(mFile,"\"%s.glc.glr\"",mName.c_str());
2452 	}
getGlowColorG()2453 	void getGlowColorG()const
2454 	{
2455 		fprintf(mFile,"\"%s.glc.glg\"",mName.c_str());
2456 	}
getGlowColorB()2457 	void getGlowColorB()const
2458 	{
2459 		fprintf(mFile,"\"%s.glc.glb\"",mName.c_str());
2460 	}
getGlowSpread()2461 	void getGlowSpread()const
2462 	{
2463 		fprintf(mFile,"\"%s.gls\"",mName.c_str());
2464 	}
getShaderGlow()2465 	void getShaderGlow()const
2466 	{
2467 		fprintf(mFile,"\"%s.sgl\"",mName.c_str());
2468 	}
getHueRand()2469 	void getHueRand()const
2470 	{
2471 		fprintf(mFile,"\"%s.chr\"",mName.c_str());
2472 	}
getSatRand()2473 	void getSatRand()const
2474 	{
2475 		fprintf(mFile,"\"%s.csr\"",mName.c_str());
2476 	}
getValRand()2477 	void getValRand()const
2478 	{
2479 		fprintf(mFile,"\"%s.cvr\"",mName.c_str());
2480 	}
getRootFade()2481 	void getRootFade()const
2482 	{
2483 		fprintf(mFile,"\"%s.rfd\"",mName.c_str());
2484 	}
getTipFade()2485 	void getTipFade()const
2486 	{
2487 		fprintf(mFile,"\"%s.tfd\"",mName.c_str());
2488 	}
getFakeShadow()2489 	void getFakeShadow()const
2490 	{
2491 		fprintf(mFile,"\"%s.fks\"",mName.c_str());
2492 	}
getShadowOffset()2493 	void getShadowOffset()const
2494 	{
2495 		fprintf(mFile,"\"%s.sof\"",mName.c_str());
2496 	}
getShadowDiffusion()2497 	void getShadowDiffusion()const
2498 	{
2499 		fprintf(mFile,"\"%s.sdf\"",mName.c_str());
2500 	}
getShadowTransparency()2501 	void getShadowTransparency()const
2502 	{
2503 		fprintf(mFile,"\"%s.stn\"",mName.c_str());
2504 	}
getBackShadow()2505 	void getBackShadow()const
2506 	{
2507 		fprintf(mFile,"\"%s.bks\"",mName.c_str());
2508 	}
getBrightnessRand()2509 	void getBrightnessRand()const
2510 	{
2511 		fprintf(mFile,"\"%s.brn\"",mName.c_str());
2512 	}
getCenterShadow()2513 	void getCenterShadow()const
2514 	{
2515 		fprintf(mFile,"\"%s.cns\"",mName.c_str());
2516 	}
getDepthShadowType()2517 	void getDepthShadowType()const
2518 	{
2519 		fprintf(mFile,"\"%s.dpt\"",mName.c_str());
2520 	}
getDepthShadow()2521 	void getDepthShadow()const
2522 	{
2523 		fprintf(mFile,"\"%s.dpl\"",mName.c_str());
2524 	}
getDepthShadowDepth()2525 	void getDepthShadowDepth()const
2526 	{
2527 		fprintf(mFile,"\"%s.dps\"",mName.c_str());
2528 	}
getRealLights()2529 	void getRealLights()const
2530 	{
2531 		fprintf(mFile,"\"%s.rll\"",mName.c_str());
2532 	}
getLightDirection()2533 	void getLightDirection()const
2534 	{
2535 		fprintf(mFile,"\"%s.ldr\"",mName.c_str());
2536 	}
getLightDirectionX()2537 	void getLightDirectionX()const
2538 	{
2539 		fprintf(mFile,"\"%s.ldr.ldx\"",mName.c_str());
2540 	}
getLightDirectionY()2541 	void getLightDirectionY()const
2542 	{
2543 		fprintf(mFile,"\"%s.ldr.ldy\"",mName.c_str());
2544 	}
getLightDirectionZ()2545 	void getLightDirectionZ()const
2546 	{
2547 		fprintf(mFile,"\"%s.ldr.ldz\"",mName.c_str());
2548 	}
getGapSize()2549 	void getGapSize()const
2550 	{
2551 		fprintf(mFile,"\"%s.gsz\"",mName.c_str());
2552 	}
getGapSpacing()2553 	void getGapSpacing()const
2554 	{
2555 		fprintf(mFile,"\"%s.gsp\"",mName.c_str());
2556 	}
getGapRand()2557 	void getGapRand()const
2558 	{
2559 		fprintf(mFile,"\"%s.grn\"",mName.c_str());
2560 	}
getFlowSpeed()2561 	void getFlowSpeed()const
2562 	{
2563 		fprintf(mFile,"\"%s.fws\"",mName.c_str());
2564 	}
getTextureFlow()2565 	void getTextureFlow()const
2566 	{
2567 		fprintf(mFile,"\"%s.tfl\"",mName.c_str());
2568 	}
getTimeClip()2569 	void getTimeClip()const
2570 	{
2571 		fprintf(mFile,"\"%s.tcl\"",mName.c_str());
2572 	}
getStrokeTime()2573 	void getStrokeTime()const
2574 	{
2575 		fprintf(mFile,"\"%s.srm\"",mName.c_str());
2576 	}
getStartTime()2577 	void getStartTime()const
2578 	{
2579 		fprintf(mFile,"\"%s.sti\"",mName.c_str());
2580 	}
getEndTime()2581 	void getEndTime()const
2582 	{
2583 		fprintf(mFile,"\"%s.eti\"",mName.c_str());
2584 	}
getTubes()2585 	void getTubes()const
2586 	{
2587 		fprintf(mFile,"\"%s.tub\"",mName.c_str());
2588 	}
getCreationScript()2589 	void getCreationScript()const
2590 	{
2591 		fprintf(mFile,"\"%s.csc\"",mName.c_str());
2592 	}
getRuntimeScript()2593 	void getRuntimeScript()const
2594 	{
2595 		fprintf(mFile,"\"%s.rsc\"",mName.c_str());
2596 	}
getTubeCompletion()2597 	void getTubeCompletion()const
2598 	{
2599 		fprintf(mFile,"\"%s.tcm\"",mName.c_str());
2600 	}
getTubesPerStep()2601 	void getTubesPerStep()const
2602 	{
2603 		fprintf(mFile,"\"%s.tps\"",mName.c_str());
2604 	}
getTubeRand()2605 	void getTubeRand()const
2606 	{
2607 		fprintf(mFile,"\"%s.trd\"",mName.c_str());
2608 	}
getStartTubes()2609 	void getStartTubes()const
2610 	{
2611 		fprintf(mFile,"\"%s.stb\"",mName.c_str());
2612 	}
getLengthMax()2613 	void getLengthMax()const
2614 	{
2615 		fprintf(mFile,"\"%s.lnx\"",mName.c_str());
2616 	}
getLengthMin()2617 	void getLengthMin()const
2618 	{
2619 		fprintf(mFile,"\"%s.lnn\"",mName.c_str());
2620 	}
getSegments()2621 	void getSegments()const
2622 	{
2623 		fprintf(mFile,"\"%s.sgm\"",mName.c_str());
2624 	}
getTubeWidth1()2625 	void getTubeWidth1()const
2626 	{
2627 		fprintf(mFile,"\"%s.tw1\"",mName.c_str());
2628 	}
getTubeWidth2()2629 	void getTubeWidth2()const
2630 	{
2631 		fprintf(mFile,"\"%s.tw2\"",mName.c_str());
2632 	}
getWidthRand()2633 	void getWidthRand()const
2634 	{
2635 		fprintf(mFile,"\"%s.wdr\"",mName.c_str());
2636 	}
getWidthBias()2637 	void getWidthBias()const
2638 	{
2639 		fprintf(mFile,"\"%s.wdb\"",mName.c_str());
2640 	}
getLengthFlex()2641 	void getLengthFlex()const
2642 	{
2643 		fprintf(mFile,"\"%s.lfx\"",mName.c_str());
2644 	}
getSegmentLengthBias()2645 	void getSegmentLengthBias()const
2646 	{
2647 		fprintf(mFile,"\"%s.sgb\"",mName.c_str());
2648 	}
getSegmentWidthBias()2649 	void getSegmentWidthBias()const
2650 	{
2651 		fprintf(mFile,"\"%s.swb\"",mName.c_str());
2652 	}
getTubeDirection()2653 	void getTubeDirection()const
2654 	{
2655 		fprintf(mFile,"\"%s.tdr\"",mName.c_str());
2656 	}
getElevationMin()2657 	void getElevationMin()const
2658 	{
2659 		fprintf(mFile,"\"%s.elm\"",mName.c_str());
2660 	}
getElevationMax()2661 	void getElevationMax()const
2662 	{
2663 		fprintf(mFile,"\"%s.elx\"",mName.c_str());
2664 	}
getAzimuthMin()2665 	void getAzimuthMin()const
2666 	{
2667 		fprintf(mFile,"\"%s.azn\"",mName.c_str());
2668 	}
getAzimuthMax()2669 	void getAzimuthMax()const
2670 	{
2671 		fprintf(mFile,"\"%s.azx\"",mName.c_str());
2672 	}
getFlatness1()2673 	void getFlatness1()const
2674 	{
2675 		fprintf(mFile,"\"%s.fl1\"",mName.c_str());
2676 	}
getFlatness2()2677 	void getFlatness2()const
2678 	{
2679 		fprintf(mFile,"\"%s.fl2\"",mName.c_str());
2680 	}
getTwist()2681 	void getTwist()const
2682 	{
2683 		fprintf(mFile,"\"%s.twi\"",mName.c_str());
2684 	}
getTwistRate()2685 	void getTwistRate()const
2686 	{
2687 		fprintf(mFile,"\"%s.twr\"",mName.c_str());
2688 	}
getTwistRand()2689 	void getTwistRand()const
2690 	{
2691 		fprintf(mFile,"\"%s.twd\"",mName.c_str());
2692 	}
getSpiralMin()2693 	void getSpiralMin()const
2694 	{
2695 		fprintf(mFile,"\"%s.spm\"",mName.c_str());
2696 	}
getSpiralMax()2697 	void getSpiralMax()const
2698 	{
2699 		fprintf(mFile,"\"%s.spx\"",mName.c_str());
2700 	}
getSpiralDecay()2701 	void getSpiralDecay()const
2702 	{
2703 		fprintf(mFile,"\"%s.spd\"",mName.c_str());
2704 	}
getBend()2705 	void getBend()const
2706 	{
2707 		fprintf(mFile,"\"%s.ben\"",mName.c_str());
2708 	}
getBendBias()2709 	void getBendBias()const
2710 	{
2711 		fprintf(mFile,"\"%s.bnb\"",mName.c_str());
2712 	}
getDisplacementDelay()2713 	void getDisplacementDelay()const
2714 	{
2715 		fprintf(mFile,"\"%s.ddl\"",mName.c_str());
2716 	}
getWiggle()2717 	void getWiggle()const
2718 	{
2719 		fprintf(mFile,"\"%s.wgl\"",mName.c_str());
2720 	}
getWiggleFrequency()2721 	void getWiggleFrequency()const
2722 	{
2723 		fprintf(mFile,"\"%s.wgf\"",mName.c_str());
2724 	}
getWiggleOffset()2725 	void getWiggleOffset()const
2726 	{
2727 		fprintf(mFile,"\"%s.wgo\"",mName.c_str());
2728 	}
getCurl()2729 	void getCurl()const
2730 	{
2731 		fprintf(mFile,"\"%s.crl\"",mName.c_str());
2732 	}
getCurlFrequency()2733 	void getCurlFrequency()const
2734 	{
2735 		fprintf(mFile,"\"%s.crf\"",mName.c_str());
2736 	}
getCurlOffset()2737 	void getCurlOffset()const
2738 	{
2739 		fprintf(mFile,"\"%s.cro\"",mName.c_str());
2740 	}
getNoise()2741 	void getNoise()const
2742 	{
2743 		fprintf(mFile,"\"%s.noi\"",mName.c_str());
2744 	}
getNoiseFrequency()2745 	void getNoiseFrequency()const
2746 	{
2747 		fprintf(mFile,"\"%s.nof\"",mName.c_str());
2748 	}
getNoiseOffset()2749 	void getNoiseOffset()const
2750 	{
2751 		fprintf(mFile,"\"%s.noo\"",mName.c_str());
2752 	}
getSplitMaxDepth()2753 	void getSplitMaxDepth()const
2754 	{
2755 		fprintf(mFile,"\"%s.smd\"",mName.c_str());
2756 	}
getSplitRand()2757 	void getSplitRand()const
2758 	{
2759 		fprintf(mFile,"\"%s.srd\"",mName.c_str());
2760 	}
getSplitAngle()2761 	void getSplitAngle()const
2762 	{
2763 		fprintf(mFile,"\"%s.spa\"",mName.c_str());
2764 	}
getSplitSizeDecay()2765 	void getSplitSizeDecay()const
2766 	{
2767 		fprintf(mFile,"\"%s.ssd\"",mName.c_str());
2768 	}
getSplitBias()2769 	void getSplitBias()const
2770 	{
2771 		fprintf(mFile,"\"%s.slb\"",mName.c_str());
2772 	}
getSplitTwist()2773 	void getSplitTwist()const
2774 	{
2775 		fprintf(mFile,"\"%s.slt\"",mName.c_str());
2776 	}
getStartBranches()2777 	void getStartBranches()const
2778 	{
2779 		fprintf(mFile,"\"%s.sbr\"",mName.c_str());
2780 	}
getNumBranches()2781 	void getNumBranches()const
2782 	{
2783 		fprintf(mFile,"\"%s.nbr\"",mName.c_str());
2784 	}
getBranchDropout()2785 	void getBranchDropout()const
2786 	{
2787 		fprintf(mFile,"\"%s.bdr\"",mName.c_str());
2788 	}
getMiddleBranch()2789 	void getMiddleBranch()const
2790 	{
2791 		fprintf(mFile,"\"%s.mbr\"",mName.c_str());
2792 	}
getMinSize()2793 	void getMinSize()const
2794 	{
2795 		fprintf(mFile,"\"%s.mms\"",mName.c_str());
2796 	}
getPathFollow()2797 	void getPathFollow()const
2798 	{
2799 		fprintf(mFile,"\"%s.pfl\"",mName.c_str());
2800 	}
getPathAttract()2801 	void getPathAttract()const
2802 	{
2803 		fprintf(mFile,"\"%s.pat\"",mName.c_str());
2804 	}
getCurveFollow()2805 	void getCurveFollow()const
2806 	{
2807 		fprintf(mFile,"\"%s.cfw\"",mName.c_str());
2808 	}
getCurveAttract()2809 	void getCurveAttract()const
2810 	{
2811 		fprintf(mFile,"\"%s.cva\"",mName.c_str());
2812 	}
getCurveMaxDist()2813 	void getCurveMaxDist()const
2814 	{
2815 		fprintf(mFile,"\"%s.cmd\"",mName.c_str());
2816 	}
getUniformForce()2817 	void getUniformForce()const
2818 	{
2819 		fprintf(mFile,"\"%s.ufr\"",mName.c_str());
2820 	}
getUniformForceX()2821 	void getUniformForceX()const
2822 	{
2823 		fprintf(mFile,"\"%s.ufr.ufx\"",mName.c_str());
2824 	}
getUniformForceY()2825 	void getUniformForceY()const
2826 	{
2827 		fprintf(mFile,"\"%s.ufr.ufy\"",mName.c_str());
2828 	}
getUniformForceZ()2829 	void getUniformForceZ()const
2830 	{
2831 		fprintf(mFile,"\"%s.ufr.ufz\"",mName.c_str());
2832 	}
getTurbulenceType()2833 	void getTurbulenceType()const
2834 	{
2835 		fprintf(mFile,"\"%s.trt\"",mName.c_str());
2836 	}
getTurbulenceInterpolation()2837 	void getTurbulenceInterpolation()const
2838 	{
2839 		fprintf(mFile,"\"%s.tin\"",mName.c_str());
2840 	}
getTurbulence()2841 	void getTurbulence()const
2842 	{
2843 		fprintf(mFile,"\"%s.tur\"",mName.c_str());
2844 	}
getTurbulenceFrequency()2845 	void getTurbulenceFrequency()const
2846 	{
2847 		fprintf(mFile,"\"%s.trf\"",mName.c_str());
2848 	}
getTurbulenceSpeed()2849 	void getTurbulenceSpeed()const
2850 	{
2851 		fprintf(mFile,"\"%s.trs\"",mName.c_str());
2852 	}
getTurbulenceOffset()2853 	void getTurbulenceOffset()const
2854 	{
2855 		fprintf(mFile,"\"%s.tro\"",mName.c_str());
2856 	}
getTurbulenceOffsetX()2857 	void getTurbulenceOffsetX()const
2858 	{
2859 		fprintf(mFile,"\"%s.tro.trx\"",mName.c_str());
2860 	}
getTurbulenceOffsetY()2861 	void getTurbulenceOffsetY()const
2862 	{
2863 		fprintf(mFile,"\"%s.tro.try\"",mName.c_str());
2864 	}
getTurbulenceOffsetZ()2865 	void getTurbulenceOffsetZ()const
2866 	{
2867 		fprintf(mFile,"\"%s.tro.trz\"",mName.c_str());
2868 	}
getRandom()2869 	void getRandom()const
2870 	{
2871 		fprintf(mFile,"\"%s.ran\"",mName.c_str());
2872 	}
getGravity()2873 	void getGravity()const
2874 	{
2875 		fprintf(mFile,"\"%s.grv\"",mName.c_str());
2876 	}
getMomentum()2877 	void getMomentum()const
2878 	{
2879 		fprintf(mFile,"\"%s.mmt\"",mName.c_str());
2880 	}
getDeflection()2881 	void getDeflection()const
2882 	{
2883 		fprintf(mFile,"\"%s.def\"",mName.c_str());
2884 	}
getDeflectionMin()2885 	void getDeflectionMin()const
2886 	{
2887 		fprintf(mFile,"\"%s.dfm\"",mName.c_str());
2888 	}
getDeflectionMax()2889 	void getDeflectionMax()const
2890 	{
2891 		fprintf(mFile,"\"%s.dfx\"",mName.c_str());
2892 	}
getTwigsInCluster()2893 	void getTwigsInCluster()const
2894 	{
2895 		fprintf(mFile,"\"%s.tic\"",mName.c_str());
2896 	}
getTwigDropout()2897 	void getTwigDropout()const
2898 	{
2899 		fprintf(mFile,"\"%s.tdp\"",mName.c_str());
2900 	}
getTwigAngle1()2901 	void getTwigAngle1()const
2902 	{
2903 		fprintf(mFile,"\"%s.ta1\"",mName.c_str());
2904 	}
getTwigAngle2()2905 	void getTwigAngle2()const
2906 	{
2907 		fprintf(mFile,"\"%s.ta2\"",mName.c_str());
2908 	}
getTwigTwist()2909 	void getTwigTwist()const
2910 	{
2911 		fprintf(mFile,"\"%s.ttw\"",mName.c_str());
2912 	}
getTwigLength()2913 	void getTwigLength()const
2914 	{
2915 		fprintf(mFile,"\"%s.twl\"",mName.c_str());
2916 	}
getTwigStart()2917 	void getTwigStart()const
2918 	{
2919 		fprintf(mFile,"\"%s.tst\"",mName.c_str());
2920 	}
getNumTwigClusters()2921 	void getNumTwigClusters()const
2922 	{
2923 		fprintf(mFile,"\"%s.ntc\"",mName.c_str());
2924 	}
getTwigBaseWidth()2925 	void getTwigBaseWidth()const
2926 	{
2927 		fprintf(mFile,"\"%s.twb\"",mName.c_str());
2928 	}
getTwigTipWidth()2929 	void getTwigTipWidth()const
2930 	{
2931 		fprintf(mFile,"\"%s.twt\"",mName.c_str());
2932 	}
getTwigStiffness()2933 	void getTwigStiffness()const
2934 	{
2935 		fprintf(mFile,"\"%s.tgs\"",mName.c_str());
2936 	}
getBranchAfterTwigs()2937 	void getBranchAfterTwigs()const
2938 	{
2939 		fprintf(mFile,"\"%s.bat\"",mName.c_str());
2940 	}
getLeavesInCluster()2941 	void getLeavesInCluster()const
2942 	{
2943 		fprintf(mFile,"\"%s.lic\"",mName.c_str());
2944 	}
getLeafLocation()2945 	void getLeafLocation()const
2946 	{
2947 		fprintf(mFile,"\"%s.llo\"",mName.c_str());
2948 	}
getLeafDropout()2949 	void getLeafDropout()const
2950 	{
2951 		fprintf(mFile,"\"%s.ldp\"",mName.c_str());
2952 	}
getLeafAngle1()2953 	void getLeafAngle1()const
2954 	{
2955 		fprintf(mFile,"\"%s.ll1\"",mName.c_str());
2956 	}
getLeafAngle2()2957 	void getLeafAngle2()const
2958 	{
2959 		fprintf(mFile,"\"%s.ll2\"",mName.c_str());
2960 	}
getLeafTwist()2961 	void getLeafTwist()const
2962 	{
2963 		fprintf(mFile,"\"%s.ltw\"",mName.c_str());
2964 	}
getLeafBend()2965 	void getLeafBend()const
2966 	{
2967 		fprintf(mFile,"\"%s.lbn\"",mName.c_str());
2968 	}
getLeafCurl(size_t lcl_i)2969 	void getLeafCurl(size_t lcl_i)const
2970 	{
2971 		fprintf(mFile,"\"%s.lcl[%i]\"",mName.c_str(),lcl_i);
2972 	}
getLeafCurl()2973 	void getLeafCurl()const
2974 	{
2975 
2976 		fprintf(mFile,"\"%s.lcl\"",mName.c_str());
2977 	}
getLeafCurl_Position(size_t lcl_i)2978 	void getLeafCurl_Position(size_t lcl_i)const
2979 	{
2980 		fprintf(mFile,"\"%s.lcl[%i].lclp\"",mName.c_str(),lcl_i);
2981 	}
getLeafCurl_Position()2982 	void getLeafCurl_Position()const
2983 	{
2984 
2985 		fprintf(mFile,"\"%s.lcl.lclp\"",mName.c_str());
2986 	}
getLeafCurl_FloatValue(size_t lcl_i)2987 	void getLeafCurl_FloatValue(size_t lcl_i)const
2988 	{
2989 		fprintf(mFile,"\"%s.lcl[%i].lclfv\"",mName.c_str(),lcl_i);
2990 	}
getLeafCurl_FloatValue()2991 	void getLeafCurl_FloatValue()const
2992 	{
2993 
2994 		fprintf(mFile,"\"%s.lcl.lclfv\"",mName.c_str());
2995 	}
getLeafCurl_Interp(size_t lcl_i)2996 	void getLeafCurl_Interp(size_t lcl_i)const
2997 	{
2998 		fprintf(mFile,"\"%s.lcl[%i].lcli\"",mName.c_str(),lcl_i);
2999 	}
getLeafCurl_Interp()3000 	void getLeafCurl_Interp()const
3001 	{
3002 
3003 		fprintf(mFile,"\"%s.lcl.lcli\"",mName.c_str());
3004 	}
getLeafTwirl()3005 	void getLeafTwirl()const
3006 	{
3007 		fprintf(mFile,"\"%s.ltwl\"",mName.c_str());
3008 	}
getLeafSegments()3009 	void getLeafSegments()const
3010 	{
3011 		fprintf(mFile,"\"%s.lsg\"",mName.c_str());
3012 	}
getLeafStart()3013 	void getLeafStart()const
3014 	{
3015 		fprintf(mFile,"\"%s.lst\"",mName.c_str());
3016 	}
getNumLeafClusters()3017 	void getNumLeafClusters()const
3018 	{
3019 		fprintf(mFile,"\"%s.nlc\"",mName.c_str());
3020 	}
getLeafFlatness()3021 	void getLeafFlatness()const
3022 	{
3023 		fprintf(mFile,"\"%s.lft\"",mName.c_str());
3024 	}
getLeafLength()3025 	void getLeafLength()const
3026 	{
3027 		fprintf(mFile,"\"%s.lln\"",mName.c_str());
3028 	}
getLeafBaseWidth()3029 	void getLeafBaseWidth()const
3030 	{
3031 		fprintf(mFile,"\"%s.leb\"",mName.c_str());
3032 	}
getLeafTipWidth()3033 	void getLeafTipWidth()const
3034 	{
3035 		fprintf(mFile,"\"%s.let\"",mName.c_str());
3036 	}
getLeafSizeDecay()3037 	void getLeafSizeDecay()const
3038 	{
3039 		fprintf(mFile,"\"%s.lsd\"",mName.c_str());
3040 	}
getLeafTranslucence()3041 	void getLeafTranslucence()const
3042 	{
3043 		fprintf(mFile,"\"%s.ltr\"",mName.c_str());
3044 	}
getLeafSpecular()3045 	void getLeafSpecular()const
3046 	{
3047 		fprintf(mFile,"\"%s.lsp\"",mName.c_str());
3048 	}
getTerminalLeaf()3049 	void getTerminalLeaf()const
3050 	{
3051 		fprintf(mFile,"\"%s.tml\"",mName.c_str());
3052 	}
getLeafColor1()3053 	void getLeafColor1()const
3054 	{
3055 		fprintf(mFile,"\"%s.lc1\"",mName.c_str());
3056 	}
getLeafColor1R()3057 	void getLeafColor1R()const
3058 	{
3059 		fprintf(mFile,"\"%s.lc1.lr1\"",mName.c_str());
3060 	}
getLeafColor1G()3061 	void getLeafColor1G()const
3062 	{
3063 		fprintf(mFile,"\"%s.lc1.lg1\"",mName.c_str());
3064 	}
getLeafColor1B()3065 	void getLeafColor1B()const
3066 	{
3067 		fprintf(mFile,"\"%s.lc1.lb1\"",mName.c_str());
3068 	}
getLeafColor2()3069 	void getLeafColor2()const
3070 	{
3071 		fprintf(mFile,"\"%s.lc2\"",mName.c_str());
3072 	}
getLeafColor2R()3073 	void getLeafColor2R()const
3074 	{
3075 		fprintf(mFile,"\"%s.lc2.lr2\"",mName.c_str());
3076 	}
getLeafColor2G()3077 	void getLeafColor2G()const
3078 	{
3079 		fprintf(mFile,"\"%s.lc2.lg2\"",mName.c_str());
3080 	}
getLeafColor2B()3081 	void getLeafColor2B()const
3082 	{
3083 		fprintf(mFile,"\"%s.lc2.lb2\"",mName.c_str());
3084 	}
getLeafHueRand()3085 	void getLeafHueRand()const
3086 	{
3087 		fprintf(mFile,"\"%s.lhr\"",mName.c_str());
3088 	}
getLeafSatRand()3089 	void getLeafSatRand()const
3090 	{
3091 		fprintf(mFile,"\"%s.lsr\"",mName.c_str());
3092 	}
getLeafValRand()3093 	void getLeafValRand()const
3094 	{
3095 		fprintf(mFile,"\"%s.lvr\"",mName.c_str());
3096 	}
getLeafUseBranchTex()3097 	void getLeafUseBranchTex()const
3098 	{
3099 		fprintf(mFile,"\"%s.lub\"",mName.c_str());
3100 	}
getLeafImage()3101 	void getLeafImage()const
3102 	{
3103 		fprintf(mFile,"\"%s.lim\"",mName.c_str());
3104 	}
getLeafStiffness()3105 	void getLeafStiffness()const
3106 	{
3107 		fprintf(mFile,"\"%s.lfs\"",mName.c_str());
3108 	}
getBudSize()3109 	void getBudSize()const
3110 	{
3111 		fprintf(mFile,"\"%s.bds\"",mName.c_str());
3112 	}
getBudColor()3113 	void getBudColor()const
3114 	{
3115 		fprintf(mFile,"\"%s.bcr\"",mName.c_str());
3116 	}
getBudColorR()3117 	void getBudColorR()const
3118 	{
3119 		fprintf(mFile,"\"%s.bcr.bur\"",mName.c_str());
3120 	}
getBudColorG()3121 	void getBudColorG()const
3122 	{
3123 		fprintf(mFile,"\"%s.bcr.bug\"",mName.c_str());
3124 	}
getBudColorB()3125 	void getBudColorB()const
3126 	{
3127 		fprintf(mFile,"\"%s.bcr.bub\"",mName.c_str());
3128 	}
getPetalsInFlower()3129 	void getPetalsInFlower()const
3130 	{
3131 		fprintf(mFile,"\"%s.pif\"",mName.c_str());
3132 	}
getFlowerLocation()3133 	void getFlowerLocation()const
3134 	{
3135 		fprintf(mFile,"\"%s.flc\"",mName.c_str());
3136 	}
getPetalDropout()3137 	void getPetalDropout()const
3138 	{
3139 		fprintf(mFile,"\"%s.pdp\"",mName.c_str());
3140 	}
getFlowerAngle1()3141 	void getFlowerAngle1()const
3142 	{
3143 		fprintf(mFile,"\"%s.fw1\"",mName.c_str());
3144 	}
getFlowerAngle2()3145 	void getFlowerAngle2()const
3146 	{
3147 		fprintf(mFile,"\"%s.fw2\"",mName.c_str());
3148 	}
getFlowerTwist()3149 	void getFlowerTwist()const
3150 	{
3151 		fprintf(mFile,"\"%s.ftw\"",mName.c_str());
3152 	}
getPetalBend()3153 	void getPetalBend()const
3154 	{
3155 		fprintf(mFile,"\"%s.pbn\"",mName.c_str());
3156 	}
getPetalCurl(size_t pcl_i)3157 	void getPetalCurl(size_t pcl_i)const
3158 	{
3159 		fprintf(mFile,"\"%s.pcl[%i]\"",mName.c_str(),pcl_i);
3160 	}
getPetalCurl()3161 	void getPetalCurl()const
3162 	{
3163 
3164 		fprintf(mFile,"\"%s.pcl\"",mName.c_str());
3165 	}
getPetalCurl_Position(size_t pcl_i)3166 	void getPetalCurl_Position(size_t pcl_i)const
3167 	{
3168 		fprintf(mFile,"\"%s.pcl[%i].pclp\"",mName.c_str(),pcl_i);
3169 	}
getPetalCurl_Position()3170 	void getPetalCurl_Position()const
3171 	{
3172 
3173 		fprintf(mFile,"\"%s.pcl.pclp\"",mName.c_str());
3174 	}
getPetalCurl_FloatValue(size_t pcl_i)3175 	void getPetalCurl_FloatValue(size_t pcl_i)const
3176 	{
3177 		fprintf(mFile,"\"%s.pcl[%i].pclfv\"",mName.c_str(),pcl_i);
3178 	}
getPetalCurl_FloatValue()3179 	void getPetalCurl_FloatValue()const
3180 	{
3181 
3182 		fprintf(mFile,"\"%s.pcl.pclfv\"",mName.c_str());
3183 	}
getPetalCurl_Interp(size_t pcl_i)3184 	void getPetalCurl_Interp(size_t pcl_i)const
3185 	{
3186 		fprintf(mFile,"\"%s.pcl[%i].pcli\"",mName.c_str(),pcl_i);
3187 	}
getPetalCurl_Interp()3188 	void getPetalCurl_Interp()const
3189 	{
3190 
3191 		fprintf(mFile,"\"%s.pcl.pcli\"",mName.c_str());
3192 	}
getPetalTwirl()3193 	void getPetalTwirl()const
3194 	{
3195 		fprintf(mFile,"\"%s.lpwl\"",mName.c_str());
3196 	}
getPetalSegments()3197 	void getPetalSegments()const
3198 	{
3199 		fprintf(mFile,"\"%s.psg\"",mName.c_str());
3200 	}
getFlowerStart()3201 	void getFlowerStart()const
3202 	{
3203 		fprintf(mFile,"\"%s.fst\"",mName.c_str());
3204 	}
getNumFlowers()3205 	void getNumFlowers()const
3206 	{
3207 		fprintf(mFile,"\"%s.nfl\"",mName.c_str());
3208 	}
getPetalFlatness()3209 	void getPetalFlatness()const
3210 	{
3211 		fprintf(mFile,"\"%s.pft\"",mName.c_str());
3212 	}
getPetalLength()3213 	void getPetalLength()const
3214 	{
3215 		fprintf(mFile,"\"%s.pln\"",mName.c_str());
3216 	}
getPetalBaseWidth()3217 	void getPetalBaseWidth()const
3218 	{
3219 		fprintf(mFile,"\"%s.ptb\"",mName.c_str());
3220 	}
getPetalTipWidth()3221 	void getPetalTipWidth()const
3222 	{
3223 		fprintf(mFile,"\"%s.ptt\"",mName.c_str());
3224 	}
getFlowerSizeDecay()3225 	void getFlowerSizeDecay()const
3226 	{
3227 		fprintf(mFile,"\"%s.fsd\"",mName.c_str());
3228 	}
getFlowerTranslucence()3229 	void getFlowerTranslucence()const
3230 	{
3231 		fprintf(mFile,"\"%s.ftr\"",mName.c_str());
3232 	}
getFlowerSpecular()3233 	void getFlowerSpecular()const
3234 	{
3235 		fprintf(mFile,"\"%s.fsp\"",mName.c_str());
3236 	}
getPetalColor1()3237 	void getPetalColor1()const
3238 	{
3239 		fprintf(mFile,"\"%s.pc1\"",mName.c_str());
3240 	}
getPetalColor1R()3241 	void getPetalColor1R()const
3242 	{
3243 		fprintf(mFile,"\"%s.pc1.pr1\"",mName.c_str());
3244 	}
getPetalColor1G()3245 	void getPetalColor1G()const
3246 	{
3247 		fprintf(mFile,"\"%s.pc1.pg1\"",mName.c_str());
3248 	}
getPetalColor1B()3249 	void getPetalColor1B()const
3250 	{
3251 		fprintf(mFile,"\"%s.pc1.pb1\"",mName.c_str());
3252 	}
getPetalColor2()3253 	void getPetalColor2()const
3254 	{
3255 		fprintf(mFile,"\"%s.pc2\"",mName.c_str());
3256 	}
getPetalColor2R()3257 	void getPetalColor2R()const
3258 	{
3259 		fprintf(mFile,"\"%s.pc2.pr2\"",mName.c_str());
3260 	}
getPetalColor2G()3261 	void getPetalColor2G()const
3262 	{
3263 		fprintf(mFile,"\"%s.pc2.pg2\"",mName.c_str());
3264 	}
getPetalColor2B()3265 	void getPetalColor2B()const
3266 	{
3267 		fprintf(mFile,"\"%s.pc2.pb2\"",mName.c_str());
3268 	}
getFlowerHueRand()3269 	void getFlowerHueRand()const
3270 	{
3271 		fprintf(mFile,"\"%s.fhr\"",mName.c_str());
3272 	}
getFlowerSatRand()3273 	void getFlowerSatRand()const
3274 	{
3275 		fprintf(mFile,"\"%s.fsr\"",mName.c_str());
3276 	}
getFlowerValRand()3277 	void getFlowerValRand()const
3278 	{
3279 		fprintf(mFile,"\"%s.fvr\"",mName.c_str());
3280 	}
getFlowerUseBranchTex()3281 	void getFlowerUseBranchTex()const
3282 	{
3283 		fprintf(mFile,"\"%s.fub\"",mName.c_str());
3284 	}
getFlowerImage()3285 	void getFlowerImage()const
3286 	{
3287 		fprintf(mFile,"\"%s.fim\"",mName.c_str());
3288 	}
getFlowerStiffness()3289 	void getFlowerStiffness()const
3290 	{
3291 		fprintf(mFile,"\"%s.fls\"",mName.c_str());
3292 	}
getSimplifyMethod()3293 	void getSimplifyMethod()const
3294 	{
3295 		fprintf(mFile,"\"%s.smp\"",mName.c_str());
3296 	}
getColorLengthMap()3297 	void getColorLengthMap()const
3298 	{
3299 		fprintf(mFile,"\"%s.clm\"",mName.c_str());
3300 	}
getTranspLengthMap()3301 	void getTranspLengthMap()const
3302 	{
3303 		fprintf(mFile,"\"%s.tlm\"",mName.c_str());
3304 	}
getIncandLengthMap()3305 	void getIncandLengthMap()const
3306 	{
3307 		fprintf(mFile,"\"%s.ilm\"",mName.c_str());
3308 	}
getWidthLengthMap()3309 	void getWidthLengthMap()const
3310 	{
3311 		fprintf(mFile,"\"%s.wlm\"",mName.c_str());
3312 	}
getSplitLengthMap()3313 	void getSplitLengthMap()const
3314 	{
3315 		fprintf(mFile,"\"%s.spl\"",mName.c_str());
3316 	}
getMapColor()3317 	void getMapColor()const
3318 	{
3319 		fprintf(mFile,"\"%s.mcl\"",mName.c_str());
3320 	}
getMapOpacity()3321 	void getMapOpacity()const
3322 	{
3323 		fprintf(mFile,"\"%s.mop\"",mName.c_str());
3324 	}
getMapDisplacement()3325 	void getMapDisplacement()const
3326 	{
3327 		fprintf(mFile,"\"%s.mds\"",mName.c_str());
3328 	}
getTextureType()3329 	void getTextureType()const
3330 	{
3331 		fprintf(mFile,"\"%s.txt\"",mName.c_str());
3332 	}
getMapMethod()3333 	void getMapMethod()const
3334 	{
3335 		fprintf(mFile,"\"%s.mmd\"",mName.c_str());
3336 	}
getTexColorScale()3337 	void getTexColorScale()const
3338 	{
3339 		fprintf(mFile,"\"%s.tcs\"",mName.c_str());
3340 	}
getTexColorOffset()3341 	void getTexColorOffset()const
3342 	{
3343 		fprintf(mFile,"\"%s.tco\"",mName.c_str());
3344 	}
getTexOpacityScale()3345 	void getTexOpacityScale()const
3346 	{
3347 		fprintf(mFile,"\"%s.tos\"",mName.c_str());
3348 	}
getTexOpacityOffset()3349 	void getTexOpacityOffset()const
3350 	{
3351 		fprintf(mFile,"\"%s.too\"",mName.c_str());
3352 	}
getDisplacementScale()3353 	void getDisplacementScale()const
3354 	{
3355 		fprintf(mFile,"\"%s.dsc\"",mName.c_str());
3356 	}
getDisplacementOffset()3357 	void getDisplacementOffset()const
3358 	{
3359 		fprintf(mFile,"\"%s.dof\"",mName.c_str());
3360 	}
getBumpIntensity()3361 	void getBumpIntensity()const
3362 	{
3363 		fprintf(mFile,"\"%s.bmi\"",mName.c_str());
3364 	}
getBumpBlur()3365 	void getBumpBlur()const
3366 	{
3367 		fprintf(mFile,"\"%s.bbl\"",mName.c_str());
3368 	}
getLuminanceIsDisplacement()3369 	void getLuminanceIsDisplacement()const
3370 	{
3371 		fprintf(mFile,"\"%s.lid\"",mName.c_str());
3372 	}
getTexColor1()3373 	void getTexColor1()const
3374 	{
3375 		fprintf(mFile,"\"%s.tc1\"",mName.c_str());
3376 	}
getTexColor1R()3377 	void getTexColor1R()const
3378 	{
3379 		fprintf(mFile,"\"%s.tc1.x1r\"",mName.c_str());
3380 	}
getTexColor1G()3381 	void getTexColor1G()const
3382 	{
3383 		fprintf(mFile,"\"%s.tc1.x1g\"",mName.c_str());
3384 	}
getTexColor1B()3385 	void getTexColor1B()const
3386 	{
3387 		fprintf(mFile,"\"%s.tc1.x1b\"",mName.c_str());
3388 	}
getTexColor2()3389 	void getTexColor2()const
3390 	{
3391 		fprintf(mFile,"\"%s.tc2\"",mName.c_str());
3392 	}
getTexColor2R()3393 	void getTexColor2R()const
3394 	{
3395 		fprintf(mFile,"\"%s.tc2.x2r\"",mName.c_str());
3396 	}
getTexColor2G()3397 	void getTexColor2G()const
3398 	{
3399 		fprintf(mFile,"\"%s.tc2.x2g\"",mName.c_str());
3400 	}
getTexColor2B()3401 	void getTexColor2B()const
3402 	{
3403 		fprintf(mFile,"\"%s.tc2.x2b\"",mName.c_str());
3404 	}
getTexAlpha1()3405 	void getTexAlpha1()const
3406 	{
3407 		fprintf(mFile,"\"%s.al1\"",mName.c_str());
3408 	}
getTexAlpha2()3409 	void getTexAlpha2()const
3410 	{
3411 		fprintf(mFile,"\"%s.al2\"",mName.c_str());
3412 	}
getTexUniformity()3413 	void getTexUniformity()const
3414 	{
3415 		fprintf(mFile,"\"%s.txu\"",mName.c_str());
3416 	}
getFringeRemoval()3417 	void getFringeRemoval()const
3418 	{
3419 		fprintf(mFile,"\"%s.frm\"",mName.c_str());
3420 	}
getRepeatU()3421 	void getRepeatU()const
3422 	{
3423 		fprintf(mFile,"\"%s.rpu\"",mName.c_str());
3424 	}
getRepeatV()3425 	void getRepeatV()const
3426 	{
3427 		fprintf(mFile,"\"%s.rpv\"",mName.c_str());
3428 	}
getOffsetU()3429 	void getOffsetU()const
3430 	{
3431 		fprintf(mFile,"\"%s.ofu\"",mName.c_str());
3432 	}
getOffsetV()3433 	void getOffsetV()const
3434 	{
3435 		fprintf(mFile,"\"%s.ofv\"",mName.c_str());
3436 	}
getBlurMult()3437 	void getBlurMult()const
3438 	{
3439 		fprintf(mFile,"\"%s.bmt\"",mName.c_str());
3440 	}
getSmear()3441 	void getSmear()const
3442 	{
3443 		fprintf(mFile,"\"%s.smr\"",mName.c_str());
3444 	}
getSmearU()3445 	void getSmearU()const
3446 	{
3447 		fprintf(mFile,"\"%s.sru\"",mName.c_str());
3448 	}
getSmearV()3449 	void getSmearV()const
3450 	{
3451 		fprintf(mFile,"\"%s.srv\"",mName.c_str());
3452 	}
getImageName()3453 	void getImageName()const
3454 	{
3455 		fprintf(mFile,"\"%s.imn\"",mName.c_str());
3456 	}
getUseFrameExtension()3457 	void getUseFrameExtension()const
3458 	{
3459 		fprintf(mFile,"\"%s.ufe\"",mName.c_str());
3460 	}
getFrameExtension()3461 	void getFrameExtension()const
3462 	{
3463 		fprintf(mFile,"\"%s.fe\"",mName.c_str());
3464 	}
getFractalRatio()3465 	void getFractalRatio()const
3466 	{
3467 		fprintf(mFile,"\"%s.fra\"",mName.c_str());
3468 	}
getFractalAmplitude()3469 	void getFractalAmplitude()const
3470 	{
3471 		fprintf(mFile,"\"%s.fam\"",mName.c_str());
3472 	}
getFractalThreshold()3473 	void getFractalThreshold()const
3474 	{
3475 		fprintf(mFile,"\"%s.fth\"",mName.c_str());
3476 	}
getMultiStreaks()3477 	void getMultiStreaks()const
3478 	{
3479 		fprintf(mFile,"\"%s.mst\"",mName.c_str());
3480 	}
getMultiStreakSpread1()3481 	void getMultiStreakSpread1()const
3482 	{
3483 		fprintf(mFile,"\"%s.ms1\"",mName.c_str());
3484 	}
getMultiStreakSpread2()3485 	void getMultiStreakSpread2()const
3486 	{
3487 		fprintf(mFile,"\"%s.ms2\"",mName.c_str());
3488 	}
getMultiStreakDiffuseRand()3489 	void getMultiStreakDiffuseRand()const
3490 	{
3491 		fprintf(mFile,"\"%s.msdr\"",mName.c_str());
3492 	}
getMultiStreakSpecularRand()3493 	void getMultiStreakSpecularRand()const
3494 	{
3495 		fprintf(mFile,"\"%s.mssr\"",mName.c_str());
3496 	}
getMultiStreakLightAll()3497 	void getMultiStreakLightAll()const
3498 	{
3499 		fprintf(mFile,"\"%s.msla\"",mName.c_str());
3500 	}
getSingleSided()3501 	void getSingleSided()const
3502 	{
3503 		fprintf(mFile,"\"%s.snsd\"",mName.c_str());
3504 	}
getTubeSections()3505 	void getTubeSections()const
3506 	{
3507 		fprintf(mFile,"\"%s.tbs\"",mName.c_str());
3508 	}
getSubSegments()3509 	void getSubSegments()const
3510 	{
3511 		fprintf(mFile,"\"%s.ssg\"",mName.c_str());
3512 	}
getPerPixelLighting()3513 	void getPerPixelLighting()const
3514 	{
3515 		fprintf(mFile,"\"%s.ppl\"",mName.c_str());
3516 	}
getWidthScale(size_t wsc_i)3517 	void getWidthScale(size_t wsc_i)const
3518 	{
3519 		fprintf(mFile,"\"%s.wsc[%i]\"",mName.c_str(),wsc_i);
3520 	}
getWidthScale()3521 	void getWidthScale()const
3522 	{
3523 
3524 		fprintf(mFile,"\"%s.wsc\"",mName.c_str());
3525 	}
getWidthScale_Position(size_t wsc_i)3526 	void getWidthScale_Position(size_t wsc_i)const
3527 	{
3528 		fprintf(mFile,"\"%s.wsc[%i].wscp\"",mName.c_str(),wsc_i);
3529 	}
getWidthScale_Position()3530 	void getWidthScale_Position()const
3531 	{
3532 
3533 		fprintf(mFile,"\"%s.wsc.wscp\"",mName.c_str());
3534 	}
getWidthScale_FloatValue(size_t wsc_i)3535 	void getWidthScale_FloatValue(size_t wsc_i)const
3536 	{
3537 		fprintf(mFile,"\"%s.wsc[%i].wscfv\"",mName.c_str(),wsc_i);
3538 	}
getWidthScale_FloatValue()3539 	void getWidthScale_FloatValue()const
3540 	{
3541 
3542 		fprintf(mFile,"\"%s.wsc.wscfv\"",mName.c_str());
3543 	}
getWidthScale_Interp(size_t wsc_i)3544 	void getWidthScale_Interp(size_t wsc_i)const
3545 	{
3546 		fprintf(mFile,"\"%s.wsc[%i].wsci\"",mName.c_str(),wsc_i);
3547 	}
getWidthScale_Interp()3548 	void getWidthScale_Interp()const
3549 	{
3550 
3551 		fprintf(mFile,"\"%s.wsc.wsci\"",mName.c_str());
3552 	}
getLeafWidthScale(size_t lws_i)3553 	void getLeafWidthScale(size_t lws_i)const
3554 	{
3555 		fprintf(mFile,"\"%s.lws[%i]\"",mName.c_str(),lws_i);
3556 	}
getLeafWidthScale()3557 	void getLeafWidthScale()const
3558 	{
3559 
3560 		fprintf(mFile,"\"%s.lws\"",mName.c_str());
3561 	}
getLeafWidthScale_Position(size_t lws_i)3562 	void getLeafWidthScale_Position(size_t lws_i)const
3563 	{
3564 		fprintf(mFile,"\"%s.lws[%i].lwsp\"",mName.c_str(),lws_i);
3565 	}
getLeafWidthScale_Position()3566 	void getLeafWidthScale_Position()const
3567 	{
3568 
3569 		fprintf(mFile,"\"%s.lws.lwsp\"",mName.c_str());
3570 	}
getLeafWidthScale_FloatValue(size_t lws_i)3571 	void getLeafWidthScale_FloatValue(size_t lws_i)const
3572 	{
3573 		fprintf(mFile,"\"%s.lws[%i].lwsfv\"",mName.c_str(),lws_i);
3574 	}
getLeafWidthScale_FloatValue()3575 	void getLeafWidthScale_FloatValue()const
3576 	{
3577 
3578 		fprintf(mFile,"\"%s.lws.lwsfv\"",mName.c_str());
3579 	}
getLeafWidthScale_Interp(size_t lws_i)3580 	void getLeafWidthScale_Interp(size_t lws_i)const
3581 	{
3582 		fprintf(mFile,"\"%s.lws[%i].lwsi\"",mName.c_str(),lws_i);
3583 	}
getLeafWidthScale_Interp()3584 	void getLeafWidthScale_Interp()const
3585 	{
3586 
3587 		fprintf(mFile,"\"%s.lws.lwsi\"",mName.c_str());
3588 	}
getPetalWidthScale(size_t pws_i)3589 	void getPetalWidthScale(size_t pws_i)const
3590 	{
3591 		fprintf(mFile,"\"%s.pws[%i]\"",mName.c_str(),pws_i);
3592 	}
getPetalWidthScale()3593 	void getPetalWidthScale()const
3594 	{
3595 
3596 		fprintf(mFile,"\"%s.pws\"",mName.c_str());
3597 	}
getPetalWidthScale_Position(size_t pws_i)3598 	void getPetalWidthScale_Position(size_t pws_i)const
3599 	{
3600 		fprintf(mFile,"\"%s.pws[%i].pwsp\"",mName.c_str(),pws_i);
3601 	}
getPetalWidthScale_Position()3602 	void getPetalWidthScale_Position()const
3603 	{
3604 
3605 		fprintf(mFile,"\"%s.pws.pwsp\"",mName.c_str());
3606 	}
getPetalWidthScale_FloatValue(size_t pws_i)3607 	void getPetalWidthScale_FloatValue(size_t pws_i)const
3608 	{
3609 		fprintf(mFile,"\"%s.pws[%i].pwsfv\"",mName.c_str(),pws_i);
3610 	}
getPetalWidthScale_FloatValue()3611 	void getPetalWidthScale_FloatValue()const
3612 	{
3613 
3614 		fprintf(mFile,"\"%s.pws.pwsfv\"",mName.c_str());
3615 	}
getPetalWidthScale_Interp(size_t pws_i)3616 	void getPetalWidthScale_Interp(size_t pws_i)const
3617 	{
3618 		fprintf(mFile,"\"%s.pws[%i].pwsi\"",mName.c_str(),pws_i);
3619 	}
getPetalWidthScale_Interp()3620 	void getPetalWidthScale_Interp()const
3621 	{
3622 
3623 		fprintf(mFile,"\"%s.pws.pwsi\"",mName.c_str());
3624 	}
getTwigLengthScale(size_t tls_i)3625 	void getTwigLengthScale(size_t tls_i)const
3626 	{
3627 		fprintf(mFile,"\"%s.tls[%i]\"",mName.c_str(),tls_i);
3628 	}
getTwigLengthScale()3629 	void getTwigLengthScale()const
3630 	{
3631 
3632 		fprintf(mFile,"\"%s.tls\"",mName.c_str());
3633 	}
getTwigLengthScale_Position(size_t tls_i)3634 	void getTwigLengthScale_Position(size_t tls_i)const
3635 	{
3636 		fprintf(mFile,"\"%s.tls[%i].tlsp\"",mName.c_str(),tls_i);
3637 	}
getTwigLengthScale_Position()3638 	void getTwigLengthScale_Position()const
3639 	{
3640 
3641 		fprintf(mFile,"\"%s.tls.tlsp\"",mName.c_str());
3642 	}
getTwigLengthScale_FloatValue(size_t tls_i)3643 	void getTwigLengthScale_FloatValue(size_t tls_i)const
3644 	{
3645 		fprintf(mFile,"\"%s.tls[%i].tlsfv\"",mName.c_str(),tls_i);
3646 	}
getTwigLengthScale_FloatValue()3647 	void getTwigLengthScale_FloatValue()const
3648 	{
3649 
3650 		fprintf(mFile,"\"%s.tls.tlsfv\"",mName.c_str());
3651 	}
getTwigLengthScale_Interp(size_t tls_i)3652 	void getTwigLengthScale_Interp(size_t tls_i)const
3653 	{
3654 		fprintf(mFile,"\"%s.tls[%i].tlsi\"",mName.c_str(),tls_i);
3655 	}
getTwigLengthScale_Interp()3656 	void getTwigLengthScale_Interp()const
3657 	{
3658 
3659 		fprintf(mFile,"\"%s.tls.tlsi\"",mName.c_str());
3660 	}
getBranchThorns()3661 	void getBranchThorns()const
3662 	{
3663 		fprintf(mFile,"\"%s.bth\"",mName.c_str());
3664 	}
getTwigThorns()3665 	void getTwigThorns()const
3666 	{
3667 		fprintf(mFile,"\"%s.tth\"",mName.c_str());
3668 	}
getLeafThorns()3669 	void getLeafThorns()const
3670 	{
3671 		fprintf(mFile,"\"%s.lth\"",mName.c_str());
3672 	}
getFlowerThorns()3673 	void getFlowerThorns()const
3674 	{
3675 		fprintf(mFile,"\"%s.flt\"",mName.c_str());
3676 	}
getThornDensity()3677 	void getThornDensity()const
3678 	{
3679 		fprintf(mFile,"\"%s.nth\"",mName.c_str());
3680 	}
getThornLength()3681 	void getThornLength()const
3682 	{
3683 		fprintf(mFile,"\"%s.tln\"",mName.c_str());
3684 	}
getThornBaseWidth()3685 	void getThornBaseWidth()const
3686 	{
3687 		fprintf(mFile,"\"%s.tbwd\"",mName.c_str());
3688 	}
getThornTipWidth()3689 	void getThornTipWidth()const
3690 	{
3691 		fprintf(mFile,"\"%s.ttwd\"",mName.c_str());
3692 	}
getThornElevation()3693 	void getThornElevation()const
3694 	{
3695 		fprintf(mFile,"\"%s.tel\"",mName.c_str());
3696 	}
getThornSpecular()3697 	void getThornSpecular()const
3698 	{
3699 		fprintf(mFile,"\"%s.tsp\"",mName.c_str());
3700 	}
getThornBaseColor()3701 	void getThornBaseColor()const
3702 	{
3703 		fprintf(mFile,"\"%s.tbc\"",mName.c_str());
3704 	}
getThornBaseColorR()3705 	void getThornBaseColorR()const
3706 	{
3707 		fprintf(mFile,"\"%s.tbc.tbcr\"",mName.c_str());
3708 	}
getThornBaseColorG()3709 	void getThornBaseColorG()const
3710 	{
3711 		fprintf(mFile,"\"%s.tbc.tbcg\"",mName.c_str());
3712 	}
getThornBaseColorB()3713 	void getThornBaseColorB()const
3714 	{
3715 		fprintf(mFile,"\"%s.tbc.tbcb\"",mName.c_str());
3716 	}
getThornTipColor()3717 	void getThornTipColor()const
3718 	{
3719 		fprintf(mFile,"\"%s.ttc\"",mName.c_str());
3720 	}
getThornTipColorR()3721 	void getThornTipColorR()const
3722 	{
3723 		fprintf(mFile,"\"%s.ttc.ttcr\"",mName.c_str());
3724 	}
getThornTipColorG()3725 	void getThornTipColorG()const
3726 	{
3727 		fprintf(mFile,"\"%s.ttc.ttcg\"",mName.c_str());
3728 	}
getThornTipColorB()3729 	void getThornTipColorB()const
3730 	{
3731 		fprintf(mFile,"\"%s.ttc.ttcb\"",mName.c_str());
3732 	}
getEnvironment(size_t env_i)3733 	void getEnvironment(size_t env_i)const
3734 	{
3735 		fprintf(mFile,"\"%s.env[%i]\"",mName.c_str(),env_i);
3736 	}
getEnvironment()3737 	void getEnvironment()const
3738 	{
3739 
3740 		fprintf(mFile,"\"%s.env\"",mName.c_str());
3741 	}
getEnvironment_Position(size_t env_i)3742 	void getEnvironment_Position(size_t env_i)const
3743 	{
3744 		fprintf(mFile,"\"%s.env[%i].envp\"",mName.c_str(),env_i);
3745 	}
getEnvironment_Position()3746 	void getEnvironment_Position()const
3747 	{
3748 
3749 		fprintf(mFile,"\"%s.env.envp\"",mName.c_str());
3750 	}
getEnvironment_Color(size_t env_i)3751 	void getEnvironment_Color(size_t env_i)const
3752 	{
3753 		fprintf(mFile,"\"%s.env[%i].envc\"",mName.c_str(),env_i);
3754 	}
getEnvironment_Color()3755 	void getEnvironment_Color()const
3756 	{
3757 
3758 		fprintf(mFile,"\"%s.env.envc\"",mName.c_str());
3759 	}
getEnvironment_ColorR(size_t env_i)3760 	void getEnvironment_ColorR(size_t env_i)const
3761 	{
3762 		fprintf(mFile,"\"%s.env[%i].envc.envcr\"",mName.c_str(),env_i);
3763 	}
getEnvironment_ColorR()3764 	void getEnvironment_ColorR()const
3765 	{
3766 
3767 		fprintf(mFile,"\"%s.env.envc.envcr\"",mName.c_str());
3768 	}
getEnvironment_ColorG(size_t env_i)3769 	void getEnvironment_ColorG(size_t env_i)const
3770 	{
3771 		fprintf(mFile,"\"%s.env[%i].envc.envcg\"",mName.c_str(),env_i);
3772 	}
getEnvironment_ColorG()3773 	void getEnvironment_ColorG()const
3774 	{
3775 
3776 		fprintf(mFile,"\"%s.env.envc.envcg\"",mName.c_str());
3777 	}
getEnvironment_ColorB(size_t env_i)3778 	void getEnvironment_ColorB(size_t env_i)const
3779 	{
3780 		fprintf(mFile,"\"%s.env[%i].envc.envcb\"",mName.c_str(),env_i);
3781 	}
getEnvironment_ColorB()3782 	void getEnvironment_ColorB()const
3783 	{
3784 
3785 		fprintf(mFile,"\"%s.env.envc.envcb\"",mName.c_str());
3786 	}
getEnvironment_Interp(size_t env_i)3787 	void getEnvironment_Interp(size_t env_i)const
3788 	{
3789 		fprintf(mFile,"\"%s.env[%i].envi\"",mName.c_str(),env_i);
3790 	}
getEnvironment_Interp()3791 	void getEnvironment_Interp()const
3792 	{
3793 
3794 		fprintf(mFile,"\"%s.env.envi\"",mName.c_str());
3795 	}
getReflectionRolloff(size_t rro_i)3796 	void getReflectionRolloff(size_t rro_i)const
3797 	{
3798 		fprintf(mFile,"\"%s.rro[%i]\"",mName.c_str(),rro_i);
3799 	}
getReflectionRolloff()3800 	void getReflectionRolloff()const
3801 	{
3802 
3803 		fprintf(mFile,"\"%s.rro\"",mName.c_str());
3804 	}
getReflectionRolloff_Position(size_t rro_i)3805 	void getReflectionRolloff_Position(size_t rro_i)const
3806 	{
3807 		fprintf(mFile,"\"%s.rro[%i].rrop\"",mName.c_str(),rro_i);
3808 	}
getReflectionRolloff_Position()3809 	void getReflectionRolloff_Position()const
3810 	{
3811 
3812 		fprintf(mFile,"\"%s.rro.rrop\"",mName.c_str());
3813 	}
getReflectionRolloff_FloatValue(size_t rro_i)3814 	void getReflectionRolloff_FloatValue(size_t rro_i)const
3815 	{
3816 		fprintf(mFile,"\"%s.rro[%i].rrofv\"",mName.c_str(),rro_i);
3817 	}
getReflectionRolloff_FloatValue()3818 	void getReflectionRolloff_FloatValue()const
3819 	{
3820 
3821 		fprintf(mFile,"\"%s.rro.rrofv\"",mName.c_str());
3822 	}
getReflectionRolloff_Interp(size_t rro_i)3823 	void getReflectionRolloff_Interp(size_t rro_i)const
3824 	{
3825 		fprintf(mFile,"\"%s.rro[%i].rroi\"",mName.c_str(),rro_i);
3826 	}
getReflectionRolloff_Interp()3827 	void getReflectionRolloff_Interp()const
3828 	{
3829 
3830 		fprintf(mFile,"\"%s.rro.rroi\"",mName.c_str());
3831 	}
getBranchReflectivity()3832 	void getBranchReflectivity()const
3833 	{
3834 		fprintf(mFile,"\"%s.brf\"",mName.c_str());
3835 	}
getLeafReflectivity()3836 	void getLeafReflectivity()const
3837 	{
3838 		fprintf(mFile,"\"%s.lrf\"",mName.c_str());
3839 	}
getFlowerReflectivity()3840 	void getFlowerReflectivity()const
3841 	{
3842 		fprintf(mFile,"\"%s.frf\"",mName.c_str());
3843 	}
getForwardTwist()3844 	void getForwardTwist()const
3845 	{
3846 		fprintf(mFile,"\"%s.fwt\"",mName.c_str());
3847 	}
getLeafForwardTwist()3848 	void getLeafForwardTwist()const
3849 	{
3850 		fprintf(mFile,"\"%s.lfwt\"",mName.c_str());
3851 	}
getPetalForwardTwist()3852 	void getPetalForwardTwist()const
3853 	{
3854 		fprintf(mFile,"\"%s.lpwt\"",mName.c_str());
3855 	}
getEndCaps()3856 	void getEndCaps()const
3857 	{
3858 		fprintf(mFile,"\"%s.edc\"",mName.c_str());
3859 	}
getHardEdges()3860 	void getHardEdges()const
3861 	{
3862 		fprintf(mFile,"\"%s.hde\"",mName.c_str());
3863 	}
3864 protected:
3865 	Brush(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
DependNode(file,name,parent,nodeType,shared,create)3866 		:DependNode(file, name, parent, nodeType, shared, create) {}
3867 
3868 };
3869 }//namespace MayaDM
3870 #endif//__MayaDM_BRUSH_H__
3871