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_NPARTICLE_H__
11
#define __MayaDM_NPARTICLE_H__
12
#include "MayaDMTypes.h"
13
#include "MayaDMConnectables.h"
14
#include "MayaDMParticle.h"
17
class NParticle : public Particle
22
NParticle():Particle(){}
23
NParticle(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24
:Particle(file, name, parent, "nParticle", shared, create){}
25
virtual ~NParticle(){}
27
void setPlayFromCache(bool pfc)
29
if(pfc == false) return;
30
fprintf(mFile,"\tsetAttr \".pfc\" %i;\n", pfc);
32
void setStartPositions(const vectorArray& spns)
34
if(spns.size == 0) return;
35
fprintf(mFile,"\tsetAttr \".spns\" -type \"vectorArray\" ");
39
void setStartVelocities(const vectorArray& sves)
41
if(sves.size == 0) return;
42
fprintf(mFile,"\tsetAttr \".sves\" -type \"vectorArray\" ");
46
void setThickness(float thss)
48
if(thss == 0.1) return;
49
fprintf(mFile,"\tsetAttr \".thss\" %f;\n", thss);
51
void setThicknessMap(float thmp)
53
if(thmp == 0.1) return;
54
fprintf(mFile,"\tsetAttr \".thmp\" %f;\n", thmp);
56
void setThicknessPerVertex(const doubleArray& thpv)
58
if(thpv.size == 0) return;
59
fprintf(mFile,"\tsetAttr \".thpv\" -type \"doubleArray\" ");
63
void setBounce(float boce)
65
if(boce == 0.0) return;
66
fprintf(mFile,"\tsetAttr \".boce\" %f;\n", boce);
68
void setBounceMap(float bomp)
70
if(bomp == 0.0) return;
71
fprintf(mFile,"\tsetAttr \".bomp\" %f;\n", bomp);
73
void setBouncePerVertex(const doubleArray& bpv)
75
if(bpv.size == 0) return;
76
fprintf(mFile,"\tsetAttr \".bpv\" -type \"doubleArray\" ");
80
void setFriction(float fron)
82
if(fron == 0.1) return;
83
fprintf(mFile,"\tsetAttr \".fron\" %f;\n", fron);
85
void setFrictionMap(float frmp)
87
if(frmp == 0.0) return;
88
fprintf(mFile,"\tsetAttr \".frmp\" %f;\n", frmp);
90
void setFrictionPerVertex(const doubleArray& fpv)
92
if(fpv.size == 0) return;
93
fprintf(mFile,"\tsetAttr \".fpv\" -type \"doubleArray\" ");
97
void setDamp(float adng)
99
if(adng == 0.0) return;
100
fprintf(mFile,"\tsetAttr \".adng\" %f;\n", adng);
102
void setDampMap(float admp)
104
if(admp == 0.0) return;
105
fprintf(mFile,"\tsetAttr \".admp\" %f;\n", admp);
107
void setDampPerVertex(const doubleArray& dpv)
109
if(dpv.size == 0) return;
110
fprintf(mFile,"\tsetAttr \".dpv\" -type \"doubleArray\" ");
112
fprintf(mFile,";\n");
114
void setCollisionFlag(unsigned int cofl)
116
if(cofl == 2) return;
117
fprintf(mFile,"\tsetAttr \".cofl\" %i;\n", cofl);
119
void setSelfCollisionFlag(unsigned int scfl)
121
if(scfl == 0) return;
122
fprintf(mFile,"\tsetAttr \".scfl\" %i;\n", scfl);
124
void setMaxSelfCollisionIterations(int msci)
126
if(msci == 4) return;
127
fprintf(mFile,"\tsetAttr \".msci\" %i;\n", msci);
129
void setMaxIterations(int mxit)
131
if(mxit == 500) return;
132
fprintf(mFile,"\tsetAttr \".mxit\" %i;\n", mxit);
134
void setPointMass(float pmss)
136
if(pmss == 1.0) return;
137
fprintf(mFile,"\tsetAttr \".pmss\" %f;\n", pmss);
139
void setMassMap(float mamp)
141
if(mamp == 1.0) return;
142
fprintf(mFile,"\tsetAttr \".mamp\" %f;\n", mamp);
144
void setMassPerVertex(const doubleArray& mpv)
146
if(mpv.size == 0) return;
147
fprintf(mFile,"\tsetAttr \".mpv\" -type \"doubleArray\" ");
149
fprintf(mFile,";\n");
151
void setRestLengthScale(float rlsc)
153
if(rlsc == 1.0) return;
154
fprintf(mFile,"\tsetAttr \".rlsc\" %f;\n", rlsc);
156
void setActive(bool actv)
158
if(actv == 1) return;
159
fprintf(mFile,"\tsetAttr \".actv\" %i;\n", actv);
161
void setCollide(bool cold)
163
if(cold == 1) return;
164
fprintf(mFile,"\tsetAttr \".cold\" %i;\n", cold);
166
void setSelfCollide(bool scld)
168
if(scld == 1) return;
169
fprintf(mFile,"\tsetAttr \".scld\" %i;\n", scld);
171
void setCollisionLayer(float cll)
173
if(cll == 0.0) return;
174
fprintf(mFile,"\tsetAttr \".cll\" %f;\n", cll);
176
void setWindShadowDiffusion(float wsdi)
178
if(wsdi == 0.0) return;
179
fprintf(mFile,"\tsetAttr \".wsdi\" %f;\n", wsdi);
181
void setWindShadowDistance(float wsds)
183
if(wsds == 0.0) return;
184
fprintf(mFile,"\tsetAttr \".wsds\" %f;\n", wsds);
186
void setAirPushDistance(float apds)
188
if(apds == 0.0) return;
189
fprintf(mFile,"\tsetAttr \".apds\" %f;\n", apds);
191
void setAirPushVorticity(float apvy)
193
if(apvy == 0.0) return;
194
fprintf(mFile,"\tsetAttr \".apvy\" %f;\n", apvy);
196
void setPushOut(float pou)
198
if(pou == 0.0) return;
199
fprintf(mFile,"\tsetAttr \".pou\" %f;\n", pou);
201
void setPushOutRadius(float por)
203
if(por == 10.0) return;
204
fprintf(mFile,"\tsetAttr \".por\" %f;\n", por);
206
void setCrossoverPush(float cop)
208
if(cop == 0.0) return;
209
fprintf(mFile,"\tsetAttr \".cop\" %f;\n", cop);
211
void setTrappedCheck(bool tpc)
214
fprintf(mFile,"\tsetAttr \".tpc\" %i;\n", tpc);
216
void setThicknessMapType(unsigned int tmt)
219
fprintf(mFile,"\tsetAttr \".tmt\" %i;\n", tmt);
221
void setBounceMapType(unsigned int bmt)
224
fprintf(mFile,"\tsetAttr \".bmt\" %i;\n", bmt);
226
void setFrictionMapType(unsigned int fmt)
229
fprintf(mFile,"\tsetAttr \".fmt\" %i;\n", fmt);
231
void setDampMapType(unsigned int dmt)
234
fprintf(mFile,"\tsetAttr \".dmt\" %i;\n", dmt);
236
void setMassMapType(unsigned int mmt)
239
fprintf(mFile,"\tsetAttr \".mmt\" %i;\n", mmt);
241
void setLocalSpaceOutput(bool lsou)
243
if(lsou == 0) return;
244
fprintf(mFile,"\tsetAttr \".lsou\" %i;\n", lsou);
246
void setDisplayColor(const float3& dcl)
248
fprintf(mFile,"\tsetAttr \".dcl\" -type \"float3\" ");
250
fprintf(mFile,";\n");
252
void setDisplayColorR(float dcr)
254
if(dcr == 1.0) return;
255
fprintf(mFile,"\tsetAttr \".dcl.dcr\" %f;\n", dcr);
257
void setDisplayColorG(float dcg)
259
if(dcg == 0.8) return;
260
fprintf(mFile,"\tsetAttr \".dcl.dcg\" %f;\n", dcg);
262
void setDisplayColorB(float dcb)
264
if(dcb == 0.0) return;
265
fprintf(mFile,"\tsetAttr \".dcl.dcb\" %f;\n", dcb);
267
void getInputMesh()const
269
fprintf(mFile,"\"%s.imsh\"",mName.c_str());
271
void getPositions()const
273
fprintf(mFile,"\"%s.poss\"",mName.c_str());
275
void getPlayFromCache()const
277
fprintf(mFile,"\"%s.pfc\"",mName.c_str());
279
void getStartPositions()const
281
fprintf(mFile,"\"%s.spns\"",mName.c_str());
283
void getStartVelocities()const
285
fprintf(mFile,"\"%s.sves\"",mName.c_str());
287
void getThickness()const
289
fprintf(mFile,"\"%s.thss\"",mName.c_str());
291
void getThicknessMap()const
293
fprintf(mFile,"\"%s.thmp\"",mName.c_str());
295
void getThicknessPerVertex()const
297
fprintf(mFile,"\"%s.thpv\"",mName.c_str());
299
void getBounce()const
301
fprintf(mFile,"\"%s.boce\"",mName.c_str());
303
void getBounceMap()const
305
fprintf(mFile,"\"%s.bomp\"",mName.c_str());
307
void getBouncePerVertex()const
309
fprintf(mFile,"\"%s.bpv\"",mName.c_str());
311
void getFriction()const
313
fprintf(mFile,"\"%s.fron\"",mName.c_str());
315
void getFrictionMap()const
317
fprintf(mFile,"\"%s.frmp\"",mName.c_str());
319
void getFrictionPerVertex()const
321
fprintf(mFile,"\"%s.fpv\"",mName.c_str());
325
fprintf(mFile,"\"%s.adng\"",mName.c_str());
327
void getDampMap()const
329
fprintf(mFile,"\"%s.admp\"",mName.c_str());
331
void getDampPerVertex()const
333
fprintf(mFile,"\"%s.dpv\"",mName.c_str());
335
void getCollisionFlag()const
337
fprintf(mFile,"\"%s.cofl\"",mName.c_str());
339
void getSelfCollisionFlag()const
341
fprintf(mFile,"\"%s.scfl\"",mName.c_str());
343
void getMaxSelfCollisionIterations()const
345
fprintf(mFile,"\"%s.msci\"",mName.c_str());
347
void getMaxIterations()const
349
fprintf(mFile,"\"%s.mxit\"",mName.c_str());
351
void getPointMass()const
353
fprintf(mFile,"\"%s.pmss\"",mName.c_str());
355
void getMassMap()const
357
fprintf(mFile,"\"%s.mamp\"",mName.c_str());
359
void getMassPerVertex()const
361
fprintf(mFile,"\"%s.mpv\"",mName.c_str());
363
void getRestLengthScale()const
365
fprintf(mFile,"\"%s.rlsc\"",mName.c_str());
367
void getActive()const
369
fprintf(mFile,"\"%s.actv\"",mName.c_str());
371
void getCollide()const
373
fprintf(mFile,"\"%s.cold\"",mName.c_str());
375
void getSelfCollide()const
377
fprintf(mFile,"\"%s.scld\"",mName.c_str());
379
void getCollisionLayer()const
381
fprintf(mFile,"\"%s.cll\"",mName.c_str());
383
void getWindShadowDiffusion()const
385
fprintf(mFile,"\"%s.wsdi\"",mName.c_str());
387
void getWindShadowDistance()const
389
fprintf(mFile,"\"%s.wsds\"",mName.c_str());
391
void getAirPushDistance()const
393
fprintf(mFile,"\"%s.apds\"",mName.c_str());
395
void getAirPushVorticity()const
397
fprintf(mFile,"\"%s.apvy\"",mName.c_str());
399
void getPushOut()const
401
fprintf(mFile,"\"%s.pou\"",mName.c_str());
403
void getPushOutRadius()const
405
fprintf(mFile,"\"%s.por\"",mName.c_str());
407
void getCrossoverPush()const
409
fprintf(mFile,"\"%s.cop\"",mName.c_str());
411
void getTrappedCheck()const
413
fprintf(mFile,"\"%s.tpc\"",mName.c_str());
415
void getThicknessMapType()const
417
fprintf(mFile,"\"%s.tmt\"",mName.c_str());
419
void getBounceMapType()const
421
fprintf(mFile,"\"%s.bmt\"",mName.c_str());
423
void getFrictionMapType()const
425
fprintf(mFile,"\"%s.fmt\"",mName.c_str());
427
void getDampMapType()const
429
fprintf(mFile,"\"%s.dmt\"",mName.c_str());
431
void getMassMapType()const
433
fprintf(mFile,"\"%s.mmt\"",mName.c_str());
435
void getNextState()const
437
fprintf(mFile,"\"%s.nxst\"",mName.c_str());
439
void getCurrentState()const
441
fprintf(mFile,"\"%s.cust\"",mName.c_str());
443
void getStartState()const
445
fprintf(mFile,"\"%s.stst\"",mName.c_str());
447
void getNucleusId()const
449
fprintf(mFile,"\"%s.nuid\"",mName.c_str());
451
void getLocalSpaceOutput()const
453
fprintf(mFile,"\"%s.lsou\"",mName.c_str());
455
void getDisplayColor()const
457
fprintf(mFile,"\"%s.dcl\"",mName.c_str());
459
void getDisplayColorR()const
461
fprintf(mFile,"\"%s.dcl.dcr\"",mName.c_str());
463
void getDisplayColorG()const
465
fprintf(mFile,"\"%s.dcl.dcg\"",mName.c_str());
467
void getDisplayColorB()const
469
fprintf(mFile,"\"%s.dcl.dcb\"",mName.c_str());
472
NParticle(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
473
:Particle(file, name, parent, nodeType, shared, create) {}
477
#endif//__MayaDM_NPARTICLE_H__