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_CLIPSCHEDULER_H__ 11 #define __MayaDM_CLIPSCHEDULER_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMDependNode.h" 15 namespace MayaDM 16 { 17 class ClipScheduler : public DependNode 18 { 19 public: 20 struct BlendList{ 21 struct BlendList_Inmap{ 22 short blendList_InmapTo; 23 short blendList_InmapFrom; writeBlendList::BlendList_Inmap24 void write(FILE* file) const 25 { 26 fprintf(file,"%i ", blendList_InmapTo); 27 fprintf(file,"%i", blendList_InmapFrom); 28 } 29 }* blendList_Inmap; 30 size_t nbBlendList_Inmap; 31 struct BlendList_Outmap{ 32 short blendList_OutmapTo; 33 short blendList_OutmapFrom; writeBlendList::BlendList_Outmap34 void write(FILE* file) const 35 { 36 fprintf(file,"%i ", blendList_OutmapTo); 37 fprintf(file,"%i", blendList_OutmapFrom); 38 } 39 }* blendList_Outmap; 40 size_t nbBlendList_Outmap; writeBlendList41 void write(FILE* file) const 42 { 43 for (size_t i = 0; i<nbBlendList_Inmap; ++i) 44 { 45 blendList_Inmap[i].write(file); 46 fprintf(file, " "); 47 if (i + 1<nbBlendList_Inmap) fprintf(file, " "); 48 } 49 for (size_t i = 0; i<nbBlendList_Outmap; ++i) 50 { 51 blendList_Outmap[i].write(file); 52 if (i + 1<nbBlendList_Outmap) fprintf(file, " "); 53 } 54 } 55 }; 56 struct BlendClips{ 57 int firstClip; 58 int secondClip; writeBlendClips59 void write(FILE* file) const 60 { 61 fprintf(file,"%i ", firstClip); 62 fprintf(file,"%i", secondClip); 63 } 64 }; 65 struct ClipFunction{ 66 struct ClipFunction_Inmap{ 67 short clipFunction_InmapTo; 68 short clipFunction_InmapFrom; writeClipFunction::ClipFunction_Inmap69 void write(FILE* file) const 70 { 71 fprintf(file,"%i ", clipFunction_InmapTo); 72 fprintf(file,"%i", clipFunction_InmapFrom); 73 } 74 }* clipFunction_Inmap; 75 size_t nbClipFunction_Inmap; 76 struct ClipFunction_Outmap{ 77 short clipFunction_OutmapTo; 78 short clipFunction_OutmapFrom; writeClipFunction::ClipFunction_Outmap79 void write(FILE* file) const 80 { 81 fprintf(file,"%i ", clipFunction_OutmapTo); 82 fprintf(file,"%i", clipFunction_OutmapFrom); 83 } 84 }* clipFunction_Outmap; 85 size_t nbClipFunction_Outmap; writeClipFunction86 void write(FILE* file) const 87 { 88 for (size_t i = 0; i<nbClipFunction_Inmap; ++i) 89 { 90 clipFunction_Inmap[i].write(file); 91 fprintf(file, " "); 92 if (i + 1<nbClipFunction_Inmap) fprintf(file, " "); 93 } 94 for (size_t i = 0; i<nbClipFunction_Outmap; ++i) 95 { 96 clipFunction_Outmap[i].write(file); 97 if (i + 1<nbClipFunction_Outmap) fprintf(file, " "); 98 } 99 } 100 }; 101 public: 102 ClipScheduler()103 ClipScheduler():DependNode(){} 104 ClipScheduler(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 105 :DependNode(file, name, parent, "clipScheduler", shared, create){} ~ClipScheduler()106 virtual ~ClipScheduler(){} 107 setBlendList(size_t bl_i,const BlendList & bl)108 void setBlendList(size_t bl_i,const BlendList& bl) 109 { 110 fprintf(mFile,"\tsetAttr \".bl[%i]\" ",bl_i); 111 bl.write(mFile); 112 fprintf(mFile,";\n"); 113 } setBlendList(size_t bl_start,size_t bl_end,BlendList * bl)114 void setBlendList(size_t bl_start,size_t bl_end,BlendList* bl) 115 { 116 fprintf(mFile,"\tsetAttr \".bl[%i:%i]\" ", bl_start,bl_end); 117 size_t size = (bl_end-bl_start)*1+1; 118 for(size_t i=0;i<size;++i) 119 { 120 bl[i].write(mFile); 121 fprintf(mFile,"\n"); 122 } 123 fprintf(mFile,";\n"); 124 } startBlendList(size_t bl_start,size_t bl_end)125 void startBlendList(size_t bl_start,size_t bl_end)const 126 { 127 fprintf(mFile,"\tsetAttr \".bl[%i:%i]\"",bl_start,bl_end); 128 fprintf(mFile," -type \"BlendList\" "); 129 } appendBlendList(const BlendList & bl)130 void appendBlendList(const BlendList& bl)const 131 { 132 fprintf(mFile," "); 133 bl.write(mFile); 134 } endBlendList()135 void endBlendList()const 136 { 137 fprintf(mFile,";\n"); 138 } setBlendList_Inmap(size_t bl_i,size_t bli_i,const BlendList::BlendList_Inmap & bli)139 void setBlendList_Inmap(size_t bl_i,size_t bli_i,const BlendList::BlendList_Inmap& bli) 140 { 141 fprintf(mFile,"\tsetAttr \".bl[%i].bli[%i]\" ",bl_i,bli_i); 142 bli.write(mFile); 143 fprintf(mFile,";\n"); 144 } setBlendList_Inmap(size_t bl_i,size_t bli_start,size_t bli_end,BlendList::BlendList_Inmap * bli)145 void setBlendList_Inmap(size_t bl_i,size_t bli_start,size_t bli_end,BlendList::BlendList_Inmap* bli) 146 { 147 fprintf(mFile,"\tsetAttr \".bl[%i].bli[%i:%i]\" ", bl_i,bli_start,bli_end); 148 size_t size = (bli_end-bli_start)*1+1; 149 for(size_t i=0;i<size;++i) 150 { 151 bli[i].write(mFile); 152 fprintf(mFile,"\n"); 153 } 154 fprintf(mFile,";\n"); 155 } startBlendList_Inmap(size_t bl_i,size_t bli_start,size_t bli_end)156 void startBlendList_Inmap(size_t bl_i,size_t bli_start,size_t bli_end)const 157 { 158 fprintf(mFile,"\tsetAttr \".bl[%i].bli[%i:%i]\"",bl_i,bli_start,bli_end); 159 fprintf(mFile," -type \"BlendList::BlendList_Inmap\" "); 160 } appendBlendList_Inmap(const BlendList::BlendList_Inmap & bli)161 void appendBlendList_Inmap(const BlendList::BlendList_Inmap& bli)const 162 { 163 fprintf(mFile," "); 164 bli.write(mFile); 165 } endBlendList_Inmap()166 void endBlendList_Inmap()const 167 { 168 fprintf(mFile,";\n"); 169 } setBlendList_InmapTo(size_t bl_i,size_t bli_i,short blit)170 void setBlendList_InmapTo(size_t bl_i,size_t bli_i,short blit) 171 { 172 if(blit == 0) return; 173 fprintf(mFile,"\tsetAttr \".bl[%i].bli[%i].blit\" %i;\n", bl_i,bli_i,blit); 174 } setBlendList_InmapFrom(size_t bl_i,size_t bli_i,short blif)175 void setBlendList_InmapFrom(size_t bl_i,size_t bli_i,short blif) 176 { 177 if(blif == 0) return; 178 fprintf(mFile,"\tsetAttr \".bl[%i].bli[%i].blif\" %i;\n", bl_i,bli_i,blif); 179 } setBlendList_Outmap(size_t bl_i,size_t blo_i,const BlendList::BlendList_Outmap & blo)180 void setBlendList_Outmap(size_t bl_i,size_t blo_i,const BlendList::BlendList_Outmap& blo) 181 { 182 fprintf(mFile,"\tsetAttr \".bl[%i].blo[%i]\" ",bl_i,blo_i); 183 blo.write(mFile); 184 fprintf(mFile,";\n"); 185 } setBlendList_Outmap(size_t bl_i,size_t blo_start,size_t blo_end,BlendList::BlendList_Outmap * blo)186 void setBlendList_Outmap(size_t bl_i,size_t blo_start,size_t blo_end,BlendList::BlendList_Outmap* blo) 187 { 188 fprintf(mFile,"\tsetAttr \".bl[%i].blo[%i:%i]\" ", bl_i,blo_start,blo_end); 189 size_t size = (blo_end-blo_start)*1+1; 190 for(size_t i=0;i<size;++i) 191 { 192 blo[i].write(mFile); 193 fprintf(mFile,"\n"); 194 } 195 fprintf(mFile,";\n"); 196 } startBlendList_Outmap(size_t bl_i,size_t blo_start,size_t blo_end)197 void startBlendList_Outmap(size_t bl_i,size_t blo_start,size_t blo_end)const 198 { 199 fprintf(mFile,"\tsetAttr \".bl[%i].blo[%i:%i]\"",bl_i,blo_start,blo_end); 200 fprintf(mFile," -type \"BlendList::BlendList_Outmap\" "); 201 } appendBlendList_Outmap(const BlendList::BlendList_Outmap & blo)202 void appendBlendList_Outmap(const BlendList::BlendList_Outmap& blo)const 203 { 204 fprintf(mFile," "); 205 blo.write(mFile); 206 } endBlendList_Outmap()207 void endBlendList_Outmap()const 208 { 209 fprintf(mFile,";\n"); 210 } setBlendList_OutmapTo(size_t bl_i,size_t blo_i,short blot)211 void setBlendList_OutmapTo(size_t bl_i,size_t blo_i,short blot) 212 { 213 if(blot == 0) return; 214 fprintf(mFile,"\tsetAttr \".bl[%i].blo[%i].blot\" %i;\n", bl_i,blo_i,blot); 215 } setBlendList_OutmapFrom(size_t bl_i,size_t blo_i,short blof)216 void setBlendList_OutmapFrom(size_t bl_i,size_t blo_i,short blof) 217 { 218 if(blof == 0) return; 219 fprintf(mFile,"\tsetAttr \".bl[%i].blo[%i].blof\" %i;\n", bl_i,blo_i,blof); 220 } setBlendClips(size_t bc_i,const BlendClips & bc)221 void setBlendClips(size_t bc_i,const BlendClips& bc) 222 { 223 fprintf(mFile,"\tsetAttr \".bc[%i]\" ",bc_i); 224 bc.write(mFile); 225 fprintf(mFile,";\n"); 226 } setBlendClips(size_t bc_start,size_t bc_end,BlendClips * bc)227 void setBlendClips(size_t bc_start,size_t bc_end,BlendClips* bc) 228 { 229 fprintf(mFile,"\tsetAttr \".bc[%i:%i]\" ", bc_start,bc_end); 230 size_t size = (bc_end-bc_start)*1+1; 231 for(size_t i=0;i<size;++i) 232 { 233 bc[i].write(mFile); 234 fprintf(mFile,"\n"); 235 } 236 fprintf(mFile,";\n"); 237 } startBlendClips(size_t bc_start,size_t bc_end)238 void startBlendClips(size_t bc_start,size_t bc_end)const 239 { 240 fprintf(mFile,"\tsetAttr \".bc[%i:%i]\"",bc_start,bc_end); 241 fprintf(mFile," -type \"BlendClips\" "); 242 } appendBlendClips(const BlendClips & bc)243 void appendBlendClips(const BlendClips& bc)const 244 { 245 fprintf(mFile," "); 246 bc.write(mFile); 247 } endBlendClips()248 void endBlendClips()const 249 { 250 fprintf(mFile,";\n"); 251 } setFirstClip(size_t bc_i,int fcl)252 void setFirstClip(size_t bc_i,int fcl) 253 { 254 if(fcl == 0) return; 255 fprintf(mFile,"\tsetAttr \".bc[%i].fcl\" %i;\n", bc_i,fcl); 256 } setSecondClip(size_t bc_i,int scl)257 void setSecondClip(size_t bc_i,int scl) 258 { 259 if(scl == 0) return; 260 fprintf(mFile,"\tsetAttr \".bc[%i].scl\" %i;\n", bc_i,scl); 261 } setClipFunction_Inmap(size_t cfi_i,const ClipFunction::ClipFunction_Inmap & cfi)262 void setClipFunction_Inmap(size_t cfi_i,const ClipFunction::ClipFunction_Inmap& cfi) 263 { 264 fprintf(mFile,"\tsetAttr \".cf.cfi[%i]\" ",cfi_i); 265 cfi.write(mFile); 266 fprintf(mFile,";\n"); 267 } setClipFunction_Inmap(size_t cfi_start,size_t cfi_end,ClipFunction::ClipFunction_Inmap * cfi)268 void setClipFunction_Inmap(size_t cfi_start,size_t cfi_end,ClipFunction::ClipFunction_Inmap* cfi) 269 { 270 fprintf(mFile,"\tsetAttr \".cf.cfi[%i:%i]\" ", cfi_start,cfi_end); 271 size_t size = (cfi_end-cfi_start)*1+1; 272 for(size_t i=0;i<size;++i) 273 { 274 cfi[i].write(mFile); 275 fprintf(mFile,"\n"); 276 } 277 fprintf(mFile,";\n"); 278 } startClipFunction_Inmap(size_t cfi_start,size_t cfi_end)279 void startClipFunction_Inmap(size_t cfi_start,size_t cfi_end)const 280 { 281 fprintf(mFile,"\tsetAttr \".cf.cfi[%i:%i]\"",cfi_start,cfi_end); 282 fprintf(mFile," -type \"ClipFunction::ClipFunction_Inmap\" "); 283 } appendClipFunction_Inmap(const ClipFunction::ClipFunction_Inmap & cfi)284 void appendClipFunction_Inmap(const ClipFunction::ClipFunction_Inmap& cfi)const 285 { 286 fprintf(mFile," "); 287 cfi.write(mFile); 288 } endClipFunction_Inmap()289 void endClipFunction_Inmap()const 290 { 291 fprintf(mFile,";\n"); 292 } setClipFunction_InmapTo(size_t cfi_i,short cfit)293 void setClipFunction_InmapTo(size_t cfi_i,short cfit) 294 { 295 if(cfit == 0) return; 296 fprintf(mFile,"\tsetAttr \".cf.cfi[%i].cfit\" %i;\n", cfi_i,cfit); 297 } setClipFunction_InmapFrom(size_t cfi_i,short cfif)298 void setClipFunction_InmapFrom(size_t cfi_i,short cfif) 299 { 300 if(cfif == 0) return; 301 fprintf(mFile,"\tsetAttr \".cf.cfi[%i].cfif\" %i;\n", cfi_i,cfif); 302 } setClipFunction_Outmap(size_t cfo_i,const ClipFunction::ClipFunction_Outmap & cfo)303 void setClipFunction_Outmap(size_t cfo_i,const ClipFunction::ClipFunction_Outmap& cfo) 304 { 305 fprintf(mFile,"\tsetAttr \".cf.cfo[%i]\" ",cfo_i); 306 cfo.write(mFile); 307 fprintf(mFile,";\n"); 308 } setClipFunction_Outmap(size_t cfo_start,size_t cfo_end,ClipFunction::ClipFunction_Outmap * cfo)309 void setClipFunction_Outmap(size_t cfo_start,size_t cfo_end,ClipFunction::ClipFunction_Outmap* cfo) 310 { 311 fprintf(mFile,"\tsetAttr \".cf.cfo[%i:%i]\" ", cfo_start,cfo_end); 312 size_t size = (cfo_end-cfo_start)*1+1; 313 for(size_t i=0;i<size;++i) 314 { 315 cfo[i].write(mFile); 316 fprintf(mFile,"\n"); 317 } 318 fprintf(mFile,";\n"); 319 } startClipFunction_Outmap(size_t cfo_start,size_t cfo_end)320 void startClipFunction_Outmap(size_t cfo_start,size_t cfo_end)const 321 { 322 fprintf(mFile,"\tsetAttr \".cf.cfo[%i:%i]\"",cfo_start,cfo_end); 323 fprintf(mFile," -type \"ClipFunction::ClipFunction_Outmap\" "); 324 } appendClipFunction_Outmap(const ClipFunction::ClipFunction_Outmap & cfo)325 void appendClipFunction_Outmap(const ClipFunction::ClipFunction_Outmap& cfo)const 326 { 327 fprintf(mFile," "); 328 cfo.write(mFile); 329 } endClipFunction_Outmap()330 void endClipFunction_Outmap()const 331 { 332 fprintf(mFile,";\n"); 333 } setClipFunction_OutmapTo(size_t cfo_i,short cfot)334 void setClipFunction_OutmapTo(size_t cfo_i,short cfot) 335 { 336 if(cfot == 0) return; 337 fprintf(mFile,"\tsetAttr \".cf.cfo[%i].cfot\" %i;\n", cfo_i,cfot); 338 } setClipFunction_OutmapFrom(size_t cfo_i,short cfof)339 void setClipFunction_OutmapFrom(size_t cfo_i,short cfof) 340 { 341 if(cfof == 0) return; 342 fprintf(mFile,"\tsetAttr \".cf.cfo[%i].cfof\" %i;\n", cfo_i,cfof); 343 } setStart(size_t st_i,double st)344 void setStart(size_t st_i,double st) 345 { 346 if(st == 0) return; 347 fprintf(mFile,"\tsetAttr \".st[%i]\" %f;\n", st_i,st); 348 } setStart(size_t st_start,size_t st_end,double * st)349 void setStart(size_t st_start,size_t st_end,double* st) 350 { 351 fprintf(mFile,"\tsetAttr \".st[%i:%i]\" ", st_start,st_end); 352 size_t size = (st_end-st_start)*1+1; 353 for(size_t i=0;i<size;++i) 354 { 355 fprintf(mFile,"%f",st[i]); 356 if(i+1<size) fprintf(mFile," "); 357 } 358 fprintf(mFile,";\n"); 359 } startStart(size_t st_start,size_t st_end)360 void startStart(size_t st_start,size_t st_end)const 361 { 362 fprintf(mFile,"\tsetAttr \".st[%i:%i]\"",st_start,st_end); 363 } appendStart(double st)364 void appendStart(double st)const 365 { 366 fprintf(mFile," %f",st); 367 } endStart()368 void endStart()const 369 { 370 fprintf(mFile,";\n"); 371 } setSourceStart(size_t ss_i,double ss)372 void setSourceStart(size_t ss_i,double ss) 373 { 374 if(ss == 0) return; 375 fprintf(mFile,"\tsetAttr \".ss[%i]\" %f;\n", ss_i,ss); 376 } setSourceStart(size_t ss_start,size_t ss_end,double * ss)377 void setSourceStart(size_t ss_start,size_t ss_end,double* ss) 378 { 379 fprintf(mFile,"\tsetAttr \".ss[%i:%i]\" ", ss_start,ss_end); 380 size_t size = (ss_end-ss_start)*1+1; 381 for(size_t i=0;i<size;++i) 382 { 383 fprintf(mFile,"%f",ss[i]); 384 if(i+1<size) fprintf(mFile," "); 385 } 386 fprintf(mFile,";\n"); 387 } startSourceStart(size_t ss_start,size_t ss_end)388 void startSourceStart(size_t ss_start,size_t ss_end)const 389 { 390 fprintf(mFile,"\tsetAttr \".ss[%i:%i]\"",ss_start,ss_end); 391 } appendSourceStart(double ss)392 void appendSourceStart(double ss)const 393 { 394 fprintf(mFile," %f",ss); 395 } endSourceStart()396 void endSourceStart()const 397 { 398 fprintf(mFile,";\n"); 399 } setSourceEnd(size_t se_i,double se)400 void setSourceEnd(size_t se_i,double se) 401 { 402 if(se == 0) return; 403 fprintf(mFile,"\tsetAttr \".se[%i]\" %f;\n", se_i,se); 404 } setSourceEnd(size_t se_start,size_t se_end,double * se)405 void setSourceEnd(size_t se_start,size_t se_end,double* se) 406 { 407 fprintf(mFile,"\tsetAttr \".se[%i:%i]\" ", se_start,se_end); 408 size_t size = (se_end-se_start)*1+1; 409 for(size_t i=0;i<size;++i) 410 { 411 fprintf(mFile,"%f",se[i]); 412 if(i+1<size) fprintf(mFile," "); 413 } 414 fprintf(mFile,";\n"); 415 } startSourceEnd(size_t se_start,size_t se_end)416 void startSourceEnd(size_t se_start,size_t se_end)const 417 { 418 fprintf(mFile,"\tsetAttr \".se[%i:%i]\"",se_start,se_end); 419 } appendSourceEnd(double se)420 void appendSourceEnd(double se)const 421 { 422 fprintf(mFile," %f",se); 423 } endSourceEnd()424 void endSourceEnd()const 425 { 426 fprintf(mFile,";\n"); 427 } setScale(size_t sc_i,double sc)428 void setScale(size_t sc_i,double sc) 429 { 430 if(sc == 1.0) return; 431 fprintf(mFile,"\tsetAttr \".sc[%i]\" %f;\n", sc_i,sc); 432 } setScale(size_t sc_start,size_t sc_end,double * sc)433 void setScale(size_t sc_start,size_t sc_end,double* sc) 434 { 435 fprintf(mFile,"\tsetAttr \".sc[%i:%i]\" ", sc_start,sc_end); 436 size_t size = (sc_end-sc_start)*1+1; 437 for(size_t i=0;i<size;++i) 438 { 439 fprintf(mFile,"%f",sc[i]); 440 if(i+1<size) fprintf(mFile," "); 441 } 442 fprintf(mFile,";\n"); 443 } startScale(size_t sc_start,size_t sc_end)444 void startScale(size_t sc_start,size_t sc_end)const 445 { 446 fprintf(mFile,"\tsetAttr \".sc[%i:%i]\"",sc_start,sc_end); 447 } appendScale(double sc)448 void appendScale(double sc)const 449 { 450 fprintf(mFile," %f",sc); 451 } endScale()452 void endScale()const 453 { 454 fprintf(mFile,";\n"); 455 } setHold(size_t h_i,double h)456 void setHold(size_t h_i,double h) 457 { 458 if(h == 0) return; 459 fprintf(mFile,"\tsetAttr \".h[%i]\" %f;\n", h_i,h); 460 } setHold(size_t h_start,size_t h_end,double * h)461 void setHold(size_t h_start,size_t h_end,double* h) 462 { 463 fprintf(mFile,"\tsetAttr \".h[%i:%i]\" ", h_start,h_end); 464 size_t size = (h_end-h_start)*1+1; 465 for(size_t i=0;i<size;++i) 466 { 467 fprintf(mFile,"%f",h[i]); 468 if(i+1<size) fprintf(mFile," "); 469 } 470 fprintf(mFile,";\n"); 471 } startHold(size_t h_start,size_t h_end)472 void startHold(size_t h_start,size_t h_end)const 473 { 474 fprintf(mFile,"\tsetAttr \".h[%i:%i]\"",h_start,h_end); 475 } appendHold(double h)476 void appendHold(double h)const 477 { 478 fprintf(mFile," %f",h); 479 } endHold()480 void endHold()const 481 { 482 fprintf(mFile,";\n"); 483 } setWeight(size_t w_i,double w)484 void setWeight(size_t w_i,double w) 485 { 486 if(w == 1.0) return; 487 fprintf(mFile,"\tsetAttr \".w[%i]\" %f;\n", w_i,w); 488 } setWeight(size_t w_start,size_t w_end,double * w)489 void setWeight(size_t w_start,size_t w_end,double* w) 490 { 491 fprintf(mFile,"\tsetAttr \".w[%i:%i]\" ", w_start,w_end); 492 size_t size = (w_end-w_start)*1+1; 493 for(size_t i=0;i<size;++i) 494 { 495 fprintf(mFile,"%f",w[i]); 496 if(i+1<size) fprintf(mFile," "); 497 } 498 fprintf(mFile,";\n"); 499 } startWeight(size_t w_start,size_t w_end)500 void startWeight(size_t w_start,size_t w_end)const 501 { 502 fprintf(mFile,"\tsetAttr \".w[%i:%i]\"",w_start,w_end); 503 } appendWeight(double w)504 void appendWeight(double w)const 505 { 506 fprintf(mFile," %f",w); 507 } endWeight()508 void endWeight()const 509 { 510 fprintf(mFile,";\n"); 511 } setWeightStyle(size_t ws_i,unsigned int ws)512 void setWeightStyle(size_t ws_i,unsigned int ws) 513 { 514 if(ws == 0) return; 515 fprintf(mFile,"\tsetAttr \".ws[%i]\" %i;\n", ws_i,ws); 516 } setWeightStyle(size_t ws_start,size_t ws_end,unsigned int * ws)517 void setWeightStyle(size_t ws_start,size_t ws_end,unsigned int* ws) 518 { 519 fprintf(mFile,"\tsetAttr \".ws[%i:%i]\" ", ws_start,ws_end); 520 size_t size = (ws_end-ws_start)*1+1; 521 for(size_t i=0;i<size;++i) 522 { 523 fprintf(mFile,"%i",ws[i]); 524 if(i+1<size) fprintf(mFile," "); 525 } 526 fprintf(mFile,";\n"); 527 } startWeightStyle(size_t ws_start,size_t ws_end)528 void startWeightStyle(size_t ws_start,size_t ws_end)const 529 { 530 fprintf(mFile,"\tsetAttr \".ws[%i:%i]\"",ws_start,ws_end); 531 } appendWeightStyle(unsigned int ws)532 void appendWeightStyle(unsigned int ws)const 533 { 534 fprintf(mFile," %i",ws); 535 } endWeightStyle()536 void endWeightStyle()const 537 { 538 fprintf(mFile,";\n"); 539 } setPreCycle(size_t cb_i,double cb)540 void setPreCycle(size_t cb_i,double cb) 541 { 542 if(cb == 0.0) return; 543 fprintf(mFile,"\tsetAttr \".cb[%i]\" %f;\n", cb_i,cb); 544 } setPreCycle(size_t cb_start,size_t cb_end,double * cb)545 void setPreCycle(size_t cb_start,size_t cb_end,double* cb) 546 { 547 fprintf(mFile,"\tsetAttr \".cb[%i:%i]\" ", cb_start,cb_end); 548 size_t size = (cb_end-cb_start)*1+1; 549 for(size_t i=0;i<size;++i) 550 { 551 fprintf(mFile,"%f",cb[i]); 552 if(i+1<size) fprintf(mFile," "); 553 } 554 fprintf(mFile,";\n"); 555 } startPreCycle(size_t cb_start,size_t cb_end)556 void startPreCycle(size_t cb_start,size_t cb_end)const 557 { 558 fprintf(mFile,"\tsetAttr \".cb[%i:%i]\"",cb_start,cb_end); 559 } appendPreCycle(double cb)560 void appendPreCycle(double cb)const 561 { 562 fprintf(mFile," %f",cb); 563 } endPreCycle()564 void endPreCycle()const 565 { 566 fprintf(mFile,";\n"); 567 } setPostCycle(size_t ca_i,double ca)568 void setPostCycle(size_t ca_i,double ca) 569 { 570 if(ca == 0.0) return; 571 fprintf(mFile,"\tsetAttr \".ca[%i]\" %f;\n", ca_i,ca); 572 } setPostCycle(size_t ca_start,size_t ca_end,double * ca)573 void setPostCycle(size_t ca_start,size_t ca_end,double* ca) 574 { 575 fprintf(mFile,"\tsetAttr \".ca[%i:%i]\" ", ca_start,ca_end); 576 size_t size = (ca_end-ca_start)*1+1; 577 for(size_t i=0;i<size;++i) 578 { 579 fprintf(mFile,"%f",ca[i]); 580 if(i+1<size) fprintf(mFile," "); 581 } 582 fprintf(mFile,";\n"); 583 } startPostCycle(size_t ca_start,size_t ca_end)584 void startPostCycle(size_t ca_start,size_t ca_end)const 585 { 586 fprintf(mFile,"\tsetAttr \".ca[%i:%i]\"",ca_start,ca_end); 587 } appendPostCycle(double ca)588 void appendPostCycle(double ca)const 589 { 590 fprintf(mFile," %f",ca); 591 } endPostCycle()592 void endPostCycle()const 593 { 594 fprintf(mFile,";\n"); 595 } setEnable(size_t ea_i,bool ea)596 void setEnable(size_t ea_i,bool ea) 597 { 598 if(ea == 1) return; 599 fprintf(mFile,"\tsetAttr \".ea[%i]\" %i;\n", ea_i,ea); 600 } setEnable(size_t ea_start,size_t ea_end,bool * ea)601 void setEnable(size_t ea_start,size_t ea_end,bool* ea) 602 { 603 fprintf(mFile,"\tsetAttr \".ea[%i:%i]\" ", ea_start,ea_end); 604 size_t size = (ea_end-ea_start)*1+1; 605 for(size_t i=0;i<size;++i) 606 { 607 fprintf(mFile,"%i",ea[i]); 608 if(i+1<size) fprintf(mFile," "); 609 } 610 fprintf(mFile,";\n"); 611 } startEnable(size_t ea_start,size_t ea_end)612 void startEnable(size_t ea_start,size_t ea_end)const 613 { 614 fprintf(mFile,"\tsetAttr \".ea[%i:%i]\"",ea_start,ea_end); 615 } appendEnable(bool ea)616 void appendEnable(bool ea)const 617 { 618 fprintf(mFile," %i",ea); 619 } endEnable()620 void endEnable()const 621 { 622 fprintf(mFile,";\n"); 623 } setTrack(size_t tr_i,short tr)624 void setTrack(size_t tr_i,short tr) 625 { 626 if(tr == 0) return; 627 fprintf(mFile,"\tsetAttr \".tr[%i]\" %i;\n", tr_i,tr); 628 } setTrack(size_t tr_start,size_t tr_end,short * tr)629 void setTrack(size_t tr_start,size_t tr_end,short* tr) 630 { 631 fprintf(mFile,"\tsetAttr \".tr[%i:%i]\" ", tr_start,tr_end); 632 size_t size = (tr_end-tr_start)*1+1; 633 for(size_t i=0;i<size;++i) 634 { 635 fprintf(mFile,"%i",tr[i]); 636 if(i+1<size) fprintf(mFile," "); 637 } 638 fprintf(mFile,";\n"); 639 } startTrack(size_t tr_start,size_t tr_end)640 void startTrack(size_t tr_start,size_t tr_end)const 641 { 642 fprintf(mFile,"\tsetAttr \".tr[%i:%i]\"",tr_start,tr_end); 643 } appendTrack(short tr)644 void appendTrack(short tr)const 645 { 646 fprintf(mFile," %i",tr); 647 } endTrack()648 void endTrack()const 649 { 650 fprintf(mFile,";\n"); 651 } setTrackState(size_t ts_i,short ts)652 void setTrackState(size_t ts_i,short ts) 653 { 654 if(ts == 0) return; 655 fprintf(mFile,"\tsetAttr \".ts[%i]\" %i;\n", ts_i,ts); 656 } setTrackState(size_t ts_start,size_t ts_end,short * ts)657 void setTrackState(size_t ts_start,size_t ts_end,short* ts) 658 { 659 fprintf(mFile,"\tsetAttr \".ts[%i:%i]\" ", ts_start,ts_end); 660 size_t size = (ts_end-ts_start)*1+1; 661 for(size_t i=0;i<size;++i) 662 { 663 fprintf(mFile,"%i",ts[i]); 664 if(i+1<size) fprintf(mFile," "); 665 } 666 fprintf(mFile,";\n"); 667 } startTrackState(size_t ts_start,size_t ts_end)668 void startTrackState(size_t ts_start,size_t ts_end)const 669 { 670 fprintf(mFile,"\tsetAttr \".ts[%i:%i]\"",ts_start,ts_end); 671 } appendTrackState(short ts)672 void appendTrackState(short ts)const 673 { 674 fprintf(mFile," %i",ts); 675 } endTrackState()676 void endTrackState()const 677 { 678 fprintf(mFile,";\n"); 679 } setNumTracks(short nt)680 void setNumTracks(short nt) 681 { 682 if(nt == 0) return; 683 fprintf(mFile,"\tsetAttr \".nt\" %i;\n", nt); 684 } setCycle(size_t cy_i,double cy)685 void setCycle(size_t cy_i,double cy) 686 { 687 if(cy == 1.0) return; 688 fprintf(mFile,"\tsetAttr \".cy[%i]\" %f;\n", cy_i,cy); 689 } setCycle(size_t cy_start,size_t cy_end,double * cy)690 void setCycle(size_t cy_start,size_t cy_end,double* cy) 691 { 692 fprintf(mFile,"\tsetAttr \".cy[%i:%i]\" ", cy_start,cy_end); 693 size_t size = (cy_end-cy_start)*1+1; 694 for(size_t i=0;i<size;++i) 695 { 696 fprintf(mFile,"%f",cy[i]); 697 if(i+1<size) fprintf(mFile," "); 698 } 699 fprintf(mFile,";\n"); 700 } startCycle(size_t cy_start,size_t cy_end)701 void startCycle(size_t cy_start,size_t cy_end)const 702 { 703 fprintf(mFile,"\tsetAttr \".cy[%i:%i]\"",cy_start,cy_end); 704 } appendCycle(double cy)705 void appendCycle(double cy)const 706 { 707 fprintf(mFile," %f",cy); 708 } endCycle()709 void endCycle()const 710 { 711 fprintf(mFile,";\n"); 712 } getBlendList(size_t bl_i)713 void getBlendList(size_t bl_i)const 714 { 715 fprintf(mFile,"\"%s.bl[%i]\"",mName.c_str(),bl_i); 716 } getBlendList()717 void getBlendList()const 718 { 719 720 fprintf(mFile,"\"%s.bl\"",mName.c_str()); 721 } getBlendList_Raw(size_t bl_i)722 void getBlendList_Raw(size_t bl_i)const 723 { 724 fprintf(mFile,"\"%s.bl[%i].blr\"",mName.c_str(),bl_i); 725 } getBlendList_Raw()726 void getBlendList_Raw()const 727 { 728 729 fprintf(mFile,"\"%s.bl.blr\"",mName.c_str()); 730 } getBlendList_Inmap(size_t bl_i,size_t bli_i)731 void getBlendList_Inmap(size_t bl_i,size_t bli_i)const 732 { 733 fprintf(mFile,"\"%s.bl[%i].bli[%i]\"",mName.c_str(),bl_i,bli_i); 734 } getBlendList_Inmap(size_t bli_i)735 void getBlendList_Inmap(size_t bli_i)const 736 { 737 738 fprintf(mFile,"\"%s.bl.bli[%i]\"",mName.c_str(),bli_i); 739 } getBlendList_InmapTo(size_t bl_i,size_t bli_i)740 void getBlendList_InmapTo(size_t bl_i,size_t bli_i)const 741 { 742 fprintf(mFile,"\"%s.bl[%i].bli[%i].blit\"",mName.c_str(),bl_i,bli_i); 743 } getBlendList_InmapTo(size_t bli_i)744 void getBlendList_InmapTo(size_t bli_i)const 745 { 746 747 fprintf(mFile,"\"%s.bl.bli[%i].blit\"",mName.c_str(),bli_i); 748 } getBlendList_InmapFrom(size_t bl_i,size_t bli_i)749 void getBlendList_InmapFrom(size_t bl_i,size_t bli_i)const 750 { 751 fprintf(mFile,"\"%s.bl[%i].bli[%i].blif\"",mName.c_str(),bl_i,bli_i); 752 } getBlendList_InmapFrom(size_t bli_i)753 void getBlendList_InmapFrom(size_t bli_i)const 754 { 755 756 fprintf(mFile,"\"%s.bl.bli[%i].blif\"",mName.c_str(),bli_i); 757 } getBlendList_Outmap(size_t bl_i,size_t blo_i)758 void getBlendList_Outmap(size_t bl_i,size_t blo_i)const 759 { 760 fprintf(mFile,"\"%s.bl[%i].blo[%i]\"",mName.c_str(),bl_i,blo_i); 761 } getBlendList_Outmap(size_t blo_i)762 void getBlendList_Outmap(size_t blo_i)const 763 { 764 765 fprintf(mFile,"\"%s.bl.blo[%i]\"",mName.c_str(),blo_i); 766 } getBlendList_OutmapTo(size_t bl_i,size_t blo_i)767 void getBlendList_OutmapTo(size_t bl_i,size_t blo_i)const 768 { 769 fprintf(mFile,"\"%s.bl[%i].blo[%i].blot\"",mName.c_str(),bl_i,blo_i); 770 } getBlendList_OutmapTo(size_t blo_i)771 void getBlendList_OutmapTo(size_t blo_i)const 772 { 773 774 fprintf(mFile,"\"%s.bl.blo[%i].blot\"",mName.c_str(),blo_i); 775 } getBlendList_OutmapFrom(size_t bl_i,size_t blo_i)776 void getBlendList_OutmapFrom(size_t bl_i,size_t blo_i)const 777 { 778 fprintf(mFile,"\"%s.bl[%i].blo[%i].blof\"",mName.c_str(),bl_i,blo_i); 779 } getBlendList_OutmapFrom(size_t blo_i)780 void getBlendList_OutmapFrom(size_t blo_i)const 781 { 782 783 fprintf(mFile,"\"%s.bl.blo[%i].blof\"",mName.c_str(),blo_i); 784 } getClipEvaluate()785 void getClipEvaluate()const 786 { 787 fprintf(mFile,"\"%s.ce\"",mName.c_str()); 788 } getClipFunction()789 void getClipFunction()const 790 { 791 fprintf(mFile,"\"%s.cf\"",mName.c_str()); 792 } getClipFunction_Raw()793 void getClipFunction_Raw()const 794 { 795 fprintf(mFile,"\"%s.cf.cfr\"",mName.c_str()); 796 } getClipFunction_Inmap(size_t cfi_i)797 void getClipFunction_Inmap(size_t cfi_i)const 798 { 799 fprintf(mFile,"\"%s.cf.cfi[%i]\"",mName.c_str(),cfi_i); 800 } getClipFunction_InmapTo(size_t cfi_i)801 void getClipFunction_InmapTo(size_t cfi_i)const 802 { 803 fprintf(mFile,"\"%s.cf.cfi[%i].cfit\"",mName.c_str(),cfi_i); 804 } getClipFunction_InmapFrom(size_t cfi_i)805 void getClipFunction_InmapFrom(size_t cfi_i)const 806 { 807 fprintf(mFile,"\"%s.cf.cfi[%i].cfif\"",mName.c_str(),cfi_i); 808 } getClipFunction_Outmap(size_t cfo_i)809 void getClipFunction_Outmap(size_t cfo_i)const 810 { 811 fprintf(mFile,"\"%s.cf.cfo[%i]\"",mName.c_str(),cfo_i); 812 } getClipFunction_OutmapTo(size_t cfo_i)813 void getClipFunction_OutmapTo(size_t cfo_i)const 814 { 815 fprintf(mFile,"\"%s.cf.cfo[%i].cfot\"",mName.c_str(),cfo_i); 816 } getClipFunction_OutmapFrom(size_t cfo_i)817 void getClipFunction_OutmapFrom(size_t cfo_i)const 818 { 819 fprintf(mFile,"\"%s.cf.cfo[%i].cfof\"",mName.c_str(),cfo_i); 820 } getClip(size_t cl_i)821 void getClip(size_t cl_i)const 822 { 823 fprintf(mFile,"\"%s.cl[%i]\"",mName.c_str(),cl_i); 824 } getClip()825 void getClip()const 826 { 827 828 fprintf(mFile,"\"%s.cl\"",mName.c_str()); 829 } getStart(size_t st_i)830 void getStart(size_t st_i)const 831 { 832 fprintf(mFile,"\"%s.st[%i]\"",mName.c_str(),st_i); 833 } getStart()834 void getStart()const 835 { 836 837 fprintf(mFile,"\"%s.st\"",mName.c_str()); 838 } getSourceStart(size_t ss_i)839 void getSourceStart(size_t ss_i)const 840 { 841 fprintf(mFile,"\"%s.ss[%i]\"",mName.c_str(),ss_i); 842 } getSourceStart()843 void getSourceStart()const 844 { 845 846 fprintf(mFile,"\"%s.ss\"",mName.c_str()); 847 } getSourceEnd(size_t se_i)848 void getSourceEnd(size_t se_i)const 849 { 850 fprintf(mFile,"\"%s.se[%i]\"",mName.c_str(),se_i); 851 } getSourceEnd()852 void getSourceEnd()const 853 { 854 855 fprintf(mFile,"\"%s.se\"",mName.c_str()); 856 } getScale(size_t sc_i)857 void getScale(size_t sc_i)const 858 { 859 fprintf(mFile,"\"%s.sc[%i]\"",mName.c_str(),sc_i); 860 } getScale()861 void getScale()const 862 { 863 864 fprintf(mFile,"\"%s.sc\"",mName.c_str()); 865 } getHold(size_t h_i)866 void getHold(size_t h_i)const 867 { 868 fprintf(mFile,"\"%s.h[%i]\"",mName.c_str(),h_i); 869 } getHold()870 void getHold()const 871 { 872 873 fprintf(mFile,"\"%s.h\"",mName.c_str()); 874 } getWeight(size_t w_i)875 void getWeight(size_t w_i)const 876 { 877 fprintf(mFile,"\"%s.w[%i]\"",mName.c_str(),w_i); 878 } getWeight()879 void getWeight()const 880 { 881 882 fprintf(mFile,"\"%s.w\"",mName.c_str()); 883 } getWeightStyle(size_t ws_i)884 void getWeightStyle(size_t ws_i)const 885 { 886 fprintf(mFile,"\"%s.ws[%i]\"",mName.c_str(),ws_i); 887 } getWeightStyle()888 void getWeightStyle()const 889 { 890 891 fprintf(mFile,"\"%s.ws\"",mName.c_str()); 892 } getPreCycle(size_t cb_i)893 void getPreCycle(size_t cb_i)const 894 { 895 fprintf(mFile,"\"%s.cb[%i]\"",mName.c_str(),cb_i); 896 } getPreCycle()897 void getPreCycle()const 898 { 899 900 fprintf(mFile,"\"%s.cb\"",mName.c_str()); 901 } getPostCycle(size_t ca_i)902 void getPostCycle(size_t ca_i)const 903 { 904 fprintf(mFile,"\"%s.ca[%i]\"",mName.c_str(),ca_i); 905 } getPostCycle()906 void getPostCycle()const 907 { 908 909 fprintf(mFile,"\"%s.ca\"",mName.c_str()); 910 } getEnable(size_t ea_i)911 void getEnable(size_t ea_i)const 912 { 913 fprintf(mFile,"\"%s.ea[%i]\"",mName.c_str(),ea_i); 914 } getEnable()915 void getEnable()const 916 { 917 918 fprintf(mFile,"\"%s.ea\"",mName.c_str()); 919 } getCycle(size_t cy_i)920 void getCycle(size_t cy_i)const 921 { 922 fprintf(mFile,"\"%s.cy[%i]\"",mName.c_str(),cy_i); 923 } getCycle()924 void getCycle()const 925 { 926 927 fprintf(mFile,"\"%s.cy\"",mName.c_str()); 928 } getStartPercent(size_t sp_i)929 void getStartPercent(size_t sp_i)const 930 { 931 fprintf(mFile,"\"%s.sp[%i]\"",mName.c_str(),sp_i); 932 } getStartPercent()933 void getStartPercent()const 934 { 935 936 fprintf(mFile,"\"%s.sp\"",mName.c_str()); 937 } getAbsolute(size_t a_i)938 void getAbsolute(size_t a_i)const 939 { 940 fprintf(mFile,"\"%s.a[%i]\"",mName.c_str(),a_i); 941 } getAbsolute()942 void getAbsolute()const 943 { 944 945 fprintf(mFile,"\"%s.a\"",mName.c_str()); 946 } getAbsoluteRotations(size_t ar_i)947 void getAbsoluteRotations(size_t ar_i)const 948 { 949 fprintf(mFile,"\"%s.ar[%i]\"",mName.c_str(),ar_i); 950 } getAbsoluteRotations()951 void getAbsoluteRotations()const 952 { 953 954 fprintf(mFile,"\"%s.ar\"",mName.c_str()); 955 } 956 protected: 957 ClipScheduler(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)958 :DependNode(file, name, parent, nodeType, shared, create) {} 959 960 }; 961 }//namespace MayaDM 962 #endif//__MayaDM_CLIPSCHEDULER_H__ 963