2
Copyright (c) 2008-2009 NetAllied Systems GmbH
4
This file is part of MayaDataModel.
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
10
#ifndef __MayaDM_FLOW_H__
11
#define __MayaDM_FLOW_H__
12
#include "MayaDMTypes.h"
13
#include "MayaDMConnectables.h"
14
#include "MayaDMDependNode.h"
17
class Flow : public DependNode
23
Flow(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24
:DependNode(file, name, parent, "flow", shared, create){}
27
void setLatticeOnObject(bool lo)
29
if(lo == false) return;
30
fprintf(mFile,"\tsetAttr \".lo\" %i;\n", lo);
32
void setParmValue(double pv)
35
fprintf(mFile,"\tsetAttr \".pv\" %f;\n", pv);
37
void setSDivisions(short sdv)
40
fprintf(mFile,"\tsetAttr \".sdv\" %i;\n", sdv);
42
void setTDivisions(short tdv)
45
fprintf(mFile,"\tsetAttr \".tdv\" %i;\n", tdv);
47
void setUDivisions(short udv)
50
fprintf(mFile,"\tsetAttr \".udv\" %i;\n", udv);
52
void setInBaseMatrix(const matrix& ibm)
54
if(ibm == identity) return;
55
fprintf(mFile,"\tsetAttr \".ibm\" -type \"matrix\" ");
59
void setDefMatrixInv(const matrix& dmi)
61
if(dmi == identity) return;
62
fprintf(mFile,"\tsetAttr \".dmi\" -type \"matrix\" ");
66
void setSetFrontAxis(unsigned int sfa)
69
fprintf(mFile,"\tsetAttr \".sfa\" %i;\n", sfa);
71
void setSetUpAxis(unsigned int sua)
74
fprintf(mFile,"\tsetAttr \".sua\" %i;\n", sua);
76
void setOrientMatrix(const matrix& omx)
78
if(omx == identity) return;
79
fprintf(mFile,"\tsetAttr \".omx\" -type \"matrix\" ");
83
void setAllCoords(const double3& ac)
85
if(ac == double3(0.0, 0.0, 0.0)) return;
86
fprintf(mFile,"\tsetAttr \".ac\" -type \"double3\" ");
90
void setXCoord(double xc)
93
fprintf(mFile,"\tsetAttr \".ac.xc\" %f;\n", xc);
95
void setYCoord(double yc)
98
fprintf(mFile,"\tsetAttr \".ac.yc\" %f;\n", yc);
100
void setZCoord(double zc)
103
fprintf(mFile,"\tsetAttr \".ac.zc\" %f;\n", zc);
105
void setCenter(size_t ctr_i,const double3& ctr)
107
if(ctr == double3(0.0, 0.0, 0.0)) return;
108
fprintf(mFile,"\tsetAttr \".ctr[%i]\" -type \"double3\" ",ctr_i);
110
fprintf(mFile,";\n");
112
void setCenter(size_t ctr_start,size_t ctr_end,double* ctr)
114
fprintf(mFile,"\tsetAttr \".ctr[%i:%i]\" ", ctr_start,ctr_end);
115
size_t size = (ctr_end-ctr_start)*3+3;
116
for(size_t i=0;i<size;++i)
118
fprintf(mFile,"%f",ctr[i]);
119
if(i+1<size) fprintf(mFile," ");
121
fprintf(mFile,";\n");
123
void startCenter(size_t ctr_start,size_t ctr_end)const
125
fprintf(mFile,"\tsetAttr \".ctr[%i:%i]\"",ctr_start,ctr_end);
127
void appendCenter(double ctr)const
129
fprintf(mFile," %f",ctr);
131
void endCenter()const
133
fprintf(mFile,";\n");
135
void setCenterX(size_t ctr_i,double ctx)
138
fprintf(mFile,"\tsetAttr \".ctr[%i].ctx\" %f;\n", ctr_i,ctx);
140
void setCenterY(size_t ctr_i,double cty)
143
fprintf(mFile,"\tsetAttr \".ctr[%i].cty\" %f;\n", ctr_i,cty);
145
void setCenterZ(size_t ctr_i,double ctz)
148
fprintf(mFile,"\tsetAttr \".ctr[%i].ctz\" %f;\n", ctr_i,ctz);
150
void setObjectWorldMatrix(size_t owmx_i,const matrix& owmx)
152
if(owmx == identity) return;
153
fprintf(mFile,"\tsetAttr \".owmx[%i]\" -type \"matrix\" ",owmx_i);
155
fprintf(mFile,";\n");
157
void setObjectWorldMatrix(size_t owmx_start,size_t owmx_end,matrix* owmx)
159
fprintf(mFile,"\tsetAttr \".owmx[%i:%i]\" ", owmx_start,owmx_end);
160
size_t size = (owmx_end-owmx_start)*1+1;
161
for(size_t i=0;i<size;++i)
163
owmx[i].write(mFile);
166
fprintf(mFile,";\n");
168
void startObjectWorldMatrix(size_t owmx_start,size_t owmx_end)const
170
fprintf(mFile,"\tsetAttr \".owmx[%i:%i]\"",owmx_start,owmx_end);
171
fprintf(mFile," -type \"matrix\" ");
173
void appendObjectWorldMatrix(const matrix& owmx)const
178
void endObjectWorldMatrix()const
180
fprintf(mFile,";\n");
182
void getMotionPath()const
184
fprintf(mFile,"\"%s.mp\"",mName.c_str());
188
fprintf(mFile,"\"%s.crv\"",mName.c_str());
190
void getParmValue()const
192
fprintf(mFile,"\"%s.pv\"",mName.c_str());
194
void getSDivisions()const
196
fprintf(mFile,"\"%s.sdv\"",mName.c_str());
198
void getTDivisions()const
200
fprintf(mFile,"\"%s.tdv\"",mName.c_str());
202
void getUDivisions()const
204
fprintf(mFile,"\"%s.udv\"",mName.c_str());
206
void getInBaseMatrix()const
208
fprintf(mFile,"\"%s.ibm\"",mName.c_str());
210
void getDefMatrixInv()const
212
fprintf(mFile,"\"%s.dmi\"",mName.c_str());
214
void getSetFrontAxis()const
216
fprintf(mFile,"\"%s.sfa\"",mName.c_str());
218
void getSetUpAxis()const
220
fprintf(mFile,"\"%s.sua\"",mName.c_str());
222
void getOrientMatrix()const
224
fprintf(mFile,"\"%s.omx\"",mName.c_str());
226
void getAllCoords()const
228
fprintf(mFile,"\"%s.ac\"",mName.c_str());
230
void getXCoord()const
232
fprintf(mFile,"\"%s.ac.xc\"",mName.c_str());
234
void getYCoord()const
236
fprintf(mFile,"\"%s.ac.yc\"",mName.c_str());
238
void getZCoord()const
240
fprintf(mFile,"\"%s.ac.zc\"",mName.c_str());
242
void getCenter(size_t ctr_i)const
244
fprintf(mFile,"\"%s.ctr[%i]\"",mName.c_str(),ctr_i);
246
void getCenter()const
249
fprintf(mFile,"\"%s.ctr\"",mName.c_str());
251
void getCenterX(size_t ctr_i)const
253
fprintf(mFile,"\"%s.ctr[%i].ctx\"",mName.c_str(),ctr_i);
255
void getCenterX()const
258
fprintf(mFile,"\"%s.ctr.ctx\"",mName.c_str());
260
void getCenterY(size_t ctr_i)const
262
fprintf(mFile,"\"%s.ctr[%i].cty\"",mName.c_str(),ctr_i);
264
void getCenterY()const
267
fprintf(mFile,"\"%s.ctr.cty\"",mName.c_str());
269
void getCenterZ(size_t ctr_i)const
271
fprintf(mFile,"\"%s.ctr[%i].ctz\"",mName.c_str(),ctr_i);
273
void getCenterZ()const
276
fprintf(mFile,"\"%s.ctr.ctz\"",mName.c_str());
278
void getObjectWorldMatrix(size_t owmx_i)const
280
fprintf(mFile,"\"%s.owmx[%i]\"",mName.c_str(),owmx_i);
282
void getObjectWorldMatrix()const
285
fprintf(mFile,"\"%s.owmx\"",mName.c_str());
287
void getOutBaseMatrix()const
289
fprintf(mFile,"\"%s.obm\"",mName.c_str());
291
void getDefPts()const
293
fprintf(mFile,"\"%s.dpt\"",mName.c_str());
296
Flow(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
297
:DependNode(file, name, parent, nodeType, shared, create) {}
301
#endif//__MayaDM_FLOW_H__