HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_BlendShapes.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 
23 {
24 public:
25  static int version() { return 1; }
26  struct Nblends
27  {
29 
30 
32  {
33  blend = 0;
34 
35  }
36 
37  bool operator==(const Nblends &src) const
38  {
39  if (blend != src.blend) return false;
40 
41  return true;
42  }
43  bool operator!=(const Nblends &src) const
44  {
45  return !operator==(src);
46  }
47 
48  };
49 
51  {
53 
54  buf.strcat("[ ");
55  for (int i = 0; i < list.entries(); i++)
56  {
57  if (i)
58  buf.strcat(", ");
59  buf.strcat("( ");
60  buf.append("");
61  buf.appendSprintf("%f", (list(i).blend));
62 
63  buf.strcat(" )");
64  }
65  buf.strcat(" ]");
66 
67  UT_StringHolder result = buf;
68  return result;
69  }
70 
72  {
73  myGroup = ""_sh;
74  mySelectionIdx = 0;
75  myDiff = false;
76  myDoPos = false;
77  myDoClr = false;
78  myDoNml = false;
79  myDoUVW = false;
80  myDoVoxel = false;
81  myDoSlerp = false;
82  myPtIDAttr = ""_sh;
83  myPrimIDAttr = ""_sh;
84  myMorph = false;
85 
86  }
87 
88  explicit SOP_BlendShapesParms(const SOP_BlendShapesParms &) = default;
89 
90  virtual ~SOP_BlendShapesParms() {}
91 
92  bool operator==(const SOP_BlendShapesParms &src) const
93  {
94  if (myGroup != src.myGroup) return false;
95  if (mySelectionIdx != src.mySelectionIdx) return false;
96  if (myDiff != src.myDiff) return false;
97  if (myDoPos != src.myDoPos) return false;
98  if (myDoClr != src.myDoClr) return false;
99  if (myDoNml != src.myDoNml) return false;
100  if (myDoUVW != src.myDoUVW) return false;
101  if (myDoVoxel != src.myDoVoxel) return false;
102  if (myDoSlerp != src.myDoSlerp) return false;
103  if (myPtIDAttr != src.myPtIDAttr) return false;
104  if (myPrimIDAttr != src.myPrimIDAttr) return false;
105  if (myMorph != src.myMorph) return false;
106  if (myNblends != src.myNblends) return false;
107 
108  return true;
109  }
111  {
112  return !operator==(src);
113  }
114 
115 
116 
117  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
118  {
119  if (true)
120  OP_Utils::evalOpParm(myGroup, node, "group", time, 0);
121  else myGroup = ""_sh;
122  if (true)
123  OP_Utils::evalOpParm(mySelectionIdx, node, "selectionidx", time, 0);
124  else mySelectionIdx = 0;
125  if (true)
126  OP_Utils::evalOpParm(myDiff, node, "diff", time, 0);
127  else myDiff = false;
128  if (true)
129  OP_Utils::evalOpParm(myDoPos, node, "dopos", time, 0);
130  else myDoPos = false;
131  if (true)
132  OP_Utils::evalOpParm(myDoClr, node, "doclr", time, 0);
133  else myDoClr = false;
134  if (true)
135  OP_Utils::evalOpParm(myDoNml, node, "donml", time, 0);
136  else myDoNml = false;
137  if (true)
138  OP_Utils::evalOpParm(myDoUVW, node, "douvw", time, 0);
139  else myDoUVW = false;
140  if (true)
141  OP_Utils::evalOpParm(myDoVoxel, node, "dovoxel", time, 0);
142  else myDoVoxel = false;
143  if (true)
144  OP_Utils::evalOpParm(myDoSlerp, node, "doslerp", time, 0);
145  else myDoSlerp = false;
146  if (true)
147  OP_Utils::evalOpParm(myPtIDAttr, node, "ptidattr", time, 0);
148  else myPtIDAttr = ""_sh;
149  if (true)
150  OP_Utils::evalOpParm(myPrimIDAttr, node, "primidattr", time, 0);
151  else myPrimIDAttr = ""_sh;
152  if (true)
153  OP_Utils::evalOpParm(myMorph, node, "morph", time, 0);
154  else myMorph = false;
155  if (true)
156  {
157  int64 length;
158  OP_Utils::evalOpParm(length, node, "nblends", time, 0);
159  myNblends.entries(length);
160  for (exint i = 0; i < length; i++)
161  {
162  int parmidx = i+0;
163  auto && _curentry = myNblends(i);
164  (void) _curentry;
165  if (true)
166  OP_Utils::evalOpParmInst(myNblends(i).blend, node, "blend#", &parmidx, time, 0);
167  else myNblends(i).blend = 0;
168 
169  }
170  }
171  else
172  myNblends.clear();
173 
174  }
175 
176 
177  virtual void loadFromOpSubclass(const LoadParms &loadparms)
178  {
179  buildFromOp(loadparms.node(), loadparms.context().getTime(), loadparms.depnode());
180  }
181 
182 
183  virtual void copyFrom(const SOP_NodeParms *src)
184  {
185  *this = *((const SOP_BlendShapesParms *)src);
186  }
187 
188  template <typename T>
189  void
190  doGetParmValue(exint idx, T &value) const
191  {
192  switch (idx)
193  {
194  case 0:
195  coerceValue(value, myGroup);
196  break;
197  case 1:
198  coerceValue(value, mySelectionIdx);
199  break;
200  case 2:
201  coerceValue(value, myDiff);
202  break;
203  case 3:
204  coerceValue(value, myDoPos);
205  break;
206  case 4:
207  coerceValue(value, myDoClr);
208  break;
209  case 5:
210  coerceValue(value, myDoNml);
211  break;
212  case 6:
213  coerceValue(value, myDoUVW);
214  break;
215  case 7:
216  coerceValue(value, myDoVoxel);
217  break;
218  case 8:
219  coerceValue(value, myDoSlerp);
220  break;
221  case 9:
222  coerceValue(value, myPtIDAttr);
223  break;
224  case 10:
225  coerceValue(value, myPrimIDAttr);
226  break;
227  case 11:
228  coerceValue(value, myMorph);
229  break;
230 
231  }
232  }
233 
234  void getParmValue(exint idx, exint &value) const
235  { doGetParmValue(idx, value); }
236  void getParmValue(exint idx, fpreal &value) const
237  { doGetParmValue(idx, value); }
239  { doGetParmValue(idx, value); }
241  { doGetParmValue(idx, value); }
243  { doGetParmValue(idx, value); }
245  { doGetParmValue(idx, value); }
247  { doGetParmValue(idx, value); }
249  { doGetParmValue(idx, value); }
251  { doGetParmValue(idx, value); }
253  { doGetParmValue(idx, value); }
255  { doGetParmValue(idx, value); }
256 
257  template <typename T>
258  void
259  doSetParmValue(exint idx, const T &value)
260  {
261  switch (idx)
262  {
263  case 0:
264  coerceValue(myGroup, value);
265  break;
266  case 1:
267  coerceValue(mySelectionIdx, value);
268  break;
269  case 2:
270  coerceValue(myDiff, value);
271  break;
272  case 3:
273  coerceValue(myDoPos, value);
274  break;
275  case 4:
276  coerceValue(myDoClr, value);
277  break;
278  case 5:
279  coerceValue(myDoNml, value);
280  break;
281  case 6:
282  coerceValue(myDoUVW, value);
283  break;
284  case 7:
285  coerceValue(myDoVoxel, value);
286  break;
287  case 8:
288  coerceValue(myDoSlerp, value);
289  break;
290  case 9:
291  coerceValue(myPtIDAttr, value);
292  break;
293  case 10:
294  coerceValue(myPrimIDAttr, value);
295  break;
296  case 11:
297  coerceValue(myMorph, value);
298  break;
299 
300  }
301  }
302 
303  void setParmValue(exint idx, const exint &value)
304  { doSetParmValue(idx, value); }
305  void setParmValue(exint idx, const fpreal &value)
306  { doSetParmValue(idx, value); }
307  void setParmValue(exint idx, const UT_Vector2D &value)
308  { doSetParmValue(idx, value); }
309  void setParmValue(exint idx, const UT_Vector3D &value)
310  { doSetParmValue(idx, value); }
311  void setParmValue(exint idx, const UT_Vector4D &value)
312  { doSetParmValue(idx, value); }
313  void setParmValue(exint idx, const UT_Matrix2D &value)
314  { doSetParmValue(idx, value); }
315  void setParmValue(exint idx, const UT_Matrix3D &value)
316  { doSetParmValue(idx, value); }
317  void setParmValue(exint idx, const UT_Matrix4D &value)
318  { doSetParmValue(idx, value); }
320  { doSetParmValue(idx, value); }
322  { doSetParmValue(idx, value); }
324  { doSetParmValue(idx, value); }
325 
326  virtual exint getNumParms() const
327  {
328  return 13;
329  }
330 
331  virtual const char *getParmName(exint fieldnum) const
332  {
333  switch (fieldnum)
334  {
335  case 0:
336  return "group";
337  case 1:
338  return "selectionidx";
339  case 2:
340  return "diff";
341  case 3:
342  return "dopos";
343  case 4:
344  return "doclr";
345  case 5:
346  return "donml";
347  case 6:
348  return "douvw";
349  case 7:
350  return "dovoxel";
351  case 8:
352  return "doslerp";
353  case 9:
354  return "ptidattr";
355  case 10:
356  return "primidattr";
357  case 11:
358  return "morph";
359  case 12:
360  return "nblends";
361 
362  }
363  return 0;
364  }
365 
366  virtual ParmType getParmType(exint fieldnum) const
367  {
368  switch (fieldnum)
369  {
370  case 0:
371  return PARM_STRING;
372  case 1:
373  return PARM_INTEGER;
374  case 2:
375  return PARM_INTEGER;
376  case 3:
377  return PARM_INTEGER;
378  case 4:
379  return PARM_INTEGER;
380  case 5:
381  return PARM_INTEGER;
382  case 6:
383  return PARM_INTEGER;
384  case 7:
385  return PARM_INTEGER;
386  case 8:
387  return PARM_INTEGER;
388  case 9:
389  return PARM_STRING;
390  case 10:
391  return PARM_STRING;
392  case 11:
393  return PARM_INTEGER;
394 
395  }
396  return PARM_UNSUPPORTED;
397  }
398 
399  // Boiler plate to load individual types.
400  static void loadData(UT_IStream &is, int64 &v)
401  { is.bread(&v, 1); }
402  static void loadData(UT_IStream &is, bool &v)
403  { int64 iv; is.bread(&iv, 1); v = iv; }
404  static void loadData(UT_IStream &is, fpreal64 &v)
405  { is.bread<fpreal64>(&v, 1); }
406  static void loadData(UT_IStream &is, UT_Vector2D &v)
407  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
408  static void loadData(UT_IStream &is, UT_Vector3D &v)
409  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
410  is.bread<fpreal64>(&v.z(), 1); }
411  static void loadData(UT_IStream &is, UT_Vector4D &v)
412  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
413  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
414  static void loadData(UT_IStream &is, UT_Matrix2D &v)
415  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
416  static void loadData(UT_IStream &is, UT_Matrix3D &v)
417  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
418  static void loadData(UT_IStream &is, UT_Matrix4D &v)
419  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
420  static void loadData(UT_IStream &is, UT_Vector2I &v)
421  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
422  static void loadData(UT_IStream &is, UT_Vector3I &v)
423  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
424  is.bread<int64>(&v.z(), 1); }
425  static void loadData(UT_IStream &is, UT_Vector4I &v)
426  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
427  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
429  { is.bread(v); }
431  { UT_StringHolder rampdata;
432  loadData(is, rampdata);
433  if (rampdata.isstring())
434  {
435  v.reset(new UT_Ramp());
436  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
437  v->load(istr);
438  }
439  else v.reset();
440  }
443  loadData(is, data);
444  if (data.isstring())
445  {
446  // Find the data type.
447  char *colon = UT_StringWrap(data).findChar(':');
448  if (colon)
449  {
450  int typelen = colon - data.buffer();
452  type.strncpy(data.buffer(), typelen);
453  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
454 
455  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
456  }
457  }
458  else v.reset();
459  }
460 
461  static void saveData(std::ostream &os, int64 v)
462  { UTwrite(os, &v); }
463  static void saveData(std::ostream &os, bool v)
464  { int64 iv = v; UTwrite(os, &iv); }
465  static void saveData(std::ostream &os, fpreal64 v)
466  { UTwrite<fpreal64>(os, &v); }
467  static void saveData(std::ostream &os, UT_Vector2D v)
468  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
469  static void saveData(std::ostream &os, UT_Vector3D v)
470  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
471  UTwrite<fpreal64>(os, &v.z()); }
472  static void saveData(std::ostream &os, UT_Vector4D v)
473  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
474  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
475  static void saveData(std::ostream &os, UT_Matrix2D v)
477  static void saveData(std::ostream &os, UT_Matrix3D v)
479  static void saveData(std::ostream &os, UT_Matrix4D v)
481  static void saveData(std::ostream &os, UT_StringHolder s)
482  { UT_StringWrap(s).saveBinary(os); }
483  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
484  { UT_StringHolder result;
485  UT_OStringStream ostr;
486  if (s) s->save(ostr);
487  result = ostr.str();
488  saveData(os, result);
489  }
490  static void saveData(std::ostream &os, PRM_DataItemHandle s)
491  { UT_StringHolder result;
492  UT_OStringStream ostr;
493  if (s)
494  {
495  ostr << s->getDataTypeToken();
496  ostr << ":";
497  s->saveBinary(ostr);
498  }
499  result = ostr.str();
500  saveData(os, result);
501  }
502 
503 
504  void save(std::ostream &os) const
505  {
506  int32 v = version();
507  UTwrite(os, &v);
508  saveData(os, myGroup);
509  saveData(os, mySelectionIdx);
510  saveData(os, myDiff);
511  saveData(os, myDoPos);
512  saveData(os, myDoClr);
513  saveData(os, myDoNml);
514  saveData(os, myDoUVW);
515  saveData(os, myDoVoxel);
516  saveData(os, myDoSlerp);
517  saveData(os, myPtIDAttr);
518  saveData(os, myPrimIDAttr);
519  saveData(os, myMorph);
520  {
521  int64 length = myNblends.entries();
522  UTwrite(os, &length);
523  for (exint i = 0; i < length; i++)
524  {
525  saveData(os, myNblends(i).blend);
526 
527  }
528  }
529 
530  }
531 
532  bool load(UT_IStream &is)
533  {
534  int32 v;
535  is.bread(&v, 1);
536  if (version() != v)
537  {
538  // Fail incompatible versions
539  return false;
540  }
541  loadData(is, myGroup);
542  loadData(is, mySelectionIdx);
543  loadData(is, myDiff);
544  loadData(is, myDoPos);
545  loadData(is, myDoClr);
546  loadData(is, myDoNml);
547  loadData(is, myDoUVW);
548  loadData(is, myDoVoxel);
549  loadData(is, myDoSlerp);
550  loadData(is, myPtIDAttr);
551  loadData(is, myPrimIDAttr);
552  loadData(is, myMorph);
553  {
554  int64 length;
555  is.read(&length, 1);
556  myNblends.entries(length);
557  for (exint i = 0; i < length; i++)
558  {
559  loadData(is, myNblends(i).blend);
560 
561  }
562  }
563 
564  return true;
565  }
566 
567  const UT_StringHolder & getGroup() const { return myGroup; }
568  void setGroup(const UT_StringHolder & val) { myGroup = val; }
570  {
571  SOP_Node *thissop = cookparms.getNode();
572  if (!thissop) return getGroup();
573  UT_StringHolder result;
574  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
575  return result;
576  }
577  int64 getSelectionIdx() const { return mySelectionIdx; }
578  void setSelectionIdx(int64 val) { mySelectionIdx = val; }
580  {
581  SOP_Node *thissop = cookparms.getNode();
582  if (!thissop) return getSelectionIdx();
583  int64 result;
584  OP_Utils::evalOpParm(result, thissop, "selectionidx", cookparms.getCookTime(), 0);
585  return result;
586  }
587  bool getDiff() const { return myDiff; }
588  void setDiff(bool val) { myDiff = val; }
589  bool opDiff(const SOP_NodeVerb::CookParms &cookparms) const
590  {
591  SOP_Node *thissop = cookparms.getNode();
592  if (!thissop) return getDiff();
593  bool result;
594  OP_Utils::evalOpParm(result, thissop, "diff", cookparms.getCookTime(), 0);
595  return result;
596  }
597  bool getDoPos() const { return myDoPos; }
598  void setDoPos(bool val) { myDoPos = val; }
599  bool opDoPos(const SOP_NodeVerb::CookParms &cookparms) const
600  {
601  SOP_Node *thissop = cookparms.getNode();
602  if (!thissop) return getDoPos();
603  bool result;
604  OP_Utils::evalOpParm(result, thissop, "dopos", cookparms.getCookTime(), 0);
605  return result;
606  }
607  bool getDoClr() const { return myDoClr; }
608  void setDoClr(bool val) { myDoClr = val; }
609  bool opDoClr(const SOP_NodeVerb::CookParms &cookparms) const
610  {
611  SOP_Node *thissop = cookparms.getNode();
612  if (!thissop) return getDoClr();
613  bool result;
614  OP_Utils::evalOpParm(result, thissop, "doclr", cookparms.getCookTime(), 0);
615  return result;
616  }
617  bool getDoNml() const { return myDoNml; }
618  void setDoNml(bool val) { myDoNml = val; }
619  bool opDoNml(const SOP_NodeVerb::CookParms &cookparms) const
620  {
621  SOP_Node *thissop = cookparms.getNode();
622  if (!thissop) return getDoNml();
623  bool result;
624  OP_Utils::evalOpParm(result, thissop, "donml", cookparms.getCookTime(), 0);
625  return result;
626  }
627  bool getDoUVW() const { return myDoUVW; }
628  void setDoUVW(bool val) { myDoUVW = val; }
629  bool opDoUVW(const SOP_NodeVerb::CookParms &cookparms) const
630  {
631  SOP_Node *thissop = cookparms.getNode();
632  if (!thissop) return getDoUVW();
633  bool result;
634  OP_Utils::evalOpParm(result, thissop, "douvw", cookparms.getCookTime(), 0);
635  return result;
636  }
637  bool getDoVoxel() const { return myDoVoxel; }
638  void setDoVoxel(bool val) { myDoVoxel = val; }
639  bool opDoVoxel(const SOP_NodeVerb::CookParms &cookparms) const
640  {
641  SOP_Node *thissop = cookparms.getNode();
642  if (!thissop) return getDoVoxel();
643  bool result;
644  OP_Utils::evalOpParm(result, thissop, "dovoxel", cookparms.getCookTime(), 0);
645  return result;
646  }
647  bool getDoSlerp() const { return myDoSlerp; }
648  void setDoSlerp(bool val) { myDoSlerp = val; }
649  bool opDoSlerp(const SOP_NodeVerb::CookParms &cookparms) const
650  {
651  SOP_Node *thissop = cookparms.getNode();
652  if (!thissop) return getDoSlerp();
653  bool result;
654  OP_Utils::evalOpParm(result, thissop, "doslerp", cookparms.getCookTime(), 0);
655  return result;
656  }
657  const UT_StringHolder & getPtIDAttr() const { return myPtIDAttr; }
658  void setPtIDAttr(const UT_StringHolder & val) { myPtIDAttr = val; }
660  {
661  SOP_Node *thissop = cookparms.getNode();
662  if (!thissop) return getPtIDAttr();
663  UT_StringHolder result;
664  OP_Utils::evalOpParm(result, thissop, "ptidattr", cookparms.getCookTime(), 0);
665  return result;
666  }
667  const UT_StringHolder & getPrimIDAttr() const { return myPrimIDAttr; }
668  void setPrimIDAttr(const UT_StringHolder & val) { myPrimIDAttr = val; }
670  {
671  SOP_Node *thissop = cookparms.getNode();
672  if (!thissop) return getPrimIDAttr();
673  UT_StringHolder result;
674  OP_Utils::evalOpParm(result, thissop, "primidattr", cookparms.getCookTime(), 0);
675  return result;
676  }
677  bool getMorph() const { return myMorph; }
678  void setMorph(bool val) { myMorph = val; }
679  bool opMorph(const SOP_NodeVerb::CookParms &cookparms) const
680  {
681  SOP_Node *thissop = cookparms.getNode();
682  if (!thissop) return getMorph();
683  bool result;
684  OP_Utils::evalOpParm(result, thissop, "morph", cookparms.getCookTime(), 0);
685  return result;
686  }
687  const UT_Array<Nblends> &getNblends() const { return myNblends; }
688  void setNblends(const UT_Array<Nblends> &val) { myNblends = val; }
689  exint opNblends(const SOP_NodeVerb::CookParms &cookparms) const
690  {
691  SOP_Node *thissop = cookparms.getNode();
692  if (!thissop) return getNblends().entries();
693  exint result;
694  OP_Utils::evalOpParm(result, thissop, "nblends", cookparms.getCookTime(), 0);
695  return result;
696  }
698  {
699  SOP_Node *thissop = cookparms.getNode();
700  if (!thissop) return (myNblends(_idx).blend);
701  int _parmidx = _idx + 0;
702  fpreal64 result;
703  OP_Utils::evalOpParmInst(result, thissop, "blend#", &_parmidx, cookparms.getCookTime(), 0);
704  return (result);
705  }
706 
707 
708 private:
709  UT_StringHolder myGroup;
710  int64 mySelectionIdx;
711  bool myDiff;
712  bool myDoPos;
713  bool myDoClr;
714  bool myDoNml;
715  bool myDoUVW;
716  bool myDoVoxel;
717  bool myDoSlerp;
718  UT_StringHolder myPtIDAttr;
719  UT_StringHolder myPrimIDAttr;
720  bool myMorph;
721  UT_Array<Nblends> myNblends;
722 
723 };
void doSetParmValue(exint idx, const T &value)
void setGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setParmValue(exint idx, const UT_Vector2D &value)
void setSelectionIdx(int64 val)
static void loadData(UT_IStream &is, bool &v)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:494
T & z(void)
Definition: UT_Vector4.h:379
void setNblends(const UT_Array< Nblends > &val)
void setParmValue(exint idx, const UT_SharedPtr< UT_Ramp > &value)
bool load(UT_IStream &is)
void setParmValue(exint idx, const UT_StringHolder &value)
void doGetParmValue(exint idx, T &value) const
exint opNblends(const SOP_NodeVerb::CookParms &cookparms) 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 loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, int64 v)
UT_StringHolder createString(const UT_Array< Nblends > &list) const
void getParmValue(exint idx, UT_Matrix3D &value) const
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
void getParmValue(exint idx, UT_StringHolder &value) const
const UT_StringHolder & getPtIDAttr() const
void setParmValue(exint idx, const fpreal &value)
static void saveData(std::ostream &os, UT_Matrix2D v)
SYS_FORCE_INLINE const char * buffer() const
T & x(void)
Definition: UT_Vector2.h:285
fpreal64 opNblends_blend(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opSelectionIdx(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
An output stream object that owns its own string buffer storage.
bool operator!=(const SOP_BlendShapesParms &src) const
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
bool operator==(const Nblends &src) const
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:498
void getParmValue(exint idx, UT_Matrix4D &value) const
bool opDoVoxel(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_Vector4D &value) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
png_uint_32 i
Definition: png.h:2877
void setParmValue(exint idx, const UT_Matrix2D &value)
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, UT_Vector3D v)
static void saveData(std::ostream &os, UT_Vector2D v)
bool operator!=(const Nblends &src) const
bool opDoSlerp(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:502
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
long long int64
Definition: SYS_Types.h:107
virtual ParmType getParmType(exint fieldnum) const
UT_StringHolder opPtIDAttr(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
exint length() const
char * findChar(int c) const
Find first occurrance of character. Returns NULL upon failure.
Definition: UT_String.h:550
static void loadData(UT_IStream &is, UT_Vector4I &v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
bool opMorph(const SOP_NodeVerb::CookParms &cookparms) const
int64 exint
Definition: SYS_Types.h:116
const OP_Node * node() const
Definition: SOP_NodeVerb.h:104
double fpreal64
Definition: SYS_Types.h:192
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:284
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, bool v)
virtual void copyFrom(const SOP_NodeParms *src)
const UT_StringHolder & getPrimIDAttr() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
GLboolean * data
Definition: glcorearb.h:130
static void saveData(std::ostream &os, UT_StringHolder s)
void getParmValue(exint idx, fpreal &value) const
static void saveData(std::ostream &os, fpreal64 v)
int int32
Definition: SYS_Types.h:35
T & y(void)
Definition: UT_Vector4.h:377
virtual exint getNumParms() const
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, int64 &v)
void getParmValue(exint idx, UT_Vector2D &value) const
static void saveData(std::ostream &os, UT_Vector4D v)
bool opDoPos(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strcat(const char *src)
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 setParmValue(exint idx, const UT_Matrix4D &value)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2539
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:453
bool opDoClr(const SOP_NodeVerb::CookParms &cookparms) const
bool opDoUVW(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_BlendShapesParms &src) const
static void loadData(UT_IStream &is, fpreal64 &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
static void saveData(std::ostream &os, UT_Matrix3D v)
void getParmValue(exint idx, exint &value) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setParmValue(exint idx, const UT_Vector3D &value)
virtual const char * getParmName(exint fieldnum) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getParmValue(exint idx, PRM_DataItemHandle &value) const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
static void loadData(UT_IStream &is, UT_Vector3I &v)
void save(std::ostream &os) const
SYS_FORCE_INLINE void append(char character)
GLuint GLfloat * val
Definition: glcorearb.h:1607
#define SOP_API
Definition: SOP_API.h:10
bool opDoNml(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const UT_Matrix3D &value)
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:501
T & x(void)
Definition: UT_Vector4.h:375
virtual void loadFromOpSubclass(const LoadParms &loadparms)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getParmValue(exint idx, UT_Vector3D &value) const
T & y(void)
Definition: UT_Vector2.h:287
GLboolean r
Definition: glcorearb.h:1221
void getParmValue(exint idx, UT_Matrix2D &value) const
T & w(void)
Definition: UT_Vector4.h:381
void setParmValue(exint idx, const PRM_DataItemHandle &value)
void setPrimIDAttr(const UT_StringHolder &val)
const UT_StringHolder & getGroup() const
bool opDiff(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const exint &value)
void setPtIDAttr(const UT_StringHolder &val)
const UT_Array< Nblends > & getNblends() const
const OP_Context & context() const
Definition: SOP_NodeVerb.h:109
void setParmValue(exint idx, const UT_Vector4D &value)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:88
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opPrimIDAttr(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:794
GLenum src
Definition: glcorearb.h:1792
void getParmValue(exint idx, UT_SharedPtr< UT_Ramp > &value) const