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_VOLUMEAXISFIELD_H__
11 #define __MayaDM_VOLUMEAXISFIELD_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMField.h"
15 namespace MayaDM
16 {
17 class VolumeAxisField : public Field
18 {
19 public:
20 public:
21 
VolumeAxisField()22 	VolumeAxisField():Field(){}
23 	VolumeAxisField(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24 		:Field(file, name, parent, "volumeAxisField", shared, create){}
~VolumeAxisField()25 	virtual ~VolumeAxisField(){}
26 
setInvertAttenuation(bool ia)27 	void setInvertAttenuation(bool ia)
28 	{
29 		if(ia == false) return;
30 		fprintf(mFile,"\tsetAttr \".ia\" %i;\n", ia);
31 	}
setAwayFromCenter(double afc)32 	void setAwayFromCenter(double afc)
33 	{
34 		if(afc == 1.0) return;
35 		fprintf(mFile,"\tsetAttr \".afc\" %f;\n", afc);
36 	}
setAwayFromAxis(double afa)37 	void setAwayFromAxis(double afa)
38 	{
39 		if(afa == 1.0) return;
40 		fprintf(mFile,"\tsetAttr \".afa\" %f;\n", afa);
41 	}
setAlongAxis(double alx)42 	void setAlongAxis(double alx)
43 	{
44 		if(alx == 0.0) return;
45 		fprintf(mFile,"\tsetAttr \".alx\" %f;\n", alx);
46 	}
setAroundAxis(double arx)47 	void setAroundAxis(double arx)
48 	{
49 		if(arx == 0.0) return;
50 		fprintf(mFile,"\tsetAttr \".arx\" %f;\n", arx);
51 	}
setDirectionalSpeed(double drs)52 	void setDirectionalSpeed(double drs)
53 	{
54 		if(drs == 0.0) return;
55 		fprintf(mFile,"\tsetAttr \".drs\" %f;\n", drs);
56 	}
setDirection(const double3 & d)57 	void setDirection(const double3& d)
58 	{
59 		fprintf(mFile,"\tsetAttr \".d\" -type \"double3\" ");
60 		d.write(mFile);
61 		fprintf(mFile,";\n");
62 	}
setDirectionX(double dx)63 	void setDirectionX(double dx)
64 	{
65 		if(dx == 1.0) return;
66 		fprintf(mFile,"\tsetAttr \".d.dx\" %f;\n", dx);
67 	}
setDirectionY(double dy)68 	void setDirectionY(double dy)
69 	{
70 		if(dy == 0.0) return;
71 		fprintf(mFile,"\tsetAttr \".d.dy\" %f;\n", dy);
72 	}
setDirectionZ(double dz)73 	void setDirectionZ(double dz)
74 	{
75 		if(dz == 0.0) return;
76 		fprintf(mFile,"\tsetAttr \".d.dz\" %f;\n", dz);
77 	}
setDisplaySpeed(bool dss)78 	void setDisplaySpeed(bool dss)
79 	{
80 		if(dss == true) return;
81 		fprintf(mFile,"\tsetAttr \".dss\" %i;\n", dss);
82 	}
setTurbulence(double trb)83 	void setTurbulence(double trb)
84 	{
85 		if(trb == 0.0) return;
86 		fprintf(mFile,"\tsetAttr \".trb\" %f;\n", trb);
87 	}
setTurbulenceSpeed(double trs)88 	void setTurbulenceSpeed(double trs)
89 	{
90 		if(trs == 0.2) return;
91 		fprintf(mFile,"\tsetAttr \".trs\" %f;\n", trs);
92 	}
setTurbulenceFrequency(const double3 & tf)93 	void setTurbulenceFrequency(const double3& tf)
94 	{
95 		fprintf(mFile,"\tsetAttr \".tf\" -type \"double3\" ");
96 		tf.write(mFile);
97 		fprintf(mFile,";\n");
98 	}
setTurbulenceFrequencyX(double tfx)99 	void setTurbulenceFrequencyX(double tfx)
100 	{
101 		if(tfx == 1.0) return;
102 		fprintf(mFile,"\tsetAttr \".tf.tfx\" %f;\n", tfx);
103 	}
setTurbulenceFrequencyY(double tfy)104 	void setTurbulenceFrequencyY(double tfy)
105 	{
106 		if(tfy == 1.0) return;
107 		fprintf(mFile,"\tsetAttr \".tf.tfy\" %f;\n", tfy);
108 	}
setTurbulenceFrequencyZ(double tfz)109 	void setTurbulenceFrequencyZ(double tfz)
110 	{
111 		if(tfz == 1.0) return;
112 		fprintf(mFile,"\tsetAttr \".tf.tfz\" %f;\n", tfz);
113 	}
setTurbulenceOffset(const double3 & to)114 	void setTurbulenceOffset(const double3& to)
115 	{
116 		fprintf(mFile,"\tsetAttr \".to\" -type \"double3\" ");
117 		to.write(mFile);
118 		fprintf(mFile,";\n");
119 	}
setTurbulenceOffsetX(double tox)120 	void setTurbulenceOffsetX(double tox)
121 	{
122 		if(tox == 0.0) return;
123 		fprintf(mFile,"\tsetAttr \".to.tox\" %f;\n", tox);
124 	}
setTurbulenceOffsetY(double toy)125 	void setTurbulenceOffsetY(double toy)
126 	{
127 		if(toy == 0.0) return;
128 		fprintf(mFile,"\tsetAttr \".to.toy\" %f;\n", toy);
129 	}
setTurbulenceOffsetZ(double toz)130 	void setTurbulenceOffsetZ(double toz)
131 	{
132 		if(toz == 0.0) return;
133 		fprintf(mFile,"\tsetAttr \".to.toz\" %f;\n", toz);
134 	}
setDetailTurbulence(double dtr)135 	void setDetailTurbulence(double dtr)
136 	{
137 		if(dtr == 0.0) return;
138 		fprintf(mFile,"\tsetAttr \".dtr\" %f;\n", dtr);
139 	}
setTime(double tim)140 	void setTime(double tim)
141 	{
142 		if(tim == 0) return;
143 		fprintf(mFile,"\tsetAttr \".tim\" %f;\n", tim);
144 	}
getInvertAttenuation()145 	void getInvertAttenuation()const
146 	{
147 		fprintf(mFile,"\"%s.ia\"",mName.c_str());
148 	}
getAwayFromCenter()149 	void getAwayFromCenter()const
150 	{
151 		fprintf(mFile,"\"%s.afc\"",mName.c_str());
152 	}
getAwayFromAxis()153 	void getAwayFromAxis()const
154 	{
155 		fprintf(mFile,"\"%s.afa\"",mName.c_str());
156 	}
getAlongAxis()157 	void getAlongAxis()const
158 	{
159 		fprintf(mFile,"\"%s.alx\"",mName.c_str());
160 	}
getAroundAxis()161 	void getAroundAxis()const
162 	{
163 		fprintf(mFile,"\"%s.arx\"",mName.c_str());
164 	}
getDirectionalSpeed()165 	void getDirectionalSpeed()const
166 	{
167 		fprintf(mFile,"\"%s.drs\"",mName.c_str());
168 	}
getDirection()169 	void getDirection()const
170 	{
171 		fprintf(mFile,"\"%s.d\"",mName.c_str());
172 	}
getDirectionX()173 	void getDirectionX()const
174 	{
175 		fprintf(mFile,"\"%s.d.dx\"",mName.c_str());
176 	}
getDirectionY()177 	void getDirectionY()const
178 	{
179 		fprintf(mFile,"\"%s.d.dy\"",mName.c_str());
180 	}
getDirectionZ()181 	void getDirectionZ()const
182 	{
183 		fprintf(mFile,"\"%s.d.dz\"",mName.c_str());
184 	}
getDisplaySpeed()185 	void getDisplaySpeed()const
186 	{
187 		fprintf(mFile,"\"%s.dss\"",mName.c_str());
188 	}
getTurbulence()189 	void getTurbulence()const
190 	{
191 		fprintf(mFile,"\"%s.trb\"",mName.c_str());
192 	}
getTurbulenceSpeed()193 	void getTurbulenceSpeed()const
194 	{
195 		fprintf(mFile,"\"%s.trs\"",mName.c_str());
196 	}
getTurbulenceFrequency()197 	void getTurbulenceFrequency()const
198 	{
199 		fprintf(mFile,"\"%s.tf\"",mName.c_str());
200 	}
getTurbulenceFrequencyX()201 	void getTurbulenceFrequencyX()const
202 	{
203 		fprintf(mFile,"\"%s.tf.tfx\"",mName.c_str());
204 	}
getTurbulenceFrequencyY()205 	void getTurbulenceFrequencyY()const
206 	{
207 		fprintf(mFile,"\"%s.tf.tfy\"",mName.c_str());
208 	}
getTurbulenceFrequencyZ()209 	void getTurbulenceFrequencyZ()const
210 	{
211 		fprintf(mFile,"\"%s.tf.tfz\"",mName.c_str());
212 	}
getTurbulenceOffset()213 	void getTurbulenceOffset()const
214 	{
215 		fprintf(mFile,"\"%s.to\"",mName.c_str());
216 	}
getTurbulenceOffsetX()217 	void getTurbulenceOffsetX()const
218 	{
219 		fprintf(mFile,"\"%s.to.tox\"",mName.c_str());
220 	}
getTurbulenceOffsetY()221 	void getTurbulenceOffsetY()const
222 	{
223 		fprintf(mFile,"\"%s.to.toy\"",mName.c_str());
224 	}
getTurbulenceOffsetZ()225 	void getTurbulenceOffsetZ()const
226 	{
227 		fprintf(mFile,"\"%s.to.toz\"",mName.c_str());
228 	}
getDetailTurbulence()229 	void getDetailTurbulence()const
230 	{
231 		fprintf(mFile,"\"%s.dtr\"",mName.c_str());
232 	}
getTime()233 	void getTime()const
234 	{
235 		fprintf(mFile,"\"%s.tim\"",mName.c_str());
236 	}
237 protected:
238 	VolumeAxisField(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
Field(file,name,parent,nodeType,shared,create)239 		:Field(file, name, parent, nodeType, shared, create) {}
240 
241 };
242 }//namespace MayaDM
243 #endif//__MayaDM_VOLUMEAXISFIELD_H__
244