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_PLUSMINUSAVERAGE_H__
11
#define __MayaDM_PLUSMINUSAVERAGE_H__
12
#include "MayaDMTypes.h"
13
#include "MayaDMConnectables.h"
14
#include "MayaDMDependNode.h"
17
class PlusMinusAverage : public DependNode
22
PlusMinusAverage():DependNode(){}
23
PlusMinusAverage(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
24
:DependNode(file, name, parent, "plusMinusAverage", shared, create){}
25
virtual ~PlusMinusAverage(){}
27
void setOperation(unsigned int op)
30
fprintf(mFile,"\tsetAttr \".op\" %i;\n", op);
32
void setInput1D(size_t i1_i,float i1)
35
fprintf(mFile,"\tsetAttr \".i1[%i]\" %f;\n", i1_i,i1);
37
void setInput1D(size_t i1_start,size_t i1_end,float* i1)
39
fprintf(mFile,"\tsetAttr \".i1[%i:%i]\" ", i1_start,i1_end);
40
size_t size = (i1_end-i1_start)*1+1;
41
for(size_t i=0;i<size;++i)
43
fprintf(mFile,"%f",i1[i]);
44
if(i+1<size) fprintf(mFile," ");
48
void startInput1D(size_t i1_start,size_t i1_end)const
50
fprintf(mFile,"\tsetAttr \".i1[%i:%i]\"",i1_start,i1_end);
52
void appendInput1D(float i1)const
54
fprintf(mFile," %f",i1);
56
void endInput1D()const
60
void setInput2D(size_t i2_i,const float2& i2)
62
if(i2 == float2(0.0f,0.0f)) return;
63
fprintf(mFile,"\tsetAttr \".i2[%i]\" -type \"float2\" ",i2_i);
67
void setInput2D(size_t i2_start,size_t i2_end,float* i2)
69
fprintf(mFile,"\tsetAttr \".i2[%i:%i]\" ", i2_start,i2_end);
70
size_t size = (i2_end-i2_start)*2+2;
71
for(size_t i=0;i<size;++i)
73
fprintf(mFile,"%f",i2[i]);
74
if(i+1<size) fprintf(mFile," ");
78
void startInput2D(size_t i2_start,size_t i2_end)const
80
fprintf(mFile,"\tsetAttr \".i2[%i:%i]\"",i2_start,i2_end);
82
void appendInput2D(float i2)const
84
fprintf(mFile," %f",i2);
86
void endInput2D()const
90
void setInput2Dx(size_t i2_i,float i2x)
92
if(i2x == 0.0) return;
93
fprintf(mFile,"\tsetAttr \".i2[%i].i2x\" %f;\n", i2_i,i2x);
95
void setInput2Dy(size_t i2_i,float i2y)
97
if(i2y == 0.0) return;
98
fprintf(mFile,"\tsetAttr \".i2[%i].i2y\" %f;\n", i2_i,i2y);
100
void setInput3D(size_t i3_i,const float3& i3)
102
if(i3 == float3(0.0f,0.0f,0.0f)) return;
103
fprintf(mFile,"\tsetAttr \".i3[%i]\" -type \"float3\" ",i3_i);
105
fprintf(mFile,";\n");
107
void setInput3D(size_t i3_start,size_t i3_end,float* i3)
109
fprintf(mFile,"\tsetAttr \".i3[%i:%i]\" ", i3_start,i3_end);
110
size_t size = (i3_end-i3_start)*3+3;
111
for(size_t i=0;i<size;++i)
113
fprintf(mFile,"%f",i3[i]);
114
if(i+1<size) fprintf(mFile," ");
116
fprintf(mFile,";\n");
118
void startInput3D(size_t i3_start,size_t i3_end)const
120
fprintf(mFile,"\tsetAttr \".i3[%i:%i]\"",i3_start,i3_end);
122
void appendInput3D(float i3)const
124
fprintf(mFile," %f",i3);
126
void endInput3D()const
128
fprintf(mFile,";\n");
130
void setInput3Dx(size_t i3_i,float i3x)
132
if(i3x == 0.0) return;
133
fprintf(mFile,"\tsetAttr \".i3[%i].i3x\" %f;\n", i3_i,i3x);
135
void setInput3Dy(size_t i3_i,float i3y)
137
if(i3y == 0.0) return;
138
fprintf(mFile,"\tsetAttr \".i3[%i].i3y\" %f;\n", i3_i,i3y);
140
void setInput3Dz(size_t i3_i,float i3z)
142
if(i3z == 0.0) return;
143
fprintf(mFile,"\tsetAttr \".i3[%i].i3z\" %f;\n", i3_i,i3z);
145
void getOperation()const
147
fprintf(mFile,"\"%s.op\"",mName.c_str());
149
void getInput1D(size_t i1_i)const
151
fprintf(mFile,"\"%s.i1[%i]\"",mName.c_str(),i1_i);
153
void getInput1D()const
156
fprintf(mFile,"\"%s.i1\"",mName.c_str());
158
void getInput2D(size_t i2_i)const
160
fprintf(mFile,"\"%s.i2[%i]\"",mName.c_str(),i2_i);
162
void getInput2D()const
165
fprintf(mFile,"\"%s.i2\"",mName.c_str());
167
void getInput2Dx(size_t i2_i)const
169
fprintf(mFile,"\"%s.i2[%i].i2x\"",mName.c_str(),i2_i);
171
void getInput2Dx()const
174
fprintf(mFile,"\"%s.i2.i2x\"",mName.c_str());
176
void getInput2Dy(size_t i2_i)const
178
fprintf(mFile,"\"%s.i2[%i].i2y\"",mName.c_str(),i2_i);
180
void getInput2Dy()const
183
fprintf(mFile,"\"%s.i2.i2y\"",mName.c_str());
185
void getInput3D(size_t i3_i)const
187
fprintf(mFile,"\"%s.i3[%i]\"",mName.c_str(),i3_i);
189
void getInput3D()const
192
fprintf(mFile,"\"%s.i3\"",mName.c_str());
194
void getInput3Dx(size_t i3_i)const
196
fprintf(mFile,"\"%s.i3[%i].i3x\"",mName.c_str(),i3_i);
198
void getInput3Dx()const
201
fprintf(mFile,"\"%s.i3.i3x\"",mName.c_str());
203
void getInput3Dy(size_t i3_i)const
205
fprintf(mFile,"\"%s.i3[%i].i3y\"",mName.c_str(),i3_i);
207
void getInput3Dy()const
210
fprintf(mFile,"\"%s.i3.i3y\"",mName.c_str());
212
void getInput3Dz(size_t i3_i)const
214
fprintf(mFile,"\"%s.i3[%i].i3z\"",mName.c_str(),i3_i);
216
void getInput3Dz()const
219
fprintf(mFile,"\"%s.i3.i3z\"",mName.c_str());
221
void getOutput1D()const
223
fprintf(mFile,"\"%s.o1\"",mName.c_str());
225
void getOutput2D()const
227
fprintf(mFile,"\"%s.o2\"",mName.c_str());
229
void getOutput2Dx()const
231
fprintf(mFile,"\"%s.o2.o2x\"",mName.c_str());
233
void getOutput2Dy()const
235
fprintf(mFile,"\"%s.o2.o2y\"",mName.c_str());
237
void getOutput3D()const
239
fprintf(mFile,"\"%s.o3\"",mName.c_str());
241
void getOutput3Dx()const
243
fprintf(mFile,"\"%s.o3.o3x\"",mName.c_str());
245
void getOutput3Dy()const
247
fprintf(mFile,"\"%s.o3.o3y\"",mName.c_str());
249
void getOutput3Dz()const
251
fprintf(mFile,"\"%s.o3.o3z\"",mName.c_str());
254
PlusMinusAverage(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
255
:DependNode(file, name, parent, nodeType, shared, create) {}
259
#endif//__MayaDM_PLUSMINUSAVERAGE_H__