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_PARENTCONSTRAINT_H__ 11 #define __MayaDM_PARENTCONSTRAINT_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMConstraint.h" 15 namespace MayaDM 16 { 17 class ParentConstraint : public Constraint 18 { 19 public: 20 struct Target{ 21 matrix targetParentMatrix; 22 double targetWeight; 23 double3 targetRotateCached; 24 double3 targetTranslate; 25 double3 targetRotatePivot; 26 double3 targetRotateTranslate; 27 double3 targetOffsetTranslate; 28 double3 targetRotate; 29 unsigned int targetRotateOrder; 30 double3 targetJointOrient; 31 double3 targetOffsetRotate; 32 double3 targetScale; writeTarget33 void write(FILE* file) const 34 { 35 targetParentMatrix.write(file); 36 fprintf(file, " "); 37 fprintf(file,"%f ", targetWeight); 38 targetRotateCached.write(file); 39 fprintf(file, " "); 40 targetTranslate.write(file); 41 fprintf(file, " "); 42 targetRotatePivot.write(file); 43 fprintf(file, " "); 44 targetRotateTranslate.write(file); 45 fprintf(file, " "); 46 targetOffsetTranslate.write(file); 47 fprintf(file, " "); 48 targetRotate.write(file); 49 fprintf(file, " "); 50 fprintf(file,"%i ", targetRotateOrder); 51 targetJointOrient.write(file); 52 fprintf(file, " "); 53 targetOffsetRotate.write(file); 54 fprintf(file, " "); 55 targetScale.write(file); 56 } 57 }; 58 public: 59 ParentConstraint()60 ParentConstraint():Constraint(){} 61 ParentConstraint(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 62 :Constraint(file, name, parent, "parentConstraint", shared, create){} ~ParentConstraint()63 virtual ~ParentConstraint(){} 64 setTarget(size_t tg_i,const Target & tg)65 void setTarget(size_t tg_i,const Target& tg) 66 { 67 fprintf(mFile,"\tsetAttr \".tg[%i]\" ",tg_i); 68 tg.write(mFile); 69 fprintf(mFile,";\n"); 70 } setTarget(size_t tg_start,size_t tg_end,Target * tg)71 void setTarget(size_t tg_start,size_t tg_end,Target* tg) 72 { 73 fprintf(mFile,"\tsetAttr \".tg[%i:%i]\" ", tg_start,tg_end); 74 size_t size = (tg_end-tg_start)*1+1; 75 for(size_t i=0;i<size;++i) 76 { 77 tg[i].write(mFile); 78 fprintf(mFile,"\n"); 79 } 80 fprintf(mFile,";\n"); 81 } startTarget(size_t tg_start,size_t tg_end)82 void startTarget(size_t tg_start,size_t tg_end)const 83 { 84 fprintf(mFile,"\tsetAttr \".tg[%i:%i]\"",tg_start,tg_end); 85 fprintf(mFile," -type \"Target\" "); 86 } appendTarget(const Target & tg)87 void appendTarget(const Target& tg)const 88 { 89 fprintf(mFile," "); 90 tg.write(mFile); 91 } endTarget()92 void endTarget()const 93 { 94 fprintf(mFile,";\n"); 95 } setTargetParentMatrix(size_t tg_i,const matrix & tpm)96 void setTargetParentMatrix(size_t tg_i,const matrix& tpm) 97 { 98 if(tpm == identity) return; 99 fprintf(mFile,"\tsetAttr \".tg[%i].tpm\" -type \"matrix\" ",tg_i); 100 tpm.write(mFile); 101 fprintf(mFile,";\n"); 102 } setTargetWeight(size_t tg_i,double tw)103 void setTargetWeight(size_t tg_i,double tw) 104 { 105 if(tw == 1.0) return; 106 fprintf(mFile,"\tsetAttr \".tg[%i].tw\" %f;\n", tg_i,tw); 107 } setTargetRotateCached(size_t tg_i,const double3 & ctr)108 void setTargetRotateCached(size_t tg_i,const double3& ctr) 109 { 110 fprintf(mFile,"\tsetAttr \".tg[%i].ctr\" -type \"double3\" ",tg_i); 111 ctr.write(mFile); 112 fprintf(mFile,";\n"); 113 } setTargetRotateCachedX(size_t tg_i,double ctrx)114 void setTargetRotateCachedX(size_t tg_i,double ctrx) 115 { 116 if(ctrx == 0) return; 117 fprintf(mFile,"\tsetAttr \".tg[%i].ctr.ctrx\" %f;\n", tg_i,ctrx); 118 } setTargetRotateCachedY(size_t tg_i,double ctry)119 void setTargetRotateCachedY(size_t tg_i,double ctry) 120 { 121 if(ctry == 0) return; 122 fprintf(mFile,"\tsetAttr \".tg[%i].ctr.ctry\" %f;\n", tg_i,ctry); 123 } setTargetRotateCachedZ(size_t tg_i,double ctrz)124 void setTargetRotateCachedZ(size_t tg_i,double ctrz) 125 { 126 if(ctrz == 0) return; 127 fprintf(mFile,"\tsetAttr \".tg[%i].ctr.ctrz\" %f;\n", tg_i,ctrz); 128 } setTargetTranslate(size_t tg_i,const double3 & tt)129 void setTargetTranslate(size_t tg_i,const double3& tt) 130 { 131 fprintf(mFile,"\tsetAttr \".tg[%i].tt\" -type \"double3\" ",tg_i); 132 tt.write(mFile); 133 fprintf(mFile,";\n"); 134 } setTargetTranslateX(size_t tg_i,double ttx)135 void setTargetTranslateX(size_t tg_i,double ttx) 136 { 137 if(ttx == 0) return; 138 fprintf(mFile,"\tsetAttr \".tg[%i].tt.ttx\" %f;\n", tg_i,ttx); 139 } setTargetTranslateY(size_t tg_i,double tty)140 void setTargetTranslateY(size_t tg_i,double tty) 141 { 142 if(tty == 0) return; 143 fprintf(mFile,"\tsetAttr \".tg[%i].tt.tty\" %f;\n", tg_i,tty); 144 } setTargetTranslateZ(size_t tg_i,double ttz)145 void setTargetTranslateZ(size_t tg_i,double ttz) 146 { 147 if(ttz == 0) return; 148 fprintf(mFile,"\tsetAttr \".tg[%i].tt.ttz\" %f;\n", tg_i,ttz); 149 } setTargetRotatePivot(size_t tg_i,const double3 & trp)150 void setTargetRotatePivot(size_t tg_i,const double3& trp) 151 { 152 fprintf(mFile,"\tsetAttr \".tg[%i].trp\" -type \"double3\" ",tg_i); 153 trp.write(mFile); 154 fprintf(mFile,";\n"); 155 } setTargetRotatePivotX(size_t tg_i,double trpx)156 void setTargetRotatePivotX(size_t tg_i,double trpx) 157 { 158 if(trpx == 0) return; 159 fprintf(mFile,"\tsetAttr \".tg[%i].trp.trpx\" %f;\n", tg_i,trpx); 160 } setTargetRotatePivotY(size_t tg_i,double trpy)161 void setTargetRotatePivotY(size_t tg_i,double trpy) 162 { 163 if(trpy == 0) return; 164 fprintf(mFile,"\tsetAttr \".tg[%i].trp.trpy\" %f;\n", tg_i,trpy); 165 } setTargetRotatePivotZ(size_t tg_i,double trpz)166 void setTargetRotatePivotZ(size_t tg_i,double trpz) 167 { 168 if(trpz == 0) return; 169 fprintf(mFile,"\tsetAttr \".tg[%i].trp.trpz\" %f;\n", tg_i,trpz); 170 } setTargetRotateTranslate(size_t tg_i,const double3 & trt)171 void setTargetRotateTranslate(size_t tg_i,const double3& trt) 172 { 173 fprintf(mFile,"\tsetAttr \".tg[%i].trt\" -type \"double3\" ",tg_i); 174 trt.write(mFile); 175 fprintf(mFile,";\n"); 176 } setTargetRotateTranslateX(size_t tg_i,double trtx)177 void setTargetRotateTranslateX(size_t tg_i,double trtx) 178 { 179 if(trtx == 0) return; 180 fprintf(mFile,"\tsetAttr \".tg[%i].trt.trtx\" %f;\n", tg_i,trtx); 181 } setTargetRotateTranslateY(size_t tg_i,double trty)182 void setTargetRotateTranslateY(size_t tg_i,double trty) 183 { 184 if(trty == 0) return; 185 fprintf(mFile,"\tsetAttr \".tg[%i].trt.trty\" %f;\n", tg_i,trty); 186 } setTargetRotateTranslateZ(size_t tg_i,double trtz)187 void setTargetRotateTranslateZ(size_t tg_i,double trtz) 188 { 189 if(trtz == 0) return; 190 fprintf(mFile,"\tsetAttr \".tg[%i].trt.trtz\" %f;\n", tg_i,trtz); 191 } setTargetOffsetTranslate(size_t tg_i,const double3 & tot)192 void setTargetOffsetTranslate(size_t tg_i,const double3& tot) 193 { 194 fprintf(mFile,"\tsetAttr \".tg[%i].tot\" -type \"double3\" ",tg_i); 195 tot.write(mFile); 196 fprintf(mFile,";\n"); 197 } setTargetOffsetTranslateX(size_t tg_i,double totx)198 void setTargetOffsetTranslateX(size_t tg_i,double totx) 199 { 200 if(totx == 0) return; 201 fprintf(mFile,"\tsetAttr \".tg[%i].tot.totx\" %f;\n", tg_i,totx); 202 } setTargetOffsetTranslateY(size_t tg_i,double toty)203 void setTargetOffsetTranslateY(size_t tg_i,double toty) 204 { 205 if(toty == 0) return; 206 fprintf(mFile,"\tsetAttr \".tg[%i].tot.toty\" %f;\n", tg_i,toty); 207 } setTargetOffsetTranslateZ(size_t tg_i,double totz)208 void setTargetOffsetTranslateZ(size_t tg_i,double totz) 209 { 210 if(totz == 0) return; 211 fprintf(mFile,"\tsetAttr \".tg[%i].tot.totz\" %f;\n", tg_i,totz); 212 } setTargetRotate(size_t tg_i,const double3 & tr)213 void setTargetRotate(size_t tg_i,const double3& tr) 214 { 215 fprintf(mFile,"\tsetAttr \".tg[%i].tr\" -type \"double3\" ",tg_i); 216 tr.write(mFile); 217 fprintf(mFile,";\n"); 218 } setTargetRotateX(size_t tg_i,double trx)219 void setTargetRotateX(size_t tg_i,double trx) 220 { 221 if(trx == 0) return; 222 fprintf(mFile,"\tsetAttr \".tg[%i].tr.trx\" %f;\n", tg_i,trx); 223 } setTargetRotateY(size_t tg_i,double try_)224 void setTargetRotateY(size_t tg_i,double try_) 225 { 226 if(try_ == 0) return; 227 fprintf(mFile,"\tsetAttr \".tg[%i].tr.try\" %f;\n", tg_i,try_); 228 } setTargetRotateZ(size_t tg_i,double trz)229 void setTargetRotateZ(size_t tg_i,double trz) 230 { 231 if(trz == 0) return; 232 fprintf(mFile,"\tsetAttr \".tg[%i].tr.trz\" %f;\n", tg_i,trz); 233 } setTargetRotateOrder(size_t tg_i,unsigned int tro)234 void setTargetRotateOrder(size_t tg_i,unsigned int tro) 235 { 236 if(tro == 0) return; 237 fprintf(mFile,"\tsetAttr \".tg[%i].tro\" %i;\n", tg_i,tro); 238 } setTargetJointOrient(size_t tg_i,const double3 & tjo)239 void setTargetJointOrient(size_t tg_i,const double3& tjo) 240 { 241 fprintf(mFile,"\tsetAttr \".tg[%i].tjo\" -type \"double3\" ",tg_i); 242 tjo.write(mFile); 243 fprintf(mFile,";\n"); 244 } setTargetJointOrientX(size_t tg_i,double tjox)245 void setTargetJointOrientX(size_t tg_i,double tjox) 246 { 247 if(tjox == 0) return; 248 fprintf(mFile,"\tsetAttr \".tg[%i].tjo.tjox\" %f;\n", tg_i,tjox); 249 } setTargetJointOrientY(size_t tg_i,double tjoy)250 void setTargetJointOrientY(size_t tg_i,double tjoy) 251 { 252 if(tjoy == 0) return; 253 fprintf(mFile,"\tsetAttr \".tg[%i].tjo.tjoy\" %f;\n", tg_i,tjoy); 254 } setTargetJointOrientZ(size_t tg_i,double tjoz)255 void setTargetJointOrientZ(size_t tg_i,double tjoz) 256 { 257 if(tjoz == 0) return; 258 fprintf(mFile,"\tsetAttr \".tg[%i].tjo.tjoz\" %f;\n", tg_i,tjoz); 259 } setTargetOffsetRotate(size_t tg_i,const double3 & tor)260 void setTargetOffsetRotate(size_t tg_i,const double3& tor) 261 { 262 fprintf(mFile,"\tsetAttr \".tg[%i].tor\" -type \"double3\" ",tg_i); 263 tor.write(mFile); 264 fprintf(mFile,";\n"); 265 } setTargetOffsetRotateX(size_t tg_i,double torx)266 void setTargetOffsetRotateX(size_t tg_i,double torx) 267 { 268 if(torx == 0) return; 269 fprintf(mFile,"\tsetAttr \".tg[%i].tor.torx\" %f;\n", tg_i,torx); 270 } setTargetOffsetRotateY(size_t tg_i,double tory)271 void setTargetOffsetRotateY(size_t tg_i,double tory) 272 { 273 if(tory == 0) return; 274 fprintf(mFile,"\tsetAttr \".tg[%i].tor.tory\" %f;\n", tg_i,tory); 275 } setTargetOffsetRotateZ(size_t tg_i,double torz)276 void setTargetOffsetRotateZ(size_t tg_i,double torz) 277 { 278 if(torz == 0) return; 279 fprintf(mFile,"\tsetAttr \".tg[%i].tor.torz\" %f;\n", tg_i,torz); 280 } setTargetScale(size_t tg_i,const double3 & ts)281 void setTargetScale(size_t tg_i,const double3& ts) 282 { 283 fprintf(mFile,"\tsetAttr \".tg[%i].ts\" -type \"double3\" ",tg_i); 284 ts.write(mFile); 285 fprintf(mFile,";\n"); 286 } setTargetScaleX(size_t tg_i,double tsx)287 void setTargetScaleX(size_t tg_i,double tsx) 288 { 289 if(tsx == 1.0) return; 290 fprintf(mFile,"\tsetAttr \".tg[%i].ts.tsx\" %f;\n", tg_i,tsx); 291 } setTargetScaleY(size_t tg_i,double tsy)292 void setTargetScaleY(size_t tg_i,double tsy) 293 { 294 if(tsy == 1.0) return; 295 fprintf(mFile,"\tsetAttr \".tg[%i].ts.tsy\" %f;\n", tg_i,tsy); 296 } setTargetScaleZ(size_t tg_i,double tsz)297 void setTargetScaleZ(size_t tg_i,double tsz) 298 { 299 if(tsz == 1.0) return; 300 fprintf(mFile,"\tsetAttr \".tg[%i].ts.tsz\" %f;\n", tg_i,tsz); 301 } setConstraintParentInverseMatrix(const matrix & cpim)302 void setConstraintParentInverseMatrix(const matrix& cpim) 303 { 304 if(cpim == identity) return; 305 fprintf(mFile,"\tsetAttr \".cpim\" -type \"matrix\" "); 306 cpim.write(mFile); 307 fprintf(mFile,";\n"); 308 } setLastTargetRotate(const double3 & lr)309 void setLastTargetRotate(const double3& lr) 310 { 311 fprintf(mFile,"\tsetAttr \".lr\" -type \"double3\" "); 312 lr.write(mFile); 313 fprintf(mFile,";\n"); 314 } setLastTargetRotateX(double lrx)315 void setLastTargetRotateX(double lrx) 316 { 317 if(lrx == 0) return; 318 fprintf(mFile,"\tsetAttr \".lr.lrx\" %f;\n", lrx); 319 } setLastTargetRotateY(double lry)320 void setLastTargetRotateY(double lry) 321 { 322 if(lry == 0) return; 323 fprintf(mFile,"\tsetAttr \".lr.lry\" %f;\n", lry); 324 } setLastTargetRotateZ(double lrz)325 void setLastTargetRotateZ(double lrz) 326 { 327 if(lrz == 0) return; 328 fprintf(mFile,"\tsetAttr \".lr.lrz\" %f;\n", lrz); 329 } setConstraintRotatePivot(const double3 & crp)330 void setConstraintRotatePivot(const double3& crp) 331 { 332 fprintf(mFile,"\tsetAttr \".crp\" -type \"double3\" "); 333 crp.write(mFile); 334 fprintf(mFile,";\n"); 335 } setConstraintRotatePivotX(double crpx)336 void setConstraintRotatePivotX(double crpx) 337 { 338 if(crpx == 0) return; 339 fprintf(mFile,"\tsetAttr \".crp.crpx\" %f;\n", crpx); 340 } setConstraintRotatePivotY(double crpy)341 void setConstraintRotatePivotY(double crpy) 342 { 343 if(crpy == 0) return; 344 fprintf(mFile,"\tsetAttr \".crp.crpy\" %f;\n", crpy); 345 } setConstraintRotatePivotZ(double crpz)346 void setConstraintRotatePivotZ(double crpz) 347 { 348 if(crpz == 0) return; 349 fprintf(mFile,"\tsetAttr \".crp.crpz\" %f;\n", crpz); 350 } setConstraintRotateTranslate(const double3 & crt)351 void setConstraintRotateTranslate(const double3& crt) 352 { 353 fprintf(mFile,"\tsetAttr \".crt\" -type \"double3\" "); 354 crt.write(mFile); 355 fprintf(mFile,";\n"); 356 } setConstraintRotateTranslateX(double crtx)357 void setConstraintRotateTranslateX(double crtx) 358 { 359 if(crtx == 0) return; 360 fprintf(mFile,"\tsetAttr \".crt.crtx\" %f;\n", crtx); 361 } setConstraintRotateTranslateY(double crty)362 void setConstraintRotateTranslateY(double crty) 363 { 364 if(crty == 0) return; 365 fprintf(mFile,"\tsetAttr \".crt.crty\" %f;\n", crty); 366 } setConstraintRotateTranslateZ(double crtz)367 void setConstraintRotateTranslateZ(double crtz) 368 { 369 if(crtz == 0) return; 370 fprintf(mFile,"\tsetAttr \".crt.crtz\" %f;\n", crtz); 371 } setRestTranslate(const double3 & rst)372 void setRestTranslate(const double3& rst) 373 { 374 if(rst == double3(0.0, 0.0, 0.0)) return; 375 fprintf(mFile,"\tsetAttr \".rst\" -type \"double3\" "); 376 rst.write(mFile); 377 fprintf(mFile,";\n"); 378 } setRestTranslateX(double rtx)379 void setRestTranslateX(double rtx) 380 { 381 if(rtx == 0) return; 382 fprintf(mFile,"\tsetAttr \".rst.rtx\" %f;\n", rtx); 383 } setRestTranslateY(double rty)384 void setRestTranslateY(double rty) 385 { 386 if(rty == 0) return; 387 fprintf(mFile,"\tsetAttr \".rst.rty\" %f;\n", rty); 388 } setRestTranslateZ(double rtz)389 void setRestTranslateZ(double rtz) 390 { 391 if(rtz == 0) return; 392 fprintf(mFile,"\tsetAttr \".rst.rtz\" %f;\n", rtz); 393 } setConstraintRotateOrder(unsigned int cro)394 void setConstraintRotateOrder(unsigned int cro) 395 { 396 if(cro == 0) return; 397 fprintf(mFile,"\tsetAttr \".cro\" %i;\n", cro); 398 } setConstraintJointOrient(const double3 & cjo)399 void setConstraintJointOrient(const double3& cjo) 400 { 401 fprintf(mFile,"\tsetAttr \".cjo\" -type \"double3\" "); 402 cjo.write(mFile); 403 fprintf(mFile,";\n"); 404 } setConstraintJointOrientX(double cjox)405 void setConstraintJointOrientX(double cjox) 406 { 407 if(cjox == 0) return; 408 fprintf(mFile,"\tsetAttr \".cjo.cjox\" %f;\n", cjox); 409 } setConstraintJointOrientY(double cjoy)410 void setConstraintJointOrientY(double cjoy) 411 { 412 if(cjoy == 0) return; 413 fprintf(mFile,"\tsetAttr \".cjo.cjoy\" %f;\n", cjoy); 414 } setConstraintJointOrientZ(double cjoz)415 void setConstraintJointOrientZ(double cjoz) 416 { 417 if(cjoz == 0) return; 418 fprintf(mFile,"\tsetAttr \".cjo.cjoz\" %f;\n", cjoz); 419 } setRestRotate(const double3 & rsrr)420 void setRestRotate(const double3& rsrr) 421 { 422 fprintf(mFile,"\tsetAttr \".rsrr\" -type \"double3\" "); 423 rsrr.write(mFile); 424 fprintf(mFile,";\n"); 425 } setRestRotateX(double rrx)426 void setRestRotateX(double rrx) 427 { 428 if(rrx == 0) return; 429 fprintf(mFile,"\tsetAttr \".rsrr.rrx\" %f;\n", rrx); 430 } setRestRotateY(double rry)431 void setRestRotateY(double rry) 432 { 433 if(rry == 0) return; 434 fprintf(mFile,"\tsetAttr \".rsrr.rry\" %f;\n", rry); 435 } setRestRotateZ(double rrz)436 void setRestRotateZ(double rrz) 437 { 438 if(rrz == 0) return; 439 fprintf(mFile,"\tsetAttr \".rsrr.rrz\" %f;\n", rrz); 440 } setInterpType(unsigned int int_)441 void setInterpType(unsigned int int_) 442 { 443 if(int_ == 1) return; 444 fprintf(mFile,"\tsetAttr \".int\" %i;\n", int_); 445 } setInterpCache(int inc)446 void setInterpCache(int inc) 447 { 448 if(inc == 0) return; 449 fprintf(mFile,"\tsetAttr \".inc\" %i;\n", inc); 450 } getTarget(size_t tg_i)451 void getTarget(size_t tg_i)const 452 { 453 fprintf(mFile,"\"%s.tg[%i]\"",mName.c_str(),tg_i); 454 } getTarget()455 void getTarget()const 456 { 457 458 fprintf(mFile,"\"%s.tg\"",mName.c_str()); 459 } getTargetParentMatrix(size_t tg_i)460 void getTargetParentMatrix(size_t tg_i)const 461 { 462 fprintf(mFile,"\"%s.tg[%i].tpm\"",mName.c_str(),tg_i); 463 } getTargetParentMatrix()464 void getTargetParentMatrix()const 465 { 466 467 fprintf(mFile,"\"%s.tg.tpm\"",mName.c_str()); 468 } getTargetWeight(size_t tg_i)469 void getTargetWeight(size_t tg_i)const 470 { 471 fprintf(mFile,"\"%s.tg[%i].tw\"",mName.c_str(),tg_i); 472 } getTargetWeight()473 void getTargetWeight()const 474 { 475 476 fprintf(mFile,"\"%s.tg.tw\"",mName.c_str()); 477 } getTargetRotateCached(size_t tg_i)478 void getTargetRotateCached(size_t tg_i)const 479 { 480 fprintf(mFile,"\"%s.tg[%i].ctr\"",mName.c_str(),tg_i); 481 } getTargetRotateCached()482 void getTargetRotateCached()const 483 { 484 485 fprintf(mFile,"\"%s.tg.ctr\"",mName.c_str()); 486 } getTargetRotateCachedX(size_t tg_i)487 void getTargetRotateCachedX(size_t tg_i)const 488 { 489 fprintf(mFile,"\"%s.tg[%i].ctr.ctrx\"",mName.c_str(),tg_i); 490 } getTargetRotateCachedX()491 void getTargetRotateCachedX()const 492 { 493 494 fprintf(mFile,"\"%s.tg.ctr.ctrx\"",mName.c_str()); 495 } getTargetRotateCachedY(size_t tg_i)496 void getTargetRotateCachedY(size_t tg_i)const 497 { 498 fprintf(mFile,"\"%s.tg[%i].ctr.ctry\"",mName.c_str(),tg_i); 499 } getTargetRotateCachedY()500 void getTargetRotateCachedY()const 501 { 502 503 fprintf(mFile,"\"%s.tg.ctr.ctry\"",mName.c_str()); 504 } getTargetRotateCachedZ(size_t tg_i)505 void getTargetRotateCachedZ(size_t tg_i)const 506 { 507 fprintf(mFile,"\"%s.tg[%i].ctr.ctrz\"",mName.c_str(),tg_i); 508 } getTargetRotateCachedZ()509 void getTargetRotateCachedZ()const 510 { 511 512 fprintf(mFile,"\"%s.tg.ctr.ctrz\"",mName.c_str()); 513 } getTargetTranslate(size_t tg_i)514 void getTargetTranslate(size_t tg_i)const 515 { 516 fprintf(mFile,"\"%s.tg[%i].tt\"",mName.c_str(),tg_i); 517 } getTargetTranslate()518 void getTargetTranslate()const 519 { 520 521 fprintf(mFile,"\"%s.tg.tt\"",mName.c_str()); 522 } getTargetTranslateX(size_t tg_i)523 void getTargetTranslateX(size_t tg_i)const 524 { 525 fprintf(mFile,"\"%s.tg[%i].tt.ttx\"",mName.c_str(),tg_i); 526 } getTargetTranslateX()527 void getTargetTranslateX()const 528 { 529 530 fprintf(mFile,"\"%s.tg.tt.ttx\"",mName.c_str()); 531 } getTargetTranslateY(size_t tg_i)532 void getTargetTranslateY(size_t tg_i)const 533 { 534 fprintf(mFile,"\"%s.tg[%i].tt.tty\"",mName.c_str(),tg_i); 535 } getTargetTranslateY()536 void getTargetTranslateY()const 537 { 538 539 fprintf(mFile,"\"%s.tg.tt.tty\"",mName.c_str()); 540 } getTargetTranslateZ(size_t tg_i)541 void getTargetTranslateZ(size_t tg_i)const 542 { 543 fprintf(mFile,"\"%s.tg[%i].tt.ttz\"",mName.c_str(),tg_i); 544 } getTargetTranslateZ()545 void getTargetTranslateZ()const 546 { 547 548 fprintf(mFile,"\"%s.tg.tt.ttz\"",mName.c_str()); 549 } getTargetRotatePivot(size_t tg_i)550 void getTargetRotatePivot(size_t tg_i)const 551 { 552 fprintf(mFile,"\"%s.tg[%i].trp\"",mName.c_str(),tg_i); 553 } getTargetRotatePivot()554 void getTargetRotatePivot()const 555 { 556 557 fprintf(mFile,"\"%s.tg.trp\"",mName.c_str()); 558 } getTargetRotatePivotX(size_t tg_i)559 void getTargetRotatePivotX(size_t tg_i)const 560 { 561 fprintf(mFile,"\"%s.tg[%i].trp.trpx\"",mName.c_str(),tg_i); 562 } getTargetRotatePivotX()563 void getTargetRotatePivotX()const 564 { 565 566 fprintf(mFile,"\"%s.tg.trp.trpx\"",mName.c_str()); 567 } getTargetRotatePivotY(size_t tg_i)568 void getTargetRotatePivotY(size_t tg_i)const 569 { 570 fprintf(mFile,"\"%s.tg[%i].trp.trpy\"",mName.c_str(),tg_i); 571 } getTargetRotatePivotY()572 void getTargetRotatePivotY()const 573 { 574 575 fprintf(mFile,"\"%s.tg.trp.trpy\"",mName.c_str()); 576 } getTargetRotatePivotZ(size_t tg_i)577 void getTargetRotatePivotZ(size_t tg_i)const 578 { 579 fprintf(mFile,"\"%s.tg[%i].trp.trpz\"",mName.c_str(),tg_i); 580 } getTargetRotatePivotZ()581 void getTargetRotatePivotZ()const 582 { 583 584 fprintf(mFile,"\"%s.tg.trp.trpz\"",mName.c_str()); 585 } getTargetRotateTranslate(size_t tg_i)586 void getTargetRotateTranslate(size_t tg_i)const 587 { 588 fprintf(mFile,"\"%s.tg[%i].trt\"",mName.c_str(),tg_i); 589 } getTargetRotateTranslate()590 void getTargetRotateTranslate()const 591 { 592 593 fprintf(mFile,"\"%s.tg.trt\"",mName.c_str()); 594 } getTargetRotateTranslateX(size_t tg_i)595 void getTargetRotateTranslateX(size_t tg_i)const 596 { 597 fprintf(mFile,"\"%s.tg[%i].trt.trtx\"",mName.c_str(),tg_i); 598 } getTargetRotateTranslateX()599 void getTargetRotateTranslateX()const 600 { 601 602 fprintf(mFile,"\"%s.tg.trt.trtx\"",mName.c_str()); 603 } getTargetRotateTranslateY(size_t tg_i)604 void getTargetRotateTranslateY(size_t tg_i)const 605 { 606 fprintf(mFile,"\"%s.tg[%i].trt.trty\"",mName.c_str(),tg_i); 607 } getTargetRotateTranslateY()608 void getTargetRotateTranslateY()const 609 { 610 611 fprintf(mFile,"\"%s.tg.trt.trty\"",mName.c_str()); 612 } getTargetRotateTranslateZ(size_t tg_i)613 void getTargetRotateTranslateZ(size_t tg_i)const 614 { 615 fprintf(mFile,"\"%s.tg[%i].trt.trtz\"",mName.c_str(),tg_i); 616 } getTargetRotateTranslateZ()617 void getTargetRotateTranslateZ()const 618 { 619 620 fprintf(mFile,"\"%s.tg.trt.trtz\"",mName.c_str()); 621 } getTargetOffsetTranslate(size_t tg_i)622 void getTargetOffsetTranslate(size_t tg_i)const 623 { 624 fprintf(mFile,"\"%s.tg[%i].tot\"",mName.c_str(),tg_i); 625 } getTargetOffsetTranslate()626 void getTargetOffsetTranslate()const 627 { 628 629 fprintf(mFile,"\"%s.tg.tot\"",mName.c_str()); 630 } getTargetOffsetTranslateX(size_t tg_i)631 void getTargetOffsetTranslateX(size_t tg_i)const 632 { 633 fprintf(mFile,"\"%s.tg[%i].tot.totx\"",mName.c_str(),tg_i); 634 } getTargetOffsetTranslateX()635 void getTargetOffsetTranslateX()const 636 { 637 638 fprintf(mFile,"\"%s.tg.tot.totx\"",mName.c_str()); 639 } getTargetOffsetTranslateY(size_t tg_i)640 void getTargetOffsetTranslateY(size_t tg_i)const 641 { 642 fprintf(mFile,"\"%s.tg[%i].tot.toty\"",mName.c_str(),tg_i); 643 } getTargetOffsetTranslateY()644 void getTargetOffsetTranslateY()const 645 { 646 647 fprintf(mFile,"\"%s.tg.tot.toty\"",mName.c_str()); 648 } getTargetOffsetTranslateZ(size_t tg_i)649 void getTargetOffsetTranslateZ(size_t tg_i)const 650 { 651 fprintf(mFile,"\"%s.tg[%i].tot.totz\"",mName.c_str(),tg_i); 652 } getTargetOffsetTranslateZ()653 void getTargetOffsetTranslateZ()const 654 { 655 656 fprintf(mFile,"\"%s.tg.tot.totz\"",mName.c_str()); 657 } getTargetRotate(size_t tg_i)658 void getTargetRotate(size_t tg_i)const 659 { 660 fprintf(mFile,"\"%s.tg[%i].tr\"",mName.c_str(),tg_i); 661 } getTargetRotate()662 void getTargetRotate()const 663 { 664 665 fprintf(mFile,"\"%s.tg.tr\"",mName.c_str()); 666 } getTargetRotateX(size_t tg_i)667 void getTargetRotateX(size_t tg_i)const 668 { 669 fprintf(mFile,"\"%s.tg[%i].tr.trx\"",mName.c_str(),tg_i); 670 } getTargetRotateX()671 void getTargetRotateX()const 672 { 673 674 fprintf(mFile,"\"%s.tg.tr.trx\"",mName.c_str()); 675 } getTargetRotateY(size_t tg_i)676 void getTargetRotateY(size_t tg_i)const 677 { 678 fprintf(mFile,"\"%s.tg[%i].tr.try\"",mName.c_str(),tg_i); 679 } getTargetRotateY()680 void getTargetRotateY()const 681 { 682 683 fprintf(mFile,"\"%s.tg.tr.try\"",mName.c_str()); 684 } getTargetRotateZ(size_t tg_i)685 void getTargetRotateZ(size_t tg_i)const 686 { 687 fprintf(mFile,"\"%s.tg[%i].tr.trz\"",mName.c_str(),tg_i); 688 } getTargetRotateZ()689 void getTargetRotateZ()const 690 { 691 692 fprintf(mFile,"\"%s.tg.tr.trz\"",mName.c_str()); 693 } getTargetRotateOrder(size_t tg_i)694 void getTargetRotateOrder(size_t tg_i)const 695 { 696 fprintf(mFile,"\"%s.tg[%i].tro\"",mName.c_str(),tg_i); 697 } getTargetRotateOrder()698 void getTargetRotateOrder()const 699 { 700 701 fprintf(mFile,"\"%s.tg.tro\"",mName.c_str()); 702 } getTargetJointOrient(size_t tg_i)703 void getTargetJointOrient(size_t tg_i)const 704 { 705 fprintf(mFile,"\"%s.tg[%i].tjo\"",mName.c_str(),tg_i); 706 } getTargetJointOrient()707 void getTargetJointOrient()const 708 { 709 710 fprintf(mFile,"\"%s.tg.tjo\"",mName.c_str()); 711 } getTargetJointOrientX(size_t tg_i)712 void getTargetJointOrientX(size_t tg_i)const 713 { 714 fprintf(mFile,"\"%s.tg[%i].tjo.tjox\"",mName.c_str(),tg_i); 715 } getTargetJointOrientX()716 void getTargetJointOrientX()const 717 { 718 719 fprintf(mFile,"\"%s.tg.tjo.tjox\"",mName.c_str()); 720 } getTargetJointOrientY(size_t tg_i)721 void getTargetJointOrientY(size_t tg_i)const 722 { 723 fprintf(mFile,"\"%s.tg[%i].tjo.tjoy\"",mName.c_str(),tg_i); 724 } getTargetJointOrientY()725 void getTargetJointOrientY()const 726 { 727 728 fprintf(mFile,"\"%s.tg.tjo.tjoy\"",mName.c_str()); 729 } getTargetJointOrientZ(size_t tg_i)730 void getTargetJointOrientZ(size_t tg_i)const 731 { 732 fprintf(mFile,"\"%s.tg[%i].tjo.tjoz\"",mName.c_str(),tg_i); 733 } getTargetJointOrientZ()734 void getTargetJointOrientZ()const 735 { 736 737 fprintf(mFile,"\"%s.tg.tjo.tjoz\"",mName.c_str()); 738 } getTargetOffsetRotate(size_t tg_i)739 void getTargetOffsetRotate(size_t tg_i)const 740 { 741 fprintf(mFile,"\"%s.tg[%i].tor\"",mName.c_str(),tg_i); 742 } getTargetOffsetRotate()743 void getTargetOffsetRotate()const 744 { 745 746 fprintf(mFile,"\"%s.tg.tor\"",mName.c_str()); 747 } getTargetOffsetRotateX(size_t tg_i)748 void getTargetOffsetRotateX(size_t tg_i)const 749 { 750 fprintf(mFile,"\"%s.tg[%i].tor.torx\"",mName.c_str(),tg_i); 751 } getTargetOffsetRotateX()752 void getTargetOffsetRotateX()const 753 { 754 755 fprintf(mFile,"\"%s.tg.tor.torx\"",mName.c_str()); 756 } getTargetOffsetRotateY(size_t tg_i)757 void getTargetOffsetRotateY(size_t tg_i)const 758 { 759 fprintf(mFile,"\"%s.tg[%i].tor.tory\"",mName.c_str(),tg_i); 760 } getTargetOffsetRotateY()761 void getTargetOffsetRotateY()const 762 { 763 764 fprintf(mFile,"\"%s.tg.tor.tory\"",mName.c_str()); 765 } getTargetOffsetRotateZ(size_t tg_i)766 void getTargetOffsetRotateZ(size_t tg_i)const 767 { 768 fprintf(mFile,"\"%s.tg[%i].tor.torz\"",mName.c_str(),tg_i); 769 } getTargetOffsetRotateZ()770 void getTargetOffsetRotateZ()const 771 { 772 773 fprintf(mFile,"\"%s.tg.tor.torz\"",mName.c_str()); 774 } getTargetScale(size_t tg_i)775 void getTargetScale(size_t tg_i)const 776 { 777 fprintf(mFile,"\"%s.tg[%i].ts\"",mName.c_str(),tg_i); 778 } getTargetScale()779 void getTargetScale()const 780 { 781 782 fprintf(mFile,"\"%s.tg.ts\"",mName.c_str()); 783 } getTargetScaleX(size_t tg_i)784 void getTargetScaleX(size_t tg_i)const 785 { 786 fprintf(mFile,"\"%s.tg[%i].ts.tsx\"",mName.c_str(),tg_i); 787 } getTargetScaleX()788 void getTargetScaleX()const 789 { 790 791 fprintf(mFile,"\"%s.tg.ts.tsx\"",mName.c_str()); 792 } getTargetScaleY(size_t tg_i)793 void getTargetScaleY(size_t tg_i)const 794 { 795 fprintf(mFile,"\"%s.tg[%i].ts.tsy\"",mName.c_str(),tg_i); 796 } getTargetScaleY()797 void getTargetScaleY()const 798 { 799 800 fprintf(mFile,"\"%s.tg.ts.tsy\"",mName.c_str()); 801 } getTargetScaleZ(size_t tg_i)802 void getTargetScaleZ(size_t tg_i)const 803 { 804 fprintf(mFile,"\"%s.tg[%i].ts.tsz\"",mName.c_str(),tg_i); 805 } getTargetScaleZ()806 void getTargetScaleZ()const 807 { 808 809 fprintf(mFile,"\"%s.tg.ts.tsz\"",mName.c_str()); 810 } getConstraintParentInverseMatrix()811 void getConstraintParentInverseMatrix()const 812 { 813 fprintf(mFile,"\"%s.cpim\"",mName.c_str()); 814 } getLastTargetRotate()815 void getLastTargetRotate()const 816 { 817 fprintf(mFile,"\"%s.lr\"",mName.c_str()); 818 } getLastTargetRotateX()819 void getLastTargetRotateX()const 820 { 821 fprintf(mFile,"\"%s.lr.lrx\"",mName.c_str()); 822 } getLastTargetRotateY()823 void getLastTargetRotateY()const 824 { 825 fprintf(mFile,"\"%s.lr.lry\"",mName.c_str()); 826 } getLastTargetRotateZ()827 void getLastTargetRotateZ()const 828 { 829 fprintf(mFile,"\"%s.lr.lrz\"",mName.c_str()); 830 } getConstraintRotatePivot()831 void getConstraintRotatePivot()const 832 { 833 fprintf(mFile,"\"%s.crp\"",mName.c_str()); 834 } getConstraintRotatePivotX()835 void getConstraintRotatePivotX()const 836 { 837 fprintf(mFile,"\"%s.crp.crpx\"",mName.c_str()); 838 } getConstraintRotatePivotY()839 void getConstraintRotatePivotY()const 840 { 841 fprintf(mFile,"\"%s.crp.crpy\"",mName.c_str()); 842 } getConstraintRotatePivotZ()843 void getConstraintRotatePivotZ()const 844 { 845 fprintf(mFile,"\"%s.crp.crpz\"",mName.c_str()); 846 } getConstraintRotateTranslate()847 void getConstraintRotateTranslate()const 848 { 849 fprintf(mFile,"\"%s.crt\"",mName.c_str()); 850 } getConstraintRotateTranslateX()851 void getConstraintRotateTranslateX()const 852 { 853 fprintf(mFile,"\"%s.crt.crtx\"",mName.c_str()); 854 } getConstraintRotateTranslateY()855 void getConstraintRotateTranslateY()const 856 { 857 fprintf(mFile,"\"%s.crt.crty\"",mName.c_str()); 858 } getConstraintRotateTranslateZ()859 void getConstraintRotateTranslateZ()const 860 { 861 fprintf(mFile,"\"%s.crt.crtz\"",mName.c_str()); 862 } getConstraintTranslate()863 void getConstraintTranslate()const 864 { 865 fprintf(mFile,"\"%s.ct\"",mName.c_str()); 866 } getConstraintTranslateX()867 void getConstraintTranslateX()const 868 { 869 fprintf(mFile,"\"%s.ct.ctx\"",mName.c_str()); 870 } getConstraintTranslateY()871 void getConstraintTranslateY()const 872 { 873 fprintf(mFile,"\"%s.ct.cty\"",mName.c_str()); 874 } getConstraintTranslateZ()875 void getConstraintTranslateZ()const 876 { 877 fprintf(mFile,"\"%s.ct.ctz\"",mName.c_str()); 878 } getRestTranslate()879 void getRestTranslate()const 880 { 881 fprintf(mFile,"\"%s.rst\"",mName.c_str()); 882 } getRestTranslateX()883 void getRestTranslateX()const 884 { 885 fprintf(mFile,"\"%s.rst.rtx\"",mName.c_str()); 886 } getRestTranslateY()887 void getRestTranslateY()const 888 { 889 fprintf(mFile,"\"%s.rst.rty\"",mName.c_str()); 890 } getRestTranslateZ()891 void getRestTranslateZ()const 892 { 893 fprintf(mFile,"\"%s.rst.rtz\"",mName.c_str()); 894 } getConstraintRotateOrder()895 void getConstraintRotateOrder()const 896 { 897 fprintf(mFile,"\"%s.cro\"",mName.c_str()); 898 } getConstraintJointOrient()899 void getConstraintJointOrient()const 900 { 901 fprintf(mFile,"\"%s.cjo\"",mName.c_str()); 902 } getConstraintJointOrientX()903 void getConstraintJointOrientX()const 904 { 905 fprintf(mFile,"\"%s.cjo.cjox\"",mName.c_str()); 906 } getConstraintJointOrientY()907 void getConstraintJointOrientY()const 908 { 909 fprintf(mFile,"\"%s.cjo.cjoy\"",mName.c_str()); 910 } getConstraintJointOrientZ()911 void getConstraintJointOrientZ()const 912 { 913 fprintf(mFile,"\"%s.cjo.cjoz\"",mName.c_str()); 914 } getConstraintRotate()915 void getConstraintRotate()const 916 { 917 fprintf(mFile,"\"%s.cr\"",mName.c_str()); 918 } getConstraintRotateX()919 void getConstraintRotateX()const 920 { 921 fprintf(mFile,"\"%s.cr.crx\"",mName.c_str()); 922 } getConstraintRotateY()923 void getConstraintRotateY()const 924 { 925 fprintf(mFile,"\"%s.cr.cry\"",mName.c_str()); 926 } getConstraintRotateZ()927 void getConstraintRotateZ()const 928 { 929 fprintf(mFile,"\"%s.cr.crz\"",mName.c_str()); 930 } getRestRotate()931 void getRestRotate()const 932 { 933 fprintf(mFile,"\"%s.rsrr\"",mName.c_str()); 934 } getRestRotateX()935 void getRestRotateX()const 936 { 937 fprintf(mFile,"\"%s.rsrr.rrx\"",mName.c_str()); 938 } getRestRotateY()939 void getRestRotateY()const 940 { 941 fprintf(mFile,"\"%s.rsrr.rry\"",mName.c_str()); 942 } getRestRotateZ()943 void getRestRotateZ()const 944 { 945 fprintf(mFile,"\"%s.rsrr.rrz\"",mName.c_str()); 946 } getInterpType()947 void getInterpType()const 948 { 949 fprintf(mFile,"\"%s.int\"",mName.c_str()); 950 } getInterpCache()951 void getInterpCache()const 952 { 953 fprintf(mFile,"\"%s.inc\"",mName.c_str()); 954 } 955 protected: 956 ParentConstraint(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) Constraint(file,name,parent,nodeType,shared,create)957 :Constraint(file, name, parent, nodeType, shared, create) {} 958 959 }; 960 }//namespace MayaDM 961 #endif//__MayaDM_PARENTCONSTRAINT_H__ 962