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_FOLLICLE_H__
11 #define __MayaDM_FOLLICLE_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMShape.h"
15 namespace MayaDM
16 {
17 class Follicle : public Shape
18 {
19 public:
20 	struct StiffnessScale{
21 		float stiffnessScale_Position;
22 		float stiffnessScale_FloatValue;
23 		unsigned int stiffnessScale_Interp;
writeStiffnessScale24 		void write(FILE* file) const
25 		{
26 			fprintf(file,"%f ", stiffnessScale_Position);
27 			fprintf(file,"%f ", stiffnessScale_FloatValue);
28 			fprintf(file,"%i", stiffnessScale_Interp);
29 		}
30 	};
31 	struct ClumpWidthScale{
32 		float clumpWidthScale_Position;
33 		float clumpWidthScale_FloatValue;
34 		unsigned int clumpWidthScale_Interp;
writeClumpWidthScale35 		void write(FILE* file) const
36 		{
37 			fprintf(file,"%f ", clumpWidthScale_Position);
38 			fprintf(file,"%f ", clumpWidthScale_FloatValue);
39 			fprintf(file,"%i", clumpWidthScale_Interp);
40 		}
41 	};
42 	struct AttractionScale{
43 		float attractionScale_Position;
44 		float attractionScale_FloatValue;
45 		unsigned int attractionScale_Interp;
writeAttractionScale46 		void write(FILE* file) const
47 		{
48 			fprintf(file,"%f ", attractionScale_Position);
49 			fprintf(file,"%f ", attractionScale_FloatValue);
50 			fprintf(file,"%i", attractionScale_Interp);
51 		}
52 	};
53 public:
54 
Follicle()55 	Follicle():Shape(){}
56 	Follicle(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
57 		:Shape(file, name, parent, "follicle", shared, create){}
~Follicle()58 	virtual ~Follicle(){}
59 
setParameterU(double pu)60 	void setParameterU(double pu)
61 	{
62 		if(pu == 0.0) return;
63 		fprintf(mFile,"\tsetAttr \".pu\" %f;\n", pu);
64 	}
setParameterV(double pv)65 	void setParameterV(double pv)
66 	{
67 		if(pv == 0.0) return;
68 		fprintf(mFile,"\tsetAttr \".pv\" %f;\n", pv);
69 	}
setRestPose(unsigned int rsp)70 	void setRestPose(unsigned int rsp)
71 	{
72 		if(rsp == 0) return;
73 		fprintf(mFile,"\tsetAttr \".rsp\" %i;\n", rsp);
74 	}
setPointLock(unsigned int ptl)75 	void setPointLock(unsigned int ptl)
76 	{
77 		if(ptl == 1) return;
78 		fprintf(mFile,"\tsetAttr \".ptl\" %i;\n", ptl);
79 	}
setSimulationMethod(unsigned int sim)80 	void setSimulationMethod(unsigned int sim)
81 	{
82 		if(sim == 2) return;
83 		fprintf(mFile,"\tsetAttr \".sim\" %i;\n", sim);
84 	}
setStartDirection(unsigned int sdr)85 	void setStartDirection(unsigned int sdr)
86 	{
87 		if(sdr == 0) return;
88 		fprintf(mFile,"\tsetAttr \".sdr\" %i;\n", sdr);
89 	}
setFlipDirection(bool fld)90 	void setFlipDirection(bool fld)
91 	{
92 		if(fld == false) return;
93 		fprintf(mFile,"\tsetAttr \".fld\" %i;\n", fld);
94 	}
setHairSysGravity(double hsg)95 	void setHairSysGravity(double hsg)
96 	{
97 		if(hsg == 1.0) return;
98 		fprintf(mFile,"\tsetAttr \".hsg\" %f;\n", hsg);
99 	}
setHairSysStiffness(double hss)100 	void setHairSysStiffness(double hss)
101 	{
102 		if(hss == 0.5) return;
103 		fprintf(mFile,"\tsetAttr \".hss\" %f;\n", hss);
104 	}
setOverrideDynamics(bool ovd)105 	void setOverrideDynamics(bool ovd)
106 	{
107 		if(ovd == false) return;
108 		fprintf(mFile,"\tsetAttr \".ovd\" %i;\n", ovd);
109 	}
setCollide(bool cld)110 	void setCollide(bool cld)
111 	{
112 		if(cld == true) return;
113 		fprintf(mFile,"\tsetAttr \".cld\" %i;\n", cld);
114 	}
setDamp(double dmp)115 	void setDamp(double dmp)
116 	{
117 		if(dmp == 0.0) return;
118 		fprintf(mFile,"\tsetAttr \".dmp\" %f;\n", dmp);
119 	}
setStiffness(double stf)120 	void setStiffness(double stf)
121 	{
122 		if(stf == 0.15) return;
123 		fprintf(mFile,"\tsetAttr \".stf\" %f;\n", stf);
124 	}
setStiffnessScale(size_t sts_i,const StiffnessScale & sts)125 	void setStiffnessScale(size_t sts_i,const StiffnessScale& sts)
126 	{
127 		fprintf(mFile,"\tsetAttr \".sts[%i]\" ",sts_i);
128 		sts.write(mFile);
129 		fprintf(mFile,";\n");
130 	}
setStiffnessScale(size_t sts_start,size_t sts_end,StiffnessScale * sts)131 	void setStiffnessScale(size_t sts_start,size_t sts_end,StiffnessScale* sts)
132 	{
133 		fprintf(mFile,"\tsetAttr \".sts[%i:%i]\" ", sts_start,sts_end);
134 		size_t size = (sts_end-sts_start)*1+1;
135 		for(size_t i=0;i<size;++i)
136 		{
137 			sts[i].write(mFile);
138 			fprintf(mFile,"\n");
139 		}
140 		fprintf(mFile,";\n");
141 	}
startStiffnessScale(size_t sts_start,size_t sts_end)142 	void startStiffnessScale(size_t sts_start,size_t sts_end)const
143 	{
144 		fprintf(mFile,"\tsetAttr \".sts[%i:%i]\"",sts_start,sts_end);
145 		fprintf(mFile," -type \"StiffnessScale\" ");
146 	}
appendStiffnessScale(const StiffnessScale & sts)147 	void appendStiffnessScale(const StiffnessScale& sts)const
148 	{
149 		fprintf(mFile," ");
150 		sts.write(mFile);
151 	}
endStiffnessScale()152 	void endStiffnessScale()const
153 	{
154 		fprintf(mFile,";\n");
155 	}
setStiffnessScale_Position(size_t sts_i,float stsp)156 	void setStiffnessScale_Position(size_t sts_i,float stsp)
157 	{
158 		if(stsp == 0.0) return;
159 		fprintf(mFile,"\tsetAttr \".sts[%i].stsp\" %f;\n", sts_i,stsp);
160 	}
setStiffnessScale_FloatValue(size_t sts_i,float stsfv)161 	void setStiffnessScale_FloatValue(size_t sts_i,float stsfv)
162 	{
163 		if(stsfv == 0.0) return;
164 		fprintf(mFile,"\tsetAttr \".sts[%i].stsfv\" %f;\n", sts_i,stsfv);
165 	}
setStiffnessScale_Interp(size_t sts_i,unsigned int stsi)166 	void setStiffnessScale_Interp(size_t sts_i,unsigned int stsi)
167 	{
168 		if(stsi == 0) return;
169 		fprintf(mFile,"\tsetAttr \".sts[%i].stsi\" %i;\n", sts_i,stsi);
170 	}
setLengthFlex(double lfl)171 	void setLengthFlex(double lfl)
172 	{
173 		if(lfl == 0.0) return;
174 		fprintf(mFile,"\tsetAttr \".lfl\" %f;\n", lfl);
175 	}
setClumpWidthMult(double cwm)176 	void setClumpWidthMult(double cwm)
177 	{
178 		if(cwm == 1.0) return;
179 		fprintf(mFile,"\tsetAttr \".cwm\" %f;\n", cwm);
180 	}
setClumpWidthScale(size_t cws_i,const ClumpWidthScale & cws)181 	void setClumpWidthScale(size_t cws_i,const ClumpWidthScale& cws)
182 	{
183 		fprintf(mFile,"\tsetAttr \".cws[%i]\" ",cws_i);
184 		cws.write(mFile);
185 		fprintf(mFile,";\n");
186 	}
setClumpWidthScale(size_t cws_start,size_t cws_end,ClumpWidthScale * cws)187 	void setClumpWidthScale(size_t cws_start,size_t cws_end,ClumpWidthScale* cws)
188 	{
189 		fprintf(mFile,"\tsetAttr \".cws[%i:%i]\" ", cws_start,cws_end);
190 		size_t size = (cws_end-cws_start)*1+1;
191 		for(size_t i=0;i<size;++i)
192 		{
193 			cws[i].write(mFile);
194 			fprintf(mFile,"\n");
195 		}
196 		fprintf(mFile,";\n");
197 	}
startClumpWidthScale(size_t cws_start,size_t cws_end)198 	void startClumpWidthScale(size_t cws_start,size_t cws_end)const
199 	{
200 		fprintf(mFile,"\tsetAttr \".cws[%i:%i]\"",cws_start,cws_end);
201 		fprintf(mFile," -type \"ClumpWidthScale\" ");
202 	}
appendClumpWidthScale(const ClumpWidthScale & cws)203 	void appendClumpWidthScale(const ClumpWidthScale& cws)const
204 	{
205 		fprintf(mFile," ");
206 		cws.write(mFile);
207 	}
endClumpWidthScale()208 	void endClumpWidthScale()const
209 	{
210 		fprintf(mFile,";\n");
211 	}
setClumpWidthScale_Position(size_t cws_i,float cwsp)212 	void setClumpWidthScale_Position(size_t cws_i,float cwsp)
213 	{
214 		if(cwsp == 0.0) return;
215 		fprintf(mFile,"\tsetAttr \".cws[%i].cwsp\" %f;\n", cws_i,cwsp);
216 	}
setClumpWidthScale_FloatValue(size_t cws_i,float cwsfv)217 	void setClumpWidthScale_FloatValue(size_t cws_i,float cwsfv)
218 	{
219 		if(cwsfv == 0.0) return;
220 		fprintf(mFile,"\tsetAttr \".cws[%i].cwsfv\" %f;\n", cws_i,cwsfv);
221 	}
setClumpWidthScale_Interp(size_t cws_i,unsigned int cwsi)222 	void setClumpWidthScale_Interp(size_t cws_i,unsigned int cwsi)
223 	{
224 		if(cwsi == 0) return;
225 		fprintf(mFile,"\tsetAttr \".cws[%i].cwsi\" %i;\n", cws_i,cwsi);
226 	}
setStartCurveAttract(double sct)227 	void setStartCurveAttract(double sct)
228 	{
229 		if(sct == 0.0) return;
230 		fprintf(mFile,"\tsetAttr \".sct\" %f;\n", sct);
231 	}
setAttractionScale(size_t ats_i,const AttractionScale & ats)232 	void setAttractionScale(size_t ats_i,const AttractionScale& ats)
233 	{
234 		fprintf(mFile,"\tsetAttr \".ats[%i]\" ",ats_i);
235 		ats.write(mFile);
236 		fprintf(mFile,";\n");
237 	}
setAttractionScale(size_t ats_start,size_t ats_end,AttractionScale * ats)238 	void setAttractionScale(size_t ats_start,size_t ats_end,AttractionScale* ats)
239 	{
240 		fprintf(mFile,"\tsetAttr \".ats[%i:%i]\" ", ats_start,ats_end);
241 		size_t size = (ats_end-ats_start)*1+1;
242 		for(size_t i=0;i<size;++i)
243 		{
244 			ats[i].write(mFile);
245 			fprintf(mFile,"\n");
246 		}
247 		fprintf(mFile,";\n");
248 	}
startAttractionScale(size_t ats_start,size_t ats_end)249 	void startAttractionScale(size_t ats_start,size_t ats_end)const
250 	{
251 		fprintf(mFile,"\tsetAttr \".ats[%i:%i]\"",ats_start,ats_end);
252 		fprintf(mFile," -type \"AttractionScale\" ");
253 	}
appendAttractionScale(const AttractionScale & ats)254 	void appendAttractionScale(const AttractionScale& ats)const
255 	{
256 		fprintf(mFile," ");
257 		ats.write(mFile);
258 	}
endAttractionScale()259 	void endAttractionScale()const
260 	{
261 		fprintf(mFile,";\n");
262 	}
setAttractionScale_Position(size_t ats_i,float atsp)263 	void setAttractionScale_Position(size_t ats_i,float atsp)
264 	{
265 		if(atsp == 0.0) return;
266 		fprintf(mFile,"\tsetAttr \".ats[%i].atsp\" %f;\n", ats_i,atsp);
267 	}
setAttractionScale_FloatValue(size_t ats_i,float atsfv)268 	void setAttractionScale_FloatValue(size_t ats_i,float atsfv)
269 	{
270 		if(atsfv == 0.0) return;
271 		fprintf(mFile,"\tsetAttr \".ats[%i].atsfv\" %f;\n", ats_i,atsfv);
272 	}
setAttractionScale_Interp(size_t ats_i,unsigned int atsi)273 	void setAttractionScale_Interp(size_t ats_i,unsigned int atsi)
274 	{
275 		if(atsi == 0) return;
276 		fprintf(mFile,"\tsetAttr \".ats[%i].atsi\" %i;\n", ats_i,atsi);
277 	}
setAttractionDamp(double ad)278 	void setAttractionDamp(double ad)
279 	{
280 		if(ad == 0.0) return;
281 		fprintf(mFile,"\tsetAttr \".ad\" %f;\n", ad);
282 	}
setDensityMult(double dml)283 	void setDensityMult(double dml)
284 	{
285 		if(dml == 1.0) return;
286 		fprintf(mFile,"\tsetAttr \".dml\" %f;\n", dml);
287 	}
setCurlMult(double cml)288 	void setCurlMult(double cml)
289 	{
290 		if(cml == 1.0) return;
291 		fprintf(mFile,"\tsetAttr \".cml\" %f;\n", cml);
292 	}
setClumpTwistOffset(double ctf)293 	void setClumpTwistOffset(double ctf)
294 	{
295 		if(ctf == 0.0) return;
296 		fprintf(mFile,"\tsetAttr \".ctf\" %f;\n", ctf);
297 	}
setBraid(bool brd)298 	void setBraid(bool brd)
299 	{
300 		if(brd == false) return;
301 		fprintf(mFile,"\tsetAttr \".brd\" %i;\n", brd);
302 	}
setColorBlend(double cbl)303 	void setColorBlend(double cbl)
304 	{
305 		if(cbl == 0.0) return;
306 		fprintf(mFile,"\tsetAttr \".cbl\" %f;\n", cbl);
307 	}
setColor(const float3 & cl)308 	void setColor(const float3& cl)
309 	{
310 		fprintf(mFile,"\tsetAttr \".cl\" -type \"float3\" ");
311 		cl.write(mFile);
312 		fprintf(mFile,";\n");
313 	}
setColorR(float cr)314 	void setColorR(float cr)
315 	{
316 		if(cr == 0.0) return;
317 		fprintf(mFile,"\tsetAttr \".cl.cr\" %f;\n", cr);
318 	}
setColorG(float cg)319 	void setColorG(float cg)
320 	{
321 		if(cg == 0.0) return;
322 		fprintf(mFile,"\tsetAttr \".cl.cg\" %f;\n", cg);
323 	}
setColorB(float cb)324 	void setColorB(float cb)
325 	{
326 		if(cb == 0.0) return;
327 		fprintf(mFile,"\tsetAttr \".cl.cb\" %f;\n", cb);
328 	}
setFixedSegmentLength(bool fsl)329 	void setFixedSegmentLength(bool fsl)
330 	{
331 		if(fsl == 0) return;
332 		fprintf(mFile,"\tsetAttr \".fsl\" %i;\n", fsl);
333 	}
setSegmentLength(double sgl)334 	void setSegmentLength(double sgl)
335 	{
336 		if(sgl == 1) return;
337 		fprintf(mFile,"\tsetAttr \".sgl\" %f;\n", sgl);
338 	}
setSampleDensity(double sdn)339 	void setSampleDensity(double sdn)
340 	{
341 		if(sdn == 1.0) return;
342 		fprintf(mFile,"\tsetAttr \".sdn\" %f;\n", sdn);
343 	}
setDegree(int dgr)344 	void setDegree(int dgr)
345 	{
346 		if(dgr == 2) return;
347 		fprintf(mFile,"\tsetAttr \".dgr\" %i;\n", dgr);
348 	}
setClumpWidth(float cw)349 	void setClumpWidth(float cw)
350 	{
351 		if(cw == 0.3) return;
352 		fprintf(mFile,"\tsetAttr \".cw\" %f;\n", cw);
353 	}
setMapSetName(const string & msn)354 	void setMapSetName(const string& msn)
355 	{
356 		if(msn == "NULL") return;
357 		fprintf(mFile,"\tsetAttr \".msn\" -type \"string\" ");
358 		msn.write(mFile);
359 		fprintf(mFile,";\n");
360 	}
getInputSurface()361 	void getInputSurface()const
362 	{
363 		fprintf(mFile,"\"%s.is\"",mName.c_str());
364 	}
getInputMesh()365 	void getInputMesh()const
366 	{
367 		fprintf(mFile,"\"%s.inm\"",mName.c_str());
368 	}
getInputWorldMatrix()369 	void getInputWorldMatrix()const
370 	{
371 		fprintf(mFile,"\"%s.iwm\"",mName.c_str());
372 	}
getParameterU()373 	void getParameterU()const
374 	{
375 		fprintf(mFile,"\"%s.pu\"",mName.c_str());
376 	}
getParameterV()377 	void getParameterV()const
378 	{
379 		fprintf(mFile,"\"%s.pv\"",mName.c_str());
380 	}
getStartPosition()381 	void getStartPosition()const
382 	{
383 		fprintf(mFile,"\"%s.sp\"",mName.c_str());
384 	}
getRestPosition()385 	void getRestPosition()const
386 	{
387 		fprintf(mFile,"\"%s.rp\"",mName.c_str());
388 	}
getCurrentPosition()389 	void getCurrentPosition()const
390 	{
391 		fprintf(mFile,"\"%s.crp\"",mName.c_str());
392 	}
getRestPose()393 	void getRestPose()const
394 	{
395 		fprintf(mFile,"\"%s.rsp\"",mName.c_str());
396 	}
getPointLock()397 	void getPointLock()const
398 	{
399 		fprintf(mFile,"\"%s.ptl\"",mName.c_str());
400 	}
getSimulationMethod()401 	void getSimulationMethod()const
402 	{
403 		fprintf(mFile,"\"%s.sim\"",mName.c_str());
404 	}
getStartDirection()405 	void getStartDirection()const
406 	{
407 		fprintf(mFile,"\"%s.sdr\"",mName.c_str());
408 	}
getFlipDirection()409 	void getFlipDirection()const
410 	{
411 		fprintf(mFile,"\"%s.fld\"",mName.c_str());
412 	}
getHairSysGravity()413 	void getHairSysGravity()const
414 	{
415 		fprintf(mFile,"\"%s.hsg\"",mName.c_str());
416 	}
getHairSysStiffness()417 	void getHairSysStiffness()const
418 	{
419 		fprintf(mFile,"\"%s.hss\"",mName.c_str());
420 	}
getOverrideDynamics()421 	void getOverrideDynamics()const
422 	{
423 		fprintf(mFile,"\"%s.ovd\"",mName.c_str());
424 	}
getCollide()425 	void getCollide()const
426 	{
427 		fprintf(mFile,"\"%s.cld\"",mName.c_str());
428 	}
getDamp()429 	void getDamp()const
430 	{
431 		fprintf(mFile,"\"%s.dmp\"",mName.c_str());
432 	}
getStiffness()433 	void getStiffness()const
434 	{
435 		fprintf(mFile,"\"%s.stf\"",mName.c_str());
436 	}
getStiffnessScale(size_t sts_i)437 	void getStiffnessScale(size_t sts_i)const
438 	{
439 		fprintf(mFile,"\"%s.sts[%i]\"",mName.c_str(),sts_i);
440 	}
getStiffnessScale()441 	void getStiffnessScale()const
442 	{
443 
444 		fprintf(mFile,"\"%s.sts\"",mName.c_str());
445 	}
getStiffnessScale_Position(size_t sts_i)446 	void getStiffnessScale_Position(size_t sts_i)const
447 	{
448 		fprintf(mFile,"\"%s.sts[%i].stsp\"",mName.c_str(),sts_i);
449 	}
getStiffnessScale_Position()450 	void getStiffnessScale_Position()const
451 	{
452 
453 		fprintf(mFile,"\"%s.sts.stsp\"",mName.c_str());
454 	}
getStiffnessScale_FloatValue(size_t sts_i)455 	void getStiffnessScale_FloatValue(size_t sts_i)const
456 	{
457 		fprintf(mFile,"\"%s.sts[%i].stsfv\"",mName.c_str(),sts_i);
458 	}
getStiffnessScale_FloatValue()459 	void getStiffnessScale_FloatValue()const
460 	{
461 
462 		fprintf(mFile,"\"%s.sts.stsfv\"",mName.c_str());
463 	}
getStiffnessScale_Interp(size_t sts_i)464 	void getStiffnessScale_Interp(size_t sts_i)const
465 	{
466 		fprintf(mFile,"\"%s.sts[%i].stsi\"",mName.c_str(),sts_i);
467 	}
getStiffnessScale_Interp()468 	void getStiffnessScale_Interp()const
469 	{
470 
471 		fprintf(mFile,"\"%s.sts.stsi\"",mName.c_str());
472 	}
getLengthFlex()473 	void getLengthFlex()const
474 	{
475 		fprintf(mFile,"\"%s.lfl\"",mName.c_str());
476 	}
getClumpWidthMult()477 	void getClumpWidthMult()const
478 	{
479 		fprintf(mFile,"\"%s.cwm\"",mName.c_str());
480 	}
getClumpWidthScale(size_t cws_i)481 	void getClumpWidthScale(size_t cws_i)const
482 	{
483 		fprintf(mFile,"\"%s.cws[%i]\"",mName.c_str(),cws_i);
484 	}
getClumpWidthScale()485 	void getClumpWidthScale()const
486 	{
487 
488 		fprintf(mFile,"\"%s.cws\"",mName.c_str());
489 	}
getClumpWidthScale_Position(size_t cws_i)490 	void getClumpWidthScale_Position(size_t cws_i)const
491 	{
492 		fprintf(mFile,"\"%s.cws[%i].cwsp\"",mName.c_str(),cws_i);
493 	}
getClumpWidthScale_Position()494 	void getClumpWidthScale_Position()const
495 	{
496 
497 		fprintf(mFile,"\"%s.cws.cwsp\"",mName.c_str());
498 	}
getClumpWidthScale_FloatValue(size_t cws_i)499 	void getClumpWidthScale_FloatValue(size_t cws_i)const
500 	{
501 		fprintf(mFile,"\"%s.cws[%i].cwsfv\"",mName.c_str(),cws_i);
502 	}
getClumpWidthScale_FloatValue()503 	void getClumpWidthScale_FloatValue()const
504 	{
505 
506 		fprintf(mFile,"\"%s.cws.cwsfv\"",mName.c_str());
507 	}
getClumpWidthScale_Interp(size_t cws_i)508 	void getClumpWidthScale_Interp(size_t cws_i)const
509 	{
510 		fprintf(mFile,"\"%s.cws[%i].cwsi\"",mName.c_str(),cws_i);
511 	}
getClumpWidthScale_Interp()512 	void getClumpWidthScale_Interp()const
513 	{
514 
515 		fprintf(mFile,"\"%s.cws.cwsi\"",mName.c_str());
516 	}
getStartCurveAttract()517 	void getStartCurveAttract()const
518 	{
519 		fprintf(mFile,"\"%s.sct\"",mName.c_str());
520 	}
getAttractionScale(size_t ats_i)521 	void getAttractionScale(size_t ats_i)const
522 	{
523 		fprintf(mFile,"\"%s.ats[%i]\"",mName.c_str(),ats_i);
524 	}
getAttractionScale()525 	void getAttractionScale()const
526 	{
527 
528 		fprintf(mFile,"\"%s.ats\"",mName.c_str());
529 	}
getAttractionScale_Position(size_t ats_i)530 	void getAttractionScale_Position(size_t ats_i)const
531 	{
532 		fprintf(mFile,"\"%s.ats[%i].atsp\"",mName.c_str(),ats_i);
533 	}
getAttractionScale_Position()534 	void getAttractionScale_Position()const
535 	{
536 
537 		fprintf(mFile,"\"%s.ats.atsp\"",mName.c_str());
538 	}
getAttractionScale_FloatValue(size_t ats_i)539 	void getAttractionScale_FloatValue(size_t ats_i)const
540 	{
541 		fprintf(mFile,"\"%s.ats[%i].atsfv\"",mName.c_str(),ats_i);
542 	}
getAttractionScale_FloatValue()543 	void getAttractionScale_FloatValue()const
544 	{
545 
546 		fprintf(mFile,"\"%s.ats.atsfv\"",mName.c_str());
547 	}
getAttractionScale_Interp(size_t ats_i)548 	void getAttractionScale_Interp(size_t ats_i)const
549 	{
550 		fprintf(mFile,"\"%s.ats[%i].atsi\"",mName.c_str(),ats_i);
551 	}
getAttractionScale_Interp()552 	void getAttractionScale_Interp()const
553 	{
554 
555 		fprintf(mFile,"\"%s.ats.atsi\"",mName.c_str());
556 	}
getAttractionDamp()557 	void getAttractionDamp()const
558 	{
559 		fprintf(mFile,"\"%s.ad\"",mName.c_str());
560 	}
getDensityMult()561 	void getDensityMult()const
562 	{
563 		fprintf(mFile,"\"%s.dml\"",mName.c_str());
564 	}
getCurlMult()565 	void getCurlMult()const
566 	{
567 		fprintf(mFile,"\"%s.cml\"",mName.c_str());
568 	}
getClumpTwistOffset()569 	void getClumpTwistOffset()const
570 	{
571 		fprintf(mFile,"\"%s.ctf\"",mName.c_str());
572 	}
getBraid()573 	void getBraid()const
574 	{
575 		fprintf(mFile,"\"%s.brd\"",mName.c_str());
576 	}
getColorBlend()577 	void getColorBlend()const
578 	{
579 		fprintf(mFile,"\"%s.cbl\"",mName.c_str());
580 	}
getColor()581 	void getColor()const
582 	{
583 		fprintf(mFile,"\"%s.cl\"",mName.c_str());
584 	}
getColorR()585 	void getColorR()const
586 	{
587 		fprintf(mFile,"\"%s.cl.cr\"",mName.c_str());
588 	}
getColorG()589 	void getColorG()const
590 	{
591 		fprintf(mFile,"\"%s.cl.cg\"",mName.c_str());
592 	}
getColorB()593 	void getColorB()const
594 	{
595 		fprintf(mFile,"\"%s.cl.cb\"",mName.c_str());
596 	}
getFixedSegmentLength()597 	void getFixedSegmentLength()const
598 	{
599 		fprintf(mFile,"\"%s.fsl\"",mName.c_str());
600 	}
getSegmentLength()601 	void getSegmentLength()const
602 	{
603 		fprintf(mFile,"\"%s.sgl\"",mName.c_str());
604 	}
getSampleDensity()605 	void getSampleDensity()const
606 	{
607 		fprintf(mFile,"\"%s.sdn\"",mName.c_str());
608 	}
getDegree()609 	void getDegree()const
610 	{
611 		fprintf(mFile,"\"%s.dgr\"",mName.c_str());
612 	}
getClumpWidth()613 	void getClumpWidth()const
614 	{
615 		fprintf(mFile,"\"%s.cw\"",mName.c_str());
616 	}
getOutTranslate()617 	void getOutTranslate()const
618 	{
619 		fprintf(mFile,"\"%s.ot\"",mName.c_str());
620 	}
getOutTranslateX()621 	void getOutTranslateX()const
622 	{
623 		fprintf(mFile,"\"%s.ot.otx\"",mName.c_str());
624 	}
getOutTranslateY()625 	void getOutTranslateY()const
626 	{
627 		fprintf(mFile,"\"%s.ot.oty\"",mName.c_str());
628 	}
getOutTranslateZ()629 	void getOutTranslateZ()const
630 	{
631 		fprintf(mFile,"\"%s.ot.otz\"",mName.c_str());
632 	}
getOutRotate()633 	void getOutRotate()const
634 	{
635 		fprintf(mFile,"\"%s.or\"",mName.c_str());
636 	}
getOutRotateX()637 	void getOutRotateX()const
638 	{
639 		fprintf(mFile,"\"%s.or.orx\"",mName.c_str());
640 	}
getOutRotateY()641 	void getOutRotateY()const
642 	{
643 		fprintf(mFile,"\"%s.or.ory\"",mName.c_str());
644 	}
getOutRotateZ()645 	void getOutRotateZ()const
646 	{
647 		fprintf(mFile,"\"%s.or.orz\"",mName.c_str());
648 	}
getOutTangent()649 	void getOutTangent()const
650 	{
651 		fprintf(mFile,"\"%s.otn\"",mName.c_str());
652 	}
getOutTangentX()653 	void getOutTangentX()const
654 	{
655 		fprintf(mFile,"\"%s.otn.otnx\"",mName.c_str());
656 	}
getOutTangentY()657 	void getOutTangentY()const
658 	{
659 		fprintf(mFile,"\"%s.otn.otny\"",mName.c_str());
660 	}
getOutTangentZ()661 	void getOutTangentZ()const
662 	{
663 		fprintf(mFile,"\"%s.otn.otnz\"",mName.c_str());
664 	}
getOutNormal()665 	void getOutNormal()const
666 	{
667 		fprintf(mFile,"\"%s.onm\"",mName.c_str());
668 	}
getOutNormalX()669 	void getOutNormalX()const
670 	{
671 		fprintf(mFile,"\"%s.onm.onx\"",mName.c_str());
672 	}
getOutNormalY()673 	void getOutNormalY()const
674 	{
675 		fprintf(mFile,"\"%s.onm.ony\"",mName.c_str());
676 	}
getOutNormalZ()677 	void getOutNormalZ()const
678 	{
679 		fprintf(mFile,"\"%s.onm.onz\"",mName.c_str());
680 	}
getOutHair()681 	void getOutHair()const
682 	{
683 		fprintf(mFile,"\"%s.oha\"",mName.c_str());
684 	}
getOutCurve()685 	void getOutCurve()const
686 	{
687 		fprintf(mFile,"\"%s.ocr\"",mName.c_str());
688 	}
getValidUv()689 	void getValidUv()const
690 	{
691 		fprintf(mFile,"\"%s.vuv\"",mName.c_str());
692 	}
getMapSetName()693 	void getMapSetName()const
694 	{
695 		fprintf(mFile,"\"%s.msn\"",mName.c_str());
696 	}
697 protected:
698 	Follicle(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
Shape(file,name,parent,nodeType,shared,create)699 		:Shape(file, name, parent, nodeType, shared, create) {}
700 
701 };
702 }//namespace MayaDM
703 #endif//__MayaDM_FOLLICLE_H__
704