HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_GroupDelete.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_GroupDeleteEnums
24 {
25  enum class Grouptype
26  {
27  ANY = 0,
28  POINTS,
29  PRIMS,
30  EDGES,
31  VERTICES
32  };
33 
35  getToken(Grouptype enum_value)
36  {
37  using namespace UT::Literal;
38  switch (enum_value) {
39  case Grouptype::ANY: return "any"_sh;
40  case Grouptype::POINTS: return "points"_sh;
41  case Grouptype::PRIMS: return "prims"_sh;
42  case Grouptype::EDGES: return "edges"_sh;
43  case Grouptype::VERTICES: return "vertices"_sh;
44  default: UT_ASSERT(false); return ""_sh;
45  }
46  }
47 
48  enum class Selectiongrouptype
49  {
50  GUESS = 0,
51  POINTS,
52  PRIMS,
53  EDGES,
54  VERTICES
55  };
56 
59  {
60  using namespace UT::Literal;
61  switch (enum_value) {
62  case Selectiongrouptype::GUESS: return "guess"_sh;
63  case Selectiongrouptype::POINTS: return "points"_sh;
64  case Selectiongrouptype::PRIMS: return "prims"_sh;
65  case Selectiongrouptype::EDGES: return "edges"_sh;
66  case Selectiongrouptype::VERTICES: return "vertices"_sh;
67  default: UT_ASSERT(false); return ""_sh;
68  }
69  }
70 
71 }
72 
73 
75 {
76 public:
77  static int version() { return 1; }
78  struct Deletions
79  {
80  bool enable;
83 
84 
86  {
87  enable = true;
88  grouptype = 0;
89  group = ""_UTsh;
90 
91  }
92 
93  bool operator==(const Deletions &src) const
94  {
95  if (enable != src.enable) return false;
96  if (grouptype != src.grouptype) return false;
97  if (group != src.group) return false;
98 
99  return true;
100  }
101  bool operator!=(const Deletions &src) const
102  {
103  return !operator==(src);
104  }
105 
106  };
107 
109  {
111 
112  buf.strcat("[ ");
113  for (int i = 0; i < list.entries(); i++)
114  {
115  if (i)
116  buf.strcat(", ");
117  buf.strcat("( ");
118  buf.append("");
119  buf.appendSprintf("%s", (list(i).enable) ? "true" : "false");
120  buf.append(", ");
121  buf.appendSprintf("%d", (int) list(i).grouptype);
122  buf.append(", ");
123  { UT_String tmp; tmp = UT_StringWrap(list(i).group).makeQuotedString('"'); buf.strcat(tmp); }
124 
125  buf.strcat(" )");
126  }
127  buf.strcat(" ]");
128 
130  return result;
131  }
132 
134  {
135  myDeletions.setSize(1);
136  myRemovegrp = false;
137  mySelectiongroup = ""_UTsh;
138  mySelectiongrouptype = 0;
139 
140  }
141 
142  explicit SOP_GroupDeleteParms(const SOP_GroupDeleteParms &) = default;
144  SOP_GroupDeleteParms(SOP_GroupDeleteParms &&) noexcept = default;
145  SOP_GroupDeleteParms &operator=(SOP_GroupDeleteParms &&) noexcept = default;
146 
147  ~SOP_GroupDeleteParms() override {}
148 
150  {
151  if (myDeletions != src.myDeletions) return false;
152  if (myRemovegrp != src.myRemovegrp) return false;
153  if (mySelectiongroup != src.mySelectiongroup) return false;
154  if (mySelectiongrouptype != src.mySelectiongrouptype) return false;
155 
156  return true;
157  }
159  {
160  return !operator==(src);
161  }
164 
165 
166 
167  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
168  {
169  if (true)
170  {
171  int64 length = 0;
172  graph->evalOpParm(length, nodeidx, "deletions", time, 0);
173  if (length < 0) length = 0;
174  myDeletions.setSize(length);
175  for (exint i = 0; i < length; i++)
176  {
177  int parmidx[1];
178  int offsets[1];
179  parmidx[0] = i+1;
180  offsets[0] = 1;
181  auto && _curentry = myDeletions(i);
182  (void) _curentry;
183  _curentry.enable = true;
184  if (true)
185  graph->evalOpParmInst(_curentry.enable, nodeidx, "enable#", parmidx, offsets, time, 0, 2-1);
186  _curentry.grouptype = 0;
187  if (true && ( (true&&!(((_curentry.enable==0)))) ) )
188  graph->evalOpParmInst(_curentry.grouptype, nodeidx, "grouptype#", parmidx, offsets, time, 0, 2-1);
189  _curentry.group = ""_UTsh;
190  if (true && ( (true&&!(((_curentry.enable==0)))) ) )
191  graph->evalOpParmInst(_curentry.group, nodeidx, "group#", parmidx, offsets, time, 0, 2-1);
192 
193  }
194  }
195  else
196  myDeletions.clear();
197  myRemovegrp = false;
198  if (true)
199  graph->evalOpParm(myRemovegrp, nodeidx, "removegrp", time, 0);
200  mySelectiongroup = ""_UTsh;
201  if (true)
202  graph->evalOpParm(mySelectiongroup, nodeidx, "selectiongroup", time, 0);
203  mySelectiongrouptype = 0;
204  if (true)
205  graph->evalOpParm(mySelectiongrouptype, nodeidx, "selectiongrouptype", time, 0);
206 
207  }
208 
209 
210  void loadFromOpSubclass(const LoadParms &loadparms) override
211  {
212  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
213  }
214 
215 
216  void copyFrom(const OP_NodeParms *src) override
217  {
218  *this = *((const SOP_GroupDeleteParms *)src);
219  }
220 
221  template <typename T>
222  void
223  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
224  {
225  if (idx.size() < 1)
226  return;
227  UT_ASSERT(idx.size() == instance.size()+1);
228  if (idx.size() != instance.size()+1)
229  return;
230  switch (idx[0])
231  {
232  case 0:
233  if (idx.size() == 1)
234  coerceValue(value, myDeletions.entries());
235  else if (instance[0] < myDeletions.entries())
236  {
237  auto && _data = myDeletions(instance[0]);
238  switch (idx[1])
239  {
240  case 0:
241  coerceValue(value, _data.enable);
242  break;
243  case 1:
244  coerceValue(value, _data.grouptype);
245  break;
246  case 2:
247  coerceValue(value, _data.group);
248  break;
249 
250  }
251  }
252  break;
253  case 1:
254  coerceValue(value, myRemovegrp);
255  break;
256  case 2:
257  coerceValue(value, mySelectiongroup);
258  break;
259  case 3:
260  coerceValue(value, mySelectiongrouptype);
261  break;
262 
263  }
264  }
265 
266  bool isParmColorRamp(exint idx) const override
267  {
268  switch (idx)
269  {
270 
271  }
272  return false;
273  }
274 
275  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
276  { doGetParmValue(idx, instance, value); }
277  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
278  { doGetParmValue(idx, instance, value); }
279  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
280  { doGetParmValue(idx, instance, value); }
281  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
282  { doGetParmValue(idx, instance, value); }
283  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
284  { doGetParmValue(idx, instance, value); }
285  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
286  { doGetParmValue(idx, instance, value); }
287  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
288  { doGetParmValue(idx, instance, value); }
289  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
290  { doGetParmValue(idx, instance, value); }
291  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
292  { doGetParmValue(idx, instance, value); }
293  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
294  { doGetParmValue(idx, instance, value); }
295  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
296  { doGetParmValue(idx, instance, value); }
297 
298  template <typename T>
299  void
300  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
301  {
302  if (idx.size() < 1)
303  return;
304  UT_ASSERT(idx.size() == instance.size()+1);
305  if (idx.size() != instance.size()+1)
306  return;
307  switch (idx[0])
308  {
309  case 0:
310  if (idx.size() == 1)
311  {
312  exint newsize;
313  coerceValue(newsize, value);
314  if (newsize < 0) newsize = 0;
315  myDeletions.setSize(newsize);
316  }
317  else
318  {
319  if (instance[0] < 0)
320  return;
321  myDeletions.setSizeIfNeeded(instance[0]+1);
322  auto && _data = myDeletions(instance[0]);
323  switch (idx[1])
324  {
325  case 0:
326  coerceValue(_data.enable, value);
327  break;
328  case 1:
329  coerceValue(_data.grouptype, value);
330  break;
331  case 2:
332  coerceValue(_data.group, value);
333  break;
334 
335  }
336  }
337  break;
338  case 1:
339  coerceValue(myRemovegrp, ( ( value ) ));
340  break;
341  case 2:
342  coerceValue(mySelectiongroup, ( ( value ) ));
343  break;
344  case 3:
345  coerceValue(mySelectiongrouptype, clampMinValue(0, clampMaxValue(4, value ) ));
346  break;
347 
348  }
349  }
350 
351  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
352  { doSetParmValue(idx, instance, value); }
353  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
354  { doSetParmValue(idx, instance, value); }
355  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
356  { doSetParmValue(idx, instance, value); }
357  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
358  { doSetParmValue(idx, instance, value); }
359  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
360  { doSetParmValue(idx, instance, value); }
361  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
362  { doSetParmValue(idx, instance, value); }
363  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
364  { doSetParmValue(idx, instance, value); }
365  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
366  { doSetParmValue(idx, instance, value); }
367  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
368  { doSetParmValue(idx, instance, value); }
369  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
370  { doSetParmValue(idx, instance, value); }
371  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
372  { doSetParmValue(idx, instance, value); }
373 
374  exint getNestNumParms(TempIndex idx) const override
375  {
376  if (idx.size() == 0)
377  return 4;
378  switch (idx[0])
379  {
380  case 0:
381  return 3;
382 
383  }
384  // Invalid
385  return 0;
386  }
387 
388  const char *getNestParmName(TempIndex fieldnum) const override
389  {
390  if (fieldnum.size() < 1)
391  return 0;
392  switch (fieldnum[0])
393  {
394  case 0:
395  if (fieldnum.size() == 1)
396  return "deletions";
397  switch (fieldnum[1])
398  {
399  case 0:
400  return "enable#";
401  case 1:
402  return "grouptype#";
403  case 2:
404  return "group#";
405 
406  }
407  return 0;
408  case 1:
409  return "removegrp";
410  case 2:
411  return "selectiongroup";
412  case 3:
413  return "selectiongrouptype";
414 
415  }
416  return 0;
417  }
418 
419  ParmType getNestParmType(TempIndex fieldnum) const override
420  {
421  if (fieldnum.size() < 1)
422  return PARM_UNSUPPORTED;
423  switch (fieldnum[0])
424  {
425  case 0:
426  if (fieldnum.size() == 1)
427  return PARM_MULTIPARM;
428  switch (fieldnum[1])
429  {
430  case 0:
431  return PARM_INTEGER;
432  case 1:
433  return PARM_INTEGER;
434  case 2:
435  return PARM_STRING;
436 
437  }
438  return PARM_UNSUPPORTED;
439  case 1:
440  return PARM_INTEGER;
441  case 2:
442  return PARM_STRING;
443  case 3:
444  return PARM_INTEGER;
445 
446  }
447  return PARM_UNSUPPORTED;
448  }
449 
450  // Boiler plate to load individual types.
451  static void loadData(UT_IStream &is, int64 &v)
452  { is.bread(&v, 1); }
453  static void loadData(UT_IStream &is, bool &v)
454  { int64 iv; is.bread(&iv, 1); v = iv; }
455  static void loadData(UT_IStream &is, fpreal64 &v)
456  { is.bread<fpreal64>(&v, 1); }
457  static void loadData(UT_IStream &is, UT_Vector2D &v)
458  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
459  static void loadData(UT_IStream &is, UT_Vector3D &v)
460  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
461  is.bread<fpreal64>(&v.z(), 1); }
462  static void loadData(UT_IStream &is, UT_Vector4D &v)
463  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
464  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
465  static void loadData(UT_IStream &is, UT_Matrix2D &v)
466  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
467  static void loadData(UT_IStream &is, UT_Matrix3D &v)
468  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
469  static void loadData(UT_IStream &is, UT_Matrix4D &v)
470  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
471  static void loadData(UT_IStream &is, UT_Vector2I &v)
472  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
473  static void loadData(UT_IStream &is, UT_Vector3I &v)
474  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
475  is.bread<int64>(&v.z(), 1); }
476  static void loadData(UT_IStream &is, UT_Vector4I &v)
477  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
478  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
480  { is.bread(v); }
482  { UT_StringHolder rampdata;
483  loadData(is, rampdata);
484  if (rampdata.isstring())
485  {
486  v.reset(new UT_Ramp());
487  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
488  v->load(istr);
489  }
490  else v.reset();
491  }
494  loadData(is, data);
495  if (data.isstring())
496  {
497  // Find the data type.
498  const char *colon = UT_StringWrap(data).findChar(':');
499  if (colon)
500  {
501  int typelen = colon - data.buffer();
503  type.strncpy(data.buffer(), typelen);
504  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
505 
506  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
507  }
508  }
509  else v.reset();
510  }
511 
512  static void saveData(std::ostream &os, int64 v)
513  { UTwrite(os, &v); }
514  static void saveData(std::ostream &os, bool v)
515  { int64 iv = v; UTwrite(os, &iv); }
516  static void saveData(std::ostream &os, fpreal64 v)
517  { UTwrite<fpreal64>(os, &v); }
518  static void saveData(std::ostream &os, UT_Vector2D v)
519  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
520  static void saveData(std::ostream &os, UT_Vector3D v)
521  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
522  UTwrite<fpreal64>(os, &v.z()); }
523  static void saveData(std::ostream &os, UT_Vector4D v)
524  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
525  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
526  static void saveData(std::ostream &os, UT_Matrix2D v)
528  static void saveData(std::ostream &os, UT_Matrix3D v)
530  static void saveData(std::ostream &os, UT_Matrix4D v)
532  static void saveData(std::ostream &os, UT_StringHolder s)
533  { UT_StringWrap(s).saveBinary(os); }
534  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
536  UT_OStringStream ostr;
537  if (s) s->save(ostr);
538  result = ostr.str();
539  saveData(os, result);
540  }
541  static void saveData(std::ostream &os, PRM_DataItemHandle s)
543  UT_OStringStream ostr;
544  if (s)
545  {
546  ostr << s->getDataTypeToken();
547  ostr << ":";
548  s->saveBinary(ostr);
549  }
550  result = ostr.str();
551  saveData(os, result);
552  }
553 
554 
555  void save(std::ostream &os) const
556  {
557  int32 v = version();
558  UTwrite(os, &v);
559  {
560  int64 length = myDeletions.entries();
561  UTwrite(os, &length);
562  for (exint i = 0; i < length; i++)
563  {
564  auto && _curentry = myDeletions(i);
565  (void) _curentry;
566  saveData(os, _curentry.enable);
567  saveData(os, _curentry.grouptype);
568  saveData(os, _curentry.group);
569 
570  }
571  }
572  saveData(os, myRemovegrp);
573  saveData(os, mySelectiongroup);
574  saveData(os, mySelectiongrouptype);
575 
576  }
577 
578  bool load(UT_IStream &is)
579  {
580  int32 v;
581  is.bread(&v, 1);
582  if (version() != v)
583  {
584  // Fail incompatible versions
585  return false;
586  }
587  {
588  int64 length;
589  is.read(&length, 1);
590  myDeletions.setSize(length);
591  for (exint i = 0; i < length; i++)
592  {
593  auto && _curentry = myDeletions(i);
594  (void) _curentry;
595  loadData(is, _curentry.enable);
596  loadData(is, _curentry.grouptype);
597  loadData(is, _curentry.group);
598 
599  }
600  }
601  loadData(is, myRemovegrp);
602  loadData(is, mySelectiongroup);
603  loadData(is, mySelectiongrouptype);
604 
605  return true;
606  }
607 
608  const UT_Array<Deletions> &getDeletions() const { return myDeletions; }
609 void setDeletions(const UT_Array<Deletions> &val) { myDeletions = val; }
610  exint opDeletions(const SOP_NodeVerb::CookParms &cookparms) const
611  {
612  SOP_Node *thissop = cookparms.getNode();
613  if (!thissop) return getDeletions().entries();
614  exint result;
615  OP_Utils::evalOpParm(result, thissop, "deletions", cookparms.getCookTime(), 0);
616  return result;
617  }
618  bool opDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
619  { return opinstDeletions_enable(cookparms, &_idx); }
620  bool opinstDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
621  {
622  SOP_Node *thissop = cookparms.getNode();
623  if (!thissop) return (myDeletions(_idx[0]).enable);
624  int _parmidx[2-1];
625  _parmidx[1-1] = _idx[1-1] + 1;
626 
627  bool result;
628  OP_Utils::evalOpParmInst(result, thissop, "enable#", _parmidx, cookparms.getCookTime(), 0, 2-1);
629  return (result);
630  }
631  int64 opDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
632  { return opinstDeletions_grouptype(cookparms, &_idx); }
633  int64 opinstDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
634  {
635  SOP_Node *thissop = cookparms.getNode();
636  if (!thissop) return (myDeletions(_idx[0]).grouptype);
637  int _parmidx[2-1];
638  _parmidx[1-1] = _idx[1-1] + 1;
639 
640  int64 result;
641  OP_Utils::evalOpParmInst(result, thissop, "grouptype#", _parmidx, cookparms.getCookTime(), 0, 2-1);
642  return (result);
643  }
645  { return opinstDeletions_group(cookparms, &_idx); }
646  UT_StringHolder opinstDeletions_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
647  {
648  SOP_Node *thissop = cookparms.getNode();
649  if (!thissop) return (myDeletions(_idx[0]).group);
650  int _parmidx[2-1];
651  _parmidx[1-1] = _idx[1-1] + 1;
652 
654  OP_Utils::evalOpParmInst(result, thissop, "group#", _parmidx, cookparms.getCookTime(), 0, 2-1);
655  return (result);
656  }
657 
658  bool getRemovegrp() const { return myRemovegrp; }
659  void setRemovegrp(bool val) { myRemovegrp = val; }
660  bool opRemovegrp(const SOP_NodeVerb::CookParms &cookparms) const
661  {
662  SOP_Node *thissop = cookparms.getNode();
663  if (!thissop) return getRemovegrp();
664  bool result;
665  OP_Utils::evalOpParm(result, thissop, "removegrp", cookparms.getCookTime(), 0);
666  return result;
667  }
668  const UT_StringHolder & getSelectiongroup() const { return mySelectiongroup; }
669  void setSelectiongroup(const UT_StringHolder & val) { mySelectiongroup = val; }
671  {
672  SOP_Node *thissop = cookparms.getNode();
673  if (!thissop) return getSelectiongroup();
675  OP_Utils::evalOpParm(result, thissop, "selectiongroup", cookparms.getCookTime(), 0);
676  return result;
677  }
678  Selectiongrouptype getSelectiongrouptype() const { return Selectiongrouptype(mySelectiongrouptype); }
679  void setSelectiongrouptype(Selectiongrouptype val) { mySelectiongrouptype = int64(val); }
681  {
682  SOP_Node *thissop = cookparms.getNode();
683  if (!thissop) return getSelectiongrouptype();
684  int64 result;
685  OP_Utils::evalOpParm(result, thissop, "selectiongrouptype", cookparms.getCookTime(), 0);
686  return Selectiongrouptype(result);
687  }
688 
689 private:
690  UT_Array<Deletions> myDeletions;
691  bool myRemovegrp;
692  UT_StringHolder mySelectiongroup;
693  int64 mySelectiongrouptype;
694 
695 };
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2540
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
const UT_Array< Deletions > & getDeletions() const
bool operator==(const Deletions &src) const
void save(std::ostream &os) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void copyFrom(const OP_NodeParms *src) override
void
Definition: png.h:1083
Selectiongrouptype getSelectiongrouptype() const
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
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
fpreal getTime() const
Definition: OP_Context.h:62
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opRemovegrp(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
UT_StringHolder opinstDeletions_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLdouble s
Definition: glad.h:3009
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
void setSelectiongroup(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
**But if you need a result
Definition: thread.h:613
UT_StringHolder opSelectiongroup(const SOP_NodeVerb::CookParms &cookparms) 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.
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glcorearb.h:2621
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
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
const UT_StringHolder & getSelectiongroup() const
void loadFromOpSubclass(const LoadParms &loadparms) override
static void saveData(std::ostream &os, UT_Matrix3D v)
exint length() const
UT_StringHolder opDeletions_group(const SOP_NodeVerb::CookParms &cookparms, 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, bool v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, int64 &v)
int64 opinstDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:276
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, UT_Vector3D v)
bool opDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setDeletions(const UT_Array< Deletions > &val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setSelectiongrouptype(Selectiongrouptype val)
exint getNestNumParms(TempIndex idx) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void loadData(UT_IStream &is, UT_Vector3D &v)
bool load(UT_IStream &is)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool operator==(const SOP_GroupDeleteParms &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
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:648
Selectiongrouptype opSelectiongrouptype(const SOP_NodeVerb::CookParms &cookparms) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
const char * getNestParmName(TempIndex fieldnum) const override
int64 opDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, bool &v)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
UT_StringHolder createString(const UT_Array< Deletions > &list) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
LeafData & operator=(const LeafData &)=delete
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
static void saveData(std::ostream &os, fpreal64 v)
bool operator!=(const SOP_GroupDeleteParms &src) const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
SYS_FORCE_INLINE void append(char character)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
GLuint GLfloat * val
Definition: glcorearb.h:1608
static void loadData(UT_IStream &is, UT_Matrix4D &v)
#define SOP_API
Definition: SOP_API.h:10
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Matrix4D v)
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
Definition: core.h:1131
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool opinstDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLboolean r
Definition: glcorearb.h:1222
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void loadData(UT_IStream &is, UT_Matrix3D &v)
type
Definition: core.h:1059
static void loadData(UT_IStream &is, fpreal64 &v)
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE UT_StringHolder getToken(Grouptype enum_value)
bool operator!=(const Deletions &src) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool isParmColorRamp(exint idx) const override
exint opDeletions(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663