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