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_REMAPVALUE_H__ 11 #define __MayaDM_REMAPVALUE_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMDependNode.h" 15 namespace MayaDM 16 { 17 class RemapValue : public DependNode 18 { 19 public: 20 struct Value{ 21 float value_Position; 22 float value_FloatValue; 23 unsigned int value_Interp; writeValue24 void write(FILE* file) const 25 { 26 fprintf(file,"%f ", value_Position); 27 fprintf(file,"%f ", value_FloatValue); 28 fprintf(file,"%i", value_Interp); 29 } 30 }; 31 struct Color{ 32 float color_Position; 33 float3 color_Color; 34 unsigned int color_Interp; writeColor35 void write(FILE* file) const 36 { 37 fprintf(file,"%f ", color_Position); 38 color_Color.write(file); 39 fprintf(file, " "); 40 fprintf(file,"%i", color_Interp); 41 } 42 }; 43 public: 44 RemapValue()45 RemapValue():DependNode(){} 46 RemapValue(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 47 :DependNode(file, name, parent, "remapValue", shared, create){} ~RemapValue()48 virtual ~RemapValue(){} 49 setInputValue(float i_)50 void setInputValue(float i_) 51 { 52 if(i_ == 0.0) return; 53 fprintf(mFile,"\tsetAttr \".i\" %f;\n", i_); 54 } setInputMin(float imn)55 void setInputMin(float imn) 56 { 57 if(imn == 0) return; 58 fprintf(mFile,"\tsetAttr \".imn\" %f;\n", imn); 59 } setInputMax(float imx)60 void setInputMax(float imx) 61 { 62 if(imx == 1) return; 63 fprintf(mFile,"\tsetAttr \".imx\" %f;\n", imx); 64 } setOutputMin(float omn)65 void setOutputMin(float omn) 66 { 67 if(omn == 0) return; 68 fprintf(mFile,"\tsetAttr \".omn\" %f;\n", omn); 69 } setOutputMax(float omx)70 void setOutputMax(float omx) 71 { 72 if(omx == 1) return; 73 fprintf(mFile,"\tsetAttr \".omx\" %f;\n", omx); 74 } setValue(size_t vl_i,const Value & vl)75 void setValue(size_t vl_i,const Value& vl) 76 { 77 fprintf(mFile,"\tsetAttr \".vl[%i]\" ",vl_i); 78 vl.write(mFile); 79 fprintf(mFile,";\n"); 80 } setValue(size_t vl_start,size_t vl_end,Value * vl)81 void setValue(size_t vl_start,size_t vl_end,Value* vl) 82 { 83 fprintf(mFile,"\tsetAttr \".vl[%i:%i]\" ", vl_start,vl_end); 84 size_t size = (vl_end-vl_start)*1+1; 85 for(size_t i=0;i<size;++i) 86 { 87 vl[i].write(mFile); 88 fprintf(mFile,"\n"); 89 } 90 fprintf(mFile,";\n"); 91 } startValue(size_t vl_start,size_t vl_end)92 void startValue(size_t vl_start,size_t vl_end)const 93 { 94 fprintf(mFile,"\tsetAttr \".vl[%i:%i]\"",vl_start,vl_end); 95 fprintf(mFile," -type \"Value\" "); 96 } appendValue(const Value & vl)97 void appendValue(const Value& vl)const 98 { 99 fprintf(mFile," "); 100 vl.write(mFile); 101 } endValue()102 void endValue()const 103 { 104 fprintf(mFile,";\n"); 105 } setValue_Position(size_t vl_i,float vlp)106 void setValue_Position(size_t vl_i,float vlp) 107 { 108 if(vlp == 0.0) return; 109 fprintf(mFile,"\tsetAttr \".vl[%i].vlp\" %f;\n", vl_i,vlp); 110 } setValue_FloatValue(size_t vl_i,float vlfv)111 void setValue_FloatValue(size_t vl_i,float vlfv) 112 { 113 if(vlfv == 0.0) return; 114 fprintf(mFile,"\tsetAttr \".vl[%i].vlfv\" %f;\n", vl_i,vlfv); 115 } setValue_Interp(size_t vl_i,unsigned int vli)116 void setValue_Interp(size_t vl_i,unsigned int vli) 117 { 118 if(vli == 0) return; 119 fprintf(mFile,"\tsetAttr \".vl[%i].vli\" %i;\n", vl_i,vli); 120 } setColor(size_t cl_i,const Color & cl)121 void setColor(size_t cl_i,const Color& cl) 122 { 123 fprintf(mFile,"\tsetAttr \".cl[%i]\" ",cl_i); 124 cl.write(mFile); 125 fprintf(mFile,";\n"); 126 } setColor(size_t cl_start,size_t cl_end,Color * cl)127 void setColor(size_t cl_start,size_t cl_end,Color* cl) 128 { 129 fprintf(mFile,"\tsetAttr \".cl[%i:%i]\" ", cl_start,cl_end); 130 size_t size = (cl_end-cl_start)*1+1; 131 for(size_t i=0;i<size;++i) 132 { 133 cl[i].write(mFile); 134 fprintf(mFile,"\n"); 135 } 136 fprintf(mFile,";\n"); 137 } startColor(size_t cl_start,size_t cl_end)138 void startColor(size_t cl_start,size_t cl_end)const 139 { 140 fprintf(mFile,"\tsetAttr \".cl[%i:%i]\"",cl_start,cl_end); 141 fprintf(mFile," -type \"Color\" "); 142 } appendColor(const Color & cl)143 void appendColor(const Color& cl)const 144 { 145 fprintf(mFile," "); 146 cl.write(mFile); 147 } endColor()148 void endColor()const 149 { 150 fprintf(mFile,";\n"); 151 } setColor_Position(size_t cl_i,float clp)152 void setColor_Position(size_t cl_i,float clp) 153 { 154 if(clp == 0.0) return; 155 fprintf(mFile,"\tsetAttr \".cl[%i].clp\" %f;\n", cl_i,clp); 156 } setColor_Color(size_t cl_i,const float3 & clc)157 void setColor_Color(size_t cl_i,const float3& clc) 158 { 159 fprintf(mFile,"\tsetAttr \".cl[%i].clc\" -type \"float3\" ",cl_i); 160 clc.write(mFile); 161 fprintf(mFile,";\n"); 162 } setColor_ColorR(size_t cl_i,float clcr)163 void setColor_ColorR(size_t cl_i,float clcr) 164 { 165 if(clcr == 0.0) return; 166 fprintf(mFile,"\tsetAttr \".cl[%i].clc.clcr\" %f;\n", cl_i,clcr); 167 } setColor_ColorG(size_t cl_i,float clcg)168 void setColor_ColorG(size_t cl_i,float clcg) 169 { 170 if(clcg == 0.0) return; 171 fprintf(mFile,"\tsetAttr \".cl[%i].clc.clcg\" %f;\n", cl_i,clcg); 172 } setColor_ColorB(size_t cl_i,float clcb)173 void setColor_ColorB(size_t cl_i,float clcb) 174 { 175 if(clcb == 0.0) return; 176 fprintf(mFile,"\tsetAttr \".cl[%i].clc.clcb\" %f;\n", cl_i,clcb); 177 } setColor_Interp(size_t cl_i,unsigned int cli)178 void setColor_Interp(size_t cl_i,unsigned int cli) 179 { 180 if(cli == 0) return; 181 fprintf(mFile,"\tsetAttr \".cl[%i].cli\" %i;\n", cl_i,cli); 182 } getInputValue()183 void getInputValue()const 184 { 185 fprintf(mFile,"\"%s.i\"",mName.c_str()); 186 } getInputMin()187 void getInputMin()const 188 { 189 fprintf(mFile,"\"%s.imn\"",mName.c_str()); 190 } getInputMax()191 void getInputMax()const 192 { 193 fprintf(mFile,"\"%s.imx\"",mName.c_str()); 194 } getOutputMin()195 void getOutputMin()const 196 { 197 fprintf(mFile,"\"%s.omn\"",mName.c_str()); 198 } getOutputMax()199 void getOutputMax()const 200 { 201 fprintf(mFile,"\"%s.omx\"",mName.c_str()); 202 } getValue(size_t vl_i)203 void getValue(size_t vl_i)const 204 { 205 fprintf(mFile,"\"%s.vl[%i]\"",mName.c_str(),vl_i); 206 } getValue()207 void getValue()const 208 { 209 210 fprintf(mFile,"\"%s.vl\"",mName.c_str()); 211 } getValue_Position(size_t vl_i)212 void getValue_Position(size_t vl_i)const 213 { 214 fprintf(mFile,"\"%s.vl[%i].vlp\"",mName.c_str(),vl_i); 215 } getValue_Position()216 void getValue_Position()const 217 { 218 219 fprintf(mFile,"\"%s.vl.vlp\"",mName.c_str()); 220 } getValue_FloatValue(size_t vl_i)221 void getValue_FloatValue(size_t vl_i)const 222 { 223 fprintf(mFile,"\"%s.vl[%i].vlfv\"",mName.c_str(),vl_i); 224 } getValue_FloatValue()225 void getValue_FloatValue()const 226 { 227 228 fprintf(mFile,"\"%s.vl.vlfv\"",mName.c_str()); 229 } getValue_Interp(size_t vl_i)230 void getValue_Interp(size_t vl_i)const 231 { 232 fprintf(mFile,"\"%s.vl[%i].vli\"",mName.c_str(),vl_i); 233 } getValue_Interp()234 void getValue_Interp()const 235 { 236 237 fprintf(mFile,"\"%s.vl.vli\"",mName.c_str()); 238 } getColor(size_t cl_i)239 void getColor(size_t cl_i)const 240 { 241 fprintf(mFile,"\"%s.cl[%i]\"",mName.c_str(),cl_i); 242 } getColor()243 void getColor()const 244 { 245 246 fprintf(mFile,"\"%s.cl\"",mName.c_str()); 247 } getColor_Position(size_t cl_i)248 void getColor_Position(size_t cl_i)const 249 { 250 fprintf(mFile,"\"%s.cl[%i].clp\"",mName.c_str(),cl_i); 251 } getColor_Position()252 void getColor_Position()const 253 { 254 255 fprintf(mFile,"\"%s.cl.clp\"",mName.c_str()); 256 } getColor_Color(size_t cl_i)257 void getColor_Color(size_t cl_i)const 258 { 259 fprintf(mFile,"\"%s.cl[%i].clc\"",mName.c_str(),cl_i); 260 } getColor_Color()261 void getColor_Color()const 262 { 263 264 fprintf(mFile,"\"%s.cl.clc\"",mName.c_str()); 265 } getColor_ColorR(size_t cl_i)266 void getColor_ColorR(size_t cl_i)const 267 { 268 fprintf(mFile,"\"%s.cl[%i].clc.clcr\"",mName.c_str(),cl_i); 269 } getColor_ColorR()270 void getColor_ColorR()const 271 { 272 273 fprintf(mFile,"\"%s.cl.clc.clcr\"",mName.c_str()); 274 } getColor_ColorG(size_t cl_i)275 void getColor_ColorG(size_t cl_i)const 276 { 277 fprintf(mFile,"\"%s.cl[%i].clc.clcg\"",mName.c_str(),cl_i); 278 } getColor_ColorG()279 void getColor_ColorG()const 280 { 281 282 fprintf(mFile,"\"%s.cl.clc.clcg\"",mName.c_str()); 283 } getColor_ColorB(size_t cl_i)284 void getColor_ColorB(size_t cl_i)const 285 { 286 fprintf(mFile,"\"%s.cl[%i].clc.clcb\"",mName.c_str(),cl_i); 287 } getColor_ColorB()288 void getColor_ColorB()const 289 { 290 291 fprintf(mFile,"\"%s.cl.clc.clcb\"",mName.c_str()); 292 } getColor_Interp(size_t cl_i)293 void getColor_Interp(size_t cl_i)const 294 { 295 fprintf(mFile,"\"%s.cl[%i].cli\"",mName.c_str(),cl_i); 296 } getColor_Interp()297 void getColor_Interp()const 298 { 299 300 fprintf(mFile,"\"%s.cl.cli\"",mName.c_str()); 301 } getOutValue()302 void getOutValue()const 303 { 304 fprintf(mFile,"\"%s.ov\"",mName.c_str()); 305 } getOutColor()306 void getOutColor()const 307 { 308 fprintf(mFile,"\"%s.oc\"",mName.c_str()); 309 } getOutColorR()310 void getOutColorR()const 311 { 312 fprintf(mFile,"\"%s.oc.ocr\"",mName.c_str()); 313 } getOutColorG()314 void getOutColorG()const 315 { 316 fprintf(mFile,"\"%s.oc.ocg\"",mName.c_str()); 317 } getOutColorB()318 void getOutColorB()const 319 { 320 fprintf(mFile,"\"%s.oc.ocb\"",mName.c_str()); 321 } 322 protected: 323 RemapValue(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) DependNode(file,name,parent,nodeType,shared,create)324 :DependNode(file, name, parent, nodeType, shared, create) {} 325 326 }; 327 }//namespace MayaDM 328 #endif//__MayaDM_REMAPVALUE_H__ 329