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_NURBSSURFACE_H__
11 #define __MayaDM_NURBSSURFACE_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMSurfaceShape.h"
15 namespace MayaDM
16 {
17 class NurbsSurface : public SurfaceShape
18 {
19 public:
20 	struct MentalRayControls{
21 		bool miOverrideCaustics;
22 		short miCausticAccuracy;
23 		float miCausticRadius;
24 		bool miOverrideGlobalIllumination;
25 		short miGlobillumAccuracy;
26 		float miGlobillumRadius;
27 		bool miOverrideFinalGather;
28 		int miFinalGatherRays;
29 		float miFinalGatherMinRadius;
30 		float miFinalGatherMaxRadius;
31 		short miFinalGatherFilter;
32 		bool miFinalGatherView;
33 		bool miOverrideSamples;
34 		short miMinSamples;
35 		short miMaxSamples;
36 		bool miFinalGatherCast;
37 		bool miFinalGatherReceive;
38 		bool miTransparencyCast;
39 		bool miTransparencyReceive;
40 		bool miReflectionReceive;
41 		bool miRefractionReceive;
writeMentalRayControls42 		void write(FILE* file) const
43 		{
44 			fprintf(file,"%i ", miOverrideCaustics);
45 			fprintf(file,"%i ", miCausticAccuracy);
46 			fprintf(file,"%f ", miCausticRadius);
47 			fprintf(file,"%i ", miOverrideGlobalIllumination);
48 			fprintf(file,"%i ", miGlobillumAccuracy);
49 			fprintf(file,"%f ", miGlobillumRadius);
50 			fprintf(file,"%i ", miOverrideFinalGather);
51 			fprintf(file,"%i ", miFinalGatherRays);
52 			fprintf(file,"%f ", miFinalGatherMinRadius);
53 			fprintf(file,"%f ", miFinalGatherMaxRadius);
54 			fprintf(file,"%i ", miFinalGatherFilter);
55 			fprintf(file,"%i ", miFinalGatherView);
56 			fprintf(file,"%i ", miOverrideSamples);
57 			fprintf(file,"%i ", miMinSamples);
58 			fprintf(file,"%i ", miMaxSamples);
59 			fprintf(file,"%i ", miFinalGatherCast);
60 			fprintf(file,"%i ", miFinalGatherReceive);
61 			fprintf(file,"%i ", miTransparencyCast);
62 			fprintf(file,"%i ", miTransparencyReceive);
63 			fprintf(file,"%i ", miReflectionReceive);
64 			fprintf(file,"%i", miRefractionReceive);
65 		}
66 	};
67 public:
68 
NurbsSurface()69 	NurbsSurface():SurfaceShape(){}
70 	NurbsSurface(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
71 		:SurfaceShape(file, name, parent, "nurbsSurface", shared, create){}
~NurbsSurface()72 	virtual ~NurbsSurface(){}
73 
setDivisionsU(unsigned char dvu)74 	void setDivisionsU(unsigned char dvu)
75 	{
76 		if(dvu == 0) return;
77 		fprintf(mFile,"\tsetAttr \".dvu\" %i;\n", dvu);
78 	}
setDivisionsV(unsigned char dvv)79 	void setDivisionsV(unsigned char dvv)
80 	{
81 		if(dvv == 0) return;
82 		fprintf(mFile,"\tsetAttr \".dvv\" %i;\n", dvv);
83 	}
setCurvePrecision(unsigned char cpr)84 	void setCurvePrecision(unsigned char cpr)
85 	{
86 		if(cpr == 4) return;
87 		fprintf(mFile,"\tsetAttr \".cpr\" %i;\n", cpr);
88 	}
setCurvePrecisionShaded(unsigned char cps)89 	void setCurvePrecisionShaded(unsigned char cps)
90 	{
91 		if(cps == 1) return;
92 		fprintf(mFile,"\tsetAttr \".cps\" %i;\n", cps);
93 	}
setSimplifyMode(unsigned char sm)94 	void setSimplifyMode(unsigned char sm)
95 	{
96 		if(sm == 0) return;
97 		fprintf(mFile,"\tsetAttr \".sm\" %i;\n", sm);
98 	}
setSimplifyU(unsigned char smu)99 	void setSimplifyU(unsigned char smu)
100 	{
101 		if(smu == 1) return;
102 		fprintf(mFile,"\tsetAttr \".smu\" %i;\n", smu);
103 	}
setSimplifyV(unsigned char smv)104 	void setSimplifyV(unsigned char smv)
105 	{
106 		if(smv == 1) return;
107 		fprintf(mFile,"\tsetAttr \".smv\" %i;\n", smv);
108 	}
setSmoothEdge(bool ues)109 	void setSmoothEdge(bool ues)
110 	{
111 		if(ues == false) return;
112 		fprintf(mFile,"\tsetAttr \".ues\" %i;\n", ues);
113 	}
setSmoothEdgeRatio(double esr)114 	void setSmoothEdgeRatio(double esr)
115 	{
116 		if(esr == 0.99) return;
117 		fprintf(mFile,"\tsetAttr \".esr\" %f;\n", esr);
118 	}
setUseChordHeight(bool uch)119 	void setUseChordHeight(bool uch)
120 	{
121 		if(uch == false) return;
122 		fprintf(mFile,"\tsetAttr \".uch\" %i;\n", uch);
123 	}
setObjSpaceChordHeight(bool uco)124 	void setObjSpaceChordHeight(bool uco)
125 	{
126 		if(uco == true) return;
127 		fprintf(mFile,"\tsetAttr \".uco\" %i;\n", uco);
128 	}
setUseChordHeightRatio(bool ucr)129 	void setUseChordHeightRatio(bool ucr)
130 	{
131 		if(ucr == true) return;
132 		fprintf(mFile,"\tsetAttr \".ucr\" %i;\n", ucr);
133 	}
setEdgeSwap(bool es)134 	void setEdgeSwap(bool es)
135 	{
136 		if(es == false) return;
137 		fprintf(mFile,"\tsetAttr \".es\" %i;\n", es);
138 	}
setUseMinScreen(bool uns)139 	void setUseMinScreen(bool uns)
140 	{
141 		if(uns == false) return;
142 		fprintf(mFile,"\tsetAttr \".uns\" %i;\n", uns);
143 	}
setSelCVDisp(bool scvd)144 	void setSelCVDisp(bool scvd)
145 	{
146 		if(scvd == false) return;
147 		fprintf(mFile,"\tsetAttr \".scvd\" %i;\n", scvd);
148 	}
setDispCV(bool dcv)149 	void setDispCV(bool dcv)
150 	{
151 		if(dcv == false) return;
152 		fprintf(mFile,"\tsetAttr \".dcv\" %i;\n", dcv);
153 	}
setDispEP(bool dep)154 	void setDispEP(bool dep)
155 	{
156 		if(dep == false) return;
157 		fprintf(mFile,"\tsetAttr \".dep\" %i;\n", dep);
158 	}
setDispHull(bool dh)159 	void setDispHull(bool dh)
160 	{
161 		if(dh == false) return;
162 		fprintf(mFile,"\tsetAttr \".dh\" %i;\n", dh);
163 	}
setDispGeometry(bool dg)164 	void setDispGeometry(bool dg)
165 	{
166 		if(dg == true) return;
167 		fprintf(mFile,"\tsetAttr \".dg\" %i;\n", dg);
168 	}
setDispOrigin(bool dor)169 	void setDispOrigin(bool dor)
170 	{
171 		if(dor == false) return;
172 		fprintf(mFile,"\tsetAttr \".dor\" %i;\n", dor);
173 	}
setNumberU(int nu)174 	void setNumberU(int nu)
175 	{
176 		if(nu == 3) return;
177 		fprintf(mFile,"\tsetAttr \".nu\" %i;\n", nu);
178 	}
setModeU(unsigned int mu)179 	void setModeU(unsigned int mu)
180 	{
181 		if(mu == 3) return;
182 		fprintf(mFile,"\tsetAttr \".mu\" %i;\n", mu);
183 	}
setNumberV(int nv)184 	void setNumberV(int nv)
185 	{
186 		if(nv == 3) return;
187 		fprintf(mFile,"\tsetAttr \".nv\" %i;\n", nv);
188 	}
setModeV(unsigned int mv)189 	void setModeV(unsigned int mv)
190 	{
191 		if(mv == 3) return;
192 		fprintf(mFile,"\tsetAttr \".mv\" %i;\n", mv);
193 	}
setChordHeight(double ch)194 	void setChordHeight(double ch)
195 	{
196 		if(ch == 0.1) return;
197 		fprintf(mFile,"\tsetAttr \".ch\" %f;\n", ch);
198 	}
setChordHeightRatio(double chr)199 	void setChordHeightRatio(double chr)
200 	{
201 		if(chr == 0.983) return;
202 		fprintf(mFile,"\tsetAttr \".chr\" %f;\n", chr);
203 	}
setMinScreen(double mns)204 	void setMinScreen(double mns)
205 	{
206 		if(mns == 14) return;
207 		fprintf(mFile,"\tsetAttr \".mns\" %f;\n", mns);
208 	}
setCached(const nurbsSurface & cc)209 	void setCached(const nurbsSurface& cc)
210 	{
211 		fprintf(mFile,"\tsetAttr \".cc\" -type \"nurbsSurface\" ");
212 		cc.write(mFile);
213 		fprintf(mFile,";\n");
214 	}
setInPlace(bool ipo)215 	void setInPlace(bool ipo)
216 	{
217 		if(ipo == false) return;
218 		fprintf(mFile,"\tsetAttr \".ipo\" %i;\n", ipo);
219 	}
setDisplayRenderTessellation(bool drt)220 	void setDisplayRenderTessellation(bool drt)
221 	{
222 		if(drt == false) return;
223 		fprintf(mFile,"\tsetAttr \".drt\" %i;\n", drt);
224 	}
setFixTextureWarp(bool ftwp)225 	void setFixTextureWarp(bool ftwp)
226 	{
227 		if(ftwp == false) return;
228 		fprintf(mFile,"\tsetAttr \".ftwp\" %i;\n", ftwp);
229 	}
setGridDivisionPerSpanU(short gdsu)230 	void setGridDivisionPerSpanU(short gdsu)
231 	{
232 		if(gdsu == 4) return;
233 		fprintf(mFile,"\tsetAttr \".gdsu\" %i;\n", gdsu);
234 	}
setGridDivisionPerSpanV(short gdsv)235 	void setGridDivisionPerSpanV(short gdsv)
236 	{
237 		if(gdsv == 4) return;
238 		fprintf(mFile,"\tsetAttr \".gdsv\" %i;\n", gdsv);
239 	}
setExplicitTessellationAttributes(bool eta)240 	void setExplicitTessellationAttributes(bool eta)
241 	{
242 		if(eta == false) return;
243 		fprintf(mFile,"\tsetAttr \".eta\" %i;\n", eta);
244 	}
setUDivisionsFactor(double nufa)245 	void setUDivisionsFactor(double nufa)
246 	{
247 		if(nufa == 1.5) return;
248 		fprintf(mFile,"\tsetAttr \".nufa\" %f;\n", nufa);
249 	}
setVDivisionsFactor(double nvfa)250 	void setVDivisionsFactor(double nvfa)
251 	{
252 		if(nvfa == 1.5) return;
253 		fprintf(mFile,"\tsetAttr \".nvfa\" %f;\n", nvfa);
254 	}
setCurvatureTolerance(unsigned int cvto)255 	void setCurvatureTolerance(unsigned int cvto)
256 	{
257 		if(cvto == 2) return;
258 		fprintf(mFile,"\tsetAttr \".cvto\" %i;\n", cvto);
259 	}
setBasicTessellationType(unsigned int btt)260 	void setBasicTessellationType(unsigned int btt)
261 	{
262 		if(btt == 0) return;
263 		fprintf(mFile,"\tsetAttr \".btt\" %i;\n", btt);
264 	}
setDispSF(bool dsf)265 	void setDispSF(bool dsf)
266 	{
267 		if(dsf == false) return;
268 		fprintf(mFile,"\tsetAttr \".dsf\" %i;\n", dsf);
269 	}
setNormalsDisplayScale(double ndf)270 	void setNormalsDisplayScale(double ndf)
271 	{
272 		if(ndf == 1.0) return;
273 		fprintf(mFile,"\tsetAttr \".ndf\" %f;\n", ndf);
274 	}
setMentalRayControls(const MentalRayControls & mrc)275 	void setMentalRayControls(const MentalRayControls& mrc)
276 	{
277 		fprintf(mFile,"\tsetAttr \".mrc\" ");
278 		mrc.write(mFile);
279 		fprintf(mFile,";\n");
280 	}
setMiOverrideCaustics(bool oca)281 	void setMiOverrideCaustics(bool oca)
282 	{
283 		if(oca == false) return;
284 		fprintf(mFile,"\tsetAttr \".mrc.oca\" %i;\n", oca);
285 	}
setMiCausticAccuracy(short caa)286 	void setMiCausticAccuracy(short caa)
287 	{
288 		if(caa == 64) return;
289 		fprintf(mFile,"\tsetAttr \".mrc.caa\" %i;\n", caa);
290 	}
setMiCausticRadius(float car)291 	void setMiCausticRadius(float car)
292 	{
293 		if(car == 0) return;
294 		fprintf(mFile,"\tsetAttr \".mrc.car\" %f;\n", car);
295 	}
setMiOverrideGlobalIllumination(bool ogi)296 	void setMiOverrideGlobalIllumination(bool ogi)
297 	{
298 		if(ogi == false) return;
299 		fprintf(mFile,"\tsetAttr \".mrc.ogi\" %i;\n", ogi);
300 	}
setMiGlobillumAccuracy(short gia)301 	void setMiGlobillumAccuracy(short gia)
302 	{
303 		if(gia == 64) return;
304 		fprintf(mFile,"\tsetAttr \".mrc.gia\" %i;\n", gia);
305 	}
setMiGlobillumRadius(float gir)306 	void setMiGlobillumRadius(float gir)
307 	{
308 		if(gir == 0) return;
309 		fprintf(mFile,"\tsetAttr \".mrc.gir\" %f;\n", gir);
310 	}
setMiOverrideFinalGather(bool ofg)311 	void setMiOverrideFinalGather(bool ofg)
312 	{
313 		if(ofg == false) return;
314 		fprintf(mFile,"\tsetAttr \".mrc.ofg\" %i;\n", ofg);
315 	}
setMiFinalGatherRays(int fry)316 	void setMiFinalGatherRays(int fry)
317 	{
318 		if(fry == 1000) return;
319 		fprintf(mFile,"\tsetAttr \".mrc.fry\" %i;\n", fry);
320 	}
setMiFinalGatherMinRadius(float fmn)321 	void setMiFinalGatherMinRadius(float fmn)
322 	{
323 		if(fmn == 0) return;
324 		fprintf(mFile,"\tsetAttr \".mrc.fmn\" %f;\n", fmn);
325 	}
setMiFinalGatherMaxRadius(float fmx)326 	void setMiFinalGatherMaxRadius(float fmx)
327 	{
328 		if(fmx == 0) return;
329 		fprintf(mFile,"\tsetAttr \".mrc.fmx\" %f;\n", fmx);
330 	}
setMiFinalGatherFilter(short ffi)331 	void setMiFinalGatherFilter(short ffi)
332 	{
333 		if(ffi == 1) return;
334 		fprintf(mFile,"\tsetAttr \".mrc.ffi\" %i;\n", ffi);
335 	}
setMiFinalGatherView(bool fgv)336 	void setMiFinalGatherView(bool fgv)
337 	{
338 		if(fgv == false) return;
339 		fprintf(mFile,"\tsetAttr \".mrc.fgv\" %i;\n", fgv);
340 	}
setMiOverrideSamples(bool oos)341 	void setMiOverrideSamples(bool oos)
342 	{
343 		if(oos == false) return;
344 		fprintf(mFile,"\tsetAttr \".mrc.oos\" %i;\n", oos);
345 	}
setMiMinSamples(short mins)346 	void setMiMinSamples(short mins)
347 	{
348 		if(mins == 0) return;
349 		fprintf(mFile,"\tsetAttr \".mrc.mins\" %i;\n", mins);
350 	}
setMiMaxSamples(short maxs)351 	void setMiMaxSamples(short maxs)
352 	{
353 		if(maxs == 2) return;
354 		fprintf(mFile,"\tsetAttr \".mrc.maxs\" %i;\n", maxs);
355 	}
setMiFinalGatherCast(bool fgc)356 	void setMiFinalGatherCast(bool fgc)
357 	{
358 		if(fgc == true) return;
359 		fprintf(mFile,"\tsetAttr \".mrc.fgc\" %i;\n", fgc);
360 	}
setMiFinalGatherReceive(bool fge)361 	void setMiFinalGatherReceive(bool fge)
362 	{
363 		if(fge == true) return;
364 		fprintf(mFile,"\tsetAttr \".mrc.fge\" %i;\n", fge);
365 	}
setMiTransparencyCast(bool tpc)366 	void setMiTransparencyCast(bool tpc)
367 	{
368 		if(tpc == true) return;
369 		fprintf(mFile,"\tsetAttr \".mrc.tpc\" %i;\n", tpc);
370 	}
setMiTransparencyReceive(bool tpr)371 	void setMiTransparencyReceive(bool tpr)
372 	{
373 		if(tpr == true) return;
374 		fprintf(mFile,"\tsetAttr \".mrc.tpr\" %i;\n", tpr);
375 	}
setMiReflectionReceive(bool rflr)376 	void setMiReflectionReceive(bool rflr)
377 	{
378 		if(rflr == true) return;
379 		fprintf(mFile,"\tsetAttr \".mrc.rflr\" %i;\n", rflr);
380 	}
setMiRefractionReceive(bool rfrr)381 	void setMiRefractionReceive(bool rfrr)
382 	{
383 		if(rfrr == true) return;
384 		fprintf(mFile,"\tsetAttr \".mrc.rfrr\" %i;\n", rfrr);
385 	}
getCreate()386 	void getCreate()const
387 	{
388 		fprintf(mFile,"\"%s.cr\"",mName.c_str());
389 	}
getLocal()390 	void getLocal()const
391 	{
392 		fprintf(mFile,"\"%s.l\"",mName.c_str());
393 	}
getWorldSpace(size_t ws_i)394 	void getWorldSpace(size_t ws_i)const
395 	{
396 		fprintf(mFile,"\"%s.ws[%i]\"",mName.c_str(),ws_i);
397 	}
getWorldSpace()398 	void getWorldSpace()const
399 	{
400 
401 		fprintf(mFile,"\"%s.ws\"",mName.c_str());
402 	}
getDivisionsU()403 	void getDivisionsU()const
404 	{
405 		fprintf(mFile,"\"%s.dvu\"",mName.c_str());
406 	}
getDivisionsV()407 	void getDivisionsV()const
408 	{
409 		fprintf(mFile,"\"%s.dvv\"",mName.c_str());
410 	}
getCurvePrecision()411 	void getCurvePrecision()const
412 	{
413 		fprintf(mFile,"\"%s.cpr\"",mName.c_str());
414 	}
getCurvePrecisionShaded()415 	void getCurvePrecisionShaded()const
416 	{
417 		fprintf(mFile,"\"%s.cps\"",mName.c_str());
418 	}
getSimplifyMode()419 	void getSimplifyMode()const
420 	{
421 		fprintf(mFile,"\"%s.sm\"",mName.c_str());
422 	}
getSimplifyU()423 	void getSimplifyU()const
424 	{
425 		fprintf(mFile,"\"%s.smu\"",mName.c_str());
426 	}
getSimplifyV()427 	void getSimplifyV()const
428 	{
429 		fprintf(mFile,"\"%s.smv\"",mName.c_str());
430 	}
getSmoothEdge()431 	void getSmoothEdge()const
432 	{
433 		fprintf(mFile,"\"%s.ues\"",mName.c_str());
434 	}
getSmoothEdgeRatio()435 	void getSmoothEdgeRatio()const
436 	{
437 		fprintf(mFile,"\"%s.esr\"",mName.c_str());
438 	}
getUseChordHeight()439 	void getUseChordHeight()const
440 	{
441 		fprintf(mFile,"\"%s.uch\"",mName.c_str());
442 	}
getObjSpaceChordHeight()443 	void getObjSpaceChordHeight()const
444 	{
445 		fprintf(mFile,"\"%s.uco\"",mName.c_str());
446 	}
getUseChordHeightRatio()447 	void getUseChordHeightRatio()const
448 	{
449 		fprintf(mFile,"\"%s.ucr\"",mName.c_str());
450 	}
getEdgeSwap()451 	void getEdgeSwap()const
452 	{
453 		fprintf(mFile,"\"%s.es\"",mName.c_str());
454 	}
getUseMinScreen()455 	void getUseMinScreen()const
456 	{
457 		fprintf(mFile,"\"%s.uns\"",mName.c_str());
458 	}
getSelCVDisp()459 	void getSelCVDisp()const
460 	{
461 		fprintf(mFile,"\"%s.scvd\"",mName.c_str());
462 	}
getDispCV()463 	void getDispCV()const
464 	{
465 		fprintf(mFile,"\"%s.dcv\"",mName.c_str());
466 	}
getDispEP()467 	void getDispEP()const
468 	{
469 		fprintf(mFile,"\"%s.dep\"",mName.c_str());
470 	}
getDispHull()471 	void getDispHull()const
472 	{
473 		fprintf(mFile,"\"%s.dh\"",mName.c_str());
474 	}
getDispGeometry()475 	void getDispGeometry()const
476 	{
477 		fprintf(mFile,"\"%s.dg\"",mName.c_str());
478 	}
getDispOrigin()479 	void getDispOrigin()const
480 	{
481 		fprintf(mFile,"\"%s.dor\"",mName.c_str());
482 	}
getNumberU()483 	void getNumberU()const
484 	{
485 		fprintf(mFile,"\"%s.nu\"",mName.c_str());
486 	}
getModeU()487 	void getModeU()const
488 	{
489 		fprintf(mFile,"\"%s.mu\"",mName.c_str());
490 	}
getNumberV()491 	void getNumberV()const
492 	{
493 		fprintf(mFile,"\"%s.nv\"",mName.c_str());
494 	}
getModeV()495 	void getModeV()const
496 	{
497 		fprintf(mFile,"\"%s.mv\"",mName.c_str());
498 	}
getChordHeight()499 	void getChordHeight()const
500 	{
501 		fprintf(mFile,"\"%s.ch\"",mName.c_str());
502 	}
getChordHeightRatio()503 	void getChordHeightRatio()const
504 	{
505 		fprintf(mFile,"\"%s.chr\"",mName.c_str());
506 	}
getMinScreen()507 	void getMinScreen()const
508 	{
509 		fprintf(mFile,"\"%s.mns\"",mName.c_str());
510 	}
getFormU()511 	void getFormU()const
512 	{
513 		fprintf(mFile,"\"%s.fu\"",mName.c_str());
514 	}
getFormV()515 	void getFormV()const
516 	{
517 		fprintf(mFile,"\"%s.fv\"",mName.c_str());
518 	}
getCached()519 	void getCached()const
520 	{
521 		fprintf(mFile,"\"%s.cc\"",mName.c_str());
522 	}
getPatchUVIds(size_t pu_i)523 	void getPatchUVIds(size_t pu_i)const
524 	{
525 		fprintf(mFile,"\"%s.pu[%i]\"",mName.c_str(),pu_i);
526 	}
getPatchUVIds()527 	void getPatchUVIds()const
528 	{
529 
530 		fprintf(mFile,"\"%s.pu\"",mName.c_str());
531 	}
getInPlace()532 	void getInPlace()const
533 	{
534 		fprintf(mFile,"\"%s.ipo\"",mName.c_str());
535 	}
getTweakSizeU()536 	void getTweakSizeU()const
537 	{
538 		fprintf(mFile,"\"%s.tsu\"",mName.c_str());
539 	}
getTweakSizeV()540 	void getTweakSizeV()const
541 	{
542 		fprintf(mFile,"\"%s.tsv\"",mName.c_str());
543 	}
getMinMaxRangeU()544 	void getMinMaxRangeU()const
545 	{
546 		fprintf(mFile,"\"%s.mmu\"",mName.c_str());
547 	}
getMinValueU()548 	void getMinValueU()const
549 	{
550 		fprintf(mFile,"\"%s.mmu.mnu\"",mName.c_str());
551 	}
getMaxValueU()552 	void getMaxValueU()const
553 	{
554 		fprintf(mFile,"\"%s.mmu.mxu\"",mName.c_str());
555 	}
getMinMaxRangeV()556 	void getMinMaxRangeV()const
557 	{
558 		fprintf(mFile,"\"%s.mmv\"",mName.c_str());
559 	}
getMinValueV()560 	void getMinValueV()const
561 	{
562 		fprintf(mFile,"\"%s.mmv.mnv\"",mName.c_str());
563 	}
getMaxValueV()564 	void getMaxValueV()const
565 	{
566 		fprintf(mFile,"\"%s.mmv.mxv\"",mName.c_str());
567 	}
getDegreeUV()568 	void getDegreeUV()const
569 	{
570 		fprintf(mFile,"\"%s.d\"",mName.c_str());
571 	}
getDegreeU()572 	void getDegreeU()const
573 	{
574 		fprintf(mFile,"\"%s.d.du\"",mName.c_str());
575 	}
getDegreeV()576 	void getDegreeV()const
577 	{
578 		fprintf(mFile,"\"%s.d.dv\"",mName.c_str());
579 	}
getSpansUV()580 	void getSpansUV()const
581 	{
582 		fprintf(mFile,"\"%s.sp\"",mName.c_str());
583 	}
getSpansU()584 	void getSpansU()const
585 	{
586 		fprintf(mFile,"\"%s.sp.su\"",mName.c_str());
587 	}
getSpansV()588 	void getSpansV()const
589 	{
590 		fprintf(mFile,"\"%s.sp.sv\"",mName.c_str());
591 	}
getDisplayRenderTessellation()592 	void getDisplayRenderTessellation()const
593 	{
594 		fprintf(mFile,"\"%s.drt\"",mName.c_str());
595 	}
getRenderTriangleCount()596 	void getRenderTriangleCount()const
597 	{
598 		fprintf(mFile,"\"%s.tcn\"",mName.c_str());
599 	}
getFixTextureWarp()600 	void getFixTextureWarp()const
601 	{
602 		fprintf(mFile,"\"%s.ftwp\"",mName.c_str());
603 	}
getGridDivisionPerSpanU()604 	void getGridDivisionPerSpanU()const
605 	{
606 		fprintf(mFile,"\"%s.gdsu\"",mName.c_str());
607 	}
getGridDivisionPerSpanV()608 	void getGridDivisionPerSpanV()const
609 	{
610 		fprintf(mFile,"\"%s.gdsv\"",mName.c_str());
611 	}
getExplicitTessellationAttributes()612 	void getExplicitTessellationAttributes()const
613 	{
614 		fprintf(mFile,"\"%s.eta\"",mName.c_str());
615 	}
getUDivisionsFactor()616 	void getUDivisionsFactor()const
617 	{
618 		fprintf(mFile,"\"%s.nufa\"",mName.c_str());
619 	}
getVDivisionsFactor()620 	void getVDivisionsFactor()const
621 	{
622 		fprintf(mFile,"\"%s.nvfa\"",mName.c_str());
623 	}
getCurvatureTolerance()624 	void getCurvatureTolerance()const
625 	{
626 		fprintf(mFile,"\"%s.cvto\"",mName.c_str());
627 	}
getBasicTessellationType()628 	void getBasicTessellationType()const
629 	{
630 		fprintf(mFile,"\"%s.btt\"",mName.c_str());
631 	}
getDispSF()632 	void getDispSF()const
633 	{
634 		fprintf(mFile,"\"%s.dsf\"",mName.c_str());
635 	}
getNormalsDisplayScale()636 	void getNormalsDisplayScale()const
637 	{
638 		fprintf(mFile,"\"%s.ndf\"",mName.c_str());
639 	}
getMentalRayControls()640 	void getMentalRayControls()const
641 	{
642 		fprintf(mFile,"\"%s.mrc\"",mName.c_str());
643 	}
getMiOverrideCaustics()644 	void getMiOverrideCaustics()const
645 	{
646 		fprintf(mFile,"\"%s.mrc.oca\"",mName.c_str());
647 	}
getMiCausticAccuracy()648 	void getMiCausticAccuracy()const
649 	{
650 		fprintf(mFile,"\"%s.mrc.caa\"",mName.c_str());
651 	}
getMiCausticRadius()652 	void getMiCausticRadius()const
653 	{
654 		fprintf(mFile,"\"%s.mrc.car\"",mName.c_str());
655 	}
getMiOverrideGlobalIllumination()656 	void getMiOverrideGlobalIllumination()const
657 	{
658 		fprintf(mFile,"\"%s.mrc.ogi\"",mName.c_str());
659 	}
getMiGlobillumAccuracy()660 	void getMiGlobillumAccuracy()const
661 	{
662 		fprintf(mFile,"\"%s.mrc.gia\"",mName.c_str());
663 	}
getMiGlobillumRadius()664 	void getMiGlobillumRadius()const
665 	{
666 		fprintf(mFile,"\"%s.mrc.gir\"",mName.c_str());
667 	}
getMiOverrideFinalGather()668 	void getMiOverrideFinalGather()const
669 	{
670 		fprintf(mFile,"\"%s.mrc.ofg\"",mName.c_str());
671 	}
getMiFinalGatherRays()672 	void getMiFinalGatherRays()const
673 	{
674 		fprintf(mFile,"\"%s.mrc.fry\"",mName.c_str());
675 	}
getMiFinalGatherMinRadius()676 	void getMiFinalGatherMinRadius()const
677 	{
678 		fprintf(mFile,"\"%s.mrc.fmn\"",mName.c_str());
679 	}
getMiFinalGatherMaxRadius()680 	void getMiFinalGatherMaxRadius()const
681 	{
682 		fprintf(mFile,"\"%s.mrc.fmx\"",mName.c_str());
683 	}
getMiFinalGatherFilter()684 	void getMiFinalGatherFilter()const
685 	{
686 		fprintf(mFile,"\"%s.mrc.ffi\"",mName.c_str());
687 	}
getMiFinalGatherView()688 	void getMiFinalGatherView()const
689 	{
690 		fprintf(mFile,"\"%s.mrc.fgv\"",mName.c_str());
691 	}
getMiOverrideSamples()692 	void getMiOverrideSamples()const
693 	{
694 		fprintf(mFile,"\"%s.mrc.oos\"",mName.c_str());
695 	}
getMiMinSamples()696 	void getMiMinSamples()const
697 	{
698 		fprintf(mFile,"\"%s.mrc.mins\"",mName.c_str());
699 	}
getMiMaxSamples()700 	void getMiMaxSamples()const
701 	{
702 		fprintf(mFile,"\"%s.mrc.maxs\"",mName.c_str());
703 	}
getMiFinalGatherCast()704 	void getMiFinalGatherCast()const
705 	{
706 		fprintf(mFile,"\"%s.mrc.fgc\"",mName.c_str());
707 	}
getMiFinalGatherReceive()708 	void getMiFinalGatherReceive()const
709 	{
710 		fprintf(mFile,"\"%s.mrc.fge\"",mName.c_str());
711 	}
getMiTransparencyCast()712 	void getMiTransparencyCast()const
713 	{
714 		fprintf(mFile,"\"%s.mrc.tpc\"",mName.c_str());
715 	}
getMiTransparencyReceive()716 	void getMiTransparencyReceive()const
717 	{
718 		fprintf(mFile,"\"%s.mrc.tpr\"",mName.c_str());
719 	}
getMiReflectionReceive()720 	void getMiReflectionReceive()const
721 	{
722 		fprintf(mFile,"\"%s.mrc.rflr\"",mName.c_str());
723 	}
getMiRefractionReceive()724 	void getMiRefractionReceive()const
725 	{
726 		fprintf(mFile,"\"%s.mrc.rfrr\"",mName.c_str());
727 	}
728 protected:
729 	NurbsSurface(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
SurfaceShape(file,name,parent,nodeType,shared,create)730 		:SurfaceShape(file, name, parent, nodeType, shared, create) {}
731 
732 };
733 }//namespace MayaDM
734 #endif//__MayaDM_NURBSSURFACE_H__
735