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_HAIRSYSTEM_H__
11
#define __MayaDM_HAIRSYSTEM_H__
12
#include "MayaDMTypes.h"
13
#include "MayaDMConnectables.h"
14
#include "MayaDMShape.h"
17
class HairSystem : public Shape
20
struct StiffnessScale{
21
float stiffnessScale_Position;
22
float stiffnessScale_FloatValue;
23
unsigned int stiffnessScale_Interp;
24
void write(FILE* file) const
26
fprintf(file,"%f ", stiffnessScale_Position);
27
fprintf(file,"%f ", stiffnessScale_FloatValue);
28
fprintf(file,"%i", stiffnessScale_Interp);
31
struct AttractionScale{
32
float attractionScale_Position;
33
float attractionScale_FloatValue;
34
unsigned int attractionScale_Interp;
35
void write(FILE* file) const
37
fprintf(file,"%f ", attractionScale_Position);
38
fprintf(file,"%f ", attractionScale_FloatValue);
39
fprintf(file,"%i", attractionScale_Interp);
42
struct ClumpWidthScale{
43
float clumpWidthScale_Position;
44
float clumpWidthScale_FloatValue;
45
unsigned int clumpWidthScale_Interp;
46
void write(FILE* file) const
48
fprintf(file,"%f ", clumpWidthScale_Position);
49
fprintf(file,"%f ", clumpWidthScale_FloatValue);
50
fprintf(file,"%i", clumpWidthScale_Interp);
54
float clumpCurl_Position;
55
float clumpCurl_FloatValue;
56
unsigned int clumpCurl_Interp;
57
void write(FILE* file) const
59
fprintf(file,"%f ", clumpCurl_Position);
60
fprintf(file,"%f ", clumpCurl_FloatValue);
61
fprintf(file,"%i", clumpCurl_Interp);
65
float clumpFlatness_Position;
66
float clumpFlatness_FloatValue;
67
unsigned int clumpFlatness_Interp;
68
void write(FILE* file) const
70
fprintf(file,"%f ", clumpFlatness_Position);
71
fprintf(file,"%f ", clumpFlatness_FloatValue);
72
fprintf(file,"%i", clumpFlatness_Interp);
75
struct HairWidthScale{
76
float hairWidthScale_Position;
77
float hairWidthScale_FloatValue;
78
unsigned int hairWidthScale_Interp;
79
void write(FILE* file) const
81
fprintf(file,"%f ", hairWidthScale_Position);
82
fprintf(file,"%f ", hairWidthScale_FloatValue);
83
fprintf(file,"%i", hairWidthScale_Interp);
86
struct HairColorScale{
87
float hairColorScale_Position;
88
float3 hairColorScale_Color;
89
unsigned int hairColorScale_Interp;
90
void write(FILE* file) const
92
fprintf(file,"%f ", hairColorScale_Position);
93
hairColorScale_Color.write(file);
95
fprintf(file,"%i", hairColorScale_Interp);
98
struct DisplacementScale{
99
float displacementScale_Position;
100
float displacementScale_FloatValue;
101
unsigned int displacementScale_Interp;
102
void write(FILE* file) const
104
fprintf(file,"%f ", displacementScale_Position);
105
fprintf(file,"%f ", displacementScale_FloatValue);
106
fprintf(file,"%i", displacementScale_Interp);
110
void write(FILE* file) const
114
struct CollisionData{
115
void write(FILE* file) const
119
struct MentalRayControls{
120
bool miOverrideCaustics;
121
short miCausticAccuracy;
122
float miCausticRadius;
123
bool miOverrideGlobalIllumination;
124
short miGlobillumAccuracy;
125
float miGlobillumRadius;
126
bool miOverrideFinalGather;
127
int miFinalGatherRays;
128
float miFinalGatherMinRadius;
129
float miFinalGatherMaxRadius;
130
short miFinalGatherFilter;
131
bool miFinalGatherView;
132
bool miOverrideSamples;
135
bool miFinalGatherCast;
136
bool miFinalGatherReceive;
137
bool miTransparencyCast;
138
bool miTransparencyReceive;
139
void write(FILE* file) const
141
fprintf(file,"%i ", miOverrideCaustics);
142
fprintf(file,"%i ", miCausticAccuracy);
143
fprintf(file,"%f ", miCausticRadius);
144
fprintf(file,"%i ", miOverrideGlobalIllumination);
145
fprintf(file,"%i ", miGlobillumAccuracy);
146
fprintf(file,"%f ", miGlobillumRadius);
147
fprintf(file,"%i ", miOverrideFinalGather);
148
fprintf(file,"%i ", miFinalGatherRays);
149
fprintf(file,"%f ", miFinalGatherMinRadius);
150
fprintf(file,"%f ", miFinalGatherMaxRadius);
151
fprintf(file,"%i ", miFinalGatherFilter);
152
fprintf(file,"%i ", miFinalGatherView);
153
fprintf(file,"%i ", miOverrideSamples);
154
fprintf(file,"%i ", miMinSamples);
155
fprintf(file,"%i ", miMaxSamples);
156
fprintf(file,"%i ", miFinalGatherCast);
157
fprintf(file,"%i ", miFinalGatherReceive);
158
fprintf(file,"%i ", miTransparencyCast);
159
fprintf(file,"%i", miTransparencyReceive);
164
HairSystem():Shape(){}
165
HairSystem(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
166
:Shape(file, name, parent, "hairSystem", shared, create){}
167
virtual ~HairSystem(){}
169
void setSimulationMethod(unsigned int sim)
172
fprintf(mFile,"\tsetAttr \".sim\" %i;\n", sim);
174
void setCollide(bool cld)
176
if(cld == true) return;
177
fprintf(mFile,"\tsetAttr \".cld\" %i;\n", cld);
179
void setCollideOverSample(int cos)
182
fprintf(mFile,"\tsetAttr \".cos\" %i;\n", cos);
184
void setSelfCollide(bool scd)
186
if(scd == false) return;
187
fprintf(mFile,"\tsetAttr \".scd\" %i;\n", scd);
189
void setCollideGround(bool cdg)
191
if(cdg == false) return;
192
fprintf(mFile,"\tsetAttr \".cdg\" %i;\n", cdg);
194
void setGroundHeight(double ghe)
196
if(ghe == 0.0) return;
197
fprintf(mFile,"\tsetAttr \".ghe\" %f;\n", ghe);
199
void setStiffness(double sfn)
201
if(sfn == 0.15) return;
202
fprintf(mFile,"\tsetAttr \".sfn\" %f;\n", sfn);
204
void setStiffnessScale(size_t sts_i,const StiffnessScale& sts)
206
fprintf(mFile,"\tsetAttr \".sts[%i]\" ",sts_i);
208
fprintf(mFile,";\n");
210
void setStiffnessScale(size_t sts_start,size_t sts_end,StiffnessScale* sts)
212
fprintf(mFile,"\tsetAttr \".sts[%i:%i]\" ", sts_start,sts_end);
213
size_t size = (sts_end-sts_start)*1+1;
214
for(size_t i=0;i<size;++i)
219
fprintf(mFile,";\n");
221
void startStiffnessScale(size_t sts_start,size_t sts_end)const
223
fprintf(mFile,"\tsetAttr \".sts[%i:%i]\"",sts_start,sts_end);
224
fprintf(mFile," -type \"StiffnessScale\" ");
226
void appendStiffnessScale(const StiffnessScale& sts)const
231
void endStiffnessScale()const
233
fprintf(mFile,";\n");
235
void setStiffnessScale_Position(size_t sts_i,float stsp)
237
if(stsp == 0.0) return;
238
fprintf(mFile,"\tsetAttr \".sts[%i].stsp\" %f;\n", sts_i,stsp);
240
void setStiffnessScale_FloatValue(size_t sts_i,float stsfv)
242
if(stsfv == 0.0) return;
243
fprintf(mFile,"\tsetAttr \".sts[%i].stsfv\" %f;\n", sts_i,stsfv);
245
void setStiffnessScale_Interp(size_t sts_i,unsigned int stsi)
247
if(stsi == 0) return;
248
fprintf(mFile,"\tsetAttr \".sts[%i].stsi\" %i;\n", sts_i,stsi);
250
void setLengthFlex(double lfx)
252
if(lfx == 0.0) return;
253
fprintf(mFile,"\tsetAttr \".lfx\" %f;\n", lfx);
255
void setDamp(double dmp)
257
if(dmp == 0.0) return;
258
fprintf(mFile,"\tsetAttr \".dmp\" %f;\n", dmp);
260
void setDrag(double drg)
262
if(drg == 0.05) return;
263
fprintf(mFile,"\tsetAttr \".drg\" %f;\n", drg);
265
void setFriction(double frc)
267
if(frc == 0.5) return;
268
fprintf(mFile,"\tsetAttr \".frc\" %f;\n", frc);
270
void setMass(double mss)
272
if(mss == 1.0) return;
273
fprintf(mFile,"\tsetAttr \".mss\" %f;\n", mss);
275
void setDynamicsWeight(double dw)
277
if(dw == 1.0) return;
278
fprintf(mFile,"\tsetAttr \".dw\" %f;\n", dw);
280
void setCollideWidthOffset(double wid)
282
if(wid == 0.0) return;
283
fprintf(mFile,"\tsetAttr \".wid\" %f;\n", wid);
285
void setStaticCling(double stc)
287
if(stc == 0.0) return;
288
fprintf(mFile,"\tsetAttr \".stc\" %f;\n", stc);
290
void setRepulsion(double rpl)
292
if(rpl == 0.5) return;
293
fprintf(mFile,"\tsetAttr \".rpl\" %f;\n", rpl);
295
void setNumCollideNeighbors(int ncn)
298
fprintf(mFile,"\tsetAttr \".ncn\" %i;\n", ncn);
300
void setIterations(int itr)
303
fprintf(mFile,"\tsetAttr \".itr\" %i;\n", itr);
305
void setDrawCollideWidth(bool dwd)
307
if(dwd == false) return;
308
fprintf(mFile,"\tsetAttr \".dwd\" %i;\n", dwd);
310
void setWidthDrawSkip(int wds)
313
fprintf(mFile,"\tsetAttr \".wds\" %i;\n", wds);
315
void setGravity(double grv)
317
if(grv == 0.98) return;
318
fprintf(mFile,"\tsetAttr \".grv\" %f;\n", grv);
320
void setTurbulenceStrength(double tst)
323
fprintf(mFile,"\tsetAttr \".tst\" %f;\n", tst);
325
void setTurbulenceFrequency(double tfr)
327
if(tfr == 0.2) return;
328
fprintf(mFile,"\tsetAttr \".tfr\" %f;\n", tfr);
330
void setTurbulenceSpeed(double tbs)
332
if(tbs == .2) return;
333
fprintf(mFile,"\tsetAttr \".tbs\" %f;\n", tbs);
335
void setAttractionDamp(double ad)
337
if(ad == 0.0) return;
338
fprintf(mFile,"\tsetAttr \".ad\" %f;\n", ad);
340
void setStartCurveAttract(double sct)
342
if(sct == 0.0) return;
343
fprintf(mFile,"\tsetAttr \".sct\" %f;\n", sct);
345
void setAttractionScale(size_t ats_i,const AttractionScale& ats)
347
fprintf(mFile,"\tsetAttr \".ats[%i]\" ",ats_i);
349
fprintf(mFile,";\n");
351
void setAttractionScale(size_t ats_start,size_t ats_end,AttractionScale* ats)
353
fprintf(mFile,"\tsetAttr \".ats[%i:%i]\" ", ats_start,ats_end);
354
size_t size = (ats_end-ats_start)*1+1;
355
for(size_t i=0;i<size;++i)
360
fprintf(mFile,";\n");
362
void startAttractionScale(size_t ats_start,size_t ats_end)const
364
fprintf(mFile,"\tsetAttr \".ats[%i:%i]\"",ats_start,ats_end);
365
fprintf(mFile," -type \"AttractionScale\" ");
367
void appendAttractionScale(const AttractionScale& ats)const
372
void endAttractionScale()const
374
fprintf(mFile,";\n");
376
void setAttractionScale_Position(size_t ats_i,float atsp)
378
if(atsp == 0.0) return;
379
fprintf(mFile,"\tsetAttr \".ats[%i].atsp\" %f;\n", ats_i,atsp);
381
void setAttractionScale_FloatValue(size_t ats_i,float atsfv)
383
if(atsfv == 0.0) return;
384
fprintf(mFile,"\tsetAttr \".ats[%i].atsfv\" %f;\n", ats_i,atsfv);
386
void setAttractionScale_Interp(size_t ats_i,unsigned int atsi)
388
if(atsi == 0) return;
389
fprintf(mFile,"\tsetAttr \".ats[%i].atsi\" %i;\n", ats_i,atsi);
391
void setMotionDrag(double mdg)
393
if(mdg == 0.0) return;
394
fprintf(mFile,"\tsetAttr \".mdg\" %f;\n", mdg);
396
void setDisplayQuality(double dpq)
398
if(dpq == 100.0) return;
399
fprintf(mFile,"\tsetAttr \".dpq\" %f;\n", dpq);
401
void setNoStretch(bool nst)
403
if(nst == false) return;
404
fprintf(mFile,"\tsetAttr \".nst\" %i;\n", nst);
406
void setSubSegments(int ssg)
409
fprintf(mFile,"\tsetAttr \".ssg\" %i;\n", ssg);
411
void setClumpWidth(double cwd)
413
if(cwd == 0.3) return;
414
fprintf(mFile,"\tsetAttr \".cwd\" %f;\n", cwd);
416
void setClumpWidthScale(size_t cws_i,const ClumpWidthScale& cws)
418
fprintf(mFile,"\tsetAttr \".cws[%i]\" ",cws_i);
420
fprintf(mFile,";\n");
422
void setClumpWidthScale(size_t cws_start,size_t cws_end,ClumpWidthScale* cws)
424
fprintf(mFile,"\tsetAttr \".cws[%i:%i]\" ", cws_start,cws_end);
425
size_t size = (cws_end-cws_start)*1+1;
426
for(size_t i=0;i<size;++i)
431
fprintf(mFile,";\n");
433
void startClumpWidthScale(size_t cws_start,size_t cws_end)const
435
fprintf(mFile,"\tsetAttr \".cws[%i:%i]\"",cws_start,cws_end);
436
fprintf(mFile," -type \"ClumpWidthScale\" ");
438
void appendClumpWidthScale(const ClumpWidthScale& cws)const
443
void endClumpWidthScale()const
445
fprintf(mFile,";\n");
447
void setClumpWidthScale_Position(size_t cws_i,float cwsp)
449
if(cwsp == 0.0) return;
450
fprintf(mFile,"\tsetAttr \".cws[%i].cwsp\" %f;\n", cws_i,cwsp);
452
void setClumpWidthScale_FloatValue(size_t cws_i,float cwsfv)
454
if(cwsfv == 0.0) return;
455
fprintf(mFile,"\tsetAttr \".cws[%i].cwsfv\" %f;\n", cws_i,cwsfv);
457
void setClumpWidthScale_Interp(size_t cws_i,unsigned int cwsi)
459
if(cwsi == 0) return;
460
fprintf(mFile,"\tsetAttr \".cws[%i].cwsi\" %i;\n", cws_i,cwsi);
462
void setClumpTwist(double ctw)
464
if(ctw == 0.0) return;
465
fprintf(mFile,"\tsetAttr \".ctw\" %f;\n", ctw);
467
void setClumpCurl(size_t clc_i,const ClumpCurl& clc)
469
fprintf(mFile,"\tsetAttr \".clc[%i]\" ",clc_i);
471
fprintf(mFile,";\n");
473
void setClumpCurl(size_t clc_start,size_t clc_end,ClumpCurl* clc)
475
fprintf(mFile,"\tsetAttr \".clc[%i:%i]\" ", clc_start,clc_end);
476
size_t size = (clc_end-clc_start)*1+1;
477
for(size_t i=0;i<size;++i)
482
fprintf(mFile,";\n");
484
void startClumpCurl(size_t clc_start,size_t clc_end)const
486
fprintf(mFile,"\tsetAttr \".clc[%i:%i]\"",clc_start,clc_end);
487
fprintf(mFile," -type \"ClumpCurl\" ");
489
void appendClumpCurl(const ClumpCurl& clc)const
494
void endClumpCurl()const
496
fprintf(mFile,";\n");
498
void setClumpCurl_Position(size_t clc_i,float clcp)
500
if(clcp == 0.0) return;
501
fprintf(mFile,"\tsetAttr \".clc[%i].clcp\" %f;\n", clc_i,clcp);
503
void setClumpCurl_FloatValue(size_t clc_i,float clcfv)
505
if(clcfv == 0.0) return;
506
fprintf(mFile,"\tsetAttr \".clc[%i].clcfv\" %f;\n", clc_i,clcfv);
508
void setClumpCurl_Interp(size_t clc_i,unsigned int clci)
510
if(clci == 0) return;
511
fprintf(mFile,"\tsetAttr \".clc[%i].clci\" %i;\n", clc_i,clci);
513
void setClumpFlatness(size_t cfl_i,const ClumpFlatness& cfl)
515
fprintf(mFile,"\tsetAttr \".cfl[%i]\" ",cfl_i);
517
fprintf(mFile,";\n");
519
void setClumpFlatness(size_t cfl_start,size_t cfl_end,ClumpFlatness* cfl)
521
fprintf(mFile,"\tsetAttr \".cfl[%i:%i]\" ", cfl_start,cfl_end);
522
size_t size = (cfl_end-cfl_start)*1+1;
523
for(size_t i=0;i<size;++i)
528
fprintf(mFile,";\n");
530
void startClumpFlatness(size_t cfl_start,size_t cfl_end)const
532
fprintf(mFile,"\tsetAttr \".cfl[%i:%i]\"",cfl_start,cfl_end);
533
fprintf(mFile," -type \"ClumpFlatness\" ");
535
void appendClumpFlatness(const ClumpFlatness& cfl)const
540
void endClumpFlatness()const
542
fprintf(mFile,";\n");
544
void setClumpFlatness_Position(size_t cfl_i,float cflp)
546
if(cflp == 0.0) return;
547
fprintf(mFile,"\tsetAttr \".cfl[%i].cflp\" %f;\n", cfl_i,cflp);
549
void setClumpFlatness_FloatValue(size_t cfl_i,float cflfv)
551
if(cflfv == 0.0) return;
552
fprintf(mFile,"\tsetAttr \".cfl[%i].cflfv\" %f;\n", cfl_i,cflfv);
554
void setClumpFlatness_Interp(size_t cfl_i,unsigned int cfli)
556
if(cfli == 0) return;
557
fprintf(mFile,"\tsetAttr \".cfl[%i].cfli\" %i;\n", cfl_i,cfli);
559
void setBendFollow(double bnf)
561
if(bnf == 1.0) return;
562
fprintf(mFile,"\tsetAttr \".bnf\" %f;\n", bnf);
564
void setHairWidth(double hwd)
566
if(hwd == 0.01) return;
567
fprintf(mFile,"\tsetAttr \".hwd\" %f;\n", hwd);
569
void setHairWidthScale(size_t hws_i,const HairWidthScale& hws)
571
fprintf(mFile,"\tsetAttr \".hws[%i]\" ",hws_i);
573
fprintf(mFile,";\n");
575
void setHairWidthScale(size_t hws_start,size_t hws_end,HairWidthScale* hws)
577
fprintf(mFile,"\tsetAttr \".hws[%i:%i]\" ", hws_start,hws_end);
578
size_t size = (hws_end-hws_start)*1+1;
579
for(size_t i=0;i<size;++i)
584
fprintf(mFile,";\n");
586
void startHairWidthScale(size_t hws_start,size_t hws_end)const
588
fprintf(mFile,"\tsetAttr \".hws[%i:%i]\"",hws_start,hws_end);
589
fprintf(mFile," -type \"HairWidthScale\" ");
591
void appendHairWidthScale(const HairWidthScale& hws)const
596
void endHairWidthScale()const
598
fprintf(mFile,";\n");
600
void setHairWidthScale_Position(size_t hws_i,float hwsp)
602
if(hwsp == 0.0) return;
603
fprintf(mFile,"\tsetAttr \".hws[%i].hwsp\" %f;\n", hws_i,hwsp);
605
void setHairWidthScale_FloatValue(size_t hws_i,float hwsfv)
607
if(hwsfv == 0.0) return;
608
fprintf(mFile,"\tsetAttr \".hws[%i].hwsfv\" %f;\n", hws_i,hwsfv);
610
void setHairWidthScale_Interp(size_t hws_i,unsigned int hwsi)
612
if(hwsi == 0) return;
613
fprintf(mFile,"\tsetAttr \".hws[%i].hwsi\" %i;\n", hws_i,hwsi);
615
void setBaldnessMap(double bmp)
617
if(bmp == 1.0) return;
618
fprintf(mFile,"\tsetAttr \".bmp\" %f;\n", bmp);
620
void setOpacity(double opc)
622
if(opc == 1.0) return;
623
fprintf(mFile,"\tsetAttr \".opc\" %f;\n", opc);
625
void setHairColor(const float3& hcl)
627
fprintf(mFile,"\tsetAttr \".hcl\" -type \"float3\" ");
629
fprintf(mFile,";\n");
631
void setHairColorR(float hcr)
633
if(hcr == 0.3) return;
634
fprintf(mFile,"\tsetAttr \".hcl.hcr\" %f;\n", hcr);
636
void setHairColorG(float hcg)
638
if(hcg == 0.25) return;
639
fprintf(mFile,"\tsetAttr \".hcl.hcg\" %f;\n", hcg);
641
void setHairColorB(float hcb)
643
if(hcb == 0.15) return;
644
fprintf(mFile,"\tsetAttr \".hcl.hcb\" %f;\n", hcb);
646
void setHairColorScale(size_t hcs_i,const HairColorScale& hcs)
648
fprintf(mFile,"\tsetAttr \".hcs[%i]\" ",hcs_i);
650
fprintf(mFile,";\n");
652
void setHairColorScale(size_t hcs_start,size_t hcs_end,HairColorScale* hcs)
654
fprintf(mFile,"\tsetAttr \".hcs[%i:%i]\" ", hcs_start,hcs_end);
655
size_t size = (hcs_end-hcs_start)*1+1;
656
for(size_t i=0;i<size;++i)
661
fprintf(mFile,";\n");
663
void startHairColorScale(size_t hcs_start,size_t hcs_end)const
665
fprintf(mFile,"\tsetAttr \".hcs[%i:%i]\"",hcs_start,hcs_end);
666
fprintf(mFile," -type \"HairColorScale\" ");
668
void appendHairColorScale(const HairColorScale& hcs)const
673
void endHairColorScale()const
675
fprintf(mFile,";\n");
677
void setHairColorScale_Position(size_t hcs_i,float hcsp)
679
if(hcsp == 0.0) return;
680
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsp\" %f;\n", hcs_i,hcsp);
682
void setHairColorScale_Color(size_t hcs_i,const float3& hcsc)
684
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsc\" -type \"float3\" ",hcs_i);
686
fprintf(mFile,";\n");
688
void setHairColorScale_ColorR(size_t hcs_i,float hcscr)
690
if(hcscr == 0.0) return;
691
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsc.hcscr\" %f;\n", hcs_i,hcscr);
693
void setHairColorScale_ColorG(size_t hcs_i,float hcscg)
695
if(hcscg == 0.0) return;
696
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsc.hcscg\" %f;\n", hcs_i,hcscg);
698
void setHairColorScale_ColorB(size_t hcs_i,float hcscb)
700
if(hcscb == 0.0) return;
701
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsc.hcscb\" %f;\n", hcs_i,hcscb);
703
void setHairColorScale_Interp(size_t hcs_i,unsigned int hcsi)
705
if(hcsi == 0) return;
706
fprintf(mFile,"\tsetAttr \".hcs[%i].hcsi\" %i;\n", hcs_i,hcsi);
708
void setHairsPerClump(int hpc)
710
if(hpc == 10) return;
711
fprintf(mFile,"\tsetAttr \".hpc\" %i;\n", hpc);
713
void setThinning(double thn)
715
if(thn == 0.0) return;
716
fprintf(mFile,"\tsetAttr \".thn\" %f;\n", thn);
718
void setTranslucence(double tlc)
720
if(tlc == 0.5) return;
721
fprintf(mFile,"\tsetAttr \".tlc\" %f;\n", tlc);
723
void setSpecularColor(const float3& spc)
725
fprintf(mFile,"\tsetAttr \".spc\" -type \"float3\" ");
727
fprintf(mFile,";\n");
729
void setSpecularColorR(float spr)
731
if(spr == 0.35) return;
732
fprintf(mFile,"\tsetAttr \".spc.spr\" %f;\n", spr);
734
void setSpecularColorG(float spg)
736
if(spg == 0.35) return;
737
fprintf(mFile,"\tsetAttr \".spc.spg\" %f;\n", spg);
739
void setSpecularColorB(float spb)
741
if(spb == 0.3) return;
742
fprintf(mFile,"\tsetAttr \".spc.spb\" %f;\n", spb);
744
void setSpecularPower(double spp)
746
if(spp == 3.0) return;
747
fprintf(mFile,"\tsetAttr \".spp\" %f;\n", spp);
749
void setCastShadows(bool csd)
751
if(csd == true) return;
752
fprintf(mFile,"\tsetAttr \".csd\" %i;\n", csd);
754
void setDiffuseRand(double dfr)
756
if(dfr == 0.2) return;
757
fprintf(mFile,"\tsetAttr \".dfr\" %f;\n", dfr);
759
void setSpecularRand(double sra)
761
if(sra == 0.4) return;
762
fprintf(mFile,"\tsetAttr \".sra\" %f;\n", sra);
764
void setHueRand(double chr)
766
if(chr == 0.0) return;
767
fprintf(mFile,"\tsetAttr \".chr\" %f;\n", chr);
769
void setSatRand(double csr)
771
if(csr == 0.0) return;
772
fprintf(mFile,"\tsetAttr \".csr\" %f;\n", csr);
774
void setValRand(double cvr)
776
if(cvr == 0.0) return;
777
fprintf(mFile,"\tsetAttr \".cvr\" %f;\n", cvr);
779
void setMultiStreaks(int mst)
782
fprintf(mFile,"\tsetAttr \".mst\" %i;\n", mst);
784
void setMultiStreakSpread1(double ms1)
786
if(ms1 == 0.3) return;
787
fprintf(mFile,"\tsetAttr \".ms1\" %f;\n", ms1);
789
void setMultiStreakSpread2(double ms2)
791
if(ms2 == 0.1) return;
792
fprintf(mFile,"\tsetAttr \".ms2\" %f;\n", ms2);
794
void setLightEachHair(bool leh)
796
if(leh == false) return;
797
fprintf(mFile,"\tsetAttr \".leh\" %i;\n", leh);
799
void setDisplacementScale(size_t dsc_i,const DisplacementScale& dsc)
801
fprintf(mFile,"\tsetAttr \".dsc[%i]\" ",dsc_i);
803
fprintf(mFile,";\n");
805
void setDisplacementScale(size_t dsc_start,size_t dsc_end,DisplacementScale* dsc)
807
fprintf(mFile,"\tsetAttr \".dsc[%i:%i]\" ", dsc_start,dsc_end);
808
size_t size = (dsc_end-dsc_start)*1+1;
809
for(size_t i=0;i<size;++i)
814
fprintf(mFile,";\n");
816
void startDisplacementScale(size_t dsc_start,size_t dsc_end)const
818
fprintf(mFile,"\tsetAttr \".dsc[%i:%i]\"",dsc_start,dsc_end);
819
fprintf(mFile," -type \"DisplacementScale\" ");
821
void appendDisplacementScale(const DisplacementScale& dsc)const
826
void endDisplacementScale()const
828
fprintf(mFile,";\n");
830
void setDisplacementScale_Position(size_t dsc_i,float dscp)
832
if(dscp == 0.0) return;
833
fprintf(mFile,"\tsetAttr \".dsc[%i].dscp\" %f;\n", dsc_i,dscp);
835
void setDisplacementScale_FloatValue(size_t dsc_i,float dscfv)
837
if(dscfv == 0.0) return;
838
fprintf(mFile,"\tsetAttr \".dsc[%i].dscfv\" %f;\n", dsc_i,dscfv);
840
void setDisplacementScale_Interp(size_t dsc_i,unsigned int dsci)
842
if(dsci == 0) return;
843
fprintf(mFile,"\tsetAttr \".dsc[%i].dsci\" %i;\n", dsc_i,dsci);
845
void setCurl(double crl)
847
if(crl == 0.0) return;
848
fprintf(mFile,"\tsetAttr \".crl\" %f;\n", crl);
850
void setCurlFrequency(double crf)
852
if(crf == 10) return;
853
fprintf(mFile,"\tsetAttr \".crf\" %f;\n", crf);
855
void setNoiseMethod(unsigned int nmt)
858
fprintf(mFile,"\tsetAttr \".nmt\" %i;\n", nmt);
860
void setNoise(double noi)
862
if(noi == 0.0) return;
863
fprintf(mFile,"\tsetAttr \".noi\" %f;\n", noi);
865
void setDetailNoise(double dno)
867
if(dno == 0.0) return;
868
fprintf(mFile,"\tsetAttr \".dno\" %f;\n", dno);
870
void setNoiseFrequency(double nof)
872
if(nof == 0.4) return;
873
fprintf(mFile,"\tsetAttr \".nof\" %f;\n", nof);
875
void setNoiseFrequencyU(double nfu)
877
if(nfu == 1.0) return;
878
fprintf(mFile,"\tsetAttr \".nfu\" %f;\n", nfu);
880
void setNoiseFrequencyV(double nfv)
882
if(nfv == 1.0) return;
883
fprintf(mFile,"\tsetAttr \".nfv\" %f;\n", nfv);
885
void setNoiseFrequencyW(double nfw)
887
if(nfw == 1.0) return;
888
fprintf(mFile,"\tsetAttr \".nfw\" %f;\n", nfw);
890
void setSubClumpMethod(unsigned int scm)
893
fprintf(mFile,"\tsetAttr \".scm\" %i;\n", scm);
895
void setSubClumping(double scp)
897
if(scp == 0.0) return;
898
fprintf(mFile,"\tsetAttr \".scp\" %f;\n", scp);
900
void setSubClumpRand(double scr)
902
if(scr == 0.0) return;
903
fprintf(mFile,"\tsetAttr \".scr\" %f;\n", scr);
905
void setNumUClumps(double nuc)
907
if(nuc == 15.0) return;
908
fprintf(mFile,"\tsetAttr \".nuc\" %f;\n", nuc);
910
void setNumVClumps(double nvc)
912
if(nvc == 15.0) return;
913
fprintf(mFile,"\tsetAttr \".nvc\" %f;\n", nvc);
915
void setClumpInterpolation(double cin)
917
if(cin == 0.0) return;
918
fprintf(mFile,"\tsetAttr \".cin\" %f;\n", cin);
920
void setInterpolationRange(double inr)
922
if(inr == 8.0) return;
923
fprintf(mFile,"\tsetAttr \".inr\" %f;\n", inr);
925
void setStartFrame(double stf)
927
if(stf == 1.0) return;
928
fprintf(mFile,"\tsetAttr \".stf\" %f;\n", stf);
930
void setUsePre70ForceIntensity(bool upfi)
932
if(upfi == false) return;
933
fprintf(mFile,"\tsetAttr \".upfi\" %i;\n", upfi);
935
void setReceiveShadows(bool rcsh)
937
if(rcsh == true) return;
938
fprintf(mFile,"\tsetAttr \".rcsh\" %i;\n", rcsh);
940
void setVisibleInReflections(bool vir)
942
if(vir == false) return;
943
fprintf(mFile,"\tsetAttr \".vir\" %i;\n", vir);
945
void setVisibleInRefractions(bool vif)
947
if(vif == false) return;
948
fprintf(mFile,"\tsetAttr \".vif\" %i;\n", vif);
950
void setMentalRayControls(const MentalRayControls& mrc)
952
fprintf(mFile,"\tsetAttr \".mrc\" ");
954
fprintf(mFile,";\n");
956
void setMiOverrideCaustics(bool oca)
958
if(oca == false) return;
959
fprintf(mFile,"\tsetAttr \".mrc.oca\" %i;\n", oca);
961
void setMiCausticAccuracy(short caa)
963
if(caa == 64) return;
964
fprintf(mFile,"\tsetAttr \".mrc.caa\" %i;\n", caa);
966
void setMiCausticRadius(float car)
969
fprintf(mFile,"\tsetAttr \".mrc.car\" %f;\n", car);
971
void setMiOverrideGlobalIllumination(bool ogi)
973
if(ogi == false) return;
974
fprintf(mFile,"\tsetAttr \".mrc.ogi\" %i;\n", ogi);
976
void setMiGlobillumAccuracy(short gia)
978
if(gia == 64) return;
979
fprintf(mFile,"\tsetAttr \".mrc.gia\" %i;\n", gia);
981
void setMiGlobillumRadius(float gir)
984
fprintf(mFile,"\tsetAttr \".mrc.gir\" %f;\n", gir);
986
void setMiOverrideFinalGather(bool ofg)
988
if(ofg == false) return;
989
fprintf(mFile,"\tsetAttr \".mrc.ofg\" %i;\n", ofg);
991
void setMiFinalGatherRays(int fry)
993
if(fry == 1000) return;
994
fprintf(mFile,"\tsetAttr \".mrc.fry\" %i;\n", fry);
996
void setMiFinalGatherMinRadius(float fmn)
999
fprintf(mFile,"\tsetAttr \".mrc.fmn\" %f;\n", fmn);
1001
void setMiFinalGatherMaxRadius(float fmx)
1003
if(fmx == 0) return;
1004
fprintf(mFile,"\tsetAttr \".mrc.fmx\" %f;\n", fmx);
1006
void setMiFinalGatherFilter(short ffi)
1008
if(ffi == 1) return;
1009
fprintf(mFile,"\tsetAttr \".mrc.ffi\" %i;\n", ffi);
1011
void setMiFinalGatherView(bool fgv)
1013
if(fgv == false) return;
1014
fprintf(mFile,"\tsetAttr \".mrc.fgv\" %i;\n", fgv);
1016
void setMiOverrideSamples(bool oos)
1018
if(oos == false) return;
1019
fprintf(mFile,"\tsetAttr \".mrc.oos\" %i;\n", oos);
1021
void setMiMinSamples(short mins)
1023
if(mins == 0) return;
1024
fprintf(mFile,"\tsetAttr \".mrc.mins\" %i;\n", mins);
1026
void setMiMaxSamples(short maxs)
1028
if(maxs == 2) return;
1029
fprintf(mFile,"\tsetAttr \".mrc.maxs\" %i;\n", maxs);
1031
void setMiFinalGatherCast(bool fgc)
1033
if(fgc == true) return;
1034
fprintf(mFile,"\tsetAttr \".mrc.fgc\" %i;\n", fgc);
1036
void setMiFinalGatherReceive(bool fge)
1038
if(fge == true) return;
1039
fprintf(mFile,"\tsetAttr \".mrc.fge\" %i;\n", fge);
1041
void setMiTransparencyCast(bool tpc)
1043
if(tpc == true) return;
1044
fprintf(mFile,"\tsetAttr \".mrc.tpc\" %i;\n", tpc);
1046
void setMiTransparencyReceive(bool tpr)
1048
if(tpr == true) return;
1049
fprintf(mFile,"\tsetAttr \".mrc.tpr\" %i;\n", tpr);
1051
void setOutputHair(size_t oh_i,const vectorArray& oh)
1053
if(oh.size == 0) return;
1054
fprintf(mFile,"\tsetAttr \".oh[%i]\" -type \"vectorArray\" ",oh_i);
1056
fprintf(mFile,";\n");
1058
void setOutputHair(size_t oh_start,size_t oh_end,vectorArray* oh)
1060
fprintf(mFile,"\tsetAttr \".oh[%i:%i]\" ", oh_start,oh_end);
1061
size_t size = (oh_end-oh_start)*1+1;
1062
for(size_t i=0;i<size;++i)
1065
fprintf(mFile,"\n");
1067
fprintf(mFile,";\n");
1069
void startOutputHair(size_t oh_start,size_t oh_end)const
1071
fprintf(mFile,"\tsetAttr \".oh[%i:%i]\"",oh_start,oh_end);
1072
fprintf(mFile," -type \"vectorArray\" ");
1074
void appendOutputHair(const vectorArray& oh)const
1079
void endOutputHair()const
1081
fprintf(mFile,";\n");
1083
void getSimulationMethod()const
1085
fprintf(mFile,"\"%s.sim\"",mName.c_str());
1087
void getInputHair(size_t ih_i)const
1089
fprintf(mFile,"\"%s.ih[%i]\"",mName.c_str(),ih_i);
1091
void getInputHair()const
1094
fprintf(mFile,"\"%s.ih\"",mName.c_str());
1096
void getInputHairPin(size_t ihp_i)const
1098
fprintf(mFile,"\"%s.ihp[%i]\"",mName.c_str(),ihp_i);
1100
void getInputHairPin()const
1103
fprintf(mFile,"\"%s.ihp\"",mName.c_str());
1105
void getCollide()const
1107
fprintf(mFile,"\"%s.cld\"",mName.c_str());
1109
void getCollideOverSample()const
1111
fprintf(mFile,"\"%s.cos\"",mName.c_str());
1113
void getSelfCollide()const
1115
fprintf(mFile,"\"%s.scd\"",mName.c_str());
1117
void getCollideGround()const
1119
fprintf(mFile,"\"%s.cdg\"",mName.c_str());
1121
void getGroundHeight()const
1123
fprintf(mFile,"\"%s.ghe\"",mName.c_str());
1125
void getStiffness()const
1127
fprintf(mFile,"\"%s.sfn\"",mName.c_str());
1129
void getStiffnessScale(size_t sts_i)const
1131
fprintf(mFile,"\"%s.sts[%i]\"",mName.c_str(),sts_i);
1133
void getStiffnessScale()const
1136
fprintf(mFile,"\"%s.sts\"",mName.c_str());
1138
void getStiffnessScale_Position(size_t sts_i)const
1140
fprintf(mFile,"\"%s.sts[%i].stsp\"",mName.c_str(),sts_i);
1142
void getStiffnessScale_Position()const
1145
fprintf(mFile,"\"%s.sts.stsp\"",mName.c_str());
1147
void getStiffnessScale_FloatValue(size_t sts_i)const
1149
fprintf(mFile,"\"%s.sts[%i].stsfv\"",mName.c_str(),sts_i);
1151
void getStiffnessScale_FloatValue()const
1154
fprintf(mFile,"\"%s.sts.stsfv\"",mName.c_str());
1156
void getStiffnessScale_Interp(size_t sts_i)const
1158
fprintf(mFile,"\"%s.sts[%i].stsi\"",mName.c_str(),sts_i);
1160
void getStiffnessScale_Interp()const
1163
fprintf(mFile,"\"%s.sts.stsi\"",mName.c_str());
1165
void getLengthFlex()const
1167
fprintf(mFile,"\"%s.lfx\"",mName.c_str());
1171
fprintf(mFile,"\"%s.dmp\"",mName.c_str());
1175
fprintf(mFile,"\"%s.drg\"",mName.c_str());
1177
void getFriction()const
1179
fprintf(mFile,"\"%s.frc\"",mName.c_str());
1183
fprintf(mFile,"\"%s.mss\"",mName.c_str());
1185
void getDynamicsWeight()const
1187
fprintf(mFile,"\"%s.dw\"",mName.c_str());
1189
void getCollideWidthOffset()const
1191
fprintf(mFile,"\"%s.wid\"",mName.c_str());
1193
void getStaticCling()const
1195
fprintf(mFile,"\"%s.stc\"",mName.c_str());
1197
void getRepulsion()const
1199
fprintf(mFile,"\"%s.rpl\"",mName.c_str());
1201
void getNumCollideNeighbors()const
1203
fprintf(mFile,"\"%s.ncn\"",mName.c_str());
1205
void getIterations()const
1207
fprintf(mFile,"\"%s.itr\"",mName.c_str());
1209
void getDrawCollideWidth()const
1211
fprintf(mFile,"\"%s.dwd\"",mName.c_str());
1213
void getWidthDrawSkip()const
1215
fprintf(mFile,"\"%s.wds\"",mName.c_str());
1217
void getGravity()const
1219
fprintf(mFile,"\"%s.grv\"",mName.c_str());
1221
void getTurbulenceStrength()const
1223
fprintf(mFile,"\"%s.tst\"",mName.c_str());
1225
void getTurbulenceFrequency()const
1227
fprintf(mFile,"\"%s.tfr\"",mName.c_str());
1229
void getTurbulenceSpeed()const
1231
fprintf(mFile,"\"%s.tbs\"",mName.c_str());
1233
void getAttractionDamp()const
1235
fprintf(mFile,"\"%s.ad\"",mName.c_str());
1237
void getStartCurveAttract()const
1239
fprintf(mFile,"\"%s.sct\"",mName.c_str());
1241
void getAttractionScale(size_t ats_i)const
1243
fprintf(mFile,"\"%s.ats[%i]\"",mName.c_str(),ats_i);
1245
void getAttractionScale()const
1248
fprintf(mFile,"\"%s.ats\"",mName.c_str());
1250
void getAttractionScale_Position(size_t ats_i)const
1252
fprintf(mFile,"\"%s.ats[%i].atsp\"",mName.c_str(),ats_i);
1254
void getAttractionScale_Position()const
1257
fprintf(mFile,"\"%s.ats.atsp\"",mName.c_str());
1259
void getAttractionScale_FloatValue(size_t ats_i)const
1261
fprintf(mFile,"\"%s.ats[%i].atsfv\"",mName.c_str(),ats_i);
1263
void getAttractionScale_FloatValue()const
1266
fprintf(mFile,"\"%s.ats.atsfv\"",mName.c_str());
1268
void getAttractionScale_Interp(size_t ats_i)const
1270
fprintf(mFile,"\"%s.ats[%i].atsi\"",mName.c_str(),ats_i);
1272
void getAttractionScale_Interp()const
1275
fprintf(mFile,"\"%s.ats.atsi\"",mName.c_str());
1277
void getMotionDrag()const
1279
fprintf(mFile,"\"%s.mdg\"",mName.c_str());
1281
void getDisplayQuality()const
1283
fprintf(mFile,"\"%s.dpq\"",mName.c_str());
1285
void getNoStretch()const
1287
fprintf(mFile,"\"%s.nst\"",mName.c_str());
1289
void getSubSegments()const
1291
fprintf(mFile,"\"%s.ssg\"",mName.c_str());
1293
void getClumpWidth()const
1295
fprintf(mFile,"\"%s.cwd\"",mName.c_str());
1297
void getClumpWidthScale(size_t cws_i)const
1299
fprintf(mFile,"\"%s.cws[%i]\"",mName.c_str(),cws_i);
1301
void getClumpWidthScale()const
1304
fprintf(mFile,"\"%s.cws\"",mName.c_str());
1306
void getClumpWidthScale_Position(size_t cws_i)const
1308
fprintf(mFile,"\"%s.cws[%i].cwsp\"",mName.c_str(),cws_i);
1310
void getClumpWidthScale_Position()const
1313
fprintf(mFile,"\"%s.cws.cwsp\"",mName.c_str());
1315
void getClumpWidthScale_FloatValue(size_t cws_i)const
1317
fprintf(mFile,"\"%s.cws[%i].cwsfv\"",mName.c_str(),cws_i);
1319
void getClumpWidthScale_FloatValue()const
1322
fprintf(mFile,"\"%s.cws.cwsfv\"",mName.c_str());
1324
void getClumpWidthScale_Interp(size_t cws_i)const
1326
fprintf(mFile,"\"%s.cws[%i].cwsi\"",mName.c_str(),cws_i);
1328
void getClumpWidthScale_Interp()const
1331
fprintf(mFile,"\"%s.cws.cwsi\"",mName.c_str());
1333
void getClumpTwist()const
1335
fprintf(mFile,"\"%s.ctw\"",mName.c_str());
1337
void getClumpCurl(size_t clc_i)const
1339
fprintf(mFile,"\"%s.clc[%i]\"",mName.c_str(),clc_i);
1341
void getClumpCurl()const
1344
fprintf(mFile,"\"%s.clc\"",mName.c_str());
1346
void getClumpCurl_Position(size_t clc_i)const
1348
fprintf(mFile,"\"%s.clc[%i].clcp\"",mName.c_str(),clc_i);
1350
void getClumpCurl_Position()const
1353
fprintf(mFile,"\"%s.clc.clcp\"",mName.c_str());
1355
void getClumpCurl_FloatValue(size_t clc_i)const
1357
fprintf(mFile,"\"%s.clc[%i].clcfv\"",mName.c_str(),clc_i);
1359
void getClumpCurl_FloatValue()const
1362
fprintf(mFile,"\"%s.clc.clcfv\"",mName.c_str());
1364
void getClumpCurl_Interp(size_t clc_i)const
1366
fprintf(mFile,"\"%s.clc[%i].clci\"",mName.c_str(),clc_i);
1368
void getClumpCurl_Interp()const
1371
fprintf(mFile,"\"%s.clc.clci\"",mName.c_str());
1373
void getClumpFlatness(size_t cfl_i)const
1375
fprintf(mFile,"\"%s.cfl[%i]\"",mName.c_str(),cfl_i);
1377
void getClumpFlatness()const
1380
fprintf(mFile,"\"%s.cfl\"",mName.c_str());
1382
void getClumpFlatness_Position(size_t cfl_i)const
1384
fprintf(mFile,"\"%s.cfl[%i].cflp\"",mName.c_str(),cfl_i);
1386
void getClumpFlatness_Position()const
1389
fprintf(mFile,"\"%s.cfl.cflp\"",mName.c_str());
1391
void getClumpFlatness_FloatValue(size_t cfl_i)const
1393
fprintf(mFile,"\"%s.cfl[%i].cflfv\"",mName.c_str(),cfl_i);
1395
void getClumpFlatness_FloatValue()const
1398
fprintf(mFile,"\"%s.cfl.cflfv\"",mName.c_str());
1400
void getClumpFlatness_Interp(size_t cfl_i)const
1402
fprintf(mFile,"\"%s.cfl[%i].cfli\"",mName.c_str(),cfl_i);
1404
void getClumpFlatness_Interp()const
1407
fprintf(mFile,"\"%s.cfl.cfli\"",mName.c_str());
1409
void getBendFollow()const
1411
fprintf(mFile,"\"%s.bnf\"",mName.c_str());
1413
void getHairWidth()const
1415
fprintf(mFile,"\"%s.hwd\"",mName.c_str());
1417
void getHairWidthScale(size_t hws_i)const
1419
fprintf(mFile,"\"%s.hws[%i]\"",mName.c_str(),hws_i);
1421
void getHairWidthScale()const
1424
fprintf(mFile,"\"%s.hws\"",mName.c_str());
1426
void getHairWidthScale_Position(size_t hws_i)const
1428
fprintf(mFile,"\"%s.hws[%i].hwsp\"",mName.c_str(),hws_i);
1430
void getHairWidthScale_Position()const
1433
fprintf(mFile,"\"%s.hws.hwsp\"",mName.c_str());
1435
void getHairWidthScale_FloatValue(size_t hws_i)const
1437
fprintf(mFile,"\"%s.hws[%i].hwsfv\"",mName.c_str(),hws_i);
1439
void getHairWidthScale_FloatValue()const
1442
fprintf(mFile,"\"%s.hws.hwsfv\"",mName.c_str());
1444
void getHairWidthScale_Interp(size_t hws_i)const
1446
fprintf(mFile,"\"%s.hws[%i].hwsi\"",mName.c_str(),hws_i);
1448
void getHairWidthScale_Interp()const
1451
fprintf(mFile,"\"%s.hws.hwsi\"",mName.c_str());
1453
void getBaldnessMap()const
1455
fprintf(mFile,"\"%s.bmp\"",mName.c_str());
1457
void getOpacity()const
1459
fprintf(mFile,"\"%s.opc\"",mName.c_str());
1461
void getHairColor()const
1463
fprintf(mFile,"\"%s.hcl\"",mName.c_str());
1465
void getHairColorR()const
1467
fprintf(mFile,"\"%s.hcl.hcr\"",mName.c_str());
1469
void getHairColorG()const
1471
fprintf(mFile,"\"%s.hcl.hcg\"",mName.c_str());
1473
void getHairColorB()const
1475
fprintf(mFile,"\"%s.hcl.hcb\"",mName.c_str());
1477
void getHairColorScale(size_t hcs_i)const
1479
fprintf(mFile,"\"%s.hcs[%i]\"",mName.c_str(),hcs_i);
1481
void getHairColorScale()const
1484
fprintf(mFile,"\"%s.hcs\"",mName.c_str());
1486
void getHairColorScale_Position(size_t hcs_i)const
1488
fprintf(mFile,"\"%s.hcs[%i].hcsp\"",mName.c_str(),hcs_i);
1490
void getHairColorScale_Position()const
1493
fprintf(mFile,"\"%s.hcs.hcsp\"",mName.c_str());
1495
void getHairColorScale_Color(size_t hcs_i)const
1497
fprintf(mFile,"\"%s.hcs[%i].hcsc\"",mName.c_str(),hcs_i);
1499
void getHairColorScale_Color()const
1502
fprintf(mFile,"\"%s.hcs.hcsc\"",mName.c_str());
1504
void getHairColorScale_ColorR(size_t hcs_i)const
1506
fprintf(mFile,"\"%s.hcs[%i].hcsc.hcscr\"",mName.c_str(),hcs_i);
1508
void getHairColorScale_ColorR()const
1511
fprintf(mFile,"\"%s.hcs.hcsc.hcscr\"",mName.c_str());
1513
void getHairColorScale_ColorG(size_t hcs_i)const
1515
fprintf(mFile,"\"%s.hcs[%i].hcsc.hcscg\"",mName.c_str(),hcs_i);
1517
void getHairColorScale_ColorG()const
1520
fprintf(mFile,"\"%s.hcs.hcsc.hcscg\"",mName.c_str());
1522
void getHairColorScale_ColorB(size_t hcs_i)const
1524
fprintf(mFile,"\"%s.hcs[%i].hcsc.hcscb\"",mName.c_str(),hcs_i);
1526
void getHairColorScale_ColorB()const
1529
fprintf(mFile,"\"%s.hcs.hcsc.hcscb\"",mName.c_str());
1531
void getHairColorScale_Interp(size_t hcs_i)const
1533
fprintf(mFile,"\"%s.hcs[%i].hcsi\"",mName.c_str(),hcs_i);
1535
void getHairColorScale_Interp()const
1538
fprintf(mFile,"\"%s.hcs.hcsi\"",mName.c_str());
1540
void getHairsPerClump()const
1542
fprintf(mFile,"\"%s.hpc\"",mName.c_str());
1544
void getThinning()const
1546
fprintf(mFile,"\"%s.thn\"",mName.c_str());
1548
void getTranslucence()const
1550
fprintf(mFile,"\"%s.tlc\"",mName.c_str());
1552
void getSpecularColor()const
1554
fprintf(mFile,"\"%s.spc\"",mName.c_str());
1556
void getSpecularColorR()const
1558
fprintf(mFile,"\"%s.spc.spr\"",mName.c_str());
1560
void getSpecularColorG()const
1562
fprintf(mFile,"\"%s.spc.spg\"",mName.c_str());
1564
void getSpecularColorB()const
1566
fprintf(mFile,"\"%s.spc.spb\"",mName.c_str());
1568
void getSpecularPower()const
1570
fprintf(mFile,"\"%s.spp\"",mName.c_str());
1572
void getCastShadows()const
1574
fprintf(mFile,"\"%s.csd\"",mName.c_str());
1576
void getDiffuseRand()const
1578
fprintf(mFile,"\"%s.dfr\"",mName.c_str());
1580
void getSpecularRand()const
1582
fprintf(mFile,"\"%s.sra\"",mName.c_str());
1584
void getHueRand()const
1586
fprintf(mFile,"\"%s.chr\"",mName.c_str());
1588
void getSatRand()const
1590
fprintf(mFile,"\"%s.csr\"",mName.c_str());
1592
void getValRand()const
1594
fprintf(mFile,"\"%s.cvr\"",mName.c_str());
1596
void getMultiStreaks()const
1598
fprintf(mFile,"\"%s.mst\"",mName.c_str());
1600
void getMultiStreakSpread1()const
1602
fprintf(mFile,"\"%s.ms1\"",mName.c_str());
1604
void getMultiStreakSpread2()const
1606
fprintf(mFile,"\"%s.ms2\"",mName.c_str());
1608
void getLightEachHair()const
1610
fprintf(mFile,"\"%s.leh\"",mName.c_str());
1612
void getDisplacementScale(size_t dsc_i)const
1614
fprintf(mFile,"\"%s.dsc[%i]\"",mName.c_str(),dsc_i);
1616
void getDisplacementScale()const
1619
fprintf(mFile,"\"%s.dsc\"",mName.c_str());
1621
void getDisplacementScale_Position(size_t dsc_i)const
1623
fprintf(mFile,"\"%s.dsc[%i].dscp\"",mName.c_str(),dsc_i);
1625
void getDisplacementScale_Position()const
1628
fprintf(mFile,"\"%s.dsc.dscp\"",mName.c_str());
1630
void getDisplacementScale_FloatValue(size_t dsc_i)const
1632
fprintf(mFile,"\"%s.dsc[%i].dscfv\"",mName.c_str(),dsc_i);
1634
void getDisplacementScale_FloatValue()const
1637
fprintf(mFile,"\"%s.dsc.dscfv\"",mName.c_str());
1639
void getDisplacementScale_Interp(size_t dsc_i)const
1641
fprintf(mFile,"\"%s.dsc[%i].dsci\"",mName.c_str(),dsc_i);
1643
void getDisplacementScale_Interp()const
1646
fprintf(mFile,"\"%s.dsc.dsci\"",mName.c_str());
1650
fprintf(mFile,"\"%s.crl\"",mName.c_str());
1652
void getCurlFrequency()const
1654
fprintf(mFile,"\"%s.crf\"",mName.c_str());
1656
void getNoiseMethod()const
1658
fprintf(mFile,"\"%s.nmt\"",mName.c_str());
1660
void getNoise()const
1662
fprintf(mFile,"\"%s.noi\"",mName.c_str());
1664
void getDetailNoise()const
1666
fprintf(mFile,"\"%s.dno\"",mName.c_str());
1668
void getNoiseFrequency()const
1670
fprintf(mFile,"\"%s.nof\"",mName.c_str());
1672
void getNoiseFrequencyU()const
1674
fprintf(mFile,"\"%s.nfu\"",mName.c_str());
1676
void getNoiseFrequencyV()const
1678
fprintf(mFile,"\"%s.nfv\"",mName.c_str());
1680
void getNoiseFrequencyW()const
1682
fprintf(mFile,"\"%s.nfw\"",mName.c_str());
1684
void getSubClumpMethod()const
1686
fprintf(mFile,"\"%s.scm\"",mName.c_str());
1688
void getSubClumping()const
1690
fprintf(mFile,"\"%s.scp\"",mName.c_str());
1692
void getSubClumpRand()const
1694
fprintf(mFile,"\"%s.scr\"",mName.c_str());
1696
void getNumUClumps()const
1698
fprintf(mFile,"\"%s.nuc\"",mName.c_str());
1700
void getNumVClumps()const
1702
fprintf(mFile,"\"%s.nvc\"",mName.c_str());
1704
void getClumpInterpolation()const
1706
fprintf(mFile,"\"%s.cin\"",mName.c_str());
1708
void getInterpolationRange()const
1710
fprintf(mFile,"\"%s.inr\"",mName.c_str());
1712
void getCurrentTime()const
1714
fprintf(mFile,"\"%s.cti\"",mName.c_str());
1716
void getStartTime()const
1718
fprintf(mFile,"\"%s.sti\"",mName.c_str());
1720
void getStartFrame()const
1722
fprintf(mFile,"\"%s.stf\"",mName.c_str());
1724
void getInputForce(size_t ifc_i)const
1726
fprintf(mFile,"\"%s.ifc[%i]\"",mName.c_str(),ifc_i);
1728
void getInputForce()const
1731
fprintf(mFile,"\"%s.ifc\"",mName.c_str());
1733
void getFieldData()const
1735
fprintf(mFile,"\"%s.fd\"",mName.c_str());
1737
void getFieldDataPosition()const
1739
fprintf(mFile,"\"%s.fd.fdp\"",mName.c_str());
1741
void getFieldDataVelocity()const
1743
fprintf(mFile,"\"%s.fd.fdv\"",mName.c_str());
1745
void getFieldDataMass()const
1747
fprintf(mFile,"\"%s.fd.fdm\"",mName.c_str());
1749
void getFieldDataDeltaTime()const
1751
fprintf(mFile,"\"%s.fd.fdt\"",mName.c_str());
1753
void getUsePre70ForceIntensity()const
1755
fprintf(mFile,"\"%s.upfi\"",mName.c_str());
1757
void getCollisionData()const
1759
fprintf(mFile,"\"%s.cda\"",mName.c_str());
1761
void getCollisionGeometry(size_t cge_i)const
1763
fprintf(mFile,"\"%s.cda.cge[%i]\"",mName.c_str(),cge_i);
1765
void getCollisionResilience(size_t crs_i)const
1767
fprintf(mFile,"\"%s.cda.crs[%i]\"",mName.c_str(),crs_i);
1769
void getCollisionFriction(size_t cfr_i)const
1771
fprintf(mFile,"\"%s.cda.cfr[%i]\"",mName.c_str(),cfr_i);
1773
void getDiskCache()const
1775
fprintf(mFile,"\"%s.dc\"",mName.c_str());
1777
void getReceiveShadows()const
1779
fprintf(mFile,"\"%s.rcsh\"",mName.c_str());
1781
void getVisibleInReflections()const
1783
fprintf(mFile,"\"%s.vir\"",mName.c_str());
1785
void getVisibleInRefractions()const
1787
fprintf(mFile,"\"%s.vif\"",mName.c_str());
1789
void getMentalRayControls()const
1791
fprintf(mFile,"\"%s.mrc\"",mName.c_str());
1793
void getMiOverrideCaustics()const
1795
fprintf(mFile,"\"%s.mrc.oca\"",mName.c_str());
1797
void getMiCausticAccuracy()const
1799
fprintf(mFile,"\"%s.mrc.caa\"",mName.c_str());
1801
void getMiCausticRadius()const
1803
fprintf(mFile,"\"%s.mrc.car\"",mName.c_str());
1805
void getMiOverrideGlobalIllumination()const
1807
fprintf(mFile,"\"%s.mrc.ogi\"",mName.c_str());
1809
void getMiGlobillumAccuracy()const
1811
fprintf(mFile,"\"%s.mrc.gia\"",mName.c_str());
1813
void getMiGlobillumRadius()const
1815
fprintf(mFile,"\"%s.mrc.gir\"",mName.c_str());
1817
void getMiOverrideFinalGather()const
1819
fprintf(mFile,"\"%s.mrc.ofg\"",mName.c_str());
1821
void getMiFinalGatherRays()const
1823
fprintf(mFile,"\"%s.mrc.fry\"",mName.c_str());
1825
void getMiFinalGatherMinRadius()const
1827
fprintf(mFile,"\"%s.mrc.fmn\"",mName.c_str());
1829
void getMiFinalGatherMaxRadius()const
1831
fprintf(mFile,"\"%s.mrc.fmx\"",mName.c_str());
1833
void getMiFinalGatherFilter()const
1835
fprintf(mFile,"\"%s.mrc.ffi\"",mName.c_str());
1837
void getMiFinalGatherView()const
1839
fprintf(mFile,"\"%s.mrc.fgv\"",mName.c_str());
1841
void getMiOverrideSamples()const
1843
fprintf(mFile,"\"%s.mrc.oos\"",mName.c_str());
1845
void getMiMinSamples()const
1847
fprintf(mFile,"\"%s.mrc.mins\"",mName.c_str());
1849
void getMiMaxSamples()const
1851
fprintf(mFile,"\"%s.mrc.maxs\"",mName.c_str());
1853
void getMiFinalGatherCast()const
1855
fprintf(mFile,"\"%s.mrc.fgc\"",mName.c_str());
1857
void getMiFinalGatherReceive()const
1859
fprintf(mFile,"\"%s.mrc.fge\"",mName.c_str());
1861
void getMiTransparencyCast()const
1863
fprintf(mFile,"\"%s.mrc.tpc\"",mName.c_str());
1865
void getMiTransparencyReceive()const
1867
fprintf(mFile,"\"%s.mrc.tpr\"",mName.c_str());
1869
void getOutputHair(size_t oh_i)const
1871
fprintf(mFile,"\"%s.oh[%i]\"",mName.c_str(),oh_i);
1873
void getOutputHair()const
1876
fprintf(mFile,"\"%s.oh\"",mName.c_str());
1878
void getOutputRenderHairs()const
1880
fprintf(mFile,"\"%s.orh\"",mName.c_str());
1883
HairSystem(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
1884
:Shape(file, name, parent, nodeType, shared, create) {}
1888
#endif//__MayaDM_HAIRSYSTEM_H__