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 <OP/OP_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 
157  if (baseGetSignature() != src.baseGetSignature()) return false;
158 
159  return true;
160  }
162  {
163  return !operator==(src);
164  }
167 
168 
169 
170  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
171  {
172  if (true)
173  {
174  int64 length = 0;
175  graph->evalOpParm(length, nodeidx, "deletions", time, graph->isDirect()?nullptr:depnode);
176  if (length < 0) length = 0;
177  myDeletions.setSize(length);
178  for (exint i = 0; i < length; i++)
179  {
180  int parmidx[1];
181  int offsets[1];
182  parmidx[0] = i+1;
183  offsets[0] = 1;
184  auto && _curentry = myDeletions(i);
185  (void) _curentry;
186  _curentry.enable = true;
187  if (true)
188  graph->evalOpParmInst(_curentry.enable, nodeidx, "enable#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
189  _curentry.grouptype = 0;
190  if (true && ( (true&&!(((_curentry.enable==0)))) ) )
191  graph->evalOpParmInst(_curentry.grouptype, nodeidx, "grouptype#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
192  _curentry.group = ""_UTsh;
193  if (true && ( (true&&!(((_curentry.enable==0)))) ) )
194  graph->evalOpParmInst(_curentry.group, nodeidx, "group#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
195 
196  }
197  }
198  else
199  myDeletions.clear();
200  myRemovegrp = false;
201  if (true)
202  graph->evalOpParm(myRemovegrp, nodeidx, "removegrp", time, graph->isDirect()?nullptr:depnode);
203  mySelectiongroup = ""_UTsh;
204  if (true)
205  graph->evalOpParm(mySelectiongroup, nodeidx, "selectiongroup", time, graph->isDirect()?nullptr:depnode);
206  mySelectiongrouptype = 0;
207  if (true)
208  graph->evalOpParm(mySelectiongrouptype, nodeidx, "selectiongrouptype", time, graph->isDirect()?nullptr:depnode);
209 
210  }
211 
212 
213  void loadFromOpSubclass(const LoadParms &loadparms) override
214  {
215  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
216  }
217 
218 
219  void copyFrom(const OP_NodeParms *src) override
220  {
221  *this = *((const SOP_GroupDeleteParms *)src);
222  }
223 
224  template <typename T>
225  void
226  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
227  {
228  if (idx.size() < 1)
229  return;
230  UT_ASSERT(idx.size() == instance.size()+1);
231  if (idx.size() != instance.size()+1)
232  return;
233  switch (idx[0])
234  {
235  case 0:
236  if (idx.size() == 1)
237  coerceValue(value, myDeletions.entries());
238  else if (instance[0] < myDeletions.entries())
239  {
240  auto && _data = myDeletions(instance[0]);
241  switch (idx[1])
242  {
243  case 0:
244  coerceValue(value, _data.enable);
245  break;
246  case 1:
247  coerceValue(value, _data.grouptype);
248  break;
249  case 2:
250  coerceValue(value, _data.group);
251  break;
252 
253  }
254  }
255  break;
256  case 1:
257  coerceValue(value, myRemovegrp);
258  break;
259  case 2:
260  coerceValue(value, mySelectiongroup);
261  break;
262  case 3:
263  coerceValue(value, mySelectiongrouptype);
264  break;
265 
266  }
267  }
268 
269  bool isParmColorRamp(exint idx) const override
270  {
271  switch (idx)
272  {
273 
274  }
275  return false;
276  }
277 
278  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
279  { doGetParmValue(idx, instance, value); }
280  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
281  { doGetParmValue(idx, instance, value); }
282  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
283  { doGetParmValue(idx, instance, value); }
284  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
285  { doGetParmValue(idx, instance, value); }
286  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
287  { doGetParmValue(idx, instance, value); }
288  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
289  { doGetParmValue(idx, instance, value); }
290  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
291  { doGetParmValue(idx, instance, value); }
292  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
293  { doGetParmValue(idx, instance, value); }
294  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
295  { doGetParmValue(idx, instance, value); }
296  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
297  { doGetParmValue(idx, instance, value); }
298  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
299  { doGetParmValue(idx, instance, value); }
300 
301  template <typename T>
302  void
303  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
304  {
305  if (idx.size() < 1)
306  return;
307  UT_ASSERT(idx.size() == instance.size()+1);
308  if (idx.size() != instance.size()+1)
309  return;
310  switch (idx[0])
311  {
312  case 0:
313  if (idx.size() == 1)
314  {
315  exint newsize;
316  coerceValue(newsize, value);
317  if (newsize < 0) newsize = 0;
318  myDeletions.setSize(newsize);
319  }
320  else
321  {
322  if (instance[0] < 0)
323  return;
324  myDeletions.setSizeIfNeeded(instance[0]+1);
325  auto && _data = myDeletions(instance[0]);
326  switch (idx[1])
327  {
328  case 0:
329  coerceValue(_data.enable, value);
330  break;
331  case 1:
332  coerceValue(_data.grouptype, value);
333  break;
334  case 2:
335  coerceValue(_data.group, value);
336  break;
337 
338  }
339  }
340  break;
341  case 1:
342  coerceValue(myRemovegrp, ( ( value ) ));
343  break;
344  case 2:
345  coerceValue(mySelectiongroup, ( ( value ) ));
346  break;
347  case 3:
348  coerceValue(mySelectiongrouptype, clampMinValue(0, clampMaxValue(4, value ) ));
349  break;
350 
351  }
352  }
353 
354  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
355  { doSetParmValue(idx, instance, value); }
356  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
357  { doSetParmValue(idx, instance, value); }
358  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
359  { doSetParmValue(idx, instance, value); }
360  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
361  { doSetParmValue(idx, instance, value); }
362  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
363  { doSetParmValue(idx, instance, value); }
364  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
365  { doSetParmValue(idx, instance, value); }
366  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
367  { doSetParmValue(idx, instance, value); }
368  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
369  { doSetParmValue(idx, instance, value); }
370  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
371  { doSetParmValue(idx, instance, value); }
372  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
373  { doSetParmValue(idx, instance, value); }
374  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
375  { doSetParmValue(idx, instance, value); }
376 
377  exint getNestNumParms(TempIndex idx) const override
378  {
379  if (idx.size() == 0)
380  return 4;
381  switch (idx[0])
382  {
383  case 0:
384  return 3;
385 
386  }
387  // Invalid
388  return 0;
389  }
390 
391  const char *getNestParmName(TempIndex fieldnum) const override
392  {
393  if (fieldnum.size() < 1)
394  return 0;
395  switch (fieldnum[0])
396  {
397  case 0:
398  if (fieldnum.size() == 1)
399  return "deletions";
400  switch (fieldnum[1])
401  {
402  case 0:
403  return "enable#";
404  case 1:
405  return "grouptype#";
406  case 2:
407  return "group#";
408 
409  }
410  return 0;
411  case 1:
412  return "removegrp";
413  case 2:
414  return "selectiongroup";
415  case 3:
416  return "selectiongrouptype";
417 
418  }
419  return 0;
420  }
421 
422  ParmType getNestParmType(TempIndex fieldnum) const override
423  {
424  if (fieldnum.size() < 1)
425  return PARM_UNSUPPORTED;
426  switch (fieldnum[0])
427  {
428  case 0:
429  if (fieldnum.size() == 1)
430  return PARM_MULTIPARM;
431  switch (fieldnum[1])
432  {
433  case 0:
434  return PARM_INTEGER;
435  case 1:
436  return PARM_INTEGER;
437  case 2:
438  return PARM_STRING;
439 
440  }
441  return PARM_UNSUPPORTED;
442  case 1:
443  return PARM_INTEGER;
444  case 2:
445  return PARM_STRING;
446  case 3:
447  return PARM_INTEGER;
448 
449  }
450  return PARM_UNSUPPORTED;
451  }
452 
453  // Boiler plate to load individual types.
454  static void loadData(UT_IStream &is, int64 &v)
455  { is.bread(&v, 1); }
456  static void loadData(UT_IStream &is, bool &v)
457  { int64 iv; is.bread(&iv, 1); v = iv; }
458  static void loadData(UT_IStream &is, fpreal64 &v)
459  { is.bread<fpreal64>(&v, 1); }
460  static void loadData(UT_IStream &is, UT_Vector2D &v)
461  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
462  static void loadData(UT_IStream &is, UT_Vector3D &v)
463  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
464  is.bread<fpreal64>(&v.z(), 1); }
465  static void loadData(UT_IStream &is, UT_Vector4D &v)
466  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
467  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
468  static void loadData(UT_IStream &is, UT_Matrix2D &v)
469  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
470  static void loadData(UT_IStream &is, UT_Matrix3D &v)
471  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
472  static void loadData(UT_IStream &is, UT_Matrix4D &v)
473  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
474  static void loadData(UT_IStream &is, UT_Vector2I &v)
475  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
476  static void loadData(UT_IStream &is, UT_Vector3I &v)
477  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
478  is.bread<int64>(&v.z(), 1); }
479  static void loadData(UT_IStream &is, UT_Vector4I &v)
480  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
481  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
483  { is.bread(v); }
485  { UT_StringHolder rampdata;
486  loadData(is, rampdata);
487  if (rampdata.isstring())
488  {
489  v.reset(new UT_Ramp());
490  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
491  v->load(istr);
492  }
493  else v.reset();
494  }
497  loadData(is, data);
498  if (data.isstring())
499  {
500  // Find the data type.
501  const char *colon = UT_StringWrap(data).findChar(':');
502  if (colon)
503  {
504  int typelen = colon - data.buffer();
506  type.strncpy(data.buffer(), typelen);
507  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
508 
509  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
510  }
511  }
512  else v.reset();
513  }
514 
515  static void saveData(std::ostream &os, int64 v)
516  { UTwrite(os, &v); }
517  static void saveData(std::ostream &os, bool v)
518  { int64 iv = v; UTwrite(os, &iv); }
519  static void saveData(std::ostream &os, fpreal64 v)
520  { UTwrite<fpreal64>(os, &v); }
521  static void saveData(std::ostream &os, UT_Vector2D v)
522  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
523  static void saveData(std::ostream &os, UT_Vector3D v)
524  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
525  UTwrite<fpreal64>(os, &v.z()); }
526  static void saveData(std::ostream &os, UT_Vector4D v)
527  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
528  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
529  static void saveData(std::ostream &os, UT_Matrix2D v)
531  static void saveData(std::ostream &os, UT_Matrix3D v)
533  static void saveData(std::ostream &os, UT_Matrix4D v)
535  static void saveData(std::ostream &os, UT_StringHolder s)
536  { UT_StringWrap(s).saveBinary(os); }
537  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
539  UT_OStringStream ostr;
540  if (s) s->save(ostr);
541  result = ostr.str();
542  saveData(os, result);
543  }
544  static void saveData(std::ostream &os, PRM_DataItemHandle s)
546  UT_OStringStream ostr;
547  if (s)
548  {
549  ostr << s->getDataTypeToken();
550  ostr << ":";
551  s->saveBinary(ostr);
552  }
553  result = ostr.str();
554  saveData(os, result);
555  }
556 
557 
558  void save(std::ostream &os) const
559  {
560  int32 v = version();
561  UTwrite(os, &v);
562  {
563  int64 length = myDeletions.entries();
564  UTwrite(os, &length);
565  for (exint i = 0; i < length; i++)
566  {
567  auto && _curentry = myDeletions(i);
568  (void) _curentry;
569  saveData(os, _curentry.enable);
570  saveData(os, _curentry.grouptype);
571  saveData(os, _curentry.group);
572 
573  }
574  }
575  saveData(os, myRemovegrp);
576  saveData(os, mySelectiongroup);
577  saveData(os, mySelectiongrouptype);
578 
579  }
580 
581  bool load(UT_IStream &is)
582  {
583  int32 v;
584  is.bread(&v, 1);
585  if (version() != v)
586  {
587  // Fail incompatible versions
588  return false;
589  }
590  {
591  int64 length;
592  is.read(&length, 1);
593  myDeletions.setSize(length);
594  for (exint i = 0; i < length; i++)
595  {
596  auto && _curentry = myDeletions(i);
597  (void) _curentry;
598  loadData(is, _curentry.enable);
599  loadData(is, _curentry.grouptype);
600  loadData(is, _curentry.group);
601 
602  }
603  }
604  loadData(is, myRemovegrp);
605  loadData(is, mySelectiongroup);
606  loadData(is, mySelectiongrouptype);
607 
608  return true;
609  }
610 
611  const UT_Array<Deletions> &getDeletions() const { return myDeletions; }
612 void setDeletions(const UT_Array<Deletions> &val) { myDeletions = val; }
613  exint opDeletions(const SOP_NodeVerb::CookParms &cookparms) const
614  {
615  SOP_Node *thissop = cookparms.getNode();
616  if (!thissop) return getDeletions().entries();
617  exint result;
618  OP_Utils::evalOpParm(result, thissop, "deletions", cookparms.getCookTime(), 0);
619  return result;
620  }
621  bool opDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
622  { return opinstDeletions_enable(cookparms, &_idx); }
623  bool opinstDeletions_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
624  {
625  SOP_Node *thissop = cookparms.getNode();
626  if (!thissop) return (myDeletions(_idx[0]).enable);
627  int _parmidx[2-1];
628  _parmidx[1-1] = _idx[1-1] + 1;
629 
630  bool result;
631  OP_Utils::evalOpParmInst(result, thissop, "enable#", _parmidx, cookparms.getCookTime(), 0, 2-1);
632  return (result);
633  }
634  int64 opDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
635  { return opinstDeletions_grouptype(cookparms, &_idx); }
636  int64 opinstDeletions_grouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
637  {
638  SOP_Node *thissop = cookparms.getNode();
639  if (!thissop) return (myDeletions(_idx[0]).grouptype);
640  int _parmidx[2-1];
641  _parmidx[1-1] = _idx[1-1] + 1;
642 
643  int64 result;
644  OP_Utils::evalOpParmInst(result, thissop, "grouptype#", _parmidx, cookparms.getCookTime(), 0, 2-1);
645  return (result);
646  }
648  { return opinstDeletions_group(cookparms, &_idx); }
649  UT_StringHolder opinstDeletions_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
650  {
651  SOP_Node *thissop = cookparms.getNode();
652  if (!thissop) return (myDeletions(_idx[0]).group);
653  int _parmidx[2-1];
654  _parmidx[1-1] = _idx[1-1] + 1;
655 
657  OP_Utils::evalOpParmInst(result, thissop, "group#", _parmidx, cookparms.getCookTime(), 0, 2-1);
658  return (result);
659  }
660 
661  bool getRemovegrp() const { return myRemovegrp; }
662  void setRemovegrp(bool val) { myRemovegrp = val; }
663  bool opRemovegrp(const SOP_NodeVerb::CookParms &cookparms) const
664  {
665  SOP_Node *thissop = cookparms.getNode();
666  if (!thissop) return getRemovegrp();
667  bool result;
668  OP_Utils::evalOpParm(result, thissop, "removegrp", cookparms.getCookTime(), 0);
669  return result;
670  }
671  const UT_StringHolder & getSelectiongroup() const { return mySelectiongroup; }
672  void setSelectiongroup(const UT_StringHolder & val) { mySelectiongroup = val; }
674  {
675  SOP_Node *thissop = cookparms.getNode();
676  if (!thissop) return getSelectiongroup();
678  OP_Utils::evalOpParm(result, thissop, "selectiongroup", cookparms.getCookTime(), 0);
679  return result;
680  }
681  Selectiongrouptype getSelectiongrouptype() const { return Selectiongrouptype(mySelectiongrouptype); }
682  void setSelectiongrouptype(Selectiongrouptype val) { mySelectiongrouptype = int64(val); }
684  {
685  SOP_Node *thissop = cookparms.getNode();
686  if (!thissop) return getSelectiongrouptype();
687  int64 result;
688  OP_Utils::evalOpParm(result, thissop, "selectiongrouptype", cookparms.getCookTime(), 0);
689  return Selectiongrouptype(result);
690  }
691 
692 private:
693  UT_Array<Deletions> myDeletions;
694  bool myRemovegrp;
695  UT_StringHolder mySelectiongroup;
696  int64 mySelectiongrouptype;
697 
698 };
type
Definition: core.h:556
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:63
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
GLsizei const GLfloat * value
Definition: glcorearb.h:824
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:622
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
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:303
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:655
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:278
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:96
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
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
static void loadData(UT_IStream &is, UT_Matrix4D &v)
#define SOP_API
Definition: SOP_API.h:10
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
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:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
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)
static void loadData(UT_IStream &is, fpreal64 &v)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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
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