HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SOP_TransformByAttrib.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_NodeVerb.h>
7 #include <OP/OP_Utils.h>
8 #include <PRM/PRM_Parm.h>
9 #include <UT/UT_IStream.h>
10 #include <UT/UT_NTStreamUtil.h>
11 #include <UT/UT_Ramp.h>
12 #include <UT/UT_SharedPtr.h>
13 #include <UT/UT_StringHolder.h>
14 #include <UT/UT_StringStream.h>
15 #include <UT/UT_VectorTypes.h>
16 #include <SYS/SYS_Types.h>
17 
18 using namespace UT::Literal;
19 
20 class DEP_MicroNode;
21 namespace SOP_TransformByAttribEnums
22 {
23  enum class Grouptype
24  {
25  GUESS = 0,
26  BREAKPOINTS,
27  EDGES,
28  POINTS,
29  PRIMS
30  };
31 }
32 
33 
35 {
36 public:
37  static int version() { return 1; }
38 
40  {
41  myGroup = ""_sh;
42  myGrouptype = 0;
43  myXformattrib = "xform"_sh;
44  myInvertXform = false;
45  myAttribs = "*"_sh;
46  myUpdateaffectednmls = false;
47  myVlength = false;
48  myDeletexform = false;
49 
50  }
51 
52  explicit SOP_TransformByAttribParms(const SOP_TransformByAttribParms &) = default;
53 
55 
57  {
58  if (myGroup != src.myGroup) return false;
59  if (myGrouptype != src.myGrouptype) return false;
60  if (myXformattrib != src.myXformattrib) return false;
61  if (myInvertXform != src.myInvertXform) return false;
62  if (myAttribs != src.myAttribs) return false;
63  if (myUpdateaffectednmls != src.myUpdateaffectednmls) return false;
64  if (myVlength != src.myVlength) return false;
65  if (myDeletexform != src.myDeletexform) return false;
66 
67  return true;
68  }
70 
71 
72 
73  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
74  {
75  if (true)
76  OP_Utils::evalOpParm(myGroup, node, "group", time, 0);
77  else myGroup = ""_sh;
78  if (true)
79  OP_Utils::evalOpParm(myGrouptype, node, "grouptype", time, 0);
80  else myGrouptype = 0;
81  if (true)
82  OP_Utils::evalOpParm(myXformattrib, node, "xformattrib", time, 0);
83  else myXformattrib = "xform"_sh;
84  if (true)
85  OP_Utils::evalOpParm(myInvertXform, node, "invertxform", time, 0);
86  else myInvertXform = false;
87  if (true)
88  OP_Utils::evalOpParm(myAttribs, node, "attribs", time, 0);
89  else myAttribs = "*"_sh;
90  if (true)
91  OP_Utils::evalOpParm(myUpdateaffectednmls, node, "updateaffectednmls", time, 0);
92  else myUpdateaffectednmls = false;
93  if (true)
94  OP_Utils::evalOpParm(myVlength, node, "vlength", time, 0);
95  else myVlength = false;
96  if (true)
97  OP_Utils::evalOpParm(myDeletexform, node, "deletexform", time, 0);
98  else myDeletexform = false;
99 
100  }
101 
102 
103  virtual void loadFromOpSubclass(const LoadParms &loadparms)
104  {
105  buildFromOp(loadparms.node(), loadparms.context().getTime(), loadparms.depnode());
106  }
107 
108 
109  virtual void copyFrom(const SOP_NodeParms *src)
110  {
111  *this = *((const SOP_TransformByAttribParms *)src);
112  }
113 
114  template <typename T>
115  void
116  doGetParmValue(exint idx, T &value) const
117  {
118  switch (idx)
119  {
120  case 0:
121  coerceValue(value, myGroup);
122  break;
123  case 1:
124  coerceValue(value, myGrouptype);
125  break;
126  case 2:
127  coerceValue(value, myXformattrib);
128  break;
129  case 3:
130  coerceValue(value, myInvertXform);
131  break;
132  case 4:
133  coerceValue(value, myAttribs);
134  break;
135  case 5:
136  coerceValue(value, myUpdateaffectednmls);
137  break;
138  case 6:
139  coerceValue(value, myVlength);
140  break;
141  case 7:
142  coerceValue(value, myDeletexform);
143  break;
144 
145  }
146  }
147 
148  void getParmValue(exint idx, exint &value) const
149  { doGetParmValue(idx, value); }
150  void getParmValue(exint idx, fpreal &value) const
151  { doGetParmValue(idx, value); }
153  { doGetParmValue(idx, value); }
155  { doGetParmValue(idx, value); }
157  { doGetParmValue(idx, value); }
159  { doGetParmValue(idx, value); }
161  { doGetParmValue(idx, value); }
163  { doGetParmValue(idx, value); }
165  { doGetParmValue(idx, value); }
167  { doGetParmValue(idx, value); }
169  { doGetParmValue(idx, value); }
170 
171  template <typename T>
172  void
173  doSetParmValue(exint idx, const T &value)
174  {
175  switch (idx)
176  {
177  case 0:
178  coerceValue(myGroup, value);
179  break;
180  case 1:
181  coerceValue(myGrouptype, value);
182  break;
183  case 2:
184  coerceValue(myXformattrib, value);
185  break;
186  case 3:
187  coerceValue(myInvertXform, value);
188  break;
189  case 4:
190  coerceValue(myAttribs, value);
191  break;
192  case 5:
193  coerceValue(myUpdateaffectednmls, value);
194  break;
195  case 6:
196  coerceValue(myVlength, value);
197  break;
198  case 7:
199  coerceValue(myDeletexform, value);
200  break;
201 
202  }
203  }
204 
205  void setParmValue(exint idx, const exint &value)
206  { doSetParmValue(idx, value); }
207  void setParmValue(exint idx, const fpreal &value)
208  { doSetParmValue(idx, value); }
209  void setParmValue(exint idx, const UT_Vector2D &value)
210  { doSetParmValue(idx, value); }
211  void setParmValue(exint idx, const UT_Vector3D &value)
212  { doSetParmValue(idx, value); }
213  void setParmValue(exint idx, const UT_Vector4D &value)
214  { doSetParmValue(idx, value); }
215  void setParmValue(exint idx, const UT_Matrix2D &value)
216  { doSetParmValue(idx, value); }
217  void setParmValue(exint idx, const UT_Matrix3D &value)
218  { doSetParmValue(idx, value); }
219  void setParmValue(exint idx, const UT_Matrix4D &value)
220  { doSetParmValue(idx, value); }
222  { doSetParmValue(idx, value); }
224  { doSetParmValue(idx, value); }
226  { doSetParmValue(idx, value); }
227 
228  virtual exint getNumParms() const
229  {
230  return 8;
231  }
232 
233  virtual const char *getParmName(exint fieldnum) const
234  {
235  switch (fieldnum)
236  {
237  case 0:
238  return "group";
239  case 1:
240  return "grouptype";
241  case 2:
242  return "xformattrib";
243  case 3:
244  return "invertxform";
245  case 4:
246  return "attribs";
247  case 5:
248  return "updateaffectednmls";
249  case 6:
250  return "vlength";
251  case 7:
252  return "deletexform";
253 
254  }
255  return 0;
256  }
257 
258  virtual ParmType getParmType(exint fieldnum) const
259  {
260  switch (fieldnum)
261  {
262  case 0:
263  return PARM_STRING;
264  case 1:
265  return PARM_INTEGER;
266  case 2:
267  return PARM_STRING;
268  case 3:
269  return PARM_INTEGER;
270  case 4:
271  return PARM_STRING;
272  case 5:
273  return PARM_INTEGER;
274  case 6:
275  return PARM_INTEGER;
276  case 7:
277  return PARM_INTEGER;
278 
279  }
280  return PARM_UNSUPPORTED;
281  }
282 
283  // Boiler plate to load individual types.
284  static void loadData(UT_IStream &is, int64 &v)
285  { is.bread(&v, 1); }
286  static void loadData(UT_IStream &is, bool &v)
287  { int64 iv; is.bread(&iv, 1); v = iv; }
288  static void loadData(UT_IStream &is, fpreal64 &v)
289  { is.bread<fpreal64>(&v, 1); }
290  static void loadData(UT_IStream &is, UT_Vector2D &v)
291  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
292  static void loadData(UT_IStream &is, UT_Vector3D &v)
293  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
294  is.bread<fpreal64>(&v.z(), 1); }
295  static void loadData(UT_IStream &is, UT_Vector4D &v)
296  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
297  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
298  static void loadData(UT_IStream &is, UT_Matrix2D &v)
299  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
300  static void loadData(UT_IStream &is, UT_Matrix3D &v)
301  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
302  static void loadData(UT_IStream &is, UT_Matrix4D &v)
303  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
304  static void loadData(UT_IStream &is, UT_Vector2I &v)
305  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
306  static void loadData(UT_IStream &is, UT_Vector3I &v)
307  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
308  is.bread<int64>(&v.z(), 1); }
309  static void loadData(UT_IStream &is, UT_Vector4I &v)
310  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
311  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
313  { is.bread(v); }
315  { UT_StringHolder rampdata;
316  loadData(is, rampdata);
317  if (rampdata.isstring())
318  {
319  v.reset(new UT_Ramp());
320  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
321  v->load(istr);
322  }
323  else v.reset();
324  }
327  loadData(is, data);
328  if (data.isstring())
329  {
330  // Find the data type.
331  char *colon = UT_StringWrap(data).findChar(':');
332  if (colon)
333  {
334  int typelen = colon - data.buffer();
336  type.strncpy(data.buffer(), typelen);
337  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
338 
339  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
340  }
341  }
342  else v.reset();
343  }
344 
345  static void saveData(std::ostream &os, int64 v)
346  { UTwrite(os, &v); }
347  static void saveData(std::ostream &os, bool v)
348  { int64 iv = v; UTwrite(os, &iv); }
349  static void saveData(std::ostream &os, fpreal64 v)
350  { UTwrite<fpreal64>(os, &v); }
351  static void saveData(std::ostream &os, UT_Vector2D v)
352  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
353  static void saveData(std::ostream &os, UT_Vector3D v)
354  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
355  UTwrite<fpreal64>(os, &v.z()); }
356  static void saveData(std::ostream &os, UT_Vector4D v)
357  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
358  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
359  static void saveData(std::ostream &os, UT_Matrix2D v)
361  static void saveData(std::ostream &os, UT_Matrix3D v)
363  static void saveData(std::ostream &os, UT_Matrix4D v)
365  static void saveData(std::ostream &os, UT_StringHolder s)
366  { UT_StringWrap(s).saveBinary(os); }
367  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
368  { UT_StringHolder result;
369  UT_OStringStream ostr;
370  if (s) s->save(ostr);
371  result = ostr.str();
372  saveData(os, result);
373  }
374  static void saveData(std::ostream &os, PRM_DataItemHandle s)
375  { UT_StringHolder result;
376  UT_OStringStream ostr;
377  if (s)
378  {
379  ostr << s->getDataTypeToken();
380  ostr << ":";
381  s->saveBinary(ostr);
382  }
383  result = ostr.str();
384  saveData(os, result);
385  }
386 
387 
388  void save(std::ostream &os) const
389  {
390  int32 v = version();
391  UTwrite(os, &v);
392  saveData(os, myGroup);
393  saveData(os, myGrouptype);
394  saveData(os, myXformattrib);
395  saveData(os, myInvertXform);
396  saveData(os, myAttribs);
397  saveData(os, myUpdateaffectednmls);
398  saveData(os, myVlength);
399  saveData(os, myDeletexform);
400 
401  }
402 
403  bool load(UT_IStream &is)
404  {
405  int32 v;
406  is.bread(&v, 1);
407  if (version() != v)
408  {
409  // Fail incompatible versions
410  return false;
411  }
412  loadData(is, myGroup);
413  loadData(is, myGrouptype);
414  loadData(is, myXformattrib);
415  loadData(is, myInvertXform);
416  loadData(is, myAttribs);
417  loadData(is, myUpdateaffectednmls);
418  loadData(is, myVlength);
419  loadData(is, myDeletexform);
420 
421  return true;
422  }
423 
424  const UT_StringHolder & getGroup() const { return myGroup; }
425  void setGroup(const UT_StringHolder & val) { myGroup = val; }
427  {
428  SOP_Node *thissop = cookparms.getNode();
429  if (!thissop) return getGroup();
430  UT_StringHolder result;
431  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
432  return result;
433  }
434  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
435  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
437  {
438  SOP_Node *thissop = cookparms.getNode();
439  if (!thissop) return getGrouptype();
440  int64 result;
441  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
442  return Grouptype(result);
443  }
444  const UT_StringHolder & getXformattrib() const { return myXformattrib; }
445  void setXformattrib(const UT_StringHolder & val) { myXformattrib = val; }
447  {
448  SOP_Node *thissop = cookparms.getNode();
449  if (!thissop) return getXformattrib();
450  UT_StringHolder result;
451  OP_Utils::evalOpParm(result, thissop, "xformattrib", cookparms.getCookTime(), 0);
452  return result;
453  }
454  bool getInvertXform() const { return myInvertXform; }
455  void setInvertXform(bool val) { myInvertXform = val; }
456  bool opInvertXform(const SOP_NodeVerb::CookParms &cookparms) const
457  {
458  SOP_Node *thissop = cookparms.getNode();
459  if (!thissop) return getInvertXform();
460  bool result;
461  OP_Utils::evalOpParm(result, thissop, "invertxform", cookparms.getCookTime(), 0);
462  return result;
463  }
464  const UT_StringHolder & getAttribs() const { return myAttribs; }
465  void setAttribs(const UT_StringHolder & val) { myAttribs = val; }
467  {
468  SOP_Node *thissop = cookparms.getNode();
469  if (!thissop) return getAttribs();
470  UT_StringHolder result;
471  OP_Utils::evalOpParm(result, thissop, "attribs", cookparms.getCookTime(), 0);
472  return result;
473  }
474  bool getUpdateaffectednmls() const { return myUpdateaffectednmls; }
475  void setUpdateaffectednmls(bool val) { myUpdateaffectednmls = val; }
476  bool opUpdateaffectednmls(const SOP_NodeVerb::CookParms &cookparms) const
477  {
478  SOP_Node *thissop = cookparms.getNode();
479  if (!thissop) return getUpdateaffectednmls();
480  bool result;
481  OP_Utils::evalOpParm(result, thissop, "updateaffectednmls", cookparms.getCookTime(), 0);
482  return result;
483  }
484  bool getVlength() const { return myVlength; }
485  void setVlength(bool val) { myVlength = val; }
486  bool opVlength(const SOP_NodeVerb::CookParms &cookparms) const
487  {
488  SOP_Node *thissop = cookparms.getNode();
489  if (!thissop) return getVlength();
490  bool result;
491  OP_Utils::evalOpParm(result, thissop, "vlength", cookparms.getCookTime(), 0);
492  return result;
493  }
494  bool getDeletexform() const { return myDeletexform; }
495  void setDeletexform(bool val) { myDeletexform = val; }
496  bool opDeletexform(const SOP_NodeVerb::CookParms &cookparms) const
497  {
498  SOP_Node *thissop = cookparms.getNode();
499  if (!thissop) return getDeletexform();
500  bool result;
501  OP_Utils::evalOpParm(result, thissop, "deletexform", cookparms.getCookTime(), 0);
502  return result;
503  }
504 
505 private:
506  UT_StringHolder myGroup;
507  int64 myGrouptype;
508  UT_StringHolder myXformattrib;
509  bool myInvertXform;
510  UT_StringHolder myAttribs;
511  bool myUpdateaffectednmls;
512  bool myVlength;
513  bool myDeletexform;
514 
515 };
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:492
void getParmValue(exint idx, UT_Vector2D &value) const
T & z(void)
Definition: UT_Vector4.h:372
void setParmValue(exint idx, const UT_StringHolder &value)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
const UT_StringHolder & getAttribs() const
const UT_StringHolder & getXformattrib() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
void getParmValue(exint idx, UT_Matrix3D &value) const
fpreal getTime() const
Definition: OP_Context.h:34
const GLdouble * v
Definition: glcorearb.h:836
const UT_StringHolder & getGroup() const
static void saveData(std::ostream &os, UT_Matrix4D v)
void setParmValue(exint idx, const UT_Vector2D &value)
T & x(void)
Definition: UT_Vector2.h:284
bool opVlength(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const UT_Vector3D &value)
bool opUpdateaffectednmls(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, bool &v)
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, UT_Vector4D v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
virtual void loadFromOpSubclass(const LoadParms &loadparms)
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:581
void setParmValue(exint idx, const UT_SharedPtr< UT_Ramp > &value)
static void saveData(std::ostream &os, bool v)
bool opInvertXform(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setParmValue(exint idx, const UT_Matrix2D &value)
void doGetParmValue(exint idx, T &value) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
UT_StringHolder opAttribs(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:585
long long int64
Definition: SYS_Types.h:106
static void loadData(UT_IStream &is, fpreal64 &v)
void setParmValue(exint idx, const UT_Vector4D &value)
virtual void copyFrom(const SOP_NodeParms *src)
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
exint length() const
char * findChar(int c) const
Find first occurrance of character. Returns NULL upon failure.
Definition: UT_String.h:550
SYS_FORCE_INLINE const char * buffer() const
virtual ParmType getParmType(exint fieldnum) const
int64 exint
Definition: SYS_Types.h:115
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_Vector3D v)
const OP_Node * node() const
Definition: SOP_NodeVerb.h:104
double fpreal64
Definition: SYS_Types.h:191
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getParmValue(exint idx, UT_Vector4D &value) const
void getParmValue(exint idx, UT_SharedPtr< UT_Ramp > &value) const
GLboolean * data
Definition: glcorearb.h:130
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setParmValue(exint idx, const UT_Matrix4D &value)
int int32
Definition: SYS_Types.h:34
T & y(void)
Definition: UT_Vector4.h:370
void setParmValue(exint idx, const UT_Matrix3D &value)
bool opDeletexform(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(exint idx, const T &value)
void getParmValue(exint idx, UT_StringHolder &value) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
static void saveData(std::ostream &os, int64 v)
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:111
void getParmValue(exint idx, fpreal &value) const
static void saveData(std::ostream &os, UT_Matrix2D v)
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:583
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:269
void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, fpreal64 v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
GLuint GLfloat * val
Definition: glcorearb.h:1607
void setParmValue(exint idx, const fpreal &value)
#define SOP_API
Definition: SOP_API.h:10
static void saveData(std::ostream &os, UT_Vector2D v)
static void saveData(std::ostream &os, UT_StringHolder s)
const char * buffer() const
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:499
T & x(void)
Definition: UT_Vector4.h:368
void setGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Matrix3D v)
T & y(void)
Definition: UT_Vector2.h:286
virtual const char * getParmName(exint fieldnum) const
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
GLboolean r
Definition: glcorearb.h:1221
void save(std::ostream &os) const
void getParmValue(exint idx, exint &value) const
void setParmValue(exint idx, const exint &value)
void setParmValue(exint idx, const PRM_DataItemHandle &value)
T & w(void)
Definition: UT_Vector4.h:374
void getParmValue(exint idx, PRM_DataItemHandle &value) const
static void loadData(UT_IStream &is, int64 &v)
void getParmValue(exint idx, UT_Vector3D &value) const
void getParmValue(exint idx, UT_Matrix4D &value) const
UT_StringHolder opXformattrib(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_Matrix2D &value) const
const OP_Context & context() const
Definition: SOP_NodeVerb.h:109
bool operator==(const SOP_TransformByAttribParms &src) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
SYS_FORCE_INLINE bool isstring() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setAttribs(const UT_StringHolder &val)
void setXformattrib(const UT_StringHolder &val)
GLenum src
Definition: glcorearb.h:1792