HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_TransformAxis.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_TransformAxisEnums
22 {
23  enum class Grouptype
24  {
25  GUESS = 0,
26  BREAKPOINTS,
27  EDGES,
28  POINTS,
29  PRIMS
30  };
31  enum class Outputmerge
32  {
33  REPLACE = 0,
34  PRE,
35  POST
36  };
37 }
38 
39 
41 {
42 public:
43  static int version() { return 1; }
44 
46  {
47  myGroup = ""_sh;
48  myGrouptype = 0;
49  myOrig = UT_Vector3D(0,0,0);
50  myDir = UT_Vector3D(0,1,0);
51  myTrans = 0;
52  myRot = 0;
53  myScale = 1;
54  myUpdatenmls = false;
55  myUpdateaffectednmls = true;
56  myVlength = true;
57  myInvertxform = false;
58  myAddattrib = false;
59  myOutputattrib = "xform"_sh;
60  myOutputmerge = 2;
61 
62  }
63 
64  explicit SOP_TransformAxisParms(const SOP_TransformAxisParms &) = default;
65 
67 
69  {
70  if (myGroup != src.myGroup) return false;
71  if (myGrouptype != src.myGrouptype) return false;
72  if (myOrig != src.myOrig) return false;
73  if (myDir != src.myDir) return false;
74  if (myTrans != src.myTrans) return false;
75  if (myRot != src.myRot) return false;
76  if (myScale != src.myScale) return false;
77  if (myUpdatenmls != src.myUpdatenmls) return false;
78  if (myUpdateaffectednmls != src.myUpdateaffectednmls) return false;
79  if (myVlength != src.myVlength) return false;
80  if (myInvertxform != src.myInvertxform) return false;
81  if (myAddattrib != src.myAddattrib) return false;
82  if (myOutputattrib != src.myOutputattrib) return false;
83  if (myOutputmerge != src.myOutputmerge) return false;
84 
85  return true;
86  }
88  {
89  return !operator==(src);
90  }
93 
94 
95 
96  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
97  {
98  if (true)
99  OP_Utils::evalOpParm(myGroup, node, "group", time, 0);
100  else myGroup = ""_sh;
101  if (true)
102  OP_Utils::evalOpParm(myGrouptype, node, "grouptype", time, 0);
103  else myGrouptype = 0;
104  if (true)
105  OP_Utils::evalOpParm(myOrig, node, "orig", time, 0);
106  else myOrig = UT_Vector3D(0,0,0);
107  if (true)
108  OP_Utils::evalOpParm(myDir, node, "dir", time, 0);
109  else myDir = UT_Vector3D(0,1,0);
110  if (true)
111  OP_Utils::evalOpParm(myTrans, node, "trans", time, 0);
112  else myTrans = 0;
113  if (true)
114  OP_Utils::evalOpParm(myRot, node, "rot", time, 0);
115  else myRot = 0;
116  if (true)
117  OP_Utils::evalOpParm(myScale, node, "scale", time, 0);
118  else myScale = 1;
119  if (true)
120  OP_Utils::evalOpParm(myUpdatenmls, node, "updatenmls", time, 0);
121  else myUpdatenmls = false;
122  if (true && ( (!(((getUpdatenmls()==1)))) ) )
123  OP_Utils::evalOpParm(myUpdateaffectednmls, node, "updateaffectednmls", time, 0);
124  else myUpdateaffectednmls = true;
125  if (true && ( (!(((getUpdatenmls()==1)))) ) )
126  OP_Utils::evalOpParm(myVlength, node, "vlength", time, 0);
127  else myVlength = true;
128  if (true)
129  OP_Utils::evalOpParm(myInvertxform, node, "invertxform", time, 0);
130  else myInvertxform = false;
131  if (true)
132  OP_Utils::evalOpParm(myAddattrib, node, "addattrib", time, 0);
133  else myAddattrib = false;
134  if (true && ( (!(((getAddattrib()==0)))) ) )
135  OP_Utils::evalOpParm(myOutputattrib, node, "outputattrib", time, 0);
136  else myOutputattrib = "xform"_sh;
137  if (true && ( (!(((getAddattrib()==0)))) ) )
138  OP_Utils::evalOpParm(myOutputmerge, node, "outputmerge", time, 0);
139  else myOutputmerge = 2;
140 
141  }
142 
143 
144  virtual void loadFromOpSubclass(const LoadParms &loadparms)
145  {
146  buildFromOp(loadparms.node(), loadparms.context().getTime(), loadparms.depnode());
147  }
148 
149 
150  virtual void copyFrom(const SOP_NodeParms *src)
151  {
152  *this = *((const SOP_TransformAxisParms *)src);
153  }
154 
155  template <typename T>
156  void
157  doGetParmValue(exint idx, T &value) const
158  {
159  switch (idx)
160  {
161  case 0:
162  coerceValue(value, myGroup);
163  break;
164  case 1:
165  coerceValue(value, myGrouptype);
166  break;
167  case 2:
168  coerceValue(value, myOrig);
169  break;
170  case 3:
171  coerceValue(value, myDir);
172  break;
173  case 4:
174  coerceValue(value, myTrans);
175  break;
176  case 5:
177  coerceValue(value, myRot);
178  break;
179  case 6:
180  coerceValue(value, myScale);
181  break;
182  case 7:
183  coerceValue(value, myUpdatenmls);
184  break;
185  case 8:
186  coerceValue(value, myUpdateaffectednmls);
187  break;
188  case 9:
189  coerceValue(value, myVlength);
190  break;
191  case 10:
192  coerceValue(value, myInvertxform);
193  break;
194  case 11:
195  coerceValue(value, myAddattrib);
196  break;
197  case 12:
198  coerceValue(value, myOutputattrib);
199  break;
200  case 13:
201  coerceValue(value, myOutputmerge);
202  break;
203 
204  }
205  }
206 
207  void getParmValue(exint idx, exint &value) const
208  { doGetParmValue(idx, value); }
209  void getParmValue(exint idx, fpreal &value) const
210  { doGetParmValue(idx, value); }
212  { doGetParmValue(idx, value); }
214  { doGetParmValue(idx, value); }
216  { doGetParmValue(idx, value); }
218  { doGetParmValue(idx, value); }
220  { doGetParmValue(idx, value); }
222  { doGetParmValue(idx, value); }
224  { doGetParmValue(idx, value); }
226  { doGetParmValue(idx, value); }
228  { doGetParmValue(idx, value); }
229 
230  template <typename T>
231  void
232  doSetParmValue(exint idx, const T &value)
233  {
234  switch (idx)
235  {
236  case 0:
237  coerceValue(myGroup, value);
238  break;
239  case 1:
240  coerceValue(myGrouptype, value);
241  break;
242  case 2:
243  coerceValue(myOrig, value);
244  break;
245  case 3:
246  coerceValue(myDir, value);
247  break;
248  case 4:
249  coerceValue(myTrans, value);
250  break;
251  case 5:
252  coerceValue(myRot, value);
253  break;
254  case 6:
255  coerceValue(myScale, value);
256  break;
257  case 7:
258  coerceValue(myUpdatenmls, value);
259  break;
260  case 8:
261  coerceValue(myUpdateaffectednmls, value);
262  break;
263  case 9:
264  coerceValue(myVlength, value);
265  break;
266  case 10:
267  coerceValue(myInvertxform, value);
268  break;
269  case 11:
270  coerceValue(myAddattrib, value);
271  break;
272  case 12:
273  coerceValue(myOutputattrib, value);
274  break;
275  case 13:
276  coerceValue(myOutputmerge, value);
277  break;
278 
279  }
280  }
281 
282  void setParmValue(exint idx, const exint &value)
283  { doSetParmValue(idx, value); }
284  void setParmValue(exint idx, const fpreal &value)
285  { doSetParmValue(idx, value); }
286  void setParmValue(exint idx, const UT_Vector2D &value)
287  { doSetParmValue(idx, value); }
288  void setParmValue(exint idx, const UT_Vector3D &value)
289  { doSetParmValue(idx, value); }
290  void setParmValue(exint idx, const UT_Vector4D &value)
291  { doSetParmValue(idx, value); }
292  void setParmValue(exint idx, const UT_Matrix2D &value)
293  { doSetParmValue(idx, value); }
294  void setParmValue(exint idx, const UT_Matrix3D &value)
295  { doSetParmValue(idx, value); }
296  void setParmValue(exint idx, const UT_Matrix4D &value)
297  { doSetParmValue(idx, value); }
299  { doSetParmValue(idx, value); }
301  { doSetParmValue(idx, value); }
303  { doSetParmValue(idx, value); }
304 
305  virtual exint getNumParms() const
306  {
307  return 14;
308  }
309 
310  virtual const char *getParmName(exint fieldnum) const
311  {
312  switch (fieldnum)
313  {
314  case 0:
315  return "group";
316  case 1:
317  return "grouptype";
318  case 2:
319  return "orig";
320  case 3:
321  return "dir";
322  case 4:
323  return "trans";
324  case 5:
325  return "rot";
326  case 6:
327  return "scale";
328  case 7:
329  return "updatenmls";
330  case 8:
331  return "updateaffectednmls";
332  case 9:
333  return "vlength";
334  case 10:
335  return "invertxform";
336  case 11:
337  return "addattrib";
338  case 12:
339  return "outputattrib";
340  case 13:
341  return "outputmerge";
342 
343  }
344  return 0;
345  }
346 
347  virtual ParmType getParmType(exint fieldnum) const
348  {
349  switch (fieldnum)
350  {
351  case 0:
352  return PARM_STRING;
353  case 1:
354  return PARM_INTEGER;
355  case 2:
356  return PARM_VECTOR3;
357  case 3:
358  return PARM_VECTOR3;
359  case 4:
360  return PARM_FLOAT;
361  case 5:
362  return PARM_FLOAT;
363  case 6:
364  return PARM_FLOAT;
365  case 7:
366  return PARM_INTEGER;
367  case 8:
368  return PARM_INTEGER;
369  case 9:
370  return PARM_INTEGER;
371  case 10:
372  return PARM_INTEGER;
373  case 11:
374  return PARM_INTEGER;
375  case 12:
376  return PARM_STRING;
377  case 13:
378  return PARM_INTEGER;
379 
380  }
381  return PARM_UNSUPPORTED;
382  }
383 
384  // Boiler plate to load individual types.
385  static void loadData(UT_IStream &is, int64 &v)
386  { is.bread(&v, 1); }
387  static void loadData(UT_IStream &is, bool &v)
388  { int64 iv; is.bread(&iv, 1); v = iv; }
389  static void loadData(UT_IStream &is, fpreal64 &v)
390  { is.bread<fpreal64>(&v, 1); }
391  static void loadData(UT_IStream &is, UT_Vector2D &v)
392  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
393  static void loadData(UT_IStream &is, UT_Vector3D &v)
394  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
395  is.bread<fpreal64>(&v.z(), 1); }
396  static void loadData(UT_IStream &is, UT_Vector4D &v)
397  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
398  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
399  static void loadData(UT_IStream &is, UT_Matrix2D &v)
400  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
401  static void loadData(UT_IStream &is, UT_Matrix3D &v)
402  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
403  static void loadData(UT_IStream &is, UT_Matrix4D &v)
404  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
405  static void loadData(UT_IStream &is, UT_Vector2I &v)
406  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
407  static void loadData(UT_IStream &is, UT_Vector3I &v)
408  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
409  is.bread<int64>(&v.z(), 1); }
410  static void loadData(UT_IStream &is, UT_Vector4I &v)
411  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
412  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
414  { is.bread(v); }
416  { UT_StringHolder rampdata;
417  loadData(is, rampdata);
418  if (rampdata.isstring())
419  {
420  v.reset(new UT_Ramp());
421  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
422  v->load(istr);
423  }
424  else v.reset();
425  }
428  loadData(is, data);
429  if (data.isstring())
430  {
431  // Find the data type.
432  char *colon = UT_StringWrap(data).findChar(':');
433  if (colon)
434  {
435  int typelen = colon - data.buffer();
437  type.strncpy(data.buffer(), typelen);
438  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
439 
440  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
441  }
442  }
443  else v.reset();
444  }
445 
446  static void saveData(std::ostream &os, int64 v)
447  { UTwrite(os, &v); }
448  static void saveData(std::ostream &os, bool v)
449  { int64 iv = v; UTwrite(os, &iv); }
450  static void saveData(std::ostream &os, fpreal64 v)
451  { UTwrite<fpreal64>(os, &v); }
452  static void saveData(std::ostream &os, UT_Vector2D v)
453  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
454  static void saveData(std::ostream &os, UT_Vector3D v)
455  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
456  UTwrite<fpreal64>(os, &v.z()); }
457  static void saveData(std::ostream &os, UT_Vector4D v)
458  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
459  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
460  static void saveData(std::ostream &os, UT_Matrix2D v)
462  static void saveData(std::ostream &os, UT_Matrix3D v)
464  static void saveData(std::ostream &os, UT_Matrix4D v)
466  static void saveData(std::ostream &os, UT_StringHolder s)
467  { UT_StringWrap(s).saveBinary(os); }
468  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
469  { UT_StringHolder result;
470  UT_OStringStream ostr;
471  if (s) s->save(ostr);
472  result = ostr.str();
473  saveData(os, result);
474  }
475  static void saveData(std::ostream &os, PRM_DataItemHandle s)
476  { UT_StringHolder result;
477  UT_OStringStream ostr;
478  if (s)
479  {
480  ostr << s->getDataTypeToken();
481  ostr << ":";
482  s->saveBinary(ostr);
483  }
484  result = ostr.str();
485  saveData(os, result);
486  }
487 
488 
489  void save(std::ostream &os) const
490  {
491  int32 v = version();
492  UTwrite(os, &v);
493  saveData(os, myGroup);
494  saveData(os, myGrouptype);
495  saveData(os, myOrig);
496  saveData(os, myDir);
497  saveData(os, myTrans);
498  saveData(os, myRot);
499  saveData(os, myScale);
500  saveData(os, myUpdatenmls);
501  saveData(os, myUpdateaffectednmls);
502  saveData(os, myVlength);
503  saveData(os, myInvertxform);
504  saveData(os, myAddattrib);
505  saveData(os, myOutputattrib);
506  saveData(os, myOutputmerge);
507 
508  }
509 
510  bool load(UT_IStream &is)
511  {
512  int32 v;
513  is.bread(&v, 1);
514  if (version() != v)
515  {
516  // Fail incompatible versions
517  return false;
518  }
519  loadData(is, myGroup);
520  loadData(is, myGrouptype);
521  loadData(is, myOrig);
522  loadData(is, myDir);
523  loadData(is, myTrans);
524  loadData(is, myRot);
525  loadData(is, myScale);
526  loadData(is, myUpdatenmls);
527  loadData(is, myUpdateaffectednmls);
528  loadData(is, myVlength);
529  loadData(is, myInvertxform);
530  loadData(is, myAddattrib);
531  loadData(is, myOutputattrib);
532  loadData(is, myOutputmerge);
533 
534  return true;
535  }
536 
537  const UT_StringHolder & getGroup() const { return myGroup; }
538  void setGroup(const UT_StringHolder & val) { myGroup = val; }
540  {
541  SOP_Node *thissop = cookparms.getNode();
542  if (!thissop) return getGroup();
543  UT_StringHolder result;
544  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
545  return result;
546  }
547  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
548  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
550  {
551  SOP_Node *thissop = cookparms.getNode();
552  if (!thissop) return getGrouptype();
553  int64 result;
554  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
555  return Grouptype(result);
556  }
557  UT_Vector3D getOrig() const { return myOrig; }
558  void setOrig(UT_Vector3D val) { myOrig = val; }
560  {
561  SOP_Node *thissop = cookparms.getNode();
562  if (!thissop) return getOrig();
563  UT_Vector3D result;
564  OP_Utils::evalOpParm(result, thissop, "orig", cookparms.getCookTime(), 0);
565  return result;
566  }
567  UT_Vector3D getDir() const { return myDir; }
568  void setDir(UT_Vector3D val) { myDir = val; }
569  UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
570  {
571  SOP_Node *thissop = cookparms.getNode();
572  if (!thissop) return getDir();
573  UT_Vector3D result;
574  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
575  return result;
576  }
577  fpreal64 getTrans() const { return myTrans; }
578  void setTrans(fpreal64 val) { myTrans = val; }
579  fpreal64 opTrans(const SOP_NodeVerb::CookParms &cookparms) const
580  {
581  SOP_Node *thissop = cookparms.getNode();
582  if (!thissop) return getTrans();
583  fpreal64 result;
584  OP_Utils::evalOpParm(result, thissop, "trans", cookparms.getCookTime(), 0);
585  return result;
586  }
587  fpreal64 getRot() const { return myRot; }
588  void setRot(fpreal64 val) { myRot = val; }
589  fpreal64 opRot(const SOP_NodeVerb::CookParms &cookparms) const
590  {
591  SOP_Node *thissop = cookparms.getNode();
592  if (!thissop) return getRot();
593  fpreal64 result;
594  OP_Utils::evalOpParm(result, thissop, "rot", cookparms.getCookTime(), 0);
595  return result;
596  }
597  fpreal64 getScale() const { return myScale; }
598  void setScale(fpreal64 val) { myScale = val; }
599  fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
600  {
601  SOP_Node *thissop = cookparms.getNode();
602  if (!thissop) return getScale();
603  fpreal64 result;
604  OP_Utils::evalOpParm(result, thissop, "scale", cookparms.getCookTime(), 0);
605  return result;
606  }
607  bool getUpdatenmls() const { return myUpdatenmls; }
608  void setUpdatenmls(bool val) { myUpdatenmls = val; }
609  bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
610  {
611  SOP_Node *thissop = cookparms.getNode();
612  if (!thissop) return getUpdatenmls();
613  bool result;
614  OP_Utils::evalOpParm(result, thissop, "updatenmls", cookparms.getCookTime(), 0);
615  return result;
616  }
617  bool getUpdateaffectednmls() const { return myUpdateaffectednmls; }
618  void setUpdateaffectednmls(bool val) { myUpdateaffectednmls = val; }
619  bool opUpdateaffectednmls(const SOP_NodeVerb::CookParms &cookparms) const
620  {
621  SOP_Node *thissop = cookparms.getNode();
622  if (!thissop) return getUpdateaffectednmls();
623  bool result;
624  OP_Utils::evalOpParm(result, thissop, "updateaffectednmls", cookparms.getCookTime(), 0);
625  return result;
626  }
627  bool getVlength() const { return myVlength; }
628  void setVlength(bool val) { myVlength = val; }
629  bool opVlength(const SOP_NodeVerb::CookParms &cookparms) const
630  {
631  SOP_Node *thissop = cookparms.getNode();
632  if (!thissop) return getVlength();
633  bool result;
634  OP_Utils::evalOpParm(result, thissop, "vlength", cookparms.getCookTime(), 0);
635  return result;
636  }
637  bool getInvertxform() const { return myInvertxform; }
638  void setInvertxform(bool val) { myInvertxform = val; }
639  bool opInvertxform(const SOP_NodeVerb::CookParms &cookparms) const
640  {
641  SOP_Node *thissop = cookparms.getNode();
642  if (!thissop) return getInvertxform();
643  bool result;
644  OP_Utils::evalOpParm(result, thissop, "invertxform", cookparms.getCookTime(), 0);
645  return result;
646  }
647  bool getAddattrib() const { return myAddattrib; }
648  void setAddattrib(bool val) { myAddattrib = val; }
649  bool opAddattrib(const SOP_NodeVerb::CookParms &cookparms) const
650  {
651  SOP_Node *thissop = cookparms.getNode();
652  if (!thissop) return getAddattrib();
653  bool result;
654  OP_Utils::evalOpParm(result, thissop, "addattrib", cookparms.getCookTime(), 0);
655  return result;
656  }
657  const UT_StringHolder & getOutputattrib() const { return myOutputattrib; }
658  void setOutputattrib(const UT_StringHolder & val) { myOutputattrib = val; }
660  {
661  SOP_Node *thissop = cookparms.getNode();
662  if (!thissop) return getOutputattrib();
663  UT_StringHolder result;
664  OP_Utils::evalOpParm(result, thissop, "outputattrib", cookparms.getCookTime(), 0);
665  return result;
666  }
667  Outputmerge getOutputmerge() const { return Outputmerge(myOutputmerge); }
668  void setOutputmerge(Outputmerge val) { myOutputmerge = int64(val); }
670  {
671  SOP_Node *thissop = cookparms.getNode();
672  if (!thissop) return getOutputmerge();
673  int64 result;
674  OP_Utils::evalOpParm(result, thissop, "outputmerge", cookparms.getCookTime(), 0);
675  return Outputmerge(result);
676  }
677 
678 private:
679  UT_StringHolder myGroup;
680  int64 myGrouptype;
681  UT_Vector3D myOrig;
682  UT_Vector3D myDir;
683  fpreal64 myTrans;
684  fpreal64 myRot;
685  fpreal64 myScale;
686  bool myUpdatenmls;
687  bool myUpdateaffectednmls;
688  bool myVlength;
689  bool myInvertxform;
690  bool myAddattrib;
691  UT_StringHolder myOutputattrib;
692  int64 myOutputmerge;
693 
694 };
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, UT_Vector3D v)
bool opUpdateaffectednmls(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
virtual ParmType getParmType(exint fieldnum) const
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:494
static void saveData(std::ostream &os, PRM_DataItemHandle s)
T & z(void)
Definition: UT_Vector4.h:379
void setGroup(const UT_StringHolder &val)
void doGetParmValue(exint idx, T &value) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
fpreal getTime() const
Definition: OP_Context.h:60
const GLdouble * v
Definition: glcorearb.h:836
static void saveData(std::ostream &os, fpreal64 v)
static void saveData(std::ostream &os, UT_Vector2D v)
void setGrouptype(Grouptype val)
static void loadData(UT_IStream &is, bool &v)
bool opVlength(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
UT_Vector3D getOrig() const
void getParmValue(exint idx, UT_Vector2D &value) const
SYS_FORCE_INLINE const char * buffer() const
T & x(void)
Definition: UT_Vector2.h:285
UT_Vector3D opOrig(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setOutputattrib(const UT_StringHolder &val)
void setParmValue(exint idx, const UT_StringHolder &value)
An output stream object that owns its own string buffer storage.
bool opInvertxform(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
bool operator!=(const SOP_TransformAxisParms &src) const
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:498
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void saveData(std::ostream &os, UT_Vector4D v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
Outputmerge opOutputmerge(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_StringHolder &value) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:502
static void loadData(UT_IStream &is, int64 &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
long long int64
Definition: SYS_Types.h:107
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool operator==(const SOP_TransformAxisParms &src) const
void getParmValue(exint idx, UT_Matrix2D &value) const
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
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
int64 exint
Definition: SYS_Types.h:116
void setOrig(UT_Vector3D val)
UT_StringHolder opOutputattrib(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Node * node() const
Definition: SOP_NodeVerb.h:104
double fpreal64
Definition: SYS_Types.h:192
static void saveData(std::ostream &os, UT_Matrix3D v)
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_SharedPtr< UT_Ramp > &value) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
const UT_StringHolder & getOutputattrib() const
void doSetParmValue(exint idx, const T &value)
virtual exint getNumParms() const
UT_Vector3T< fpreal64 > UT_Vector3D
GLboolean * data
Definition: glcorearb.h:130
bool opAddattrib(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:35
T & y(void)
Definition: UT_Vector4.h:377
void setParmValue(exint idx, const UT_Vector4D &value)
Outputmerge getOutputmerge() const
static void loadData(UT_IStream &is, fpreal64 &v)
void setParmValue(exint idx, const UT_Matrix3D &value)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setParmValue(exint idx, const exint &value)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:111
void getParmValue(exint idx, PRM_DataItemHandle &value) const
static void saveData(std::ostream &os, UT_Matrix4D v)
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:500
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:270
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void setOutputmerge(Outputmerge val)
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
void getParmValue(exint idx, UT_Matrix3D &value) const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
void getParmValue(exint idx, UT_Vector4D &value) const
virtual void copyFrom(const SOP_NodeParms *src)
void setParmValue(exint idx, const UT_Matrix2D &value)
GLuint GLfloat * val
Definition: glcorearb.h:1607
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
Definition: Mat.h:665
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
#define SOP_API
Definition: SOP_API.h:10
virtual void loadFromOpSubclass(const LoadParms &loadparms)
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:501
void setParmValue(exint idx, const UT_Vector3D &value)
T & x(void)
Definition: UT_Vector4.h:375
void getParmValue(exint idx, UT_Vector3D &value) const
T & y(void)
Definition: UT_Vector2.h:287
fpreal64 opRot(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, fpreal &value) const
GLboolean r
Definition: glcorearb.h:1221
void setParmValue(exint idx, const UT_Matrix4D &value)
virtual const char * getParmName(exint fieldnum) const
void setParmValue(exint idx, const fpreal &value)
T & w(void)
Definition: UT_Vector4.h:381
void setParmValue(exint idx, const UT_SharedPtr< UT_Ramp > &value)
void setParmValue(exint idx, const UT_Vector2D &value)
void setDir(UT_Vector3D val)
fpreal64 opTrans(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_Matrix4D &value) const
const OP_Context & context() const
Definition: SOP_NodeVerb.h:109
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:88
static void loadData(UT_IStream &is, UT_Matrix3D &v)
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void getParmValue(exint idx, exint &value) const
GLenum src
Definition: glcorearb.h:1792
void setParmValue(exint idx, const PRM_DataItemHandle &value)
static void saveData(std::ostream &os, UT_StringHolder s)