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_HIKEFFECTOR_H__
11 #define __MayaDM_HIKEFFECTOR_H__
12 #include "MayaDMTypes.h"
13 #include "MayaDMConnectables.h"
14 #include "MayaDMTransform.h"
15 namespace MayaDM
16 {
17 class HikEffector : public Transform
18 {
19 public:
20 public:
21 
HikEffector()22 	HikEffector():Transform(){}
23 	HikEffector(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24 		:Transform(file, name, parent, "hikEffector", shared, create){}
~HikEffector()25 	virtual ~HikEffector(){}
26 
setPinning(unsigned int pin)27 	void setPinning(unsigned int pin)
28 	{
29 		if(pin == 0) return;
30 		fprintf(mFile,"\tsetAttr \".pin\" %i;\n", pin);
31 	}
setEffectorID(int ei)32 	void setEffectorID(int ei)
33 	{
34 		if(ei == 0) return;
35 		fprintf(mFile,"\tsetAttr \".ei\" %i;\n", ei);
36 	}
setPivotOffset(const double3 & po)37 	void setPivotOffset(const double3& po)
38 	{
39 		fprintf(mFile,"\tsetAttr \".po\" -type \"double3\" ");
40 		po.write(mFile);
41 		fprintf(mFile,";\n");
42 	}
setPivotOffsetX(double px)43 	void setPivotOffsetX(double px)
44 	{
45 		if(px == 0) return;
46 		fprintf(mFile,"\tsetAttr \".po.px\" %f;\n", px);
47 	}
setPivotOffsetY(double py)48 	void setPivotOffsetY(double py)
49 	{
50 		if(py == 0) return;
51 		fprintf(mFile,"\tsetAttr \".po.py\" %f;\n", py);
52 	}
setPivotOffsetZ(double pz)53 	void setPivotOffsetZ(double pz)
54 	{
55 		if(pz == 0) return;
56 		fprintf(mFile,"\tsetAttr \".po.pz\" %f;\n", pz);
57 	}
setReachTranslation(double rt)58 	void setReachTranslation(double rt)
59 	{
60 		if(rt == 0.0) return;
61 		fprintf(mFile,"\tsetAttr \".rt\" %f;\n", rt);
62 	}
setReachRotation(double rr)63 	void setReachRotation(double rr)
64 	{
65 		if(rr == 0.0) return;
66 		fprintf(mFile,"\tsetAttr \".rr\" %f;\n", rr);
67 	}
setRadius(double radi)68 	void setRadius(double radi)
69 	{
70 		if(radi == 1.0) return;
71 		fprintf(mFile,"\tsetAttr \".radi\" %f;\n", radi);
72 	}
setAuxEffector(bool aeff)73 	void setAuxEffector(bool aeff)
74 	{
75 		if(aeff == false) return;
76 		fprintf(mFile,"\tsetAttr \".aeff\" %i;\n", aeff);
77 	}
setPreRotation(const double3 & pr)78 	void setPreRotation(const double3& pr)
79 	{
80 		fprintf(mFile,"\tsetAttr \".pr\" -type \"double3\" ");
81 		pr.write(mFile);
82 		fprintf(mFile,";\n");
83 	}
setPreRotationX(double prx)84 	void setPreRotationX(double prx)
85 	{
86 		if(prx == 0) return;
87 		fprintf(mFile,"\tsetAttr \".pr.prx\" %f;\n", prx);
88 	}
setPreRotationY(double pry)89 	void setPreRotationY(double pry)
90 	{
91 		if(pry == 0) return;
92 		fprintf(mFile,"\tsetAttr \".pr.pry\" %f;\n", pry);
93 	}
setPreRotationZ(double prz)94 	void setPreRotationZ(double prz)
95 	{
96 		if(prz == 0) return;
97 		fprintf(mFile,"\tsetAttr \".pr.prz\" %f;\n", prz);
98 	}
setColor(const float3 & col)99 	void setColor(const float3& col)
100 	{
101 		fprintf(mFile,"\tsetAttr \".col\" -type \"float3\" ");
102 		col.write(mFile);
103 		fprintf(mFile,";\n");
104 	}
setColorR(float clr)105 	void setColorR(float clr)
106 	{
107 		if(clr == 1.0) return;
108 		fprintf(mFile,"\tsetAttr \".col.clr\" %f;\n", clr);
109 	}
setColorG(float clg)110 	void setColorG(float clg)
111 	{
112 		if(clg == 0.0) return;
113 		fprintf(mFile,"\tsetAttr \".col.clg\" %f;\n", clg);
114 	}
setColorB(float clb)115 	void setColorB(float clb)
116 	{
117 		if(clb == 0.0) return;
118 		fprintf(mFile,"\tsetAttr \".col.clb\" %f;\n", clb);
119 	}
setAlpha(float alp)120 	void setAlpha(float alp)
121 	{
122 		if(alp == 1.0) return;
123 		fprintf(mFile,"\tsetAttr \".alp\" %f;\n", alp);
124 	}
setMarkerLook(unsigned int mkl)125 	void setMarkerLook(unsigned int mkl)
126 	{
127 		if(mkl == 3) return;
128 		fprintf(mFile,"\tsetAttr \".mkl\" %i;\n", mkl);
129 	}
getJoint()130 	void getJoint()const
131 	{
132 		fprintf(mFile,"\"%s.jt\"",mName.c_str());
133 	}
getFkjoint()134 	void getFkjoint()const
135 	{
136 		fprintf(mFile,"\"%s.fj\"",mName.c_str());
137 	}
getPinning()138 	void getPinning()const
139 	{
140 		fprintf(mFile,"\"%s.pin\"",mName.c_str());
141 	}
getHandle(size_t ha_i)142 	void getHandle(size_t ha_i)const
143 	{
144 		fprintf(mFile,"\"%s.ha[%i]\"",mName.c_str(),ha_i);
145 	}
getHandle()146 	void getHandle()const
147 	{
148 
149 		fprintf(mFile,"\"%s.ha\"",mName.c_str());
150 	}
getEffectorID()151 	void getEffectorID()const
152 	{
153 		fprintf(mFile,"\"%s.ei\"",mName.c_str());
154 	}
getPivots(size_t pvt_i)155 	void getPivots(size_t pvt_i)const
156 	{
157 		fprintf(mFile,"\"%s.pvt[%i]\"",mName.c_str(),pvt_i);
158 	}
getPivots()159 	void getPivots()const
160 	{
161 
162 		fprintf(mFile,"\"%s.pvt\"",mName.c_str());
163 	}
getPivotOffset()164 	void getPivotOffset()const
165 	{
166 		fprintf(mFile,"\"%s.po\"",mName.c_str());
167 	}
getPivotOffsetX()168 	void getPivotOffsetX()const
169 	{
170 		fprintf(mFile,"\"%s.po.px\"",mName.c_str());
171 	}
getPivotOffsetY()172 	void getPivotOffsetY()const
173 	{
174 		fprintf(mFile,"\"%s.po.py\"",mName.c_str());
175 	}
getPivotOffsetZ()176 	void getPivotOffsetZ()const
177 	{
178 		fprintf(mFile,"\"%s.po.pz\"",mName.c_str());
179 	}
getReachTranslation()180 	void getReachTranslation()const
181 	{
182 		fprintf(mFile,"\"%s.rt\"",mName.c_str());
183 	}
getReachRotation()184 	void getReachRotation()const
185 	{
186 		fprintf(mFile,"\"%s.rr\"",mName.c_str());
187 	}
getRadius()188 	void getRadius()const
189 	{
190 		fprintf(mFile,"\"%s.radi\"",mName.c_str());
191 	}
getAuxEffector()192 	void getAuxEffector()const
193 	{
194 		fprintf(mFile,"\"%s.aeff\"",mName.c_str());
195 	}
getPreRotation()196 	void getPreRotation()const
197 	{
198 		fprintf(mFile,"\"%s.pr\"",mName.c_str());
199 	}
getPreRotationX()200 	void getPreRotationX()const
201 	{
202 		fprintf(mFile,"\"%s.pr.prx\"",mName.c_str());
203 	}
getPreRotationY()204 	void getPreRotationY()const
205 	{
206 		fprintf(mFile,"\"%s.pr.pry\"",mName.c_str());
207 	}
getPreRotationZ()208 	void getPreRotationZ()const
209 	{
210 		fprintf(mFile,"\"%s.pr.prz\"",mName.c_str());
211 	}
getColor()212 	void getColor()const
213 	{
214 		fprintf(mFile,"\"%s.col\"",mName.c_str());
215 	}
getColorR()216 	void getColorR()const
217 	{
218 		fprintf(mFile,"\"%s.col.clr\"",mName.c_str());
219 	}
getColorG()220 	void getColorG()const
221 	{
222 		fprintf(mFile,"\"%s.col.clg\"",mName.c_str());
223 	}
getColorB()224 	void getColorB()const
225 	{
226 		fprintf(mFile,"\"%s.col.clb\"",mName.c_str());
227 	}
getAlpha()228 	void getAlpha()const
229 	{
230 		fprintf(mFile,"\"%s.alp\"",mName.c_str());
231 	}
getMarkerLook()232 	void getMarkerLook()const
233 	{
234 		fprintf(mFile,"\"%s.mkl\"",mName.c_str());
235 	}
236 protected:
237 	HikEffector(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
Transform(file,name,parent,nodeType,shared,create)238 		:Transform(file, name, parent, nodeType, shared, create) {}
239 
240 };
241 }//namespace MayaDM
242 #endif//__MayaDM_HIKEFFECTOR_H__
243