HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_PackedEdit.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_API.h>
7 #include <SOP/SOP_NodeVerb.h>
8 #include <SOP/SOP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_PackedEditEnums
24 {
25  enum class Viewportlod
26  {
27  UNCHANGED = 0,
28  FULL,
29  POINTS,
30  BOX,
31  CENTROID,
32  HIDDEN
33  };
34  enum class Visible3d
35  {
36  UNCHANGED = 0,
37  HIDE,
38  SHOW,
39  TOGGLE
40  };
41  enum class Visible2d
42  {
43  UNCHANGED = 0,
44  HIDE,
45  SHOW,
46  TOGGLE
47  };
48 }
49 
50 
52 {
53 public:
54  static int version() { return 1; }
55  struct Vopcount
56  {
62 
63 
65  {
66  vgroup = ""_UTsh;
67  vpackedname = ""_UTsh;
68  viewportlod = 0;
69  visible3d = 0;
70  visible2d = 0;
71 
72  }
73 
74  bool operator==(const Vopcount &src) const
75  {
76  if (vgroup != src.vgroup) return false;
77  if (vpackedname != src.vpackedname) return false;
78  if (viewportlod != src.viewportlod) return false;
79  if (visible3d != src.visible3d) return false;
80  if (visible2d != src.visible2d) return false;
81 
82  return true;
83  }
84  bool operator!=(const Vopcount &src) const
85  {
86  return !operator==(src);
87  }
88 
89  };
90 
92  {
94 
95  buf.strcat("[ ");
96  for (int i = 0; i < list.entries(); i++)
97  {
98  if (i)
99  buf.strcat(", ");
100  buf.strcat("( ");
101  buf.append("");
102  { UT_String tmp; tmp = UT_StringWrap(list(i).vgroup).makeQuotedString('"'); buf.strcat(tmp); }
103  buf.append(", ");
104  { UT_String tmp; tmp = UT_StringWrap(list(i).vpackedname).makeQuotedString('"'); buf.strcat(tmp); }
105  buf.append(", ");
106  buf.appendSprintf("%d", (int) list(i).viewportlod);
107  buf.append(", ");
108  buf.appendSprintf("%d", (int) list(i).visible3d);
109  buf.append(", ");
110  buf.appendSprintf("%d", (int) list(i).visible2d);
111 
112  buf.strcat(" )");
113  }
114  buf.strcat(" ]");
115 
117  return result;
118  }
119  struct Mopcount
120  {
124 
125 
127  {
128  mgroup = ""_UTsh;
129  mpackedname = ""_UTsh;
130  shop_materialpath = ""_UTsh;
131 
132  }
133 
134  bool operator==(const Mopcount &src) const
135  {
136  if (mgroup != src.mgroup) return false;
137  if (mpackedname != src.mpackedname) return false;
138  if (shop_materialpath != src.shop_materialpath) return false;
139 
140  return true;
141  }
142  bool operator!=(const Mopcount &src) const
143  {
144  return !operator==(src);
145  }
146 
147  };
148 
150  {
152 
153  buf.strcat("[ ");
154  for (int i = 0; i < list.entries(); i++)
155  {
156  if (i)
157  buf.strcat(", ");
158  buf.strcat("( ");
159  buf.append("");
160  { UT_String tmp; tmp = UT_StringWrap(list(i).mgroup).makeQuotedString('"'); buf.strcat(tmp); }
161  buf.append(", ");
162  { UT_String tmp; tmp = UT_StringWrap(list(i).mpackedname).makeQuotedString('"'); buf.strcat(tmp); }
163  buf.append(", ");
164  { UT_String tmp; tmp = UT_StringWrap(list(i).shop_materialpath).makeQuotedString('"'); buf.strcat(tmp); }
165 
166  buf.strcat(" )");
167  }
168  buf.strcat(" ]");
169 
171  return result;
172  }
173  struct Lopcount
174  {
178 
179 
181  {
182  lgroup = ""_UTsh;
183  lpackedname = ""_UTsh;
184  lightcategories = "*"_UTsh;
185 
186  }
187 
188  bool operator==(const Lopcount &src) const
189  {
190  if (lgroup != src.lgroup) return false;
191  if (lpackedname != src.lpackedname) return false;
192  if (lightcategories != src.lightcategories) return false;
193 
194  return true;
195  }
196  bool operator!=(const Lopcount &src) const
197  {
198  return !operator==(src);
199  }
200 
201  };
202 
204  {
206 
207  buf.strcat("[ ");
208  for (int i = 0; i < list.entries(); i++)
209  {
210  if (i)
211  buf.strcat(", ");
212  buf.strcat("( ");
213  buf.append("");
214  { UT_String tmp; tmp = UT_StringWrap(list(i).lgroup).makeQuotedString('"'); buf.strcat(tmp); }
215  buf.append(", ");
216  { UT_String tmp; tmp = UT_StringWrap(list(i).lpackedname).makeQuotedString('"'); buf.strcat(tmp); }
217  buf.append(", ");
218  { UT_String tmp; tmp = UT_StringWrap(list(i).lightcategories).makeQuotedString('"'); buf.strcat(tmp); }
219 
220  buf.strcat(" )");
221  }
222  buf.strcat(" ]");
223 
225  return result;
226  }
227 
229  {
230  myVopcount.setSize(1);
231  myMopcount.setSize(1);
232  myLopcount.setSize(1);
233 
234  }
235 
236  explicit SOP_PackedEditParms(const SOP_PackedEditParms &) = default;
238  SOP_PackedEditParms(SOP_PackedEditParms &&) noexcept = default;
239  SOP_PackedEditParms &operator=(SOP_PackedEditParms &&) noexcept = default;
240 
241  ~SOP_PackedEditParms() override {}
242 
243  bool operator==(const SOP_PackedEditParms &src) const
244  {
245  if (myVopcount != src.myVopcount) return false;
246  if (myMopcount != src.myMopcount) return false;
247  if (myLopcount != src.myLopcount) return false;
248 
249  return true;
250  }
251  bool operator!=(const SOP_PackedEditParms &src) const
252  {
253  return !operator==(src);
254  }
258 
259 
260 
261  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
262  {
263  if (true)
264  {
265  int64 length = 0;
266  graph->evalOpParm(length, nodeidx, "vopcount", time, 0);
267  if (length < 0) length = 0;
268  myVopcount.setSize(length);
269  for (exint i = 0; i < length; i++)
270  {
271  int parmidx[1];
272  int offsets[1];
273  parmidx[0] = i+0;
274  offsets[0] = 0;
275  auto && _curentry = myVopcount(i);
276  (void) _curentry;
277  _curentry.vgroup = ""_UTsh;
278  if (true)
279  graph->evalOpParmInst(_curentry.vgroup, nodeidx, "vgroup#", parmidx, offsets, time, 0, 2-1);
280  _curentry.vpackedname = ""_UTsh;
281  if (true)
282  graph->evalOpParmInst(_curentry.vpackedname, nodeidx, "vpackedname#", parmidx, offsets, time, 0, 2-1);
283  _curentry.viewportlod = 0;
284  if (true)
285  graph->evalOpParmInst(_curentry.viewportlod, nodeidx, "viewportlod#", parmidx, offsets, time, 0, 2-1);
286  _curentry.visible3d = 0;
287  if (true)
288  graph->evalOpParmInst(_curentry.visible3d, nodeidx, "visible3d#", parmidx, offsets, time, 0, 2-1);
289  _curentry.visible2d = 0;
290  if (true)
291  graph->evalOpParmInst(_curentry.visible2d, nodeidx, "visible2d#", parmidx, offsets, time, 0, 2-1);
292 
293  }
294  }
295  else
296  myVopcount.clear();
297  if (true)
298  {
299  int64 length = 0;
300  graph->evalOpParm(length, nodeidx, "mopcount", time, 0);
301  if (length < 0) length = 0;
302  myMopcount.setSize(length);
303  for (exint i = 0; i < length; i++)
304  {
305  int parmidx[1];
306  int offsets[1];
307  parmidx[0] = i+0;
308  offsets[0] = 0;
309  auto && _curentry = myMopcount(i);
310  (void) _curentry;
311  _curentry.mgroup = ""_UTsh;
312  if (true)
313  graph->evalOpParmInst(_curentry.mgroup, nodeidx, "mgroup#", parmidx, offsets, time, 0, 2-1);
314  _curentry.mpackedname = ""_UTsh;
315  if (true)
316  graph->evalOpParmInst(_curentry.mpackedname, nodeidx, "mpackedname#", parmidx, offsets, time, 0, 2-1);
317  _curentry.shop_materialpath = ""_UTsh;
318  if (true)
319  graph->evalOpParmInst(_curentry.shop_materialpath, nodeidx, "shop_materialpath#", parmidx, offsets, time, 0, 2-1);
320 
321  }
322  }
323  else
324  myMopcount.clear();
325  if (true)
326  {
327  int64 length = 0;
328  graph->evalOpParm(length, nodeidx, "lopcount", time, 0);
329  if (length < 0) length = 0;
330  myLopcount.setSize(length);
331  for (exint i = 0; i < length; i++)
332  {
333  int parmidx[1];
334  int offsets[1];
335  parmidx[0] = i+0;
336  offsets[0] = 0;
337  auto && _curentry = myLopcount(i);
338  (void) _curentry;
339  _curentry.lgroup = ""_UTsh;
340  if (true)
341  graph->evalOpParmInst(_curentry.lgroup, nodeidx, "lgroup#", parmidx, offsets, time, 0, 2-1);
342  _curentry.lpackedname = ""_UTsh;
343  if (true)
344  graph->evalOpParmInst(_curentry.lpackedname, nodeidx, "lpackedname#", parmidx, offsets, time, 0, 2-1);
345  _curentry.lightcategories = "*"_UTsh;
346  if (true)
347  graph->evalOpParmInst(_curentry.lightcategories, nodeidx, "lightcategories#", parmidx, offsets, time, 0, 2-1);
348 
349  }
350  }
351  else
352  myLopcount.clear();
353 
354  }
355 
356 
357  void loadFromOpSubclass(const LoadParms &loadparms) override
358  {
359  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
360  }
361 
362 
363  void copyFrom(const OP_NodeParms *src) override
364  {
365  *this = *((const SOP_PackedEditParms *)src);
366  }
367 
368  template <typename T>
369  void
370  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
371  {
372  if (idx.size() < 1)
373  return;
374  UT_ASSERT(idx.size() == instance.size()+1);
375  if (idx.size() != instance.size()+1)
376  return;
377  switch (idx[0])
378  {
379  case 0:
380  if (idx.size() == 1)
381  coerceValue(value, myVopcount.entries());
382  else if (instance[0] < myVopcount.entries())
383  {
384  auto && _data = myVopcount(instance[0]);
385  switch (idx[1])
386  {
387  case 0:
388  coerceValue(value, _data.vgroup);
389  break;
390  case 1:
391  coerceValue(value, _data.vpackedname);
392  break;
393  case 2:
394  coerceValue(value, _data.viewportlod);
395  break;
396  case 3:
397  coerceValue(value, _data.visible3d);
398  break;
399  case 4:
400  coerceValue(value, _data.visible2d);
401  break;
402 
403  }
404  }
405  break;
406  case 1:
407  if (idx.size() == 1)
408  coerceValue(value, myMopcount.entries());
409  else if (instance[0] < myMopcount.entries())
410  {
411  auto && _data = myMopcount(instance[0]);
412  switch (idx[1])
413  {
414  case 0:
415  coerceValue(value, _data.mgroup);
416  break;
417  case 1:
418  coerceValue(value, _data.mpackedname);
419  break;
420  case 2:
421  coerceValue(value, _data.shop_materialpath);
422  break;
423 
424  }
425  }
426  break;
427  case 2:
428  if (idx.size() == 1)
429  coerceValue(value, myLopcount.entries());
430  else if (instance[0] < myLopcount.entries())
431  {
432  auto && _data = myLopcount(instance[0]);
433  switch (idx[1])
434  {
435  case 0:
436  coerceValue(value, _data.lgroup);
437  break;
438  case 1:
439  coerceValue(value, _data.lpackedname);
440  break;
441  case 2:
442  coerceValue(value, _data.lightcategories);
443  break;
444 
445  }
446  }
447  break;
448 
449  }
450  }
451 
452  bool isParmColorRamp(exint idx) const override
453  {
454  switch (idx)
455  {
456 
457  }
458  return false;
459  }
460 
461  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
462  { doGetParmValue(idx, instance, value); }
463  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
464  { doGetParmValue(idx, instance, value); }
465  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
466  { doGetParmValue(idx, instance, value); }
467  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
468  { doGetParmValue(idx, instance, value); }
469  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
470  { doGetParmValue(idx, instance, value); }
471  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
472  { doGetParmValue(idx, instance, value); }
473  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
474  { doGetParmValue(idx, instance, value); }
475  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
476  { doGetParmValue(idx, instance, value); }
477  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
478  { doGetParmValue(idx, instance, value); }
479  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
480  { doGetParmValue(idx, instance, value); }
481  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
482  { doGetParmValue(idx, instance, value); }
483 
484  template <typename T>
485  void
486  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
487  {
488  if (idx.size() < 1)
489  return;
490  UT_ASSERT(idx.size() == instance.size()+1);
491  if (idx.size() != instance.size()+1)
492  return;
493  switch (idx[0])
494  {
495  case 0:
496  if (idx.size() == 1)
497  {
498  exint newsize;
499  coerceValue(newsize, value);
500  if (newsize < 0) newsize = 0;
501  myVopcount.setSize(newsize);
502  }
503  else
504  {
505  if (instance[0] < 0)
506  return;
507  myVopcount.setSizeIfNeeded(instance[0]+1);
508  auto && _data = myVopcount(instance[0]);
509  switch (idx[1])
510  {
511  case 0:
512  coerceValue(_data.vgroup, value);
513  break;
514  case 1:
515  coerceValue(_data.vpackedname, value);
516  break;
517  case 2:
518  coerceValue(_data.viewportlod, value);
519  break;
520  case 3:
521  coerceValue(_data.visible3d, value);
522  break;
523  case 4:
524  coerceValue(_data.visible2d, value);
525  break;
526 
527  }
528  }
529  break;
530  case 1:
531  if (idx.size() == 1)
532  {
533  exint newsize;
534  coerceValue(newsize, value);
535  if (newsize < 0) newsize = 0;
536  myMopcount.setSize(newsize);
537  }
538  else
539  {
540  if (instance[0] < 0)
541  return;
542  myMopcount.setSizeIfNeeded(instance[0]+1);
543  auto && _data = myMopcount(instance[0]);
544  switch (idx[1])
545  {
546  case 0:
547  coerceValue(_data.mgroup, value);
548  break;
549  case 1:
550  coerceValue(_data.mpackedname, value);
551  break;
552  case 2:
553  coerceValue(_data.shop_materialpath, value);
554  break;
555 
556  }
557  }
558  break;
559  case 2:
560  if (idx.size() == 1)
561  {
562  exint newsize;
563  coerceValue(newsize, value);
564  if (newsize < 0) newsize = 0;
565  myLopcount.setSize(newsize);
566  }
567  else
568  {
569  if (instance[0] < 0)
570  return;
571  myLopcount.setSizeIfNeeded(instance[0]+1);
572  auto && _data = myLopcount(instance[0]);
573  switch (idx[1])
574  {
575  case 0:
576  coerceValue(_data.lgroup, value);
577  break;
578  case 1:
579  coerceValue(_data.lpackedname, value);
580  break;
581  case 2:
582  coerceValue(_data.lightcategories, value);
583  break;
584 
585  }
586  }
587  break;
588 
589  }
590  }
591 
592  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
593  { doSetParmValue(idx, instance, value); }
594  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
595  { doSetParmValue(idx, instance, value); }
596  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
597  { doSetParmValue(idx, instance, value); }
598  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
599  { doSetParmValue(idx, instance, value); }
600  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
601  { doSetParmValue(idx, instance, value); }
602  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
603  { doSetParmValue(idx, instance, value); }
604  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
605  { doSetParmValue(idx, instance, value); }
606  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
607  { doSetParmValue(idx, instance, value); }
608  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
609  { doSetParmValue(idx, instance, value); }
610  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
611  { doSetParmValue(idx, instance, value); }
612  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
613  { doSetParmValue(idx, instance, value); }
614 
615  exint getNestNumParms(TempIndex idx) const override
616  {
617  if (idx.size() == 0)
618  return 3;
619  switch (idx[0])
620  {
621  case 0:
622  return 5;
623  case 1:
624  return 3;
625  case 2:
626  return 3;
627 
628  }
629  // Invalid
630  return 0;
631  }
632 
633  const char *getNestParmName(TempIndex fieldnum) const override
634  {
635  if (fieldnum.size() < 1)
636  return 0;
637  switch (fieldnum[0])
638  {
639  case 0:
640  if (fieldnum.size() == 1)
641  return "vopcount";
642  switch (fieldnum[1])
643  {
644  case 0:
645  return "vgroup#";
646  case 1:
647  return "vpackedname#";
648  case 2:
649  return "viewportlod#";
650  case 3:
651  return "visible3d#";
652  case 4:
653  return "visible2d#";
654 
655  }
656  return 0;
657  case 1:
658  if (fieldnum.size() == 1)
659  return "mopcount";
660  switch (fieldnum[1])
661  {
662  case 0:
663  return "mgroup#";
664  case 1:
665  return "mpackedname#";
666  case 2:
667  return "shop_materialpath#";
668 
669  }
670  return 0;
671  case 2:
672  if (fieldnum.size() == 1)
673  return "lopcount";
674  switch (fieldnum[1])
675  {
676  case 0:
677  return "lgroup#";
678  case 1:
679  return "lpackedname#";
680  case 2:
681  return "lightcategories#";
682 
683  }
684  return 0;
685 
686  }
687  return 0;
688  }
689 
690  ParmType getNestParmType(TempIndex fieldnum) const override
691  {
692  if (fieldnum.size() < 1)
693  return PARM_UNSUPPORTED;
694  switch (fieldnum[0])
695  {
696  case 0:
697  if (fieldnum.size() == 1)
698  return PARM_MULTIPARM;
699  switch (fieldnum[1])
700  {
701  case 0:
702  return PARM_STRING;
703  case 1:
704  return PARM_STRING;
705  case 2:
706  return PARM_INTEGER;
707  case 3:
708  return PARM_INTEGER;
709  case 4:
710  return PARM_INTEGER;
711 
712  }
713  return PARM_UNSUPPORTED;
714  case 1:
715  if (fieldnum.size() == 1)
716  return PARM_MULTIPARM;
717  switch (fieldnum[1])
718  {
719  case 0:
720  return PARM_STRING;
721  case 1:
722  return PARM_STRING;
723  case 2:
724  return PARM_STRING;
725 
726  }
727  return PARM_UNSUPPORTED;
728  case 2:
729  if (fieldnum.size() == 1)
730  return PARM_MULTIPARM;
731  switch (fieldnum[1])
732  {
733  case 0:
734  return PARM_STRING;
735  case 1:
736  return PARM_STRING;
737  case 2:
738  return PARM_STRING;
739 
740  }
741  return PARM_UNSUPPORTED;
742 
743  }
744  return PARM_UNSUPPORTED;
745  }
746 
747  // Boiler plate to load individual types.
748  static void loadData(UT_IStream &is, int64 &v)
749  { is.bread(&v, 1); }
750  static void loadData(UT_IStream &is, bool &v)
751  { int64 iv; is.bread(&iv, 1); v = iv; }
752  static void loadData(UT_IStream &is, fpreal64 &v)
753  { is.bread<fpreal64>(&v, 1); }
754  static void loadData(UT_IStream &is, UT_Vector2D &v)
755  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
756  static void loadData(UT_IStream &is, UT_Vector3D &v)
757  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
758  is.bread<fpreal64>(&v.z(), 1); }
759  static void loadData(UT_IStream &is, UT_Vector4D &v)
760  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
761  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
762  static void loadData(UT_IStream &is, UT_Matrix2D &v)
763  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
764  static void loadData(UT_IStream &is, UT_Matrix3D &v)
765  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
766  static void loadData(UT_IStream &is, UT_Matrix4D &v)
767  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
768  static void loadData(UT_IStream &is, UT_Vector2I &v)
769  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
770  static void loadData(UT_IStream &is, UT_Vector3I &v)
771  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
772  is.bread<int64>(&v.z(), 1); }
773  static void loadData(UT_IStream &is, UT_Vector4I &v)
774  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
775  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
777  { is.bread(v); }
779  { UT_StringHolder rampdata;
780  loadData(is, rampdata);
781  if (rampdata.isstring())
782  {
783  v.reset(new UT_Ramp());
784  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
785  v->load(istr);
786  }
787  else v.reset();
788  }
791  loadData(is, data);
792  if (data.isstring())
793  {
794  // Find the data type.
795  const char *colon = UT_StringWrap(data).findChar(':');
796  if (colon)
797  {
798  int typelen = colon - data.buffer();
800  type.strncpy(data.buffer(), typelen);
801  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
802 
803  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
804  }
805  }
806  else v.reset();
807  }
808 
809  static void saveData(std::ostream &os, int64 v)
810  { UTwrite(os, &v); }
811  static void saveData(std::ostream &os, bool v)
812  { int64 iv = v; UTwrite(os, &iv); }
813  static void saveData(std::ostream &os, fpreal64 v)
814  { UTwrite<fpreal64>(os, &v); }
815  static void saveData(std::ostream &os, UT_Vector2D v)
816  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
817  static void saveData(std::ostream &os, UT_Vector3D v)
818  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
819  UTwrite<fpreal64>(os, &v.z()); }
820  static void saveData(std::ostream &os, UT_Vector4D v)
821  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
822  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
823  static void saveData(std::ostream &os, UT_Matrix2D v)
825  static void saveData(std::ostream &os, UT_Matrix3D v)
827  static void saveData(std::ostream &os, UT_Matrix4D v)
829  static void saveData(std::ostream &os, UT_StringHolder s)
830  { UT_StringWrap(s).saveBinary(os); }
831  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
833  UT_OStringStream ostr;
834  if (s) s->save(ostr);
835  result = ostr.str();
836  saveData(os, result);
837  }
838  static void saveData(std::ostream &os, PRM_DataItemHandle s)
840  UT_OStringStream ostr;
841  if (s)
842  {
843  ostr << s->getDataTypeToken();
844  ostr << ":";
845  s->saveBinary(ostr);
846  }
847  result = ostr.str();
848  saveData(os, result);
849  }
850 
851 
852  void save(std::ostream &os) const
853  {
854  int32 v = version();
855  UTwrite(os, &v);
856  {
857  int64 length = myVopcount.entries();
858  UTwrite(os, &length);
859  for (exint i = 0; i < length; i++)
860  {
861  auto && _curentry = myVopcount(i);
862  (void) _curentry;
863  saveData(os, _curentry.vgroup);
864  saveData(os, _curentry.vpackedname);
865  saveData(os, _curentry.viewportlod);
866  saveData(os, _curentry.visible3d);
867  saveData(os, _curentry.visible2d);
868 
869  }
870  }
871  {
872  int64 length = myMopcount.entries();
873  UTwrite(os, &length);
874  for (exint i = 0; i < length; i++)
875  {
876  auto && _curentry = myMopcount(i);
877  (void) _curentry;
878  saveData(os, _curentry.mgroup);
879  saveData(os, _curentry.mpackedname);
880  saveData(os, _curentry.shop_materialpath);
881 
882  }
883  }
884  {
885  int64 length = myLopcount.entries();
886  UTwrite(os, &length);
887  for (exint i = 0; i < length; i++)
888  {
889  auto && _curentry = myLopcount(i);
890  (void) _curentry;
891  saveData(os, _curentry.lgroup);
892  saveData(os, _curentry.lpackedname);
893  saveData(os, _curentry.lightcategories);
894 
895  }
896  }
897 
898  }
899 
900  bool load(UT_IStream &is)
901  {
902  int32 v;
903  is.bread(&v, 1);
904  if (version() != v)
905  {
906  // Fail incompatible versions
907  return false;
908  }
909  {
910  int64 length;
911  is.read(&length, 1);
912  myVopcount.setSize(length);
913  for (exint i = 0; i < length; i++)
914  {
915  auto && _curentry = myVopcount(i);
916  (void) _curentry;
917  loadData(is, _curentry.vgroup);
918  loadData(is, _curentry.vpackedname);
919  loadData(is, _curentry.viewportlod);
920  loadData(is, _curentry.visible3d);
921  loadData(is, _curentry.visible2d);
922 
923  }
924  }
925  {
926  int64 length;
927  is.read(&length, 1);
928  myMopcount.setSize(length);
929  for (exint i = 0; i < length; i++)
930  {
931  auto && _curentry = myMopcount(i);
932  (void) _curentry;
933  loadData(is, _curentry.mgroup);
934  loadData(is, _curentry.mpackedname);
935  loadData(is, _curentry.shop_materialpath);
936 
937  }
938  }
939  {
940  int64 length;
941  is.read(&length, 1);
942  myLopcount.setSize(length);
943  for (exint i = 0; i < length; i++)
944  {
945  auto && _curentry = myLopcount(i);
946  (void) _curentry;
947  loadData(is, _curentry.lgroup);
948  loadData(is, _curentry.lpackedname);
949  loadData(is, _curentry.lightcategories);
950 
951  }
952  }
953 
954  return true;
955  }
956 
957  const UT_Array<Vopcount> &getVopcount() const { return myVopcount; }
958 void setVopcount(const UT_Array<Vopcount> &val) { myVopcount = val; }
959  exint opVopcount(const SOP_NodeVerb::CookParms &cookparms) const
960  {
961  SOP_Node *thissop = cookparms.getNode();
962  if (!thissop) return getVopcount().entries();
963  exint result;
964  OP_Utils::evalOpParm(result, thissop, "vopcount", cookparms.getCookTime(), 0);
965  return result;
966  }
968  { return opinstVopcount_vgroup(cookparms, &_idx); }
969  UT_StringHolder opinstVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
970  {
971  SOP_Node *thissop = cookparms.getNode();
972  if (!thissop) return (myVopcount(_idx[0]).vgroup);
973  int _parmidx[2-1];
974  _parmidx[1-1] = _idx[1-1] + 0;
975 
977  OP_Utils::evalOpParmInst(result, thissop, "vgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
978  return (result);
979  }
981  { return opinstVopcount_vpackedname(cookparms, &_idx); }
982  UT_StringHolder opinstVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
983  {
984  SOP_Node *thissop = cookparms.getNode();
985  if (!thissop) return (myVopcount(_idx[0]).vpackedname);
986  int _parmidx[2-1];
987  _parmidx[1-1] = _idx[1-1] + 0;
988 
990  OP_Utils::evalOpParmInst(result, thissop, "vpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
991  return (result);
992  }
993  int64 opVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
994  { return opinstVopcount_viewportlod(cookparms, &_idx); }
995  int64 opinstVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
996  {
997  SOP_Node *thissop = cookparms.getNode();
998  if (!thissop) return (myVopcount(_idx[0]).viewportlod);
999  int _parmidx[2-1];
1000  _parmidx[1-1] = _idx[1-1] + 0;
1001 
1002  int64 result;
1003  OP_Utils::evalOpParmInst(result, thissop, "viewportlod#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1004  return (result);
1005  }
1006  int64 opVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1007  { return opinstVopcount_visible3d(cookparms, &_idx); }
1008  int64 opinstVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1009  {
1010  SOP_Node *thissop = cookparms.getNode();
1011  if (!thissop) return (myVopcount(_idx[0]).visible3d);
1012  int _parmidx[2-1];
1013  _parmidx[1-1] = _idx[1-1] + 0;
1014 
1015  int64 result;
1016  OP_Utils::evalOpParmInst(result, thissop, "visible3d#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1017  return (result);
1018  }
1019  int64 opVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1020  { return opinstVopcount_visible2d(cookparms, &_idx); }
1021  int64 opinstVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1022  {
1023  SOP_Node *thissop = cookparms.getNode();
1024  if (!thissop) return (myVopcount(_idx[0]).visible2d);
1025  int _parmidx[2-1];
1026  _parmidx[1-1] = _idx[1-1] + 0;
1027 
1028  int64 result;
1029  OP_Utils::evalOpParmInst(result, thissop, "visible2d#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1030  return (result);
1031  }
1032 
1033  const UT_Array<Mopcount> &getMopcount() const { return myMopcount; }
1034 void setMopcount(const UT_Array<Mopcount> &val) { myMopcount = val; }
1035  exint opMopcount(const SOP_NodeVerb::CookParms &cookparms) const
1036  {
1037  SOP_Node *thissop = cookparms.getNode();
1038  if (!thissop) return getMopcount().entries();
1039  exint result;
1040  OP_Utils::evalOpParm(result, thissop, "mopcount", cookparms.getCookTime(), 0);
1041  return result;
1042  }
1044  { return opinstMopcount_mgroup(cookparms, &_idx); }
1045  UT_StringHolder opinstMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1046  {
1047  SOP_Node *thissop = cookparms.getNode();
1048  if (!thissop) return (myMopcount(_idx[0]).mgroup);
1049  int _parmidx[2-1];
1050  _parmidx[1-1] = _idx[1-1] + 0;
1051 
1053  OP_Utils::evalOpParmInst(result, thissop, "mgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1054  return (result);
1055  }
1057  { return opinstMopcount_mpackedname(cookparms, &_idx); }
1058  UT_StringHolder opinstMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1059  {
1060  SOP_Node *thissop = cookparms.getNode();
1061  if (!thissop) return (myMopcount(_idx[0]).mpackedname);
1062  int _parmidx[2-1];
1063  _parmidx[1-1] = _idx[1-1] + 0;
1064 
1066  OP_Utils::evalOpParmInst(result, thissop, "mpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1067  return (result);
1068  }
1070  { return opinstMopcount_shop_materialpath(cookparms, &_idx); }
1072  {
1073  SOP_Node *thissop = cookparms.getNode();
1074  if (!thissop) return (myMopcount(_idx[0]).shop_materialpath);
1075  int _parmidx[2-1];
1076  _parmidx[1-1] = _idx[1-1] + 0;
1077 
1079  OP_Utils::evalOpParmInst(result, thissop, "shop_materialpath#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1080  return (result);
1081  }
1082 
1083  const UT_Array<Lopcount> &getLopcount() const { return myLopcount; }
1084 void setLopcount(const UT_Array<Lopcount> &val) { myLopcount = val; }
1085  exint opLopcount(const SOP_NodeVerb::CookParms &cookparms) const
1086  {
1087  SOP_Node *thissop = cookparms.getNode();
1088  if (!thissop) return getLopcount().entries();
1089  exint result;
1090  OP_Utils::evalOpParm(result, thissop, "lopcount", cookparms.getCookTime(), 0);
1091  return result;
1092  }
1094  { return opinstLopcount_lgroup(cookparms, &_idx); }
1095  UT_StringHolder opinstLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1096  {
1097  SOP_Node *thissop = cookparms.getNode();
1098  if (!thissop) return (myLopcount(_idx[0]).lgroup);
1099  int _parmidx[2-1];
1100  _parmidx[1-1] = _idx[1-1] + 0;
1101 
1103  OP_Utils::evalOpParmInst(result, thissop, "lgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1104  return (result);
1105  }
1107  { return opinstLopcount_lpackedname(cookparms, &_idx); }
1108  UT_StringHolder opinstLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1109  {
1110  SOP_Node *thissop = cookparms.getNode();
1111  if (!thissop) return (myLopcount(_idx[0]).lpackedname);
1112  int _parmidx[2-1];
1113  _parmidx[1-1] = _idx[1-1] + 0;
1114 
1116  OP_Utils::evalOpParmInst(result, thissop, "lpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1117  return (result);
1118  }
1120  { return opinstLopcount_lightcategories(cookparms, &_idx); }
1122  {
1123  SOP_Node *thissop = cookparms.getNode();
1124  if (!thissop) return (myLopcount(_idx[0]).lightcategories);
1125  int _parmidx[2-1];
1126  _parmidx[1-1] = _idx[1-1] + 0;
1127 
1129  OP_Utils::evalOpParmInst(result, thissop, "lightcategories#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1130  return (result);
1131  }
1132 
1133 
1134 private:
1135  UT_Array<Vopcount> myVopcount;
1136  UT_Array<Mopcount> myMopcount;
1137  UT_Array<Lopcount> myLopcount;
1138 
1139 };
bool operator==(const Lopcount &src) const
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, UT_StringHolder s)
void loadFromOpSubclass(const LoadParms &loadparms) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2540
int64 opinstVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, int64 v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, fpreal64 v)
bool operator==(const Mopcount &src) const
void setVopcount(const UT_Array< Vopcount > &val)
static void loadData(UT_IStream &is, int64 &v)
UT_StringHolder opinstMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void
Definition: png.h:1083
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
UT_StringHolder opMopcount_shop_materialpath(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
exint opMopcount(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getTime() const
Definition: OP_Context.h:62
UT_StringHolder opinstLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Vector2D v)
exint opLopcount(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder createString(const UT_Array< Vopcount > &list) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
UT_StringHolder opMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
static void loadData(UT_IStream &is, UT_Matrix2D &v)
bool operator!=(const Lopcount &src) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
UT_StringHolder opLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
**But if you need a result
Definition: thread.h:613
UT_StringHolder opLopcount_lightcategories(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
UT_StringHolder opMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder createString(const UT_Array< Lopcount > &list) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
const char * getNestParmName(TempIndex fieldnum) const override
const UT_Array< Lopcount > & getLopcount() const
int64 opVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glcorearb.h:2621
UT_StringHolder opinstVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
const UT_Array< Vopcount > & getVopcount() const
bool operator!=(const Vopcount &src) const
UT_StringHolder opinstVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
exint length() const
static void loadData(UT_IStream &is, bool &v)
UT_StringHolder opinstLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setLopcount(const UT_Array< Lopcount > &val)
static void saveData(std::ostream &os, UT_Vector3D v)
static void loadData(UT_IStream &is, UT_Vector4I &v)
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:276
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder opinstMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opinstLopcount_lightcategories(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
const UT_Array< Mopcount > & getMopcount() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool operator!=(const Mopcount &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
UT_StringHolder opinstMopcount_shop_materialpath(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool operator!=(const SOP_PackedEditParms &src) const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void setMopcount(const UT_Array< Mopcount > &val)
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:648
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
int64 opinstVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Vopcount &src) const
static void saveData(std::ostream &os, UT_Matrix3D v)
UT_StringHolder opVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
fpreal64 fpreal
Definition: SYS_Types.h:277
exint getNestNumParms(TempIndex idx) const override
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
bool isParmColorRamp(exint idx) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
SYS_FORCE_INLINE void append(char character)
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define SOP_API
Definition: SOP_API.h:10
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
UT_StringHolder createString(const UT_Array< Mopcount > &list) const
bool operator==(const SOP_PackedEditParms &src) const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
ParmType getNestParmType(TempIndex fieldnum) const override
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
exint opVopcount(const SOP_NodeVerb::CookParms &cookparms) const
Definition: core.h:1131
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
GLboolean r
Definition: glcorearb.h:1222
int64 opinstVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
bool load(UT_IStream &is)
static void saveData(std::ostream &os, bool v)
type
Definition: core.h:1059
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
int64 opVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Matrix2D v)
int64 opVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GA_API const UT_StringHolder shop_materialpath
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void save(std::ostream &os) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663