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_PARTICLECLOUD_H__ 11 #define __MayaDM_PARTICLECLOUD_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMDependNode.h" 15 namespace MayaDM 16 { 17 class ParticleCloud : public DependNode 18 { 19 public: 20 public: 21 ParticleCloud()22 ParticleCloud():DependNode(){} 23 ParticleCloud(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 24 :DependNode(file, name, parent, "particleCloud", shared, create){} ~ParticleCloud()25 virtual ~ParticleCloud(){} 26 setColor(const float3 & c)27 void setColor(const float3& c) 28 { 29 fprintf(mFile,"\tsetAttr \".c\" -type \"float3\" "); 30 c.write(mFile); 31 fprintf(mFile,";\n"); 32 } setColorR(float cr)33 void setColorR(float cr) 34 { 35 if(cr == 0.0) return; 36 fprintf(mFile,"\tsetAttr \".c.cr\" %f;\n", cr); 37 } setColorG(float cg)38 void setColorG(float cg) 39 { 40 if(cg == 0.58824) return; 41 fprintf(mFile,"\tsetAttr \".c.cg\" %f;\n", cg); 42 } setColorB(float cb)43 void setColorB(float cb) 44 { 45 if(cb == 0.644) return; 46 fprintf(mFile,"\tsetAttr \".c.cb\" %f;\n", cb); 47 } setTransparency(const float3 & t)48 void setTransparency(const float3& t) 49 { 50 fprintf(mFile,"\tsetAttr \".t\" -type \"float3\" "); 51 t.write(mFile); 52 fprintf(mFile,";\n"); 53 } setTransparencyR(float tr)54 void setTransparencyR(float tr) 55 { 56 if(tr == 0.5) return; 57 fprintf(mFile,"\tsetAttr \".t.tr\" %f;\n", tr); 58 } setTransparencyG(float tg)59 void setTransparencyG(float tg) 60 { 61 if(tg == 0.5) return; 62 fprintf(mFile,"\tsetAttr \".t.tg\" %f;\n", tg); 63 } setTransparencyB(float tb)64 void setTransparencyB(float tb) 65 { 66 if(tb == 0.5) return; 67 fprintf(mFile,"\tsetAttr \".t.tb\" %f;\n", tb); 68 } setIncandescence(const float3 & i_)69 void setIncandescence(const float3& i_) 70 { 71 fprintf(mFile,"\tsetAttr \".i\" -type \"float3\" "); 72 i_.write(mFile); 73 fprintf(mFile,";\n"); 74 } setIncandescenceR(float ir)75 void setIncandescenceR(float ir) 76 { 77 if(ir == 0.0) return; 78 fprintf(mFile,"\tsetAttr \".i.ir\" %f;\n", ir); 79 } setIncandescenceG(float ig)80 void setIncandescenceG(float ig) 81 { 82 if(ig == 0.0) return; 83 fprintf(mFile,"\tsetAttr \".i.ig\" %f;\n", ig); 84 } setIncandescenceB(float ib)85 void setIncandescenceB(float ib) 86 { 87 if(ib == 0.0) return; 88 fprintf(mFile,"\tsetAttr \".i.ib\" %f;\n", ib); 89 } setDensity(float d)90 void setDensity(float d) 91 { 92 if(d == 1.0) return; 93 fprintf(mFile,"\tsetAttr \".d\" %f;\n", d); 94 } setGlowIntensity(float gi)95 void setGlowIntensity(float gi) 96 { 97 if(gi == 0.0) return; 98 fprintf(mFile,"\tsetAttr \".gi\" %f;\n", gi); 99 } setNoise(float n)100 void setNoise(float n) 101 { 102 if(n == 0.75) return; 103 fprintf(mFile,"\tsetAttr \".n\" %f;\n", n); 104 } setNoiseFreq(float nf)105 void setNoiseFreq(float nf) 106 { 107 if(nf == 0.15) return; 108 fprintf(mFile,"\tsetAttr \".nf\" %f;\n", nf); 109 } setNoiseAspect(float na)110 void setNoiseAspect(float na) 111 { 112 if(na == 0.0) return; 113 fprintf(mFile,"\tsetAttr \".na\" %f;\n", na); 114 } setBlobMap(const float3 & m)115 void setBlobMap(const float3& m) 116 { 117 fprintf(mFile,"\tsetAttr \".m\" -type \"float3\" "); 118 m.write(mFile); 119 fprintf(mFile,";\n"); 120 } setBlobMapR(float mr)121 void setBlobMapR(float mr) 122 { 123 if(mr == 1.0) return; 124 fprintf(mFile,"\tsetAttr \".m.mr\" %f;\n", mr); 125 } setBlobMapG(float mg)126 void setBlobMapG(float mg) 127 { 128 if(mg == 1.0) return; 129 fprintf(mFile,"\tsetAttr \".m.mg\" %f;\n", mg); 130 } setBlobMapB(float mb)131 void setBlobMapB(float mb) 132 { 133 if(mb == 1.0) return; 134 fprintf(mFile,"\tsetAttr \".m.mb\" %f;\n", mb); 135 } setTranslucenceCoeff(float tc)136 void setTranslucenceCoeff(float tc) 137 { 138 if(tc == 0.0) return; 139 fprintf(mFile,"\tsetAttr \".tc\" %f;\n", tc); 140 } setDiffuseCoeff(float dc)141 void setDiffuseCoeff(float dc) 142 { 143 if(dc == 0.0) return; 144 fprintf(mFile,"\tsetAttr \".dc\" %f;\n", dc); 145 } setSurfaceShadingShadow(bool sss)146 void setSurfaceShadingShadow(bool sss) 147 { 148 if(sss == false) return; 149 fprintf(mFile,"\tsetAttr \".sss\" %i;\n", sss); 150 } setSurfaceColor(const float3 & sc)151 void setSurfaceColor(const float3& sc) 152 { 153 fprintf(mFile,"\tsetAttr \".sc\" -type \"float3\" "); 154 sc.write(mFile); 155 fprintf(mFile,";\n"); 156 } setSurfaceColorR(float scr)157 void setSurfaceColorR(float scr) 158 { 159 if(scr == 0.4) return; 160 fprintf(mFile,"\tsetAttr \".sc.scr\" %f;\n", scr); 161 } setSurfaceColorG(float scg)162 void setSurfaceColorG(float scg) 163 { 164 if(scg == 0.4) return; 165 fprintf(mFile,"\tsetAttr \".sc.scg\" %f;\n", scg); 166 } setSurfaceColorB(float scb)167 void setSurfaceColorB(float scb) 168 { 169 if(scb == 0.4) return; 170 fprintf(mFile,"\tsetAttr \".sc.scb\" %f;\n", scb); 171 } setSolidCoreSize(float scs)172 void setSolidCoreSize(float scs) 173 { 174 if(scs == 0.0) return; 175 fprintf(mFile,"\tsetAttr \".scs\" %f;\n", scs); 176 } setTranslucence(float trsl)177 void setTranslucence(float trsl) 178 { 179 if(trsl == 0.5) return; 180 fprintf(mFile,"\tsetAttr \".trsl\" %f;\n", trsl); 181 } setNoiseAnimRate(float nanr)182 void setNoiseAnimRate(float nanr) 183 { 184 if(nanr == 0.0) return; 185 fprintf(mFile,"\tsetAttr \".nanr\" %f;\n", nanr); 186 } setRoundness(float rdns)187 void setRoundness(float rdns) 188 { 189 if(rdns == 1.0) return; 190 fprintf(mFile,"\tsetAttr \".rdns\" %f;\n", rdns); 191 } setFilterRadius(float flrs)192 void setFilterRadius(float flrs) 193 { 194 if(flrs == 0.0) return; 195 fprintf(mFile,"\tsetAttr \".flrs\" %f;\n", flrs); 196 } setRenderState(int rdst)197 void setRenderState(int rdst) 198 { 199 if(rdst == 0) return; 200 fprintf(mFile,"\tsetAttr \".rdst\" %i;\n", rdst); 201 } getOutParticleEmission()202 void getOutParticleEmission()const 203 { 204 fprintf(mFile,"\"%s.oe\"",mName.c_str()); 205 } getOutParticleEmissionR()206 void getOutParticleEmissionR()const 207 { 208 fprintf(mFile,"\"%s.oe.oer\"",mName.c_str()); 209 } getOutParticleEmissionG()210 void getOutParticleEmissionG()const 211 { 212 fprintf(mFile,"\"%s.oe.oeg\"",mName.c_str()); 213 } getOutParticleEmissionB()214 void getOutParticleEmissionB()const 215 { 216 fprintf(mFile,"\"%s.oe.oeb\"",mName.c_str()); 217 } getOutColor()218 void getOutColor()const 219 { 220 fprintf(mFile,"\"%s.oi\"",mName.c_str()); 221 } getOutColorR()222 void getOutColorR()const 223 { 224 fprintf(mFile,"\"%s.oi.oir\"",mName.c_str()); 225 } getOutColorG()226 void getOutColorG()const 227 { 228 fprintf(mFile,"\"%s.oi.oig\"",mName.c_str()); 229 } getOutColorB()230 void getOutColorB()const 231 { 232 fprintf(mFile,"\"%s.oi.oib\"",mName.c_str()); 233 } getOutGlowColor()234 void getOutGlowColor()const 235 { 236 fprintf(mFile,"\"%s.ogi\"",mName.c_str()); 237 } getOutGlowColorR()238 void getOutGlowColorR()const 239 { 240 fprintf(mFile,"\"%s.ogi.ogr\"",mName.c_str()); 241 } getOutGlowColorG()242 void getOutGlowColorG()const 243 { 244 fprintf(mFile,"\"%s.ogi.ogg\"",mName.c_str()); 245 } getOutGlowColorB()246 void getOutGlowColorB()const 247 { 248 fprintf(mFile,"\"%s.ogi.ogb\"",mName.c_str()); 249 } getOutTransparency()250 void getOutTransparency()const 251 { 252 fprintf(mFile,"\"%s.ot\"",mName.c_str()); 253 } getOutTransparencyR()254 void getOutTransparencyR()const 255 { 256 fprintf(mFile,"\"%s.ot.otr\"",mName.c_str()); 257 } getOutTransparencyG()258 void getOutTransparencyG()const 259 { 260 fprintf(mFile,"\"%s.ot.otg\"",mName.c_str()); 261 } getOutTransparencyB()262 void getOutTransparencyB()const 263 { 264 fprintf(mFile,"\"%s.ot.otb\"",mName.c_str()); 265 } getColor()266 void getColor()const 267 { 268 fprintf(mFile,"\"%s.c\"",mName.c_str()); 269 } getColorR()270 void getColorR()const 271 { 272 fprintf(mFile,"\"%s.c.cr\"",mName.c_str()); 273 } getColorG()274 void getColorG()const 275 { 276 fprintf(mFile,"\"%s.c.cg\"",mName.c_str()); 277 } getColorB()278 void getColorB()const 279 { 280 fprintf(mFile,"\"%s.c.cb\"",mName.c_str()); 281 } getTransparency()282 void getTransparency()const 283 { 284 fprintf(mFile,"\"%s.t\"",mName.c_str()); 285 } getTransparencyR()286 void getTransparencyR()const 287 { 288 fprintf(mFile,"\"%s.t.tr\"",mName.c_str()); 289 } getTransparencyG()290 void getTransparencyG()const 291 { 292 fprintf(mFile,"\"%s.t.tg\"",mName.c_str()); 293 } getTransparencyB()294 void getTransparencyB()const 295 { 296 fprintf(mFile,"\"%s.t.tb\"",mName.c_str()); 297 } getIncandescence()298 void getIncandescence()const 299 { 300 fprintf(mFile,"\"%s.i\"",mName.c_str()); 301 } getIncandescenceR()302 void getIncandescenceR()const 303 { 304 fprintf(mFile,"\"%s.i.ir\"",mName.c_str()); 305 } getIncandescenceG()306 void getIncandescenceG()const 307 { 308 fprintf(mFile,"\"%s.i.ig\"",mName.c_str()); 309 } getIncandescenceB()310 void getIncandescenceB()const 311 { 312 fprintf(mFile,"\"%s.i.ib\"",mName.c_str()); 313 } getDensity()314 void getDensity()const 315 { 316 fprintf(mFile,"\"%s.d\"",mName.c_str()); 317 } getGlowIntensity()318 void getGlowIntensity()const 319 { 320 fprintf(mFile,"\"%s.gi\"",mName.c_str()); 321 } getNoise()322 void getNoise()const 323 { 324 fprintf(mFile,"\"%s.n\"",mName.c_str()); 325 } getNoiseFreq()326 void getNoiseFreq()const 327 { 328 fprintf(mFile,"\"%s.nf\"",mName.c_str()); 329 } getNoiseAspect()330 void getNoiseAspect()const 331 { 332 fprintf(mFile,"\"%s.na\"",mName.c_str()); 333 } getParticleWeight()334 void getParticleWeight()const 335 { 336 fprintf(mFile,"\"%s.w\"",mName.c_str()); 337 } getParticleEmission()338 void getParticleEmission()const 339 { 340 fprintf(mFile,"\"%s.e\"",mName.c_str()); 341 } getParticleEmissionR()342 void getParticleEmissionR()const 343 { 344 fprintf(mFile,"\"%s.e.er\"",mName.c_str()); 345 } getParticleEmissionG()346 void getParticleEmissionG()const 347 { 348 fprintf(mFile,"\"%s.e.eg\"",mName.c_str()); 349 } getParticleEmissionB()350 void getParticleEmissionB()const 351 { 352 fprintf(mFile,"\"%s.e.eb\"",mName.c_str()); 353 } getBlobMap()354 void getBlobMap()const 355 { 356 fprintf(mFile,"\"%s.m\"",mName.c_str()); 357 } getBlobMapR()358 void getBlobMapR()const 359 { 360 fprintf(mFile,"\"%s.m.mr\"",mName.c_str()); 361 } getBlobMapG()362 void getBlobMapG()const 363 { 364 fprintf(mFile,"\"%s.m.mg\"",mName.c_str()); 365 } getBlobMapB()366 void getBlobMapB()const 367 { 368 fprintf(mFile,"\"%s.m.mb\"",mName.c_str()); 369 } getLightDataArray(size_t ltd_i)370 void getLightDataArray(size_t ltd_i)const 371 { 372 fprintf(mFile,"\"%s.ltd[%i]\"",mName.c_str(),ltd_i); 373 } getLightDataArray()374 void getLightDataArray()const 375 { 376 377 fprintf(mFile,"\"%s.ltd\"",mName.c_str()); 378 } getLightDirection(size_t ltd_i)379 void getLightDirection(size_t ltd_i)const 380 { 381 fprintf(mFile,"\"%s.ltd[%i].ld\"",mName.c_str(),ltd_i); 382 } getLightDirection()383 void getLightDirection()const 384 { 385 386 fprintf(mFile,"\"%s.ltd.ld\"",mName.c_str()); 387 } getLightDirectionX(size_t ltd_i)388 void getLightDirectionX(size_t ltd_i)const 389 { 390 fprintf(mFile,"\"%s.ltd[%i].ld.ldx\"",mName.c_str(),ltd_i); 391 } getLightDirectionX()392 void getLightDirectionX()const 393 { 394 395 fprintf(mFile,"\"%s.ltd.ld.ldx\"",mName.c_str()); 396 } getLightDirectionY(size_t ltd_i)397 void getLightDirectionY(size_t ltd_i)const 398 { 399 fprintf(mFile,"\"%s.ltd[%i].ld.ldy\"",mName.c_str(),ltd_i); 400 } getLightDirectionY()401 void getLightDirectionY()const 402 { 403 404 fprintf(mFile,"\"%s.ltd.ld.ldy\"",mName.c_str()); 405 } getLightDirectionZ(size_t ltd_i)406 void getLightDirectionZ(size_t ltd_i)const 407 { 408 fprintf(mFile,"\"%s.ltd[%i].ld.ldz\"",mName.c_str(),ltd_i); 409 } getLightDirectionZ()410 void getLightDirectionZ()const 411 { 412 413 fprintf(mFile,"\"%s.ltd.ld.ldz\"",mName.c_str()); 414 } getLightIntensity(size_t ltd_i)415 void getLightIntensity(size_t ltd_i)const 416 { 417 fprintf(mFile,"\"%s.ltd[%i].li\"",mName.c_str(),ltd_i); 418 } getLightIntensity()419 void getLightIntensity()const 420 { 421 422 fprintf(mFile,"\"%s.ltd.li\"",mName.c_str()); 423 } getLightIntensityR(size_t ltd_i)424 void getLightIntensityR(size_t ltd_i)const 425 { 426 fprintf(mFile,"\"%s.ltd[%i].li.lir\"",mName.c_str(),ltd_i); 427 } getLightIntensityR()428 void getLightIntensityR()const 429 { 430 431 fprintf(mFile,"\"%s.ltd.li.lir\"",mName.c_str()); 432 } getLightIntensityG(size_t ltd_i)433 void getLightIntensityG(size_t ltd_i)const 434 { 435 fprintf(mFile,"\"%s.ltd[%i].li.lig\"",mName.c_str(),ltd_i); 436 } getLightIntensityG()437 void getLightIntensityG()const 438 { 439 440 fprintf(mFile,"\"%s.ltd.li.lig\"",mName.c_str()); 441 } getLightIntensityB(size_t ltd_i)442 void getLightIntensityB(size_t ltd_i)const 443 { 444 fprintf(mFile,"\"%s.ltd[%i].li.lib\"",mName.c_str(),ltd_i); 445 } getLightIntensityB()446 void getLightIntensityB()const 447 { 448 449 fprintf(mFile,"\"%s.ltd.li.lib\"",mName.c_str()); 450 } getLightAmbient(size_t ltd_i)451 void getLightAmbient(size_t ltd_i)const 452 { 453 fprintf(mFile,"\"%s.ltd[%i].la\"",mName.c_str(),ltd_i); 454 } getLightAmbient()455 void getLightAmbient()const 456 { 457 458 fprintf(mFile,"\"%s.ltd.la\"",mName.c_str()); 459 } getLightDiffuse(size_t ltd_i)460 void getLightDiffuse(size_t ltd_i)const 461 { 462 fprintf(mFile,"\"%s.ltd[%i].ldf\"",mName.c_str(),ltd_i); 463 } getLightDiffuse()464 void getLightDiffuse()const 465 { 466 467 fprintf(mFile,"\"%s.ltd.ldf\"",mName.c_str()); 468 } getLightSpecular(size_t ltd_i)469 void getLightSpecular(size_t ltd_i)const 470 { 471 fprintf(mFile,"\"%s.ltd[%i].ls\"",mName.c_str(),ltd_i); 472 } getLightSpecular()473 void getLightSpecular()const 474 { 475 476 fprintf(mFile,"\"%s.ltd.ls\"",mName.c_str()); 477 } getLightShadowFraction(size_t ltd_i)478 void getLightShadowFraction(size_t ltd_i)const 479 { 480 fprintf(mFile,"\"%s.ltd[%i].lsf\"",mName.c_str(),ltd_i); 481 } getLightShadowFraction()482 void getLightShadowFraction()const 483 { 484 485 fprintf(mFile,"\"%s.ltd.lsf\"",mName.c_str()); 486 } getPreShadowIntensity(size_t ltd_i)487 void getPreShadowIntensity(size_t ltd_i)const 488 { 489 fprintf(mFile,"\"%s.ltd[%i].psi\"",mName.c_str(),ltd_i); 490 } getPreShadowIntensity()491 void getPreShadowIntensity()const 492 { 493 494 fprintf(mFile,"\"%s.ltd.psi\"",mName.c_str()); 495 } getLightBlindData(size_t ltd_i)496 void getLightBlindData(size_t ltd_i)const 497 { 498 fprintf(mFile,"\"%s.ltd[%i].lbd\"",mName.c_str(),ltd_i); 499 } getLightBlindData()500 void getLightBlindData()const 501 { 502 503 fprintf(mFile,"\"%s.ltd.lbd\"",mName.c_str()); 504 } getPointObj()505 void getPointObj()const 506 { 507 fprintf(mFile,"\"%s.p\"",mName.c_str()); 508 } getPointObjX()509 void getPointObjX()const 510 { 511 fprintf(mFile,"\"%s.p.px\"",mName.c_str()); 512 } getPointObjY()513 void getPointObjY()const 514 { 515 fprintf(mFile,"\"%s.p.py\"",mName.c_str()); 516 } getPointObjZ()517 void getPointObjZ()const 518 { 519 fprintf(mFile,"\"%s.p.pz\"",mName.c_str()); 520 } getNormalCamera()521 void getNormalCamera()const 522 { 523 fprintf(mFile,"\"%s.nc\"",mName.c_str()); 524 } getNormalCameraX()525 void getNormalCameraX()const 526 { 527 fprintf(mFile,"\"%s.nc.ncx\"",mName.c_str()); 528 } getNormalCameraY()529 void getNormalCameraY()const 530 { 531 fprintf(mFile,"\"%s.nc.ncy\"",mName.c_str()); 532 } getNormalCameraZ()533 void getNormalCameraZ()const 534 { 535 fprintf(mFile,"\"%s.nc.ncz\"",mName.c_str()); 536 } getTranslucenceCoeff()537 void getTranslucenceCoeff()const 538 { 539 fprintf(mFile,"\"%s.tc\"",mName.c_str()); 540 } getDiffuseCoeff()541 void getDiffuseCoeff()const 542 { 543 fprintf(mFile,"\"%s.dc\"",mName.c_str()); 544 } getSurfaceShadingShadow()545 void getSurfaceShadingShadow()const 546 { 547 fprintf(mFile,"\"%s.sss\"",mName.c_str()); 548 } getSurfaceColor()549 void getSurfaceColor()const 550 { 551 fprintf(mFile,"\"%s.sc\"",mName.c_str()); 552 } getSurfaceColorR()553 void getSurfaceColorR()const 554 { 555 fprintf(mFile,"\"%s.sc.scr\"",mName.c_str()); 556 } getSurfaceColorG()557 void getSurfaceColorG()const 558 { 559 fprintf(mFile,"\"%s.sc.scg\"",mName.c_str()); 560 } getSurfaceColorB()561 void getSurfaceColorB()const 562 { 563 fprintf(mFile,"\"%s.sc.scb\"",mName.c_str()); 564 } getSolidCoreSize()565 void getSolidCoreSize()const 566 { 567 fprintf(mFile,"\"%s.scs\"",mName.c_str()); 568 } getTranslucence()569 void getTranslucence()const 570 { 571 fprintf(mFile,"\"%s.trsl\"",mName.c_str()); 572 } getNoiseAnimRate()573 void getNoiseAnimRate()const 574 { 575 fprintf(mFile,"\"%s.nanr\"",mName.c_str()); 576 } getRoundness()577 void getRoundness()const 578 { 579 fprintf(mFile,"\"%s.rdns\"",mName.c_str()); 580 } getRayDepth()581 void getRayDepth()const 582 { 583 fprintf(mFile,"\"%s.rd\"",mName.c_str()); 584 } getParticleOrder()585 void getParticleOrder()const 586 { 587 fprintf(mFile,"\"%s.podr\"",mName.c_str()); 588 } getFilterRadius()589 void getFilterRadius()const 590 { 591 fprintf(mFile,"\"%s.flrs\"",mName.c_str()); 592 } getRenderState()593 void getRenderState()const 594 { 595 fprintf(mFile,"\"%s.rdst\"",mName.c_str()); 596 } 597 protected: 598 ParticleCloud(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) DependNode(file,name,parent,nodeType,shared,create)599 :DependNode(file, name, parent, nodeType, shared, create) {} 600 601 }; 602 }//namespace MayaDM 603 #endif//__MayaDM_PARTICLECLOUD_H__ 604