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