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_DYNAMICCONSTRAINT_H__
11 #define __MayaDM_DYNAMICCONSTRAINT_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMShape.h"
15 namespace MayaDM
16 {
17 class DynamicConstraint : public Shape
18 {
19 public:
20 	struct ConnectionDensityRange{
21 		float connectionDensityRange_Position;
22 		float connectionDensityRange_FloatValue;
23 		unsigned int connectionDensityRange_Interp;
writeConnectionDensityRange24 		void write(FILE* file) const
25 		{
26 			fprintf(file,"%f ", connectionDensityRange_Position);
27 			fprintf(file,"%f ", connectionDensityRange_FloatValue);
28 			fprintf(file,"%i", connectionDensityRange_Interp);
29 		}
30 	};
31 	struct StrengthDropoff{
32 		float strengthDropoff_Position;
33 		float strengthDropoff_FloatValue;
34 		unsigned int strengthDropoff_Interp;
writeStrengthDropoff35 		void write(FILE* file) const
36 		{
37 			fprintf(file,"%f ", strengthDropoff_Position);
38 			fprintf(file,"%f ", strengthDropoff_FloatValue);
39 			fprintf(file,"%i", strengthDropoff_Interp);
40 		}
41 	};
42 public:
43 
DynamicConstraint()44 	DynamicConstraint():Shape(){}
45 	DynamicConstraint(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
46 		:Shape(file, name, parent, "dynamicConstraint", shared, create){}
~DynamicConstraint()47 	virtual ~DynamicConstraint(){}
48 
setIsDynamic(bool isd)49 	void setIsDynamic(bool isd)
50 	{
51 		if(isd == true) return;
52 		fprintf(mFile,"\tsetAttr \".isd\" %i;\n", isd);
53 	}
setEnable(bool ena)54 	void setEnable(bool ena)
55 	{
56 		if(ena == true) return;
57 		fprintf(mFile,"\tsetAttr \".ena\" %i;\n", ena);
58 	}
setConstraintMethod(unsigned int cm)59 	void setConstraintMethod(unsigned int cm)
60 	{
61 		if(cm == 1) return;
62 		fprintf(mFile,"\tsetAttr \".cm\" %i;\n", cm);
63 	}
setConnectionMethod(unsigned int cnm)64 	void setConnectionMethod(unsigned int cnm)
65 	{
66 		if(cnm == 0) return;
67 		fprintf(mFile,"\tsetAttr \".cnm\" %i;\n", cnm);
68 	}
setConstraintRelation(unsigned int crr)69 	void setConstraintRelation(unsigned int crr)
70 	{
71 		if(crr == 1) return;
72 		fprintf(mFile,"\tsetAttr \".crr\" %i;\n", crr);
73 	}
setComponentRelation(unsigned int cmr)74 	void setComponentRelation(unsigned int cmr)
75 	{
76 		if(cmr == 0) return;
77 		fprintf(mFile,"\tsetAttr \".cmr\" %i;\n", cmr);
78 	}
setConnectionUpdate(unsigned int cu)79 	void setConnectionUpdate(unsigned int cu)
80 	{
81 		if(cu == 0) return;
82 		fprintf(mFile,"\tsetAttr \".cu\" %i;\n", cu);
83 	}
setConnectWithinComponent(bool cwc)84 	void setConnectWithinComponent(bool cwc)
85 	{
86 		if(cwc == false) return;
87 		fprintf(mFile,"\tsetAttr \".cwc\" %i;\n", cwc);
88 	}
setConnectionDensity(double cdn)89 	void setConnectionDensity(double cdn)
90 	{
91 		if(cdn == 1.0) return;
92 		fprintf(mFile,"\tsetAttr \".cdn\" %f;\n", cdn);
93 	}
setConnectionDensityRange(size_t cdnr_i,const ConnectionDensityRange & cdnr)94 	void setConnectionDensityRange(size_t cdnr_i,const ConnectionDensityRange& cdnr)
95 	{
96 		fprintf(mFile,"\tsetAttr \".cdnr[%i]\" ",cdnr_i);
97 		cdnr.write(mFile);
98 		fprintf(mFile,";\n");
99 	}
setConnectionDensityRange(size_t cdnr_start,size_t cdnr_end,ConnectionDensityRange * cdnr)100 	void setConnectionDensityRange(size_t cdnr_start,size_t cdnr_end,ConnectionDensityRange* cdnr)
101 	{
102 		fprintf(mFile,"\tsetAttr \".cdnr[%i:%i]\" ", cdnr_start,cdnr_end);
103 		size_t size = (cdnr_end-cdnr_start)*1+1;
104 		for(size_t i=0;i<size;++i)
105 		{
106 			cdnr[i].write(mFile);
107 			fprintf(mFile,"\n");
108 		}
109 		fprintf(mFile,";\n");
110 	}
startConnectionDensityRange(size_t cdnr_start,size_t cdnr_end)111 	void startConnectionDensityRange(size_t cdnr_start,size_t cdnr_end)const
112 	{
113 		fprintf(mFile,"\tsetAttr \".cdnr[%i:%i]\"",cdnr_start,cdnr_end);
114 		fprintf(mFile," -type \"ConnectionDensityRange\" ");
115 	}
appendConnectionDensityRange(const ConnectionDensityRange & cdnr)116 	void appendConnectionDensityRange(const ConnectionDensityRange& cdnr)const
117 	{
118 		fprintf(mFile," ");
119 		cdnr.write(mFile);
120 	}
endConnectionDensityRange()121 	void endConnectionDensityRange()const
122 	{
123 		fprintf(mFile,";\n");
124 	}
setConnectionDensityRange_Position(size_t cdnr_i,float cdnrp)125 	void setConnectionDensityRange_Position(size_t cdnr_i,float cdnrp)
126 	{
127 		if(cdnrp == 0.0) return;
128 		fprintf(mFile,"\tsetAttr \".cdnr[%i].cdnrp\" %f;\n", cdnr_i,cdnrp);
129 	}
setConnectionDensityRange_FloatValue(size_t cdnr_i,float cdnrfv)130 	void setConnectionDensityRange_FloatValue(size_t cdnr_i,float cdnrfv)
131 	{
132 		if(cdnrfv == 0.0) return;
133 		fprintf(mFile,"\tsetAttr \".cdnr[%i].cdnrfv\" %f;\n", cdnr_i,cdnrfv);
134 	}
setConnectionDensityRange_Interp(size_t cdnr_i,unsigned int cdnri)135 	void setConnectionDensityRange_Interp(size_t cdnr_i,unsigned int cdnri)
136 	{
137 		if(cdnri == 0) return;
138 		fprintf(mFile,"\tsetAttr \".cdnr[%i].cdnri\" %i;\n", cdnr_i,cdnri);
139 	}
setDisplayConnections(bool dcn)140 	void setDisplayConnections(bool dcn)
141 	{
142 		if(dcn == true) return;
143 		fprintf(mFile,"\tsetAttr \".dcn\" %i;\n", dcn);
144 	}
setStrength(double str)145 	void setStrength(double str)
146 	{
147 		if(str == 20.0) return;
148 		fprintf(mFile,"\tsetAttr \".str\" %f;\n", str);
149 	}
setRestLengthMethod(unsigned int rlm)150 	void setRestLengthMethod(unsigned int rlm)
151 	{
152 		if(rlm == 0) return;
153 		fprintf(mFile,"\tsetAttr \".rlm\" %i;\n", rlm);
154 	}
setRestLength(double rl)155 	void setRestLength(double rl)
156 	{
157 		if(rl == 0.0) return;
158 		fprintf(mFile,"\tsetAttr \".rl\" %f;\n", rl);
159 	}
setRestLengthScale(double rls)160 	void setRestLengthScale(double rls)
161 	{
162 		if(rls == 1.0) return;
163 		fprintf(mFile,"\tsetAttr \".rls\" %f;\n", rls);
164 	}
setTangentStrength(double tst)165 	void setTangentStrength(double tst)
166 	{
167 		if(tst == 10) return;
168 		fprintf(mFile,"\tsetAttr \".tst\" %f;\n", tst);
169 	}
setBend(bool bnd)170 	void setBend(bool bnd)
171 	{
172 		if(bnd == false) return;
173 		fprintf(mFile,"\tsetAttr \".bnd\" %i;\n", bnd);
174 	}
setBendStrength(double bns)175 	void setBendStrength(double bns)
176 	{
177 		if(bns == 20.0) return;
178 		fprintf(mFile,"\tsetAttr \".bns\" %f;\n", bns);
179 	}
setBendBreakAngle(double bba)180 	void setBendBreakAngle(double bba)
181 	{
182 		if(bba == 360.0) return;
183 		fprintf(mFile,"\tsetAttr \".bba\" %f;\n", bba);
184 	}
setGlueStrength(double gls)185 	void setGlueStrength(double gls)
186 	{
187 		if(gls == 1.0) return;
188 		fprintf(mFile,"\tsetAttr \".gls\" %f;\n", gls);
189 	}
setGlueStrengthScale(double glss)190 	void setGlueStrengthScale(double glss)
191 	{
192 		if(glss == 1.0) return;
193 		fprintf(mFile,"\tsetAttr \".glss\" %f;\n", glss);
194 	}
setForce(double for_)195 	void setForce(double for_)
196 	{
197 		if(for_ == 0.0) return;
198 		fprintf(mFile,"\tsetAttr \".for\" %f;\n", for_);
199 	}
setMotionDrag(double mdg)200 	void setMotionDrag(double mdg)
201 	{
202 		if(mdg == 0.0) return;
203 		fprintf(mFile,"\tsetAttr \".mdg\" %f;\n", mdg);
204 	}
setDropoff(double drp)205 	void setDropoff(double drp)
206 	{
207 		if(drp == 1.0) return;
208 		fprintf(mFile,"\tsetAttr \".drp\" %f;\n", drp);
209 	}
setDropoffDistance(double ddd)210 	void setDropoffDistance(double ddd)
211 	{
212 		if(ddd == 50.0) return;
213 		fprintf(mFile,"\tsetAttr \".ddd\" %f;\n", ddd);
214 	}
setStrengthDropoff(size_t sdp_i,const StrengthDropoff & sdp)215 	void setStrengthDropoff(size_t sdp_i,const StrengthDropoff& sdp)
216 	{
217 		fprintf(mFile,"\tsetAttr \".sdp[%i]\" ",sdp_i);
218 		sdp.write(mFile);
219 		fprintf(mFile,";\n");
220 	}
setStrengthDropoff(size_t sdp_start,size_t sdp_end,StrengthDropoff * sdp)221 	void setStrengthDropoff(size_t sdp_start,size_t sdp_end,StrengthDropoff* sdp)
222 	{
223 		fprintf(mFile,"\tsetAttr \".sdp[%i:%i]\" ", sdp_start,sdp_end);
224 		size_t size = (sdp_end-sdp_start)*1+1;
225 		for(size_t i=0;i<size;++i)
226 		{
227 			sdp[i].write(mFile);
228 			fprintf(mFile,"\n");
229 		}
230 		fprintf(mFile,";\n");
231 	}
startStrengthDropoff(size_t sdp_start,size_t sdp_end)232 	void startStrengthDropoff(size_t sdp_start,size_t sdp_end)const
233 	{
234 		fprintf(mFile,"\tsetAttr \".sdp[%i:%i]\"",sdp_start,sdp_end);
235 		fprintf(mFile," -type \"StrengthDropoff\" ");
236 	}
appendStrengthDropoff(const StrengthDropoff & sdp)237 	void appendStrengthDropoff(const StrengthDropoff& sdp)const
238 	{
239 		fprintf(mFile," ");
240 		sdp.write(mFile);
241 	}
endStrengthDropoff()242 	void endStrengthDropoff()const
243 	{
244 		fprintf(mFile,";\n");
245 	}
setStrengthDropoff_Position(size_t sdp_i,float sdpp)246 	void setStrengthDropoff_Position(size_t sdp_i,float sdpp)
247 	{
248 		if(sdpp == 0.0) return;
249 		fprintf(mFile,"\tsetAttr \".sdp[%i].sdpp\" %f;\n", sdp_i,sdpp);
250 	}
setStrengthDropoff_FloatValue(size_t sdp_i,float sdpfv)251 	void setStrengthDropoff_FloatValue(size_t sdp_i,float sdpfv)
252 	{
253 		if(sdpfv == 0.0) return;
254 		fprintf(mFile,"\tsetAttr \".sdp[%i].sdpfv\" %f;\n", sdp_i,sdpfv);
255 	}
setStrengthDropoff_Interp(size_t sdp_i,unsigned int sdpi)256 	void setStrengthDropoff_Interp(size_t sdp_i,unsigned int sdpi)
257 	{
258 		if(sdpi == 0) return;
259 		fprintf(mFile,"\tsetAttr \".sdp[%i].sdpi\" %i;\n", sdp_i,sdpi);
260 	}
setMaxDistance(double mds)261 	void setMaxDistance(double mds)
262 	{
263 		if(mds == 0.1) return;
264 		fprintf(mFile,"\tsetAttr \".mds\" %f;\n", mds);
265 	}
setDamp(double dmp)266 	void setDamp(double dmp)
267 	{
268 		if(dmp == 0.0) return;
269 		fprintf(mFile,"\tsetAttr \".dmp\" %f;\n", dmp);
270 	}
setFriction(double frc)271 	void setFriction(double frc)
272 	{
273 		if(frc == 0.0) return;
274 		fprintf(mFile,"\tsetAttr \".frc\" %f;\n", frc);
275 	}
setLocalCollide(bool lcl)276 	void setLocalCollide(bool lcl)
277 	{
278 		if(lcl == false) return;
279 		fprintf(mFile,"\tsetAttr \".lcl\" %i;\n", lcl);
280 	}
setCollideWidthScale(double cws)281 	void setCollideWidthScale(double cws)
282 	{
283 		if(cws == 1.0) return;
284 		fprintf(mFile,"\tsetAttr \".cws\" %f;\n", cws);
285 	}
setExcludeCollisions(bool excs)286 	void setExcludeCollisions(bool excs)
287 	{
288 		if(excs == false) return;
289 		fprintf(mFile,"\tsetAttr \".excs\" %i;\n", excs);
290 	}
setSingleSided(bool ssd)291 	void setSingleSided(bool ssd)
292 	{
293 		if(ssd == true) return;
294 		fprintf(mFile,"\tsetAttr \".ssd\" %i;\n", ssd);
295 	}
setMaxIterations(int mitr)296 	void setMaxIterations(int mitr)
297 	{
298 		if(mitr == 500) return;
299 		fprintf(mFile,"\tsetAttr \".mitr\" %i;\n", mitr);
300 	}
setMinIterations(int mini)301 	void setMinIterations(int mini)
302 	{
303 		if(mini == 0) return;
304 		fprintf(mFile,"\tsetAttr \".mini\" %i;\n", mini);
305 	}
getIsDynamic()306 	void getIsDynamic()const
307 	{
308 		fprintf(mFile,"\"%s.isd\"",mName.c_str());
309 	}
getEnable()310 	void getEnable()const
311 	{
312 		fprintf(mFile,"\"%s.ena\"",mName.c_str());
313 	}
getCurrentTime()314 	void getCurrentTime()const
315 	{
316 		fprintf(mFile,"\"%s.cti\"",mName.c_str());
317 	}
getComponentIds(size_t cid_i)318 	void getComponentIds(size_t cid_i)const
319 	{
320 		fprintf(mFile,"\"%s.cid[%i]\"",mName.c_str(),cid_i);
321 	}
getComponentIds()322 	void getComponentIds()const
323 	{
324 
325 		fprintf(mFile,"\"%s.cid\"",mName.c_str());
326 	}
getConstraintMethod()327 	void getConstraintMethod()const
328 	{
329 		fprintf(mFile,"\"%s.cm\"",mName.c_str());
330 	}
getConnectionMethod()331 	void getConnectionMethod()const
332 	{
333 		fprintf(mFile,"\"%s.cnm\"",mName.c_str());
334 	}
getConstraintRelation()335 	void getConstraintRelation()const
336 	{
337 		fprintf(mFile,"\"%s.crr\"",mName.c_str());
338 	}
getComponentRelation()339 	void getComponentRelation()const
340 	{
341 		fprintf(mFile,"\"%s.cmr\"",mName.c_str());
342 	}
getConnectionUpdate()343 	void getConnectionUpdate()const
344 	{
345 		fprintf(mFile,"\"%s.cu\"",mName.c_str());
346 	}
getConnectWithinComponent()347 	void getConnectWithinComponent()const
348 	{
349 		fprintf(mFile,"\"%s.cwc\"",mName.c_str());
350 	}
getConnectionDensity()351 	void getConnectionDensity()const
352 	{
353 		fprintf(mFile,"\"%s.cdn\"",mName.c_str());
354 	}
getConnectionDensityRange(size_t cdnr_i)355 	void getConnectionDensityRange(size_t cdnr_i)const
356 	{
357 		fprintf(mFile,"\"%s.cdnr[%i]\"",mName.c_str(),cdnr_i);
358 	}
getConnectionDensityRange()359 	void getConnectionDensityRange()const
360 	{
361 
362 		fprintf(mFile,"\"%s.cdnr\"",mName.c_str());
363 	}
getConnectionDensityRange_Position(size_t cdnr_i)364 	void getConnectionDensityRange_Position(size_t cdnr_i)const
365 	{
366 		fprintf(mFile,"\"%s.cdnr[%i].cdnrp\"",mName.c_str(),cdnr_i);
367 	}
getConnectionDensityRange_Position()368 	void getConnectionDensityRange_Position()const
369 	{
370 
371 		fprintf(mFile,"\"%s.cdnr.cdnrp\"",mName.c_str());
372 	}
getConnectionDensityRange_FloatValue(size_t cdnr_i)373 	void getConnectionDensityRange_FloatValue(size_t cdnr_i)const
374 	{
375 		fprintf(mFile,"\"%s.cdnr[%i].cdnrfv\"",mName.c_str(),cdnr_i);
376 	}
getConnectionDensityRange_FloatValue()377 	void getConnectionDensityRange_FloatValue()const
378 	{
379 
380 		fprintf(mFile,"\"%s.cdnr.cdnrfv\"",mName.c_str());
381 	}
getConnectionDensityRange_Interp(size_t cdnr_i)382 	void getConnectionDensityRange_Interp(size_t cdnr_i)const
383 	{
384 		fprintf(mFile,"\"%s.cdnr[%i].cdnri\"",mName.c_str(),cdnr_i);
385 	}
getConnectionDensityRange_Interp()386 	void getConnectionDensityRange_Interp()const
387 	{
388 
389 		fprintf(mFile,"\"%s.cdnr.cdnri\"",mName.c_str());
390 	}
getDisplayConnections()391 	void getDisplayConnections()const
392 	{
393 		fprintf(mFile,"\"%s.dcn\"",mName.c_str());
394 	}
getStrength()395 	void getStrength()const
396 	{
397 		fprintf(mFile,"\"%s.str\"",mName.c_str());
398 	}
getRestLengthMethod()399 	void getRestLengthMethod()const
400 	{
401 		fprintf(mFile,"\"%s.rlm\"",mName.c_str());
402 	}
getRestLength()403 	void getRestLength()const
404 	{
405 		fprintf(mFile,"\"%s.rl\"",mName.c_str());
406 	}
getRestLengthScale()407 	void getRestLengthScale()const
408 	{
409 		fprintf(mFile,"\"%s.rls\"",mName.c_str());
410 	}
getTangentStrength()411 	void getTangentStrength()const
412 	{
413 		fprintf(mFile,"\"%s.tst\"",mName.c_str());
414 	}
getBend()415 	void getBend()const
416 	{
417 		fprintf(mFile,"\"%s.bnd\"",mName.c_str());
418 	}
getBendStrength()419 	void getBendStrength()const
420 	{
421 		fprintf(mFile,"\"%s.bns\"",mName.c_str());
422 	}
getBendBreakAngle()423 	void getBendBreakAngle()const
424 	{
425 		fprintf(mFile,"\"%s.bba\"",mName.c_str());
426 	}
getGlueStrength()427 	void getGlueStrength()const
428 	{
429 		fprintf(mFile,"\"%s.gls\"",mName.c_str());
430 	}
getGlueStrengthScale()431 	void getGlueStrengthScale()const
432 	{
433 		fprintf(mFile,"\"%s.glss\"",mName.c_str());
434 	}
getForce()435 	void getForce()const
436 	{
437 		fprintf(mFile,"\"%s.for\"",mName.c_str());
438 	}
getMotionDrag()439 	void getMotionDrag()const
440 	{
441 		fprintf(mFile,"\"%s.mdg\"",mName.c_str());
442 	}
getDropoff()443 	void getDropoff()const
444 	{
445 		fprintf(mFile,"\"%s.drp\"",mName.c_str());
446 	}
getDropoffDistance()447 	void getDropoffDistance()const
448 	{
449 		fprintf(mFile,"\"%s.ddd\"",mName.c_str());
450 	}
getStrengthDropoff(size_t sdp_i)451 	void getStrengthDropoff(size_t sdp_i)const
452 	{
453 		fprintf(mFile,"\"%s.sdp[%i]\"",mName.c_str(),sdp_i);
454 	}
getStrengthDropoff()455 	void getStrengthDropoff()const
456 	{
457 
458 		fprintf(mFile,"\"%s.sdp\"",mName.c_str());
459 	}
getStrengthDropoff_Position(size_t sdp_i)460 	void getStrengthDropoff_Position(size_t sdp_i)const
461 	{
462 		fprintf(mFile,"\"%s.sdp[%i].sdpp\"",mName.c_str(),sdp_i);
463 	}
getStrengthDropoff_Position()464 	void getStrengthDropoff_Position()const
465 	{
466 
467 		fprintf(mFile,"\"%s.sdp.sdpp\"",mName.c_str());
468 	}
getStrengthDropoff_FloatValue(size_t sdp_i)469 	void getStrengthDropoff_FloatValue(size_t sdp_i)const
470 	{
471 		fprintf(mFile,"\"%s.sdp[%i].sdpfv\"",mName.c_str(),sdp_i);
472 	}
getStrengthDropoff_FloatValue()473 	void getStrengthDropoff_FloatValue()const
474 	{
475 
476 		fprintf(mFile,"\"%s.sdp.sdpfv\"",mName.c_str());
477 	}
getStrengthDropoff_Interp(size_t sdp_i)478 	void getStrengthDropoff_Interp(size_t sdp_i)const
479 	{
480 		fprintf(mFile,"\"%s.sdp[%i].sdpi\"",mName.c_str(),sdp_i);
481 	}
getStrengthDropoff_Interp()482 	void getStrengthDropoff_Interp()const
483 	{
484 
485 		fprintf(mFile,"\"%s.sdp.sdpi\"",mName.c_str());
486 	}
getMaxDistance()487 	void getMaxDistance()const
488 	{
489 		fprintf(mFile,"\"%s.mds\"",mName.c_str());
490 	}
getDamp()491 	void getDamp()const
492 	{
493 		fprintf(mFile,"\"%s.dmp\"",mName.c_str());
494 	}
getFriction()495 	void getFriction()const
496 	{
497 		fprintf(mFile,"\"%s.frc\"",mName.c_str());
498 	}
getLocalCollide()499 	void getLocalCollide()const
500 	{
501 		fprintf(mFile,"\"%s.lcl\"",mName.c_str());
502 	}
getCollideWidthScale()503 	void getCollideWidthScale()const
504 	{
505 		fprintf(mFile,"\"%s.cws\"",mName.c_str());
506 	}
getExcludeCollisions()507 	void getExcludeCollisions()const
508 	{
509 		fprintf(mFile,"\"%s.excs\"",mName.c_str());
510 	}
getSingleSided()511 	void getSingleSided()const
512 	{
513 		fprintf(mFile,"\"%s.ssd\"",mName.c_str());
514 	}
getMaxIterations()515 	void getMaxIterations()const
516 	{
517 		fprintf(mFile,"\"%s.mitr\"",mName.c_str());
518 	}
getMinIterations()519 	void getMinIterations()const
520 	{
521 		fprintf(mFile,"\"%s.mini\"",mName.c_str());
522 	}
getEvalStart(size_t evs_i)523 	void getEvalStart(size_t evs_i)const
524 	{
525 		fprintf(mFile,"\"%s.evs[%i]\"",mName.c_str(),evs_i);
526 	}
getEvalStart()527 	void getEvalStart()const
528 	{
529 
530 		fprintf(mFile,"\"%s.evs\"",mName.c_str());
531 	}
getEvalCurrent(size_t evc_i)532 	void getEvalCurrent(size_t evc_i)const
533 	{
534 		fprintf(mFile,"\"%s.evc[%i]\"",mName.c_str(),evc_i);
535 	}
getEvalCurrent()536 	void getEvalCurrent()const
537 	{
538 
539 		fprintf(mFile,"\"%s.evc\"",mName.c_str());
540 	}
getIterations()541 	void getIterations()const
542 	{
543 		fprintf(mFile,"\"%s.itr\"",mName.c_str());
544 	}
getCollide()545 	void getCollide()const
546 	{
547 		fprintf(mFile,"\"%s.cld\"",mName.c_str());
548 	}
549 protected:
550 	DynamicConstraint(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)551 		:Shape(file, name, parent, nodeType, shared, create) {}
552 
553 };
554 }//namespace MayaDM
555 #endif//__MayaDM_DYNAMICCONSTRAINT_H__
556