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_HIKHANDLE_H__
11 #define __MayaDM_HIKHANDLE_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMIkHandle.h"
15 namespace MayaDM
16 {
17 class HikHandle : public IkHandle
18 {
19 public:
20 	struct Solving{
21 		unsigned int postureType;
22 		bool expertMode;
23 		float realisticShoulderSolving;
24 		bool solveFingers;
25 		unsigned int hipTranslationMode;
writeSolving26 		void write(FILE* file) const
27 		{
28 			fprintf(file,"%i ", postureType);
29 			fprintf(file,"%i ", expertMode);
30 			fprintf(file,"%f ", realisticShoulderSolving);
31 			fprintf(file,"%i ", solveFingers);
32 			fprintf(file,"%i", hipTranslationMode);
33 		}
34 	};
35 	struct FloorContacts{
36 		bool handsFloorContact;
37 		bool feetFloorContact;
38 		bool fingersFloorContact;
39 		bool toesFloorContact;
writeFloorContacts40 		void write(FILE* file) const
41 		{
42 			fprintf(file,"%i ", handsFloorContact);
43 			fprintf(file,"%i ", feetFloorContact);
44 			fprintf(file,"%i ", fingersFloorContact);
45 			fprintf(file,"%i", toesFloorContact);
46 		}
47 	};
48 	struct HandsFloorContactSetup{
49 		unsigned int handsFloorPivot;
50 		unsigned int handsContactType;
51 		float handsContactStiffness;
writeHandsFloorContactSetup52 		void write(FILE* file) const
53 		{
54 			fprintf(file,"%i ", handsFloorPivot);
55 			fprintf(file,"%i ", handsContactType);
56 			fprintf(file,"%f", handsContactStiffness);
57 		}
58 	};
59 	struct ContactsPosition{
60 		float handHeight;
61 		float handBack;
62 		float handMiddle;
63 		float handFront;
64 		float handInSide;
65 		float handOutSide;
writeContactsPosition66 		void write(FILE* file) const
67 		{
68 			fprintf(file,"%f ", handHeight);
69 			fprintf(file,"%f ", handBack);
70 			fprintf(file,"%f ", handMiddle);
71 			fprintf(file,"%f ", handFront);
72 			fprintf(file,"%f ", handInSide);
73 			fprintf(file,"%f", handOutSide);
74 		}
75 	};
76 	struct FeetFloorContactSetup{
77 		unsigned int feetFloorPivot;
78 		unsigned int feetContactType;
79 		float feetContactStiffness;
writeFeetFloorContactSetup80 		void write(FILE* file) const
81 		{
82 			fprintf(file,"%i ", feetFloorPivot);
83 			fprintf(file,"%i ", feetContactType);
84 			fprintf(file,"%f", feetContactStiffness);
85 		}
86 	};
87 	struct FeetContactPosition{
88 		float footHeight;
89 		float footBack;
90 		float footMiddle;
91 		float footFront;
92 		float footInSide;
93 		float footOutSide;
writeFeetContactPosition94 		void write(FILE* file) const
95 		{
96 			fprintf(file,"%f ", footHeight);
97 			fprintf(file,"%f ", footBack);
98 			fprintf(file,"%f ", footMiddle);
99 			fprintf(file,"%f ", footFront);
100 			fprintf(file,"%f ", footInSide);
101 			fprintf(file,"%f", footOutSide);
102 		}
103 	};
104 	struct FingersFloorContactSetup{
105 		unsigned int fingersContactType;
106 		float fingersContactRollStiffness;
writeFingersFloorContactSetup107 		void write(FILE* file) const
108 		{
109 			fprintf(file,"%i ", fingersContactType);
110 			fprintf(file,"%f", fingersContactRollStiffness);
111 		}
112 	};
113 	struct FingerTipsSizes{
114 		float leftHandThumbTip;
115 		float leftHandIndexTip;
116 		float leftHandMiddleTip;
117 		float leftHandRingTip;
118 		float leftHandPinkyTip;
119 		float leftHandExtraFingerTip;
120 		float rightHandThumbTip;
121 		float rightHandIndexTip;
122 		float rightHandMiddleTip;
123 		float rightHandRingTip;
124 		float rightHandPinkyTip;
125 		float rightHandExtraFingerTip;
writeFingerTipsSizes126 		void write(FILE* file) const
127 		{
128 			fprintf(file,"%f ", leftHandThumbTip);
129 			fprintf(file,"%f ", leftHandIndexTip);
130 			fprintf(file,"%f ", leftHandMiddleTip);
131 			fprintf(file,"%f ", leftHandRingTip);
132 			fprintf(file,"%f ", leftHandPinkyTip);
133 			fprintf(file,"%f ", leftHandExtraFingerTip);
134 			fprintf(file,"%f ", rightHandThumbTip);
135 			fprintf(file,"%f ", rightHandIndexTip);
136 			fprintf(file,"%f ", rightHandMiddleTip);
137 			fprintf(file,"%f ", rightHandRingTip);
138 			fprintf(file,"%f ", rightHandPinkyTip);
139 			fprintf(file,"%f", rightHandExtraFingerTip);
140 		}
141 	};
142 	struct ToesFloorContactSetup{
143 		unsigned int toesContactType;
144 		float toesContactRollStiffness;
writeToesFloorContactSetup145 		void write(FILE* file) const
146 		{
147 			fprintf(file,"%i ", toesContactType);
148 			fprintf(file,"%f", toesContactRollStiffness);
149 		}
150 	};
151 	struct ToeTipsSizes{
152 		float leftFootThumbTip;
153 		float leftFootIndexTip;
154 		float leftFootMiddleTip;
155 		float leftFootRingTip;
156 		float leftFootPinkyTip;
157 		float leftFootExtraFingerTip;
158 		float rightFootThumbTip;
159 		float rightFootIndexTip;
160 		float rightFootMiddleTip;
161 		float rightFootRingTip;
162 		float rightFootPinkyTip;
163 		float rightFootExtraFingerTip;
writeToeTipsSizes164 		void write(FILE* file) const
165 		{
166 			fprintf(file,"%f ", leftFootThumbTip);
167 			fprintf(file,"%f ", leftFootIndexTip);
168 			fprintf(file,"%f ", leftFootMiddleTip);
169 			fprintf(file,"%f ", leftFootRingTip);
170 			fprintf(file,"%f ", leftFootPinkyTip);
171 			fprintf(file,"%f ", leftFootExtraFingerTip);
172 			fprintf(file,"%f ", rightFootThumbTip);
173 			fprintf(file,"%f ", rightFootIndexTip);
174 			fprintf(file,"%f ", rightFootMiddleTip);
175 			fprintf(file,"%f ", rightFootRingTip);
176 			fprintf(file,"%f ", rightFootPinkyTip);
177 			fprintf(file,"%f", rightFootExtraFingerTip);
178 		}
179 	};
180 	struct Head{
181 		float headPull;
writeHead182 		void write(FILE* file) const
183 		{
184 			fprintf(file,"%f", headPull);
185 		}
186 	};
187 	struct LeftArm{
188 		float leftElbowPull;
189 		float leftHandPullChest;
190 		float leftHandPullHips;
191 		float leftFingerBasePull;
writeLeftArm192 		void write(FILE* file) const
193 		{
194 			fprintf(file,"%f ", leftElbowPull);
195 			fprintf(file,"%f ", leftHandPullChest);
196 			fprintf(file,"%f ", leftHandPullHips);
197 			fprintf(file,"%f", leftFingerBasePull);
198 		}
199 	};
200 	struct RightArm{
201 		float rightElbowPull;
202 		float rightHandPullChest;
203 		float rightHandPullHips;
204 		float rightFingerBasePull;
writeRightArm205 		void write(FILE* file) const
206 		{
207 			fprintf(file,"%f ", rightElbowPull);
208 			fprintf(file,"%f ", rightHandPullChest);
209 			fprintf(file,"%f ", rightHandPullHips);
210 			fprintf(file,"%f", rightFingerBasePull);
211 		}
212 	};
213 	struct Chest{
214 		float chestPull;
writeChest215 		void write(FILE* file) const
216 		{
217 			fprintf(file,"%f", chestPull);
218 		}
219 	};
220 	struct Hips{
221 		float hipsPull;
writeHips222 		void write(FILE* file) const
223 		{
224 			fprintf(file,"%f", hipsPull);
225 		}
226 	};
227 	struct LeftLeg{
228 		float leftKneePull;
229 		float leftFootPull;
230 		float leftToeBasePull;
writeLeftLeg231 		void write(FILE* file) const
232 		{
233 			fprintf(file,"%f ", leftKneePull);
234 			fprintf(file,"%f ", leftFootPull);
235 			fprintf(file,"%f", leftToeBasePull);
236 		}
237 	};
238 	struct RightLeg{
239 		float rightKneePull;
240 		float rightFootPull;
241 		float rightToeBasePull;
writeRightLeg242 		void write(FILE* file) const
243 		{
244 			fprintf(file,"%f ", rightKneePull);
245 			fprintf(file,"%f ", rightFootPull);
246 			fprintf(file,"%f", rightToeBasePull);
247 		}
248 	};
249 	struct Extra{
250 		float pullIterationCount;
writeExtra251 		void write(FILE* file) const
252 		{
253 			fprintf(file,"%f", pullIterationCount);
254 		}
255 	};
256 	struct Stiffness{
257 		float neckStiffness;
258 		float leftShoulderStiffness;
259 		float leftArmStiffness;
260 		float leftElbowMaxExtension;
261 		float leftElbowCompressionFactor;
262 		float rightShoulderStiffness;
263 		float rightArmStiffness;
264 		float rightElbowMaxExtension;
265 		float rightElbowCompressionFactor;
266 		float hipsEnforceGravity;
267 		float chestStiffness;
268 		float spineStiffness;
269 		float hipsStiffness;
270 		float leftKneeMaxExtension;
271 		float leftLegStiffness;
272 		float leftKneeCompressionFactor;
273 		float rightLegStiffness;
274 		float rightKneeMaxExtension;
275 		float rightKneeCompressionFactor;
writeStiffness276 		void write(FILE* file) const
277 		{
278 			fprintf(file,"%f ", neckStiffness);
279 			fprintf(file,"%f ", leftShoulderStiffness);
280 			fprintf(file,"%f ", leftArmStiffness);
281 			fprintf(file,"%f ", leftElbowMaxExtension);
282 			fprintf(file,"%f ", leftElbowCompressionFactor);
283 			fprintf(file,"%f ", rightShoulderStiffness);
284 			fprintf(file,"%f ", rightArmStiffness);
285 			fprintf(file,"%f ", rightElbowMaxExtension);
286 			fprintf(file,"%f ", rightElbowCompressionFactor);
287 			fprintf(file,"%f ", hipsEnforceGravity);
288 			fprintf(file,"%f ", chestStiffness);
289 			fprintf(file,"%f ", spineStiffness);
290 			fprintf(file,"%f ", hipsStiffness);
291 			fprintf(file,"%f ", leftKneeMaxExtension);
292 			fprintf(file,"%f ", leftLegStiffness);
293 			fprintf(file,"%f ", leftKneeCompressionFactor);
294 			fprintf(file,"%f ", rightLegStiffness);
295 			fprintf(file,"%f ", rightKneeMaxExtension);
296 			fprintf(file,"%f", rightKneeCompressionFactor);
297 		}
298 	};
299 	struct KillPitch{
300 		bool leftElbowKillPitch;
301 		bool rightElbowKillPitch;
302 		bool leftKneeKillPitch;
303 		bool rightKneeKillPitch;
writeKillPitch304 		void write(FILE* file) const
305 		{
306 			fprintf(file,"%i ", leftElbowKillPitch);
307 			fprintf(file,"%i ", rightElbowKillPitch);
308 			fprintf(file,"%i ", leftKneeKillPitch);
309 			fprintf(file,"%i", rightKneeKillPitch);
310 		}
311 	};
312 	struct RollExtraction{
313 		unsigned int rollExtractionMode;
314 		bool leftArmRollMode;
315 		float leftArmRoll;
316 		bool leftForeArmRollMode;
317 		float leftForeArmRoll;
318 		bool rightArmRollMode;
319 		float rightArmRoll;
320 		bool rightForeArmRollMode;
321 		float rightForeArmRoll;
322 		bool leftUpLegRollMode;
323 		float leftUpLegRoll;
324 		bool leftLegRollMode;
325 		float leftLegRoll;
326 		bool rightUpLegRollMode;
327 		float rightUpLegRoll;
328 		bool rightLegRollMode;
329 		float rightLegRoll;
writeRollExtraction330 		void write(FILE* file) const
331 		{
332 			fprintf(file,"%i ", rollExtractionMode);
333 			fprintf(file,"%i ", leftArmRollMode);
334 			fprintf(file,"%f ", leftArmRoll);
335 			fprintf(file,"%i ", leftForeArmRollMode);
336 			fprintf(file,"%f ", leftForeArmRoll);
337 			fprintf(file,"%i ", rightArmRollMode);
338 			fprintf(file,"%f ", rightArmRoll);
339 			fprintf(file,"%i ", rightForeArmRollMode);
340 			fprintf(file,"%f ", rightForeArmRoll);
341 			fprintf(file,"%i ", leftUpLegRollMode);
342 			fprintf(file,"%f ", leftUpLegRoll);
343 			fprintf(file,"%i ", leftLegRollMode);
344 			fprintf(file,"%f ", leftLegRoll);
345 			fprintf(file,"%i ", rightUpLegRollMode);
346 			fprintf(file,"%f ", rightUpLegRoll);
347 			fprintf(file,"%i ", rightLegRollMode);
348 			fprintf(file,"%f", rightLegRoll);
349 		}
350 	};
351 public:
352 
HikHandle()353 	HikHandle():IkHandle(){}
354 	HikHandle(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
355 		:IkHandle(file, name, parent, "hikHandle", shared, create){}
~HikHandle()356 	virtual ~HikHandle(){}
357 
setTime(double tim)358 	void setTime(double tim)
359 	{
360 		if(tim == 0) return;
361 		fprintf(mFile,"\tsetAttr \".tim\" %f;\n", tim);
362 	}
setDefaultMatrix(size_t dm_i,const matrix & dm)363 	void setDefaultMatrix(size_t dm_i,const matrix& dm)
364 	{
365 		if(dm == identity) return;
366 		fprintf(mFile,"\tsetAttr \".dm[%i]\" -type \"matrix\" ",dm_i);
367 		dm.write(mFile);
368 		fprintf(mFile,";\n");
369 	}
setDefaultMatrix(size_t dm_start,size_t dm_end,matrix * dm)370 	void setDefaultMatrix(size_t dm_start,size_t dm_end,matrix* dm)
371 	{
372 		fprintf(mFile,"\tsetAttr \".dm[%i:%i]\" ", dm_start,dm_end);
373 		size_t size = (dm_end-dm_start)*1+1;
374 		for(size_t i=0;i<size;++i)
375 		{
376 			dm[i].write(mFile);
377 			fprintf(mFile,"\n");
378 		}
379 		fprintf(mFile,";\n");
380 	}
startDefaultMatrix(size_t dm_start,size_t dm_end)381 	void startDefaultMatrix(size_t dm_start,size_t dm_end)const
382 	{
383 		fprintf(mFile,"\tsetAttr \".dm[%i:%i]\"",dm_start,dm_end);
384 		fprintf(mFile," -type \"matrix\" ");
385 	}
appendDefaultMatrix(const matrix & dm)386 	void appendDefaultMatrix(const matrix& dm)const
387 	{
388 		fprintf(mFile," ");
389 		dm.write(mFile);
390 	}
endDefaultMatrix()391 	void endDefaultMatrix()const
392 	{
393 		fprintf(mFile,";\n");
394 	}
setStancePoseMatrix(size_t sm_i,const matrix & sm)395 	void setStancePoseMatrix(size_t sm_i,const matrix& sm)
396 	{
397 		if(sm == identity) return;
398 		fprintf(mFile,"\tsetAttr \".sm[%i]\" -type \"matrix\" ",sm_i);
399 		sm.write(mFile);
400 		fprintf(mFile,";\n");
401 	}
setStancePoseMatrix(size_t sm_start,size_t sm_end,matrix * sm)402 	void setStancePoseMatrix(size_t sm_start,size_t sm_end,matrix* sm)
403 	{
404 		fprintf(mFile,"\tsetAttr \".sm[%i:%i]\" ", sm_start,sm_end);
405 		size_t size = (sm_end-sm_start)*1+1;
406 		for(size_t i=0;i<size;++i)
407 		{
408 			sm[i].write(mFile);
409 			fprintf(mFile,"\n");
410 		}
411 		fprintf(mFile,";\n");
412 	}
startStancePoseMatrix(size_t sm_start,size_t sm_end)413 	void startStancePoseMatrix(size_t sm_start,size_t sm_end)const
414 	{
415 		fprintf(mFile,"\tsetAttr \".sm[%i:%i]\"",sm_start,sm_end);
416 		fprintf(mFile," -type \"matrix\" ");
417 	}
appendStancePoseMatrix(const matrix & sm)418 	void appendStancePoseMatrix(const matrix& sm)const
419 	{
420 		fprintf(mFile," ");
421 		sm.write(mFile);
422 	}
endStancePoseMatrix()423 	void endStancePoseMatrix()const
424 	{
425 		fprintf(mFile,";\n");
426 	}
setUsingMB55Rig(bool m55)427 	void setUsingMB55Rig(bool m55)
428 	{
429 		if(m55 == false) return;
430 		fprintf(mFile,"\tsetAttr \".m55\" %i;\n", m55);
431 	}
setActivate(bool act)432 	void setActivate(bool act)
433 	{
434 		if(act == true) return;
435 		fprintf(mFile,"\tsetAttr \".act\" %i;\n", act);
436 	}
setConvertScale(bool cs)437 	void setConvertScale(bool cs)
438 	{
439 		if(cs == true) return;
440 		fprintf(mFile,"\tsetAttr \".cs\" %i;\n", cs);
441 	}
setSolving(const Solving & sol)442 	void setSolving(const Solving& sol)
443 	{
444 		fprintf(mFile,"\tsetAttr \".sol\" ");
445 		sol.write(mFile);
446 		fprintf(mFile,";\n");
447 	}
setPostureType(unsigned int pt)448 	void setPostureType(unsigned int pt)
449 	{
450 		if(pt == 0) return;
451 		fprintf(mFile,"\tsetAttr \".sol.pt\" %i;\n", pt);
452 	}
setExpertMode(bool exp)453 	void setExpertMode(bool exp)
454 	{
455 		if(exp == 0) return;
456 		fprintf(mFile,"\tsetAttr \".sol.exp\" %i;\n", exp);
457 	}
setRealisticShoulderSolving(float rss)458 	void setRealisticShoulderSolving(float rss)
459 	{
460 		if(rss == 0.00) return;
461 		fprintf(mFile,"\tsetAttr \".sol.rss\" %f;\n", rss);
462 	}
setSolveFingers(bool sf)463 	void setSolveFingers(bool sf)
464 	{
465 		if(sf == 1) return;
466 		fprintf(mFile,"\tsetAttr \".sol.sf\" %i;\n", sf);
467 	}
setHipTranslationMode(unsigned int htm)468 	void setHipTranslationMode(unsigned int htm)
469 	{
470 		if(htm == 0) return;
471 		fprintf(mFile,"\tsetAttr \".sol.htm\" %i;\n", htm);
472 	}
setFloorContacts(const FloorContacts & fc)473 	void setFloorContacts(const FloorContacts& fc)
474 	{
475 		fprintf(mFile,"\tsetAttr \".fc\" ");
476 		fc.write(mFile);
477 		fprintf(mFile,";\n");
478 	}
setHandsFloorContact(bool hfc)479 	void setHandsFloorContact(bool hfc)
480 	{
481 		if(hfc == 0) return;
482 		fprintf(mFile,"\tsetAttr \".fc.hfc\" %i;\n", hfc);
483 	}
setFeetFloorContact(bool fec)484 	void setFeetFloorContact(bool fec)
485 	{
486 		if(fec == 0) return;
487 		fprintf(mFile,"\tsetAttr \".fc.fec\" %i;\n", fec);
488 	}
setFingersFloorContact(bool fic)489 	void setFingersFloorContact(bool fic)
490 	{
491 		if(fic == 0) return;
492 		fprintf(mFile,"\tsetAttr \".fc.fic\" %i;\n", fic);
493 	}
setToesFloorContact(bool tfc)494 	void setToesFloorContact(bool tfc)
495 	{
496 		if(tfc == 0) return;
497 		fprintf(mFile,"\tsetAttr \".fc.tfc\" %i;\n", tfc);
498 	}
setHandsFloorContactSetup(const HandsFloorContactSetup & flc)499 	void setHandsFloorContactSetup(const HandsFloorContactSetup& flc)
500 	{
501 		fprintf(mFile,"\tsetAttr \".flc\" ");
502 		flc.write(mFile);
503 		fprintf(mFile,";\n");
504 	}
setHandsFloorPivot(unsigned int hfp)505 	void setHandsFloorPivot(unsigned int hfp)
506 	{
507 		if(hfp == 0) return;
508 		fprintf(mFile,"\tsetAttr \".flc.hfp\" %i;\n", hfp);
509 	}
setHandsContactType(unsigned int hct)510 	void setHandsContactType(unsigned int hct)
511 	{
512 		if(hct == 0) return;
513 		fprintf(mFile,"\tsetAttr \".flc.hct\" %i;\n", hct);
514 	}
setHandsContactStiffness(float hcs)515 	void setHandsContactStiffness(float hcs)
516 	{
517 		if(hcs == 0.00) return;
518 		fprintf(mFile,"\tsetAttr \".flc.hcs\" %f;\n", hcs);
519 	}
setContactsPosition(const ContactsPosition & cp)520 	void setContactsPosition(const ContactsPosition& cp)
521 	{
522 		fprintf(mFile,"\tsetAttr \".cp\" ");
523 		cp.write(mFile);
524 		fprintf(mFile,";\n");
525 	}
setHandHeight(float hh)526 	void setHandHeight(float hh)
527 	{
528 		if(hh == 7.50) return;
529 		fprintf(mFile,"\tsetAttr \".cp.hh\" %f;\n", hh);
530 	}
setHandBack(float hb)531 	void setHandBack(float hb)
532 	{
533 		if(hb == 4.50) return;
534 		fprintf(mFile,"\tsetAttr \".cp.hb\" %f;\n", hb);
535 	}
setHandMiddle(float hm)536 	void setHandMiddle(float hm)
537 	{
538 		if(hm == 13.00) return;
539 		fprintf(mFile,"\tsetAttr \".cp.hm\" %f;\n", hm);
540 	}
setHandFront(float hf)541 	void setHandFront(float hf)
542 	{
543 		if(hf == 7.00) return;
544 		fprintf(mFile,"\tsetAttr \".cp.hf\" %f;\n", hf);
545 	}
setHandInSide(float his)546 	void setHandInSide(float his)
547 	{
548 		if(his == 5.00) return;
549 		fprintf(mFile,"\tsetAttr \".cp.his\" %f;\n", his);
550 	}
setHandOutSide(float hos)551 	void setHandOutSide(float hos)
552 	{
553 		if(hos == 5.00) return;
554 		fprintf(mFile,"\tsetAttr \".cp.hos\" %f;\n", hos);
555 	}
setFeetFloorContactSetup(const FeetFloorContactSetup & fle)556 	void setFeetFloorContactSetup(const FeetFloorContactSetup& fle)
557 	{
558 		fprintf(mFile,"\tsetAttr \".fle\" ");
559 		fle.write(mFile);
560 		fprintf(mFile,";\n");
561 	}
setFeetFloorPivot(unsigned int fpv)562 	void setFeetFloorPivot(unsigned int fpv)
563 	{
564 		if(fpv == 0) return;
565 		fprintf(mFile,"\tsetAttr \".fle.fpv\" %i;\n", fpv);
566 	}
setFeetContactType(unsigned int fct)567 	void setFeetContactType(unsigned int fct)
568 	{
569 		if(fct == 0) return;
570 		fprintf(mFile,"\tsetAttr \".fle.fct\" %i;\n", fct);
571 	}
setFeetContactStiffness(float fcs)572 	void setFeetContactStiffness(float fcs)
573 	{
574 		if(fcs == 0.00) return;
575 		fprintf(mFile,"\tsetAttr \".fle.fcs\" %f;\n", fcs);
576 	}
setFeetContactPosition(const FeetContactPosition & flf)577 	void setFeetContactPosition(const FeetContactPosition& flf)
578 	{
579 		fprintf(mFile,"\tsetAttr \".flf\" ");
580 		flf.write(mFile);
581 		fprintf(mFile,";\n");
582 	}
setFootHeight(float fh)583 	void setFootHeight(float fh)
584 	{
585 		if(fh == 7.50) return;
586 		fprintf(mFile,"\tsetAttr \".flf.fh\" %f;\n", fh);
587 	}
setFootBack(float fra)588 	void setFootBack(float fra)
589 	{
590 		if(fra == 4.50) return;
591 		fprintf(mFile,"\tsetAttr \".flf.fra\" %f;\n", fra);
592 	}
setFootMiddle(float fma)593 	void setFootMiddle(float fma)
594 	{
595 		if(fma == 13.00) return;
596 		fprintf(mFile,"\tsetAttr \".flf.fma\" %f;\n", fma);
597 	}
setFootFront(float ffm)598 	void setFootFront(float ffm)
599 	{
600 		if(ffm == 7.00) return;
601 		fprintf(mFile,"\tsetAttr \".flf.ffm\" %f;\n", ffm);
602 	}
setFootInSide(float fia)603 	void setFootInSide(float fia)
604 	{
605 		if(fia == 5.00) return;
606 		fprintf(mFile,"\tsetAttr \".flf.fia\" %f;\n", fia);
607 	}
setFootOutSide(float foa)608 	void setFootOutSide(float foa)
609 	{
610 		if(foa == 5.00) return;
611 		fprintf(mFile,"\tsetAttr \".flf.foa\" %f;\n", foa);
612 	}
setFingersFloorContactSetup(const FingersFloorContactSetup & flg)613 	void setFingersFloorContactSetup(const FingersFloorContactSetup& flg)
614 	{
615 		fprintf(mFile,"\tsetAttr \".flg\" ");
616 		flg.write(mFile);
617 		fprintf(mFile,";\n");
618 	}
setFingersContactType(unsigned int fcm)619 	void setFingersContactType(unsigned int fcm)
620 	{
621 		if(fcm == 1) return;
622 		fprintf(mFile,"\tsetAttr \".flg.fcm\" %i;\n", fcm);
623 	}
setFingersContactRollStiffness(float hcr)624 	void setFingersContactRollStiffness(float hcr)
625 	{
626 		if(hcr == 0.00) return;
627 		fprintf(mFile,"\tsetAttr \".flg.hcr\" %f;\n", hcr);
628 	}
setFingerTipsSizes(const FingerTipsSizes & fts)629 	void setFingerTipsSizes(const FingerTipsSizes& fts)
630 	{
631 		fprintf(mFile,"\tsetAttr \".fts\" ");
632 		fts.write(mFile);
633 		fprintf(mFile,";\n");
634 	}
setLeftHandThumbTip(float ltt)635 	void setLeftHandThumbTip(float ltt)
636 	{
637 		if(ltt == 0.50) return;
638 		fprintf(mFile,"\tsetAttr \".fts.ltt\" %f;\n", ltt);
639 	}
setLeftHandIndexTip(float lit)640 	void setLeftHandIndexTip(float lit)
641 	{
642 		if(lit == 0.50) return;
643 		fprintf(mFile,"\tsetAttr \".fts.lit\" %f;\n", lit);
644 	}
setLeftHandMiddleTip(float lmt)645 	void setLeftHandMiddleTip(float lmt)
646 	{
647 		if(lmt == 0.50) return;
648 		fprintf(mFile,"\tsetAttr \".fts.lmt\" %f;\n", lmt);
649 	}
setLeftHandRingTip(float lrt)650 	void setLeftHandRingTip(float lrt)
651 	{
652 		if(lrt == 0.50) return;
653 		fprintf(mFile,"\tsetAttr \".fts.lrt\" %f;\n", lrt);
654 	}
setLeftHandPinkyTip(float lpt)655 	void setLeftHandPinkyTip(float lpt)
656 	{
657 		if(lpt == 0.50) return;
658 		fprintf(mFile,"\tsetAttr \".fts.lpt\" %f;\n", lpt);
659 	}
setLeftHandExtraFingerTip(float lxt)660 	void setLeftHandExtraFingerTip(float lxt)
661 	{
662 		if(lxt == 0.50) return;
663 		fprintf(mFile,"\tsetAttr \".fts.lxt\" %f;\n", lxt);
664 	}
setRightHandThumbTip(float rtt)665 	void setRightHandThumbTip(float rtt)
666 	{
667 		if(rtt == 0.50) return;
668 		fprintf(mFile,"\tsetAttr \".fts.rtt\" %f;\n", rtt);
669 	}
setRightHandIndexTip(float rit)670 	void setRightHandIndexTip(float rit)
671 	{
672 		if(rit == 0.50) return;
673 		fprintf(mFile,"\tsetAttr \".fts.rit\" %f;\n", rit);
674 	}
setRightHandMiddleTip(float rmt)675 	void setRightHandMiddleTip(float rmt)
676 	{
677 		if(rmt == 0.50) return;
678 		fprintf(mFile,"\tsetAttr \".fts.rmt\" %f;\n", rmt);
679 	}
setRightHandRingTip(float rrt)680 	void setRightHandRingTip(float rrt)
681 	{
682 		if(rrt == 0.50) return;
683 		fprintf(mFile,"\tsetAttr \".fts.rrt\" %f;\n", rrt);
684 	}
setRightHandPinkyTip(float rpp)685 	void setRightHandPinkyTip(float rpp)
686 	{
687 		if(rpp == 0.50) return;
688 		fprintf(mFile,"\tsetAttr \".fts.rpp\" %f;\n", rpp);
689 	}
setRightHandExtraFingerTip(float rxt)690 	void setRightHandExtraFingerTip(float rxt)
691 	{
692 		if(rxt == 0.50) return;
693 		fprintf(mFile,"\tsetAttr \".fts.rxt\" %f;\n", rxt);
694 	}
setToesFloorContactSetup(const ToesFloorContactSetup & fli)695 	void setToesFloorContactSetup(const ToesFloorContactSetup& fli)
696 	{
697 		fprintf(mFile,"\tsetAttr \".fli\" ");
698 		fli.write(mFile);
699 		fprintf(mFile,";\n");
700 	}
setToesContactType(unsigned int tct)701 	void setToesContactType(unsigned int tct)
702 	{
703 		if(tct == 1) return;
704 		fprintf(mFile,"\tsetAttr \".fli.tct\" %i;\n", tct);
705 	}
setToesContactRollStiffness(float fcr)706 	void setToesContactRollStiffness(float fcr)
707 	{
708 		if(fcr == 0.00) return;
709 		fprintf(mFile,"\tsetAttr \".fli.fcr\" %f;\n", fcr);
710 	}
setToeTipsSizes(const ToeTipsSizes & flj)711 	void setToeTipsSizes(const ToeTipsSizes& flj)
712 	{
713 		fprintf(mFile,"\tsetAttr \".flj\" ");
714 		flj.write(mFile);
715 		fprintf(mFile,";\n");
716 	}
setLeftFootThumbTip(float ttl)717 	void setLeftFootThumbTip(float ttl)
718 	{
719 		if(ttl == 0.50) return;
720 		fprintf(mFile,"\tsetAttr \".flj.ttl\" %f;\n", ttl);
721 	}
setLeftFootIndexTip(float til)722 	void setLeftFootIndexTip(float til)
723 	{
724 		if(til == 0.50) return;
725 		fprintf(mFile,"\tsetAttr \".flj.til\" %f;\n", til);
726 	}
setLeftFootMiddleTip(float tml)727 	void setLeftFootMiddleTip(float tml)
728 	{
729 		if(tml == 0.50) return;
730 		fprintf(mFile,"\tsetAttr \".flj.tml\" %f;\n", tml);
731 	}
setLeftFootRingTip(float trl)732 	void setLeftFootRingTip(float trl)
733 	{
734 		if(trl == 0.50) return;
735 		fprintf(mFile,"\tsetAttr \".flj.trl\" %f;\n", trl);
736 	}
setLeftFootPinkyTip(float tpl)737 	void setLeftFootPinkyTip(float tpl)
738 	{
739 		if(tpl == 0.50) return;
740 		fprintf(mFile,"\tsetAttr \".flj.tpl\" %f;\n", tpl);
741 	}
setLeftFootExtraFingerTip(float txl)742 	void setLeftFootExtraFingerTip(float txl)
743 	{
744 		if(txl == 0.50) return;
745 		fprintf(mFile,"\tsetAttr \".flj.txl\" %f;\n", txl);
746 	}
setRightFootThumbTip(float ttr)747 	void setRightFootThumbTip(float ttr)
748 	{
749 		if(ttr == 0.50) return;
750 		fprintf(mFile,"\tsetAttr \".flj.ttr\" %f;\n", ttr);
751 	}
setRightFootIndexTip(float tir)752 	void setRightFootIndexTip(float tir)
753 	{
754 		if(tir == 0.50) return;
755 		fprintf(mFile,"\tsetAttr \".flj.tir\" %f;\n", tir);
756 	}
setRightFootMiddleTip(float tmr)757 	void setRightFootMiddleTip(float tmr)
758 	{
759 		if(tmr == 0.50) return;
760 		fprintf(mFile,"\tsetAttr \".flj.tmr\" %f;\n", tmr);
761 	}
setRightFootRingTip(float trr)762 	void setRightFootRingTip(float trr)
763 	{
764 		if(trr == 0.50) return;
765 		fprintf(mFile,"\tsetAttr \".flj.trr\" %f;\n", trr);
766 	}
setRightFootPinkyTip(float tpr)767 	void setRightFootPinkyTip(float tpr)
768 	{
769 		if(tpr == 0.50) return;
770 		fprintf(mFile,"\tsetAttr \".flj.tpr\" %f;\n", tpr);
771 	}
setRightFootExtraFingerTip(float txr)772 	void setRightFootExtraFingerTip(float txr)
773 	{
774 		if(txr == 0.50) return;
775 		fprintf(mFile,"\tsetAttr \".flj.txr\" %f;\n", txr);
776 	}
setHead(const Head & fll)777 	void setHead(const Head& fll)
778 	{
779 		fprintf(mFile,"\tsetAttr \".fll\" ");
780 		fll.write(mFile);
781 		fprintf(mFile,";\n");
782 	}
setHeadPull(float phd)783 	void setHeadPull(float phd)
784 	{
785 		if(phd == 0.00) return;
786 		fprintf(mFile,"\tsetAttr \".fll.phd\" %f;\n", phd);
787 	}
setLeftArm(const LeftArm & flm)788 	void setLeftArm(const LeftArm& flm)
789 	{
790 		fprintf(mFile,"\tsetAttr \".flm\" ");
791 		flm.write(mFile);
792 		fprintf(mFile,";\n");
793 	}
setLeftElbowPull(float ple)794 	void setLeftElbowPull(float ple)
795 	{
796 		if(ple == 0.00) return;
797 		fprintf(mFile,"\tsetAttr \".flm.ple\" %f;\n", ple);
798 	}
setLeftHandPullChest(float cpl)799 	void setLeftHandPullChest(float cpl)
800 	{
801 		if(cpl == 1.00) return;
802 		fprintf(mFile,"\tsetAttr \".flm.cpl\" %f;\n", cpl);
803 	}
setLeftHandPullHips(float plh)804 	void setLeftHandPullHips(float plh)
805 	{
806 		if(plh == 1.00) return;
807 		fprintf(mFile,"\tsetAttr \".flm.plh\" %f;\n", plh);
808 	}
setLeftFingerBasePull(float plb)809 	void setLeftFingerBasePull(float plb)
810 	{
811 		if(plb == 0.00) return;
812 		fprintf(mFile,"\tsetAttr \".flm.plb\" %f;\n", plb);
813 	}
setRightArm(const RightArm & fln)814 	void setRightArm(const RightArm& fln)
815 	{
816 		fprintf(mFile,"\tsetAttr \".fln\" ");
817 		fln.write(mFile);
818 		fprintf(mFile,";\n");
819 	}
setRightElbowPull(float pre)820 	void setRightElbowPull(float pre)
821 	{
822 		if(pre == 0.00) return;
823 		fprintf(mFile,"\tsetAttr \".fln.pre\" %f;\n", pre);
824 	}
setRightHandPullChest(float cpr)825 	void setRightHandPullChest(float cpr)
826 	{
827 		if(cpr == 1.00) return;
828 		fprintf(mFile,"\tsetAttr \".fln.cpr\" %f;\n", cpr);
829 	}
setRightHandPullHips(float prh)830 	void setRightHandPullHips(float prh)
831 	{
832 		if(prh == 1.00) return;
833 		fprintf(mFile,"\tsetAttr \".fln.prh\" %f;\n", prh);
834 	}
setRightFingerBasePull(float prb)835 	void setRightFingerBasePull(float prb)
836 	{
837 		if(prb == 0.00) return;
838 		fprintf(mFile,"\tsetAttr \".fln.prb\" %f;\n", prb);
839 	}
setChest(const Chest & flo)840 	void setChest(const Chest& flo)
841 	{
842 		fprintf(mFile,"\tsetAttr \".flo\" ");
843 		flo.write(mFile);
844 		fprintf(mFile,";\n");
845 	}
setChestPull(float rcp)846 	void setChestPull(float rcp)
847 	{
848 		if(rcp == 0.00) return;
849 		fprintf(mFile,"\tsetAttr \".flo.rcp\" %f;\n", rcp);
850 	}
setHips(const Hips & flp)851 	void setHips(const Hips& flp)
852 	{
853 		fprintf(mFile,"\tsetAttr \".flp\" ");
854 		flp.write(mFile);
855 		fprintf(mFile,";\n");
856 	}
setHipsPull(float chp)857 	void setHipsPull(float chp)
858 	{
859 		if(chp == 0.00) return;
860 		fprintf(mFile,"\tsetAttr \".flp.chp\" %f;\n", chp);
861 	}
setLeftLeg(const LeftLeg & flq)862 	void setLeftLeg(const LeftLeg& flq)
863 	{
864 		fprintf(mFile,"\tsetAttr \".flq\" ");
865 		flq.write(mFile);
866 		fprintf(mFile,";\n");
867 	}
setLeftKneePull(float plk)868 	void setLeftKneePull(float plk)
869 	{
870 		if(plk == 0.00) return;
871 		fprintf(mFile,"\tsetAttr \".flq.plk\" %f;\n", plk);
872 	}
setLeftFootPull(float plf)873 	void setLeftFootPull(float plf)
874 	{
875 		if(plf == 1.00) return;
876 		fprintf(mFile,"\tsetAttr \".flq.plf\" %f;\n", plf);
877 	}
setLeftToeBasePull(float plt)878 	void setLeftToeBasePull(float plt)
879 	{
880 		if(plt == 0.00) return;
881 		fprintf(mFile,"\tsetAttr \".flq.plt\" %f;\n", plt);
882 	}
setRightLeg(const RightLeg & flr)883 	void setRightLeg(const RightLeg& flr)
884 	{
885 		fprintf(mFile,"\tsetAttr \".flr\" ");
886 		flr.write(mFile);
887 		fprintf(mFile,";\n");
888 	}
setRightKneePull(float prk)889 	void setRightKneePull(float prk)
890 	{
891 		if(prk == 0.00) return;
892 		fprintf(mFile,"\tsetAttr \".flr.prk\" %f;\n", prk);
893 	}
setRightFootPull(float prf)894 	void setRightFootPull(float prf)
895 	{
896 		if(prf == 1.00) return;
897 		fprintf(mFile,"\tsetAttr \".flr.prf\" %f;\n", prf);
898 	}
setRightToeBasePull(float prt)899 	void setRightToeBasePull(float prt)
900 	{
901 		if(prt == 0.00) return;
902 		fprintf(mFile,"\tsetAttr \".flr.prt\" %f;\n", prt);
903 	}
setExtra(const Extra & ex)904 	void setExtra(const Extra& ex)
905 	{
906 		fprintf(mFile,"\tsetAttr \".ex\" ");
907 		ex.write(mFile);
908 		fprintf(mFile,";\n");
909 	}
setPullIterationCount(float pic)910 	void setPullIterationCount(float pic)
911 	{
912 		if(pic == 10.00) return;
913 		fprintf(mFile,"\tsetAttr \".ex.pic\" %f;\n", pic);
914 	}
setStiffness(const Stiffness & st)915 	void setStiffness(const Stiffness& st)
916 	{
917 		fprintf(mFile,"\tsetAttr \".st\" ");
918 		st.write(mFile);
919 		fprintf(mFile,";\n");
920 	}
setNeckStiffness(float nst)921 	void setNeckStiffness(float nst)
922 	{
923 		if(nst == 0.00) return;
924 		fprintf(mFile,"\tsetAttr \".st.nst\" %f;\n", nst);
925 	}
setLeftShoulderStiffness(float rlco)926 	void setLeftShoulderStiffness(float rlco)
927 	{
928 		if(rlco == 0.50) return;
929 		fprintf(mFile,"\tsetAttr \".st.rlco\" %f;\n", rlco);
930 	}
setLeftArmStiffness(float rle)931 	void setLeftArmStiffness(float rle)
932 	{
933 		if(rle == 0.50) return;
934 		fprintf(mFile,"\tsetAttr \".st.rle\" %f;\n", rle);
935 	}
setLeftElbowMaxExtension(float mle)936 	void setLeftElbowMaxExtension(float mle)
937 	{
938 		if(mle == 0.50) return;
939 		fprintf(mFile,"\tsetAttr \".st.mle\" %f;\n", mle);
940 	}
setLeftElbowCompressionFactor(float cle)941 	void setLeftElbowCompressionFactor(float cle)
942 	{
943 		if(cle == 0.50) return;
944 		fprintf(mFile,"\tsetAttr \".st.cle\" %f;\n", cle);
945 	}
setRightShoulderStiffness(float rrc)946 	void setRightShoulderStiffness(float rrc)
947 	{
948 		if(rrc == 0.50) return;
949 		fprintf(mFile,"\tsetAttr \".st.rrc\" %f;\n", rrc);
950 	}
setRightArmStiffness(float rre)951 	void setRightArmStiffness(float rre)
952 	{
953 		if(rre == 0.50) return;
954 		fprintf(mFile,"\tsetAttr \".st.rre\" %f;\n", rre);
955 	}
setRightElbowMaxExtension(float mre)956 	void setRightElbowMaxExtension(float mre)
957 	{
958 		if(mre == 0.50) return;
959 		fprintf(mFile,"\tsetAttr \".st.mre\" %f;\n", mre);
960 	}
setRightElbowCompressionFactor(float cre)961 	void setRightElbowCompressionFactor(float cre)
962 	{
963 		if(cre == 0.50) return;
964 		fprintf(mFile,"\tsetAttr \".st.cre\" %f;\n", cre);
965 	}
setHipsEnforceGravity(float egr)966 	void setHipsEnforceGravity(float egr)
967 	{
968 		if(egr == 0.60) return;
969 		fprintf(mFile,"\tsetAttr \".st.egr\" %f;\n", egr);
970 	}
setChestStiffness(float rco)971 	void setChestStiffness(float rco)
972 	{
973 		if(rco == 0.00) return;
974 		fprintf(mFile,"\tsetAttr \".st.rco\" %f;\n", rco);
975 	}
setSpineStiffness(float sst)976 	void setSpineStiffness(float sst)
977 	{
978 		if(sst == 0.00) return;
979 		fprintf(mFile,"\tsetAttr \".st.sst\" %f;\n", sst);
980 	}
setHipsStiffness(float rho)981 	void setHipsStiffness(float rho)
982 	{
983 		if(rho == 0.00) return;
984 		fprintf(mFile,"\tsetAttr \".st.rho\" %f;\n", rho);
985 	}
setLeftKneeMaxExtension(float mlk)986 	void setLeftKneeMaxExtension(float mlk)
987 	{
988 		if(mlk == 0.50) return;
989 		fprintf(mFile,"\tsetAttr \".st.mlk\" %f;\n", mlk);
990 	}
setLeftLegStiffness(float rlk)991 	void setLeftLegStiffness(float rlk)
992 	{
993 		if(rlk == 0.50) return;
994 		fprintf(mFile,"\tsetAttr \".st.rlk\" %f;\n", rlk);
995 	}
setLeftKneeCompressionFactor(float clk)996 	void setLeftKneeCompressionFactor(float clk)
997 	{
998 		if(clk == 0.50) return;
999 		fprintf(mFile,"\tsetAttr \".st.clk\" %f;\n", clk);
1000 	}
setRightLegStiffness(float rrk)1001 	void setRightLegStiffness(float rrk)
1002 	{
1003 		if(rrk == 0.50) return;
1004 		fprintf(mFile,"\tsetAttr \".st.rrk\" %f;\n", rrk);
1005 	}
setRightKneeMaxExtension(float mrk)1006 	void setRightKneeMaxExtension(float mrk)
1007 	{
1008 		if(mrk == 0.50) return;
1009 		fprintf(mFile,"\tsetAttr \".st.mrk\" %f;\n", mrk);
1010 	}
setRightKneeCompressionFactor(float crk)1011 	void setRightKneeCompressionFactor(float crk)
1012 	{
1013 		if(crk == 0.50) return;
1014 		fprintf(mFile,"\tsetAttr \".st.crk\" %f;\n", crk);
1015 	}
setKillPitch(const KillPitch & kp)1016 	void setKillPitch(const KillPitch& kp)
1017 	{
1018 		fprintf(mFile,"\tsetAttr \".kp\" ");
1019 		kp.write(mFile);
1020 		fprintf(mFile,";\n");
1021 	}
setLeftElbowKillPitch(bool lek)1022 	void setLeftElbowKillPitch(bool lek)
1023 	{
1024 		if(lek == 0) return;
1025 		fprintf(mFile,"\tsetAttr \".kp.lek\" %i;\n", lek);
1026 	}
setRightElbowKillPitch(bool rek)1027 	void setRightElbowKillPitch(bool rek)
1028 	{
1029 		if(rek == 0) return;
1030 		fprintf(mFile,"\tsetAttr \".kp.rek\" %i;\n", rek);
1031 	}
setLeftKneeKillPitch(bool lkk)1032 	void setLeftKneeKillPitch(bool lkk)
1033 	{
1034 		if(lkk == 0) return;
1035 		fprintf(mFile,"\tsetAttr \".kp.lkk\" %i;\n", lkk);
1036 	}
setRightKneeKillPitch(bool rkk)1037 	void setRightKneeKillPitch(bool rkk)
1038 	{
1039 		if(rkk == 0) return;
1040 		fprintf(mFile,"\tsetAttr \".kp.rkk\" %i;\n", rkk);
1041 	}
setRollExtraction(const RollExtraction & re)1042 	void setRollExtraction(const RollExtraction& re)
1043 	{
1044 		fprintf(mFile,"\tsetAttr \".re\" ");
1045 		re.write(mFile);
1046 		fprintf(mFile,";\n");
1047 	}
setRollExtractionMode(unsigned int rem)1048 	void setRollExtractionMode(unsigned int rem)
1049 	{
1050 		if(rem == 0) return;
1051 		fprintf(mFile,"\tsetAttr \".re.rem\" %i;\n", rem);
1052 	}
setLeftArmRollMode(bool larm)1053 	void setLeftArmRollMode(bool larm)
1054 	{
1055 		if(larm == 0) return;
1056 		fprintf(mFile,"\tsetAttr \".re.larm\" %i;\n", larm);
1057 	}
setLeftArmRoll(float lar)1058 	void setLeftArmRoll(float lar)
1059 	{
1060 		if(lar == 0.60) return;
1061 		fprintf(mFile,"\tsetAttr \".re.lar\" %f;\n", lar);
1062 	}
setLeftForeArmRollMode(bool lfrm)1063 	void setLeftForeArmRollMode(bool lfrm)
1064 	{
1065 		if(lfrm == 0) return;
1066 		fprintf(mFile,"\tsetAttr \".re.lfrm\" %i;\n", lfrm);
1067 	}
setLeftForeArmRoll(float lfr)1068 	void setLeftForeArmRoll(float lfr)
1069 	{
1070 		if(lfr == 0.60) return;
1071 		fprintf(mFile,"\tsetAttr \".re.lfr\" %f;\n", lfr);
1072 	}
setRightArmRollMode(bool rarm)1073 	void setRightArmRollMode(bool rarm)
1074 	{
1075 		if(rarm == 0) return;
1076 		fprintf(mFile,"\tsetAttr \".re.rarm\" %i;\n", rarm);
1077 	}
setRightArmRoll(float rar)1078 	void setRightArmRoll(float rar)
1079 	{
1080 		if(rar == 0.60) return;
1081 		fprintf(mFile,"\tsetAttr \".re.rar\" %f;\n", rar);
1082 	}
setRightForeArmRollMode(bool rfrm)1083 	void setRightForeArmRollMode(bool rfrm)
1084 	{
1085 		if(rfrm == 0) return;
1086 		fprintf(mFile,"\tsetAttr \".re.rfrm\" %i;\n", rfrm);
1087 	}
setRightForeArmRoll(float rfr)1088 	void setRightForeArmRoll(float rfr)
1089 	{
1090 		if(rfr == 0.60) return;
1091 		fprintf(mFile,"\tsetAttr \".re.rfr\" %f;\n", rfr);
1092 	}
setLeftUpLegRollMode(bool lurm)1093 	void setLeftUpLegRollMode(bool lurm)
1094 	{
1095 		if(lurm == 0) return;
1096 		fprintf(mFile,"\tsetAttr \".re.lurm\" %i;\n", lurm);
1097 	}
setLeftUpLegRoll(float lur)1098 	void setLeftUpLegRoll(float lur)
1099 	{
1100 		if(lur == 0.60) return;
1101 		fprintf(mFile,"\tsetAttr \".re.lur\" %f;\n", lur);
1102 	}
setLeftLegRollMode(bool llrm)1103 	void setLeftLegRollMode(bool llrm)
1104 	{
1105 		if(llrm == 0) return;
1106 		fprintf(mFile,"\tsetAttr \".re.llrm\" %i;\n", llrm);
1107 	}
setLeftLegRoll(float llr)1108 	void setLeftLegRoll(float llr)
1109 	{
1110 		if(llr == 0.60) return;
1111 		fprintf(mFile,"\tsetAttr \".re.llr\" %f;\n", llr);
1112 	}
setRightUpLegRollMode(bool rurm)1113 	void setRightUpLegRollMode(bool rurm)
1114 	{
1115 		if(rurm == 0) return;
1116 		fprintf(mFile,"\tsetAttr \".re.rurm\" %i;\n", rurm);
1117 	}
setRightUpLegRoll(float rur)1118 	void setRightUpLegRoll(float rur)
1119 	{
1120 		if(rur == 0.60) return;
1121 		fprintf(mFile,"\tsetAttr \".re.rur\" %f;\n", rur);
1122 	}
setRightLegRollMode(bool rlrm)1123 	void setRightLegRollMode(bool rlrm)
1124 	{
1125 		if(rlrm == 0) return;
1126 		fprintf(mFile,"\tsetAttr \".re.rlrm\" %i;\n", rlrm);
1127 	}
setRightLegRoll(float rlro)1128 	void setRightLegRoll(float rlro)
1129 	{
1130 		if(rlro == 0.60) return;
1131 		fprintf(mFile,"\tsetAttr \".re.rlro\" %f;\n", rlro);
1132 	}
getEffectors(size_t eff_i)1133 	void getEffectors(size_t eff_i)const
1134 	{
1135 		fprintf(mFile,"\"%s.eff[%i]\"",mName.c_str(),eff_i);
1136 	}
getEffectors()1137 	void getEffectors()const
1138 	{
1139 
1140 		fprintf(mFile,"\"%s.eff\"",mName.c_str());
1141 	}
getLeftFootGroundPlane()1142 	void getLeftFootGroundPlane()const
1143 	{
1144 		fprintf(mFile,"\"%s.lfg\"",mName.c_str());
1145 	}
getRightFootGroundPlane()1146 	void getRightFootGroundPlane()const
1147 	{
1148 		fprintf(mFile,"\"%s.rfg\"",mName.c_str());
1149 	}
getRightFootOrientedGroundPlane()1150 	void getRightFootOrientedGroundPlane()const
1151 	{
1152 		fprintf(mFile,"\"%s.rog\"",mName.c_str());
1153 	}
getLeftFootOrientedGroundPlane()1154 	void getLeftFootOrientedGroundPlane()const
1155 	{
1156 		fprintf(mFile,"\"%s.log\"",mName.c_str());
1157 	}
getLeftHandGroundPlane()1158 	void getLeftHandGroundPlane()const
1159 	{
1160 		fprintf(mFile,"\"%s.lhg\"",mName.c_str());
1161 	}
getRightHandGroundPlane()1162 	void getRightHandGroundPlane()const
1163 	{
1164 		fprintf(mFile,"\"%s.rhg\"",mName.c_str());
1165 	}
getLeftHandOrientedGroundPlane()1166 	void getLeftHandOrientedGroundPlane()const
1167 	{
1168 		fprintf(mFile,"\"%s.loh\"",mName.c_str());
1169 	}
getRightHandOrientedGroundPlane()1170 	void getRightHandOrientedGroundPlane()const
1171 	{
1172 		fprintf(mFile,"\"%s.roh\"",mName.c_str());
1173 	}
getJoints(size_t jt_i)1174 	void getJoints(size_t jt_i)const
1175 	{
1176 		fprintf(mFile,"\"%s.jt[%i]\"",mName.c_str(),jt_i);
1177 	}
getJoints()1178 	void getJoints()const
1179 	{
1180 
1181 		fprintf(mFile,"\"%s.jt\"",mName.c_str());
1182 	}
getFkjoints(size_t fj_i)1183 	void getFkjoints(size_t fj_i)const
1184 	{
1185 		fprintf(mFile,"\"%s.fj[%i]\"",mName.c_str(),fj_i);
1186 	}
getFkjoints()1187 	void getFkjoints()const
1188 	{
1189 
1190 		fprintf(mFile,"\"%s.fj\"",mName.c_str());
1191 	}
getTime()1192 	void getTime()const
1193 	{
1194 		fprintf(mFile,"\"%s.tim\"",mName.c_str());
1195 	}
getDefaultMatrix(size_t dm_i)1196 	void getDefaultMatrix(size_t dm_i)const
1197 	{
1198 		fprintf(mFile,"\"%s.dm[%i]\"",mName.c_str(),dm_i);
1199 	}
getDefaultMatrix()1200 	void getDefaultMatrix()const
1201 	{
1202 
1203 		fprintf(mFile,"\"%s.dm\"",mName.c_str());
1204 	}
getStancePoseMatrix(size_t sm_i)1205 	void getStancePoseMatrix(size_t sm_i)const
1206 	{
1207 		fprintf(mFile,"\"%s.sm[%i]\"",mName.c_str(),sm_i);
1208 	}
getStancePoseMatrix()1209 	void getStancePoseMatrix()const
1210 	{
1211 
1212 		fprintf(mFile,"\"%s.sm\"",mName.c_str());
1213 	}
getUsingMB55Rig()1214 	void getUsingMB55Rig()const
1215 	{
1216 		fprintf(mFile,"\"%s.m55\"",mName.c_str());
1217 	}
getActivate()1218 	void getActivate()const
1219 	{
1220 		fprintf(mFile,"\"%s.act\"",mName.c_str());
1221 	}
getConvertScale()1222 	void getConvertScale()const
1223 	{
1224 		fprintf(mFile,"\"%s.cs\"",mName.c_str());
1225 	}
getPropertyChanged()1226 	void getPropertyChanged()const
1227 	{
1228 		fprintf(mFile,"\"%s.pc\"",mName.c_str());
1229 	}
getSolving()1230 	void getSolving()const
1231 	{
1232 		fprintf(mFile,"\"%s.sol\"",mName.c_str());
1233 	}
getPostureType()1234 	void getPostureType()const
1235 	{
1236 		fprintf(mFile,"\"%s.sol.pt\"",mName.c_str());
1237 	}
getExpertMode()1238 	void getExpertMode()const
1239 	{
1240 		fprintf(mFile,"\"%s.sol.exp\"",mName.c_str());
1241 	}
getRealisticShoulderSolving()1242 	void getRealisticShoulderSolving()const
1243 	{
1244 		fprintf(mFile,"\"%s.sol.rss\"",mName.c_str());
1245 	}
getSolveFingers()1246 	void getSolveFingers()const
1247 	{
1248 		fprintf(mFile,"\"%s.sol.sf\"",mName.c_str());
1249 	}
getHipTranslationMode()1250 	void getHipTranslationMode()const
1251 	{
1252 		fprintf(mFile,"\"%s.sol.htm\"",mName.c_str());
1253 	}
getFloorContacts()1254 	void getFloorContacts()const
1255 	{
1256 		fprintf(mFile,"\"%s.fc\"",mName.c_str());
1257 	}
getHandsFloorContact()1258 	void getHandsFloorContact()const
1259 	{
1260 		fprintf(mFile,"\"%s.fc.hfc\"",mName.c_str());
1261 	}
getFeetFloorContact()1262 	void getFeetFloorContact()const
1263 	{
1264 		fprintf(mFile,"\"%s.fc.fec\"",mName.c_str());
1265 	}
getFingersFloorContact()1266 	void getFingersFloorContact()const
1267 	{
1268 		fprintf(mFile,"\"%s.fc.fic\"",mName.c_str());
1269 	}
getToesFloorContact()1270 	void getToesFloorContact()const
1271 	{
1272 		fprintf(mFile,"\"%s.fc.tfc\"",mName.c_str());
1273 	}
getHandsFloorContactSetup()1274 	void getHandsFloorContactSetup()const
1275 	{
1276 		fprintf(mFile,"\"%s.flc\"",mName.c_str());
1277 	}
getHandsFloorPivot()1278 	void getHandsFloorPivot()const
1279 	{
1280 		fprintf(mFile,"\"%s.flc.hfp\"",mName.c_str());
1281 	}
getHandsContactType()1282 	void getHandsContactType()const
1283 	{
1284 		fprintf(mFile,"\"%s.flc.hct\"",mName.c_str());
1285 	}
getHandsContactStiffness()1286 	void getHandsContactStiffness()const
1287 	{
1288 		fprintf(mFile,"\"%s.flc.hcs\"",mName.c_str());
1289 	}
getContactsPosition()1290 	void getContactsPosition()const
1291 	{
1292 		fprintf(mFile,"\"%s.cp\"",mName.c_str());
1293 	}
getHandHeight()1294 	void getHandHeight()const
1295 	{
1296 		fprintf(mFile,"\"%s.cp.hh\"",mName.c_str());
1297 	}
getHandBack()1298 	void getHandBack()const
1299 	{
1300 		fprintf(mFile,"\"%s.cp.hb\"",mName.c_str());
1301 	}
getHandMiddle()1302 	void getHandMiddle()const
1303 	{
1304 		fprintf(mFile,"\"%s.cp.hm\"",mName.c_str());
1305 	}
getHandFront()1306 	void getHandFront()const
1307 	{
1308 		fprintf(mFile,"\"%s.cp.hf\"",mName.c_str());
1309 	}
getHandInSide()1310 	void getHandInSide()const
1311 	{
1312 		fprintf(mFile,"\"%s.cp.his\"",mName.c_str());
1313 	}
getHandOutSide()1314 	void getHandOutSide()const
1315 	{
1316 		fprintf(mFile,"\"%s.cp.hos\"",mName.c_str());
1317 	}
getFeetFloorContactSetup()1318 	void getFeetFloorContactSetup()const
1319 	{
1320 		fprintf(mFile,"\"%s.fle\"",mName.c_str());
1321 	}
getFeetFloorPivot()1322 	void getFeetFloorPivot()const
1323 	{
1324 		fprintf(mFile,"\"%s.fle.fpv\"",mName.c_str());
1325 	}
getFeetContactType()1326 	void getFeetContactType()const
1327 	{
1328 		fprintf(mFile,"\"%s.fle.fct\"",mName.c_str());
1329 	}
getFeetContactStiffness()1330 	void getFeetContactStiffness()const
1331 	{
1332 		fprintf(mFile,"\"%s.fle.fcs\"",mName.c_str());
1333 	}
getFeetContactPosition()1334 	void getFeetContactPosition()const
1335 	{
1336 		fprintf(mFile,"\"%s.flf\"",mName.c_str());
1337 	}
getFootHeight()1338 	void getFootHeight()const
1339 	{
1340 		fprintf(mFile,"\"%s.flf.fh\"",mName.c_str());
1341 	}
getFootBack()1342 	void getFootBack()const
1343 	{
1344 		fprintf(mFile,"\"%s.flf.fra\"",mName.c_str());
1345 	}
getFootMiddle()1346 	void getFootMiddle()const
1347 	{
1348 		fprintf(mFile,"\"%s.flf.fma\"",mName.c_str());
1349 	}
getFootFront()1350 	void getFootFront()const
1351 	{
1352 		fprintf(mFile,"\"%s.flf.ffm\"",mName.c_str());
1353 	}
getFootInSide()1354 	void getFootInSide()const
1355 	{
1356 		fprintf(mFile,"\"%s.flf.fia\"",mName.c_str());
1357 	}
getFootOutSide()1358 	void getFootOutSide()const
1359 	{
1360 		fprintf(mFile,"\"%s.flf.foa\"",mName.c_str());
1361 	}
getFingersFloorContactSetup()1362 	void getFingersFloorContactSetup()const
1363 	{
1364 		fprintf(mFile,"\"%s.flg\"",mName.c_str());
1365 	}
getFingersContactType()1366 	void getFingersContactType()const
1367 	{
1368 		fprintf(mFile,"\"%s.flg.fcm\"",mName.c_str());
1369 	}
getFingersContactRollStiffness()1370 	void getFingersContactRollStiffness()const
1371 	{
1372 		fprintf(mFile,"\"%s.flg.hcr\"",mName.c_str());
1373 	}
getFingerTipsSizes()1374 	void getFingerTipsSizes()const
1375 	{
1376 		fprintf(mFile,"\"%s.fts\"",mName.c_str());
1377 	}
getLeftHandThumbTip()1378 	void getLeftHandThumbTip()const
1379 	{
1380 		fprintf(mFile,"\"%s.fts.ltt\"",mName.c_str());
1381 	}
getLeftHandIndexTip()1382 	void getLeftHandIndexTip()const
1383 	{
1384 		fprintf(mFile,"\"%s.fts.lit\"",mName.c_str());
1385 	}
getLeftHandMiddleTip()1386 	void getLeftHandMiddleTip()const
1387 	{
1388 		fprintf(mFile,"\"%s.fts.lmt\"",mName.c_str());
1389 	}
getLeftHandRingTip()1390 	void getLeftHandRingTip()const
1391 	{
1392 		fprintf(mFile,"\"%s.fts.lrt\"",mName.c_str());
1393 	}
getLeftHandPinkyTip()1394 	void getLeftHandPinkyTip()const
1395 	{
1396 		fprintf(mFile,"\"%s.fts.lpt\"",mName.c_str());
1397 	}
getLeftHandExtraFingerTip()1398 	void getLeftHandExtraFingerTip()const
1399 	{
1400 		fprintf(mFile,"\"%s.fts.lxt\"",mName.c_str());
1401 	}
getRightHandThumbTip()1402 	void getRightHandThumbTip()const
1403 	{
1404 		fprintf(mFile,"\"%s.fts.rtt\"",mName.c_str());
1405 	}
getRightHandIndexTip()1406 	void getRightHandIndexTip()const
1407 	{
1408 		fprintf(mFile,"\"%s.fts.rit\"",mName.c_str());
1409 	}
getRightHandMiddleTip()1410 	void getRightHandMiddleTip()const
1411 	{
1412 		fprintf(mFile,"\"%s.fts.rmt\"",mName.c_str());
1413 	}
getRightHandRingTip()1414 	void getRightHandRingTip()const
1415 	{
1416 		fprintf(mFile,"\"%s.fts.rrt\"",mName.c_str());
1417 	}
getRightHandPinkyTip()1418 	void getRightHandPinkyTip()const
1419 	{
1420 		fprintf(mFile,"\"%s.fts.rpp\"",mName.c_str());
1421 	}
getRightHandExtraFingerTip()1422 	void getRightHandExtraFingerTip()const
1423 	{
1424 		fprintf(mFile,"\"%s.fts.rxt\"",mName.c_str());
1425 	}
getToesFloorContactSetup()1426 	void getToesFloorContactSetup()const
1427 	{
1428 		fprintf(mFile,"\"%s.fli\"",mName.c_str());
1429 	}
getToesContactType()1430 	void getToesContactType()const
1431 	{
1432 		fprintf(mFile,"\"%s.fli.tct\"",mName.c_str());
1433 	}
getToesContactRollStiffness()1434 	void getToesContactRollStiffness()const
1435 	{
1436 		fprintf(mFile,"\"%s.fli.fcr\"",mName.c_str());
1437 	}
getToeTipsSizes()1438 	void getToeTipsSizes()const
1439 	{
1440 		fprintf(mFile,"\"%s.flj\"",mName.c_str());
1441 	}
getLeftFootThumbTip()1442 	void getLeftFootThumbTip()const
1443 	{
1444 		fprintf(mFile,"\"%s.flj.ttl\"",mName.c_str());
1445 	}
getLeftFootIndexTip()1446 	void getLeftFootIndexTip()const
1447 	{
1448 		fprintf(mFile,"\"%s.flj.til\"",mName.c_str());
1449 	}
getLeftFootMiddleTip()1450 	void getLeftFootMiddleTip()const
1451 	{
1452 		fprintf(mFile,"\"%s.flj.tml\"",mName.c_str());
1453 	}
getLeftFootRingTip()1454 	void getLeftFootRingTip()const
1455 	{
1456 		fprintf(mFile,"\"%s.flj.trl\"",mName.c_str());
1457 	}
getLeftFootPinkyTip()1458 	void getLeftFootPinkyTip()const
1459 	{
1460 		fprintf(mFile,"\"%s.flj.tpl\"",mName.c_str());
1461 	}
getLeftFootExtraFingerTip()1462 	void getLeftFootExtraFingerTip()const
1463 	{
1464 		fprintf(mFile,"\"%s.flj.txl\"",mName.c_str());
1465 	}
getRightFootThumbTip()1466 	void getRightFootThumbTip()const
1467 	{
1468 		fprintf(mFile,"\"%s.flj.ttr\"",mName.c_str());
1469 	}
getRightFootIndexTip()1470 	void getRightFootIndexTip()const
1471 	{
1472 		fprintf(mFile,"\"%s.flj.tir\"",mName.c_str());
1473 	}
getRightFootMiddleTip()1474 	void getRightFootMiddleTip()const
1475 	{
1476 		fprintf(mFile,"\"%s.flj.tmr\"",mName.c_str());
1477 	}
getRightFootRingTip()1478 	void getRightFootRingTip()const
1479 	{
1480 		fprintf(mFile,"\"%s.flj.trr\"",mName.c_str());
1481 	}
getRightFootPinkyTip()1482 	void getRightFootPinkyTip()const
1483 	{
1484 		fprintf(mFile,"\"%s.flj.tpr\"",mName.c_str());
1485 	}
getRightFootExtraFingerTip()1486 	void getRightFootExtraFingerTip()const
1487 	{
1488 		fprintf(mFile,"\"%s.flj.txr\"",mName.c_str());
1489 	}
getHead()1490 	void getHead()const
1491 	{
1492 		fprintf(mFile,"\"%s.fll\"",mName.c_str());
1493 	}
getHeadPull()1494 	void getHeadPull()const
1495 	{
1496 		fprintf(mFile,"\"%s.fll.phd\"",mName.c_str());
1497 	}
getLeftArm()1498 	void getLeftArm()const
1499 	{
1500 		fprintf(mFile,"\"%s.flm\"",mName.c_str());
1501 	}
getLeftElbowPull()1502 	void getLeftElbowPull()const
1503 	{
1504 		fprintf(mFile,"\"%s.flm.ple\"",mName.c_str());
1505 	}
getLeftHandPullChest()1506 	void getLeftHandPullChest()const
1507 	{
1508 		fprintf(mFile,"\"%s.flm.cpl\"",mName.c_str());
1509 	}
getLeftHandPullHips()1510 	void getLeftHandPullHips()const
1511 	{
1512 		fprintf(mFile,"\"%s.flm.plh\"",mName.c_str());
1513 	}
getLeftFingerBasePull()1514 	void getLeftFingerBasePull()const
1515 	{
1516 		fprintf(mFile,"\"%s.flm.plb\"",mName.c_str());
1517 	}
getRightArm()1518 	void getRightArm()const
1519 	{
1520 		fprintf(mFile,"\"%s.fln\"",mName.c_str());
1521 	}
getRightElbowPull()1522 	void getRightElbowPull()const
1523 	{
1524 		fprintf(mFile,"\"%s.fln.pre\"",mName.c_str());
1525 	}
getRightHandPullChest()1526 	void getRightHandPullChest()const
1527 	{
1528 		fprintf(mFile,"\"%s.fln.cpr\"",mName.c_str());
1529 	}
getRightHandPullHips()1530 	void getRightHandPullHips()const
1531 	{
1532 		fprintf(mFile,"\"%s.fln.prh\"",mName.c_str());
1533 	}
getRightFingerBasePull()1534 	void getRightFingerBasePull()const
1535 	{
1536 		fprintf(mFile,"\"%s.fln.prb\"",mName.c_str());
1537 	}
getChest()1538 	void getChest()const
1539 	{
1540 		fprintf(mFile,"\"%s.flo\"",mName.c_str());
1541 	}
getChestPull()1542 	void getChestPull()const
1543 	{
1544 		fprintf(mFile,"\"%s.flo.rcp\"",mName.c_str());
1545 	}
getHips()1546 	void getHips()const
1547 	{
1548 		fprintf(mFile,"\"%s.flp\"",mName.c_str());
1549 	}
getHipsPull()1550 	void getHipsPull()const
1551 	{
1552 		fprintf(mFile,"\"%s.flp.chp\"",mName.c_str());
1553 	}
getLeftLeg()1554 	void getLeftLeg()const
1555 	{
1556 		fprintf(mFile,"\"%s.flq\"",mName.c_str());
1557 	}
getLeftKneePull()1558 	void getLeftKneePull()const
1559 	{
1560 		fprintf(mFile,"\"%s.flq.plk\"",mName.c_str());
1561 	}
getLeftFootPull()1562 	void getLeftFootPull()const
1563 	{
1564 		fprintf(mFile,"\"%s.flq.plf\"",mName.c_str());
1565 	}
getLeftToeBasePull()1566 	void getLeftToeBasePull()const
1567 	{
1568 		fprintf(mFile,"\"%s.flq.plt\"",mName.c_str());
1569 	}
getRightLeg()1570 	void getRightLeg()const
1571 	{
1572 		fprintf(mFile,"\"%s.flr\"",mName.c_str());
1573 	}
getRightKneePull()1574 	void getRightKneePull()const
1575 	{
1576 		fprintf(mFile,"\"%s.flr.prk\"",mName.c_str());
1577 	}
getRightFootPull()1578 	void getRightFootPull()const
1579 	{
1580 		fprintf(mFile,"\"%s.flr.prf\"",mName.c_str());
1581 	}
getRightToeBasePull()1582 	void getRightToeBasePull()const
1583 	{
1584 		fprintf(mFile,"\"%s.flr.prt\"",mName.c_str());
1585 	}
getExtra()1586 	void getExtra()const
1587 	{
1588 		fprintf(mFile,"\"%s.ex\"",mName.c_str());
1589 	}
getPullIterationCount()1590 	void getPullIterationCount()const
1591 	{
1592 		fprintf(mFile,"\"%s.ex.pic\"",mName.c_str());
1593 	}
getStiffness()1594 	void getStiffness()const
1595 	{
1596 		fprintf(mFile,"\"%s.st\"",mName.c_str());
1597 	}
getNeckStiffness()1598 	void getNeckStiffness()const
1599 	{
1600 		fprintf(mFile,"\"%s.st.nst\"",mName.c_str());
1601 	}
getLeftShoulderStiffness()1602 	void getLeftShoulderStiffness()const
1603 	{
1604 		fprintf(mFile,"\"%s.st.rlco\"",mName.c_str());
1605 	}
getLeftArmStiffness()1606 	void getLeftArmStiffness()const
1607 	{
1608 		fprintf(mFile,"\"%s.st.rle\"",mName.c_str());
1609 	}
getLeftElbowMaxExtension()1610 	void getLeftElbowMaxExtension()const
1611 	{
1612 		fprintf(mFile,"\"%s.st.mle\"",mName.c_str());
1613 	}
getLeftElbowCompressionFactor()1614 	void getLeftElbowCompressionFactor()const
1615 	{
1616 		fprintf(mFile,"\"%s.st.cle\"",mName.c_str());
1617 	}
getRightShoulderStiffness()1618 	void getRightShoulderStiffness()const
1619 	{
1620 		fprintf(mFile,"\"%s.st.rrc\"",mName.c_str());
1621 	}
getRightArmStiffness()1622 	void getRightArmStiffness()const
1623 	{
1624 		fprintf(mFile,"\"%s.st.rre\"",mName.c_str());
1625 	}
getRightElbowMaxExtension()1626 	void getRightElbowMaxExtension()const
1627 	{
1628 		fprintf(mFile,"\"%s.st.mre\"",mName.c_str());
1629 	}
getRightElbowCompressionFactor()1630 	void getRightElbowCompressionFactor()const
1631 	{
1632 		fprintf(mFile,"\"%s.st.cre\"",mName.c_str());
1633 	}
getHipsEnforceGravity()1634 	void getHipsEnforceGravity()const
1635 	{
1636 		fprintf(mFile,"\"%s.st.egr\"",mName.c_str());
1637 	}
getChestStiffness()1638 	void getChestStiffness()const
1639 	{
1640 		fprintf(mFile,"\"%s.st.rco\"",mName.c_str());
1641 	}
getSpineStiffness()1642 	void getSpineStiffness()const
1643 	{
1644 		fprintf(mFile,"\"%s.st.sst\"",mName.c_str());
1645 	}
getHipsStiffness()1646 	void getHipsStiffness()const
1647 	{
1648 		fprintf(mFile,"\"%s.st.rho\"",mName.c_str());
1649 	}
getLeftKneeMaxExtension()1650 	void getLeftKneeMaxExtension()const
1651 	{
1652 		fprintf(mFile,"\"%s.st.mlk\"",mName.c_str());
1653 	}
getLeftLegStiffness()1654 	void getLeftLegStiffness()const
1655 	{
1656 		fprintf(mFile,"\"%s.st.rlk\"",mName.c_str());
1657 	}
getLeftKneeCompressionFactor()1658 	void getLeftKneeCompressionFactor()const
1659 	{
1660 		fprintf(mFile,"\"%s.st.clk\"",mName.c_str());
1661 	}
getRightLegStiffness()1662 	void getRightLegStiffness()const
1663 	{
1664 		fprintf(mFile,"\"%s.st.rrk\"",mName.c_str());
1665 	}
getRightKneeMaxExtension()1666 	void getRightKneeMaxExtension()const
1667 	{
1668 		fprintf(mFile,"\"%s.st.mrk\"",mName.c_str());
1669 	}
getRightKneeCompressionFactor()1670 	void getRightKneeCompressionFactor()const
1671 	{
1672 		fprintf(mFile,"\"%s.st.crk\"",mName.c_str());
1673 	}
getKillPitch()1674 	void getKillPitch()const
1675 	{
1676 		fprintf(mFile,"\"%s.kp\"",mName.c_str());
1677 	}
getLeftElbowKillPitch()1678 	void getLeftElbowKillPitch()const
1679 	{
1680 		fprintf(mFile,"\"%s.kp.lek\"",mName.c_str());
1681 	}
getRightElbowKillPitch()1682 	void getRightElbowKillPitch()const
1683 	{
1684 		fprintf(mFile,"\"%s.kp.rek\"",mName.c_str());
1685 	}
getLeftKneeKillPitch()1686 	void getLeftKneeKillPitch()const
1687 	{
1688 		fprintf(mFile,"\"%s.kp.lkk\"",mName.c_str());
1689 	}
getRightKneeKillPitch()1690 	void getRightKneeKillPitch()const
1691 	{
1692 		fprintf(mFile,"\"%s.kp.rkk\"",mName.c_str());
1693 	}
getRollExtraction()1694 	void getRollExtraction()const
1695 	{
1696 		fprintf(mFile,"\"%s.re\"",mName.c_str());
1697 	}
getRollExtractionMode()1698 	void getRollExtractionMode()const
1699 	{
1700 		fprintf(mFile,"\"%s.re.rem\"",mName.c_str());
1701 	}
getLeftArmRollMode()1702 	void getLeftArmRollMode()const
1703 	{
1704 		fprintf(mFile,"\"%s.re.larm\"",mName.c_str());
1705 	}
getLeftArmRoll()1706 	void getLeftArmRoll()const
1707 	{
1708 		fprintf(mFile,"\"%s.re.lar\"",mName.c_str());
1709 	}
getLeftForeArmRollMode()1710 	void getLeftForeArmRollMode()const
1711 	{
1712 		fprintf(mFile,"\"%s.re.lfrm\"",mName.c_str());
1713 	}
getLeftForeArmRoll()1714 	void getLeftForeArmRoll()const
1715 	{
1716 		fprintf(mFile,"\"%s.re.lfr\"",mName.c_str());
1717 	}
getRightArmRollMode()1718 	void getRightArmRollMode()const
1719 	{
1720 		fprintf(mFile,"\"%s.re.rarm\"",mName.c_str());
1721 	}
getRightArmRoll()1722 	void getRightArmRoll()const
1723 	{
1724 		fprintf(mFile,"\"%s.re.rar\"",mName.c_str());
1725 	}
getRightForeArmRollMode()1726 	void getRightForeArmRollMode()const
1727 	{
1728 		fprintf(mFile,"\"%s.re.rfrm\"",mName.c_str());
1729 	}
getRightForeArmRoll()1730 	void getRightForeArmRoll()const
1731 	{
1732 		fprintf(mFile,"\"%s.re.rfr\"",mName.c_str());
1733 	}
getLeftUpLegRollMode()1734 	void getLeftUpLegRollMode()const
1735 	{
1736 		fprintf(mFile,"\"%s.re.lurm\"",mName.c_str());
1737 	}
getLeftUpLegRoll()1738 	void getLeftUpLegRoll()const
1739 	{
1740 		fprintf(mFile,"\"%s.re.lur\"",mName.c_str());
1741 	}
getLeftLegRollMode()1742 	void getLeftLegRollMode()const
1743 	{
1744 		fprintf(mFile,"\"%s.re.llrm\"",mName.c_str());
1745 	}
getLeftLegRoll()1746 	void getLeftLegRoll()const
1747 	{
1748 		fprintf(mFile,"\"%s.re.llr\"",mName.c_str());
1749 	}
getRightUpLegRollMode()1750 	void getRightUpLegRollMode()const
1751 	{
1752 		fprintf(mFile,"\"%s.re.rurm\"",mName.c_str());
1753 	}
getRightUpLegRoll()1754 	void getRightUpLegRoll()const
1755 	{
1756 		fprintf(mFile,"\"%s.re.rur\"",mName.c_str());
1757 	}
getRightLegRollMode()1758 	void getRightLegRollMode()const
1759 	{
1760 		fprintf(mFile,"\"%s.re.rlrm\"",mName.c_str());
1761 	}
getRightLegRoll()1762 	void getRightLegRoll()const
1763 	{
1764 		fprintf(mFile,"\"%s.re.rlro\"",mName.c_str());
1765 	}
1766 protected:
1767 	HikHandle(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
IkHandle(file,name,parent,nodeType,shared,create)1768 		:IkHandle(file, name, parent, nodeType, shared, create) {}
1769 
1770 };
1771 }//namespace MayaDM
1772 #endif//__MayaDM_HIKHANDLE_H__
1773