2
Copyright (c) 2008-2009 NetAllied Systems GmbH
4
This file is part of MayaDataModel.
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
10
#ifndef __MayaDM_NCLOTH_H__
11
#define __MayaDM_NCLOTH_H__
12
#include "MayaDMTypes.h"
13
#include "MayaDMConnectables.h"
14
#include "MayaDMNParticle.h"
17
class NCloth : public NParticle
22
NCloth():NParticle(){}
23
NCloth(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24
:NParticle(file, name, parent, "nCloth", shared, create){}
27
void setNumSubdivisions(int nsub)
30
fprintf(mFile,"\tsetAttr \".nsub\" %i;\n", nsub);
32
void setScalingRelation(unsigned int srl)
35
fprintf(mFile,"\tsetAttr \".srl\" %i;\n", srl);
37
void setStretchResistance(float stch)
39
if(stch == 20.0) return;
40
fprintf(mFile,"\tsetAttr \".stch\" %f;\n", stch);
42
void setCompressionResistance(float comr)
44
if(comr == 10.0) return;
45
fprintf(mFile,"\tsetAttr \".comr\" %f;\n", comr);
47
void setStretchMap(float stmp)
49
if(stmp == 1.0) return;
50
fprintf(mFile,"\tsetAttr \".stmp\" %f;\n", stmp);
52
void setStretchPerVertex(const doubleArray& spv)
54
if(spv.size == 0) return;
55
fprintf(mFile,"\tsetAttr \".spv\" -type \"doubleArray\" ");
59
void setBendResistance(float bnd)
61
if(bnd == 0.1) return;
62
fprintf(mFile,"\tsetAttr \".bnd\" %f;\n", bnd);
64
void setBendMap(float bemp)
66
if(bemp == 0.0) return;
67
fprintf(mFile,"\tsetAttr \".bemp\" %f;\n", bemp);
69
void setBendPerVertex(const doubleArray& bdpv)
71
if(bdpv.size == 0) return;
72
fprintf(mFile,"\tsetAttr \".bdpv\" -type \"doubleArray\" ");
76
void setBendAngleDropoff(float bnad)
78
if(bnad == 0.0) return;
79
fprintf(mFile,"\tsetAttr \".bnad\" %f;\n", bnad);
81
void setRestitutionTension(float retn)
83
if(retn == 1000.0) return;
84
fprintf(mFile,"\tsetAttr \".retn\" %f;\n", retn);
86
void setRestitutionAngle(float reae)
89
fprintf(mFile,"\tsetAttr \".reae\" %f;\n", reae);
91
void setShearResistance(float shr)
93
if(shr == 0.0) return;
94
fprintf(mFile,"\tsetAttr \".shr\" %f;\n", shr);
96
void setRigidity(float rity)
98
if(rity == 0.0) return;
99
fprintf(mFile,"\tsetAttr \".rity\" %f;\n", rity);
101
void setRigidityMap(float rimp)
103
if(rimp == 0.0) return;
104
fprintf(mFile,"\tsetAttr \".rimp\" %f;\n", rimp);
106
void setRigidityPerVertex(const doubleArray& rpv)
108
if(rpv.size == 0) return;
109
fprintf(mFile,"\tsetAttr \".rpv\" -type \"doubleArray\" ");
111
fprintf(mFile,";\n");
113
void setDeformResistance(float dety)
115
if(dety == 0.0) return;
116
fprintf(mFile,"\tsetAttr \".dety\" %f;\n", dety);
118
void setDeformMap(float demp)
120
if(demp == 0.0) return;
121
fprintf(mFile,"\tsetAttr \".demp\" %f;\n", demp);
123
void setDeformPerVertex(const doubleArray& dfpv)
125
if(dfpv.size == 0) return;
126
fprintf(mFile,"\tsetAttr \".dfpv\" -type \"doubleArray\" ");
128
fprintf(mFile,";\n");
130
void setInputMeshAttract(float imat)
132
if(imat == 0.0) return;
133
fprintf(mFile,"\tsetAttr \".imat\" %f;\n", imat);
135
void setInputAttractMap(float iamp)
137
if(iamp == 0.0) return;
138
fprintf(mFile,"\tsetAttr \".iamp\" %f;\n", iamp);
140
void setInputAttractPerVertex(const doubleArray& iapv)
142
if(iapv.size == 0) return;
143
fprintf(mFile,"\tsetAttr \".iapv\" -type \"doubleArray\" ");
145
fprintf(mFile,";\n");
147
void setInputAttractDamp(float iadm)
149
if(iadm == 0.5) return;
150
fprintf(mFile,"\tsetAttr \".iadm\" %f;\n", iadm);
152
void setWrinkleMap(float wkmp)
154
if(wkmp == 0.0) return;
155
fprintf(mFile,"\tsetAttr \".wkmp\" %f;\n", wkmp);
157
void setWrinklePerVertex(const doubleArray& wpv)
159
if(wpv.size == 0) return;
160
fprintf(mFile,"\tsetAttr \".wpv\" -type \"doubleArray\" ");
162
fprintf(mFile,";\n");
164
void setWrinkleMapScale(float wms)
166
if(wms == 1.0) return;
167
fprintf(mFile,"\tsetAttr \".wms\" %f;\n", wms);
169
void setBendAngleScale(float basc)
171
if(basc == 1.0) return;
172
fprintf(mFile,"\tsetAttr \".basc\" %f;\n", basc);
174
void setSortLinks(bool stlk)
176
if(stlk == 0) return;
177
fprintf(mFile,"\tsetAttr \".stlk\" %i;\n", stlk);
179
void setEvaluationOrder(unsigned int evo)
182
fprintf(mFile,"\tsetAttr \".evo\" %i;\n", evo);
184
void setAddCrossLinks(bool aclk)
186
if(aclk == true) return;
187
fprintf(mFile,"\tsetAttr \".aclk\" %i;\n", aclk);
189
void setStretchDamp(float sdmp)
191
if(sdmp == 0.1) return;
192
fprintf(mFile,"\tsetAttr \".sdmp\" %f;\n", sdmp);
194
void setSelfCollideWidthScale(float scws)
196
if(scws == 1.0) return;
197
fprintf(mFile,"\tsetAttr \".scws\" %f;\n", scws);
199
void setSelfCollisionSoftness(float scsf)
201
if(scsf == 0.0) return;
202
fprintf(mFile,"\tsetAttr \".scsf\" %f;\n", scsf);
204
void setSelfCrossoverPush(float scpu)
206
if(scpu == 0.0) return;
207
fprintf(mFile,"\tsetAttr \".scpu\" %f;\n", scpu);
209
void setSelfTrappedCheck(bool stpc)
211
if(stpc == 0) return;
212
fprintf(mFile,"\tsetAttr \".stpc\" %i;\n", stpc);
214
void setPressureMethod(unsigned int pmth)
216
if(pmth == 0) return;
217
fprintf(mFile,"\tsetAttr \".pmth\" %i;\n", pmth);
219
void setPressure(float pres)
221
if(pres == 0.0) return;
222
fprintf(mFile,"\tsetAttr \".pres\" %f;\n", pres);
224
void setStartPressure(float stpe)
226
if(stpe == 0.0) return;
227
fprintf(mFile,"\tsetAttr \".stpe\" %f;\n", stpe);
229
void setIncompressibility(float incm)
231
if(incm == 5.0) return;
232
fprintf(mFile,"\tsetAttr \".incm\" %f;\n", incm);
234
void setPressureDamping(float prdg)
236
if(prdg == 0.0) return;
237
fprintf(mFile,"\tsetAttr \".prdg\" %f;\n", prdg);
239
void setPumpRate(float pure)
241
if(pure == 0.0) return;
242
fprintf(mFile,"\tsetAttr \".pure\" %f;\n", pure);
244
void setAirTightness(float aits)
246
if(aits == 1.0) return;
247
fprintf(mFile,"\tsetAttr \".aits\" %f;\n", aits);
249
void setSealHoles(bool shol)
251
if(shol == true) return;
252
fprintf(mFile,"\tsetAttr \".shol\" %i;\n", shol);
254
void setIgnoreSolverGravity(bool igsg)
256
if(igsg == 0) return;
257
fprintf(mFile,"\tsetAttr \".igsg\" %i;\n", igsg);
259
void setIgnoreSolverWind(bool igsw)
261
if(igsw == 0) return;
262
fprintf(mFile,"\tsetAttr \".igsw\" %i;\n", igsw);
264
void setWindSelfShadow(bool wssh)
266
if(wssh == 0) return;
267
fprintf(mFile,"\tsetAttr \".wssh\" %i;\n", wssh);
269
void setLift(float lft)
271
if(lft == 0.05) return;
272
fprintf(mFile,"\tsetAttr \".lft\" %f;\n", lft);
274
void setDrag(float drg)
276
if(drg == 0.05) return;
277
fprintf(mFile,"\tsetAttr \".drg\" %f;\n", drg);
279
void setTangentialDrag(float tdrg)
281
if(tdrg == 0.0) return;
282
fprintf(mFile,"\tsetAttr \".tdrg\" %f;\n", tdrg);
284
void setSolverDisplay(unsigned int svds)
286
if(svds == 0) return;
287
fprintf(mFile,"\tsetAttr \".svds\" %i;\n", svds);
289
void setStretchMapType(unsigned int smt)
292
fprintf(mFile,"\tsetAttr \".smt\" %i;\n", smt);
294
void setBendMapType(unsigned int bdmt)
296
if(bdmt == 2) return;
297
fprintf(mFile,"\tsetAttr \".bdmt\" %i;\n", bdmt);
299
void setRigidityMapType(unsigned int rmt)
302
fprintf(mFile,"\tsetAttr \".rmt\" %i;\n", rmt);
304
void setDeformMapType(unsigned int dmmt)
306
if(dmmt == 2) return;
307
fprintf(mFile,"\tsetAttr \".dmmt\" %i;\n", dmmt);
309
void setInputAttractMapType(unsigned int iamt)
311
if(iamt == 2) return;
312
fprintf(mFile,"\tsetAttr \".iamt\" %i;\n", iamt);
314
void setWrinkleMapType(unsigned int wmt)
317
fprintf(mFile,"\tsetAttr \".wmt\" %i;\n", wmt);
319
void getOutputMesh()const
321
fprintf(mFile,"\"%s.omsh\"",mName.c_str());
323
void getRestShapeMesh()const
325
fprintf(mFile,"\"%s.rsmh\"",mName.c_str());
327
void getNumSubdivisions()const
329
fprintf(mFile,"\"%s.nsub\"",mName.c_str());
331
void getScalingRelation()const
333
fprintf(mFile,"\"%s.srl\"",mName.c_str());
335
void getStretchResistance()const
337
fprintf(mFile,"\"%s.stch\"",mName.c_str());
339
void getCompressionResistance()const
341
fprintf(mFile,"\"%s.comr\"",mName.c_str());
343
void getStretchMap()const
345
fprintf(mFile,"\"%s.stmp\"",mName.c_str());
347
void getStretchPerVertex()const
349
fprintf(mFile,"\"%s.spv\"",mName.c_str());
351
void getBendResistance()const
353
fprintf(mFile,"\"%s.bnd\"",mName.c_str());
355
void getBendMap()const
357
fprintf(mFile,"\"%s.bemp\"",mName.c_str());
359
void getBendPerVertex()const
361
fprintf(mFile,"\"%s.bdpv\"",mName.c_str());
363
void getBendAngleDropoff()const
365
fprintf(mFile,"\"%s.bnad\"",mName.c_str());
367
void getRestitutionTension()const
369
fprintf(mFile,"\"%s.retn\"",mName.c_str());
371
void getRestitutionAngle()const
373
fprintf(mFile,"\"%s.reae\"",mName.c_str());
375
void getShearResistance()const
377
fprintf(mFile,"\"%s.shr\"",mName.c_str());
379
void getRigidity()const
381
fprintf(mFile,"\"%s.rity\"",mName.c_str());
383
void getRigidityMap()const
385
fprintf(mFile,"\"%s.rimp\"",mName.c_str());
387
void getRigidityPerVertex()const
389
fprintf(mFile,"\"%s.rpv\"",mName.c_str());
391
void getDeformResistance()const
393
fprintf(mFile,"\"%s.dety\"",mName.c_str());
395
void getDeformMap()const
397
fprintf(mFile,"\"%s.demp\"",mName.c_str());
399
void getDeformPerVertex()const
401
fprintf(mFile,"\"%s.dfpv\"",mName.c_str());
403
void getInputMeshAttract()const
405
fprintf(mFile,"\"%s.imat\"",mName.c_str());
407
void getInputAttractMap()const
409
fprintf(mFile,"\"%s.iamp\"",mName.c_str());
411
void getInputAttractPerVertex()const
413
fprintf(mFile,"\"%s.iapv\"",mName.c_str());
415
void getInputAttractDamp()const
417
fprintf(mFile,"\"%s.iadm\"",mName.c_str());
419
void getWrinkleMap()const
421
fprintf(mFile,"\"%s.wkmp\"",mName.c_str());
423
void getWrinklePerVertex()const
425
fprintf(mFile,"\"%s.wpv\"",mName.c_str());
427
void getWrinkleMapScale()const
429
fprintf(mFile,"\"%s.wms\"",mName.c_str());
431
void getBendAngleScale()const
433
fprintf(mFile,"\"%s.basc\"",mName.c_str());
435
void getSortLinks()const
437
fprintf(mFile,"\"%s.stlk\"",mName.c_str());
439
void getEvaluationOrder()const
441
fprintf(mFile,"\"%s.evo\"",mName.c_str());
443
void getAddCrossLinks()const
445
fprintf(mFile,"\"%s.aclk\"",mName.c_str());
447
void getStretchDamp()const
449
fprintf(mFile,"\"%s.sdmp\"",mName.c_str());
451
void getMinimalStretch()const
453
fprintf(mFile,"\"%s.msso\"",mName.c_str());
455
void getMinimalBend()const
457
fprintf(mFile,"\"%s.mbso\"",mName.c_str());
459
void getMinimalShear()const
461
fprintf(mFile,"\"%s.mshs\"",mName.c_str());
463
void getStretchHierarchyLevels()const
465
fprintf(mFile,"\"%s.shlv\"",mName.c_str());
467
void getStretchHierarchyPercent()const
469
fprintf(mFile,"\"%s.shpe\"",mName.c_str());
471
void getSelfCollideWidthScale()const
473
fprintf(mFile,"\"%s.scws\"",mName.c_str());
475
void getSelfCollisionSoftness()const
477
fprintf(mFile,"\"%s.scsf\"",mName.c_str());
479
void getSelfCrossoverPush()const
481
fprintf(mFile,"\"%s.scpu\"",mName.c_str());
483
void getSelfTrappedCheck()const
485
fprintf(mFile,"\"%s.stpc\"",mName.c_str());
487
void getPressureMethod()const
489
fprintf(mFile,"\"%s.pmth\"",mName.c_str());
491
void getPressure()const
493
fprintf(mFile,"\"%s.pres\"",mName.c_str());
495
void getStartPressure()const
497
fprintf(mFile,"\"%s.stpe\"",mName.c_str());
499
void getIncompressibility()const
501
fprintf(mFile,"\"%s.incm\"",mName.c_str());
503
void getPressureDamping()const
505
fprintf(mFile,"\"%s.prdg\"",mName.c_str());
507
void getPumpRate()const
509
fprintf(mFile,"\"%s.pure\"",mName.c_str());
511
void getAirTightness()const
513
fprintf(mFile,"\"%s.aits\"",mName.c_str());
515
void getSealHoles()const
517
fprintf(mFile,"\"%s.shol\"",mName.c_str());
519
void getIgnoreSolverGravity()const
521
fprintf(mFile,"\"%s.igsg\"",mName.c_str());
523
void getIgnoreSolverWind()const
525
fprintf(mFile,"\"%s.igsw\"",mName.c_str());
527
void getWindSelfShadow()const
529
fprintf(mFile,"\"%s.wssh\"",mName.c_str());
533
fprintf(mFile,"\"%s.lft\"",mName.c_str());
537
fprintf(mFile,"\"%s.drg\"",mName.c_str());
539
void getTangentialDrag()const
541
fprintf(mFile,"\"%s.tdrg\"",mName.c_str());
543
void getSolverDisplay()const
545
fprintf(mFile,"\"%s.svds\"",mName.c_str());
547
void getStretchMapType()const
549
fprintf(mFile,"\"%s.smt\"",mName.c_str());
551
void getBendMapType()const
553
fprintf(mFile,"\"%s.bdmt\"",mName.c_str());
555
void getRigidityMapType()const
557
fprintf(mFile,"\"%s.rmt\"",mName.c_str());
559
void getDeformMapType()const
561
fprintf(mFile,"\"%s.dmmt\"",mName.c_str());
563
void getInputAttractMapType()const
565
fprintf(mFile,"\"%s.iamt\"",mName.c_str());
567
void getWrinkleMapType()const
569
fprintf(mFile,"\"%s.wmt\"",mName.c_str());
572
NCloth(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
573
:NParticle(file, name, parent, nodeType, shared, create) {}
577
#endif//__MayaDM_NCLOTH_H__