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