HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Delete.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_DeleteEnums
24 {
25  enum class Negate
26  {
27  DELE = 0,
28  KEEP
29  };
30 
32  getToken(Negate enum_value)
33  {
34  using namespace UT::Literal;
35  switch (enum_value) {
36  case Negate::DELE: return "dele"_sh;
37  case Negate::KEEP: return "keep"_sh;
38  default: UT_ASSERT(false); return ""_sh;
39  }
40  }
41 
42  enum class Entity
43  {
44  PRIMITIVE = 0,
45  POINT,
46  EDGE
47  };
48 
50  getToken(Entity enum_value)
51  {
52  using namespace UT::Literal;
53  switch (enum_value) {
54  case Entity::PRIMITIVE: return "primitive"_sh;
55  case Entity::POINT: return "point"_sh;
56  case Entity::EDGE: return "edge"_sh;
57  default: UT_ASSERT(false); return ""_sh;
58  }
59  }
60 
61  enum class Groupop
62  {
63  PATTERN = 0,
64  RANGE,
65  FILTER
66  };
67 
69  getToken(Groupop enum_value)
70  {
71  using namespace UT::Literal;
72  switch (enum_value) {
73  case Groupop::PATTERN: return "pattern"_sh;
74  case Groupop::RANGE: return "range"_sh;
75  case Groupop::FILTER: return "filter"_sh;
76  default: UT_ASSERT(false); return ""_sh;
77  }
78  }
79 
80  enum class Boundtype
81  {
82  USEBBOX = 0,
84  };
85 
87  getToken(Boundtype enum_value)
88  {
89  using namespace UT::Literal;
90  switch (enum_value) {
91  case Boundtype::USEBBOX: return "usebbox"_sh;
92  case Boundtype::USEBSPHERE: return "usebsphere"_sh;
93  default: UT_ASSERT(false); return ""_sh;
94  }
95  }
96 
97 }
98 
99 
101 {
102 public:
103  static int version() { return 1; }
104 
106  {
107  myGroup = ""_UTsh;
108  myNegate = 0;
109  myEntity = 0;
110  myAffectnumber = true;
111  myGroupop = 0;
112  myFilter = 1;
113  myPattern = "!*"_UTsh;
114  myRange = UT_Vector2I(0,0);
115  mySelect = UT_Vector2I(1,2);
116  myAffectvolume = false;
117  myBoundtype = 0;
118  mySize = UT_Vector3D(1,1,1);
119  myT = UT_Vector3D(0,0,0);
120  myAffectnormal = false;
121  myCamerapath = ""_UTsh;
122  myAffectdegenerate = false;
123  myDegenerate = false;
124  myZaf = false;
125  myDoopen = false;
126  myTol = 0.001;
127  myUserandom = false;
128  myGlobalseed = 1;
129  myUseseedattrib = false;
130  mySeedattrib = "id"_UTsh;
131  myPercent = 50;
132  myRemovegrp = true;
133  myKeeppoints = false;
134  myGeotype = 0;
135  myDir = UT_Vector3D(0,0,1);
136  myAngle = 180;
137 
138  }
139 
140  explicit SOP_DeleteParms(const SOP_DeleteParms &) = default;
141  SOP_DeleteParms &operator=(const SOP_DeleteParms &) = default;
142  SOP_DeleteParms(SOP_DeleteParms &&) noexcept = default;
143  SOP_DeleteParms &operator=(SOP_DeleteParms &&) noexcept = default;
144 
145  ~SOP_DeleteParms() override {}
146 
147  bool operator==(const SOP_DeleteParms &src) const
148  {
149  if (myGroup != src.myGroup) return false;
150  if (myNegate != src.myNegate) return false;
151  if (myEntity != src.myEntity) return false;
152  if (myAffectnumber != src.myAffectnumber) return false;
153  if (myGroupop != src.myGroupop) return false;
154  if (myFilter != src.myFilter) return false;
155  if (myPattern != src.myPattern) return false;
156  if (myRange != src.myRange) return false;
157  if (mySelect != src.mySelect) return false;
158  if (myAffectvolume != src.myAffectvolume) return false;
159  if (myBoundtype != src.myBoundtype) return false;
160  if (mySize != src.mySize) return false;
161  if (myT != src.myT) return false;
162  if (myAffectnormal != src.myAffectnormal) return false;
163  if (myCamerapath != src.myCamerapath) return false;
164  if (myAffectdegenerate != src.myAffectdegenerate) return false;
165  if (myDegenerate != src.myDegenerate) return false;
166  if (myZaf != src.myZaf) return false;
167  if (myDoopen != src.myDoopen) return false;
168  if (myTol != src.myTol) return false;
169  if (myUserandom != src.myUserandom) return false;
170  if (myGlobalseed != src.myGlobalseed) return false;
171  if (myUseseedattrib != src.myUseseedattrib) return false;
172  if (mySeedattrib != src.mySeedattrib) return false;
173  if (myPercent != src.myPercent) return false;
174  if (myRemovegrp != src.myRemovegrp) return false;
175  if (myKeeppoints != src.myKeeppoints) return false;
176  if (myGeotype != src.myGeotype) return false;
177  if (myDir != src.myDir) return false;
178  if (myAngle != src.myAngle) return false;
179 
180  return true;
181  }
182  bool operator!=(const SOP_DeleteParms &src) const
183  {
184  return !operator==(src);
185  }
190 
191 
192 
193  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
194  {
195  myGroup = ""_UTsh;
196  if (true)
197  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
198  myNegate = 0;
199  if (true)
200  graph->evalOpParm(myNegate, nodeidx, "negate", time, 0);
201  myEntity = 0;
202  if (true)
203  graph->evalOpParm(myEntity, nodeidx, "entity", time, 0);
204  myAffectnumber = true;
205  if (true)
206  graph->evalOpParm(myAffectnumber, nodeidx, "affectnumber", time, 0);
207  myGroupop = 0;
208  if (true && ( (true&&!(((getAffectnumber()==0)))) ) )
209  graph->evalOpParm(myGroupop, nodeidx, "groupop", time, 0);
210  myFilter = 1;
211  if (true && ( (true&&!(((getAffectnumber()==0))||((int64(getGroupop())!=2)))) ) )
212  graph->evalOpParm(myFilter, nodeidx, "filter", time, 0);
213  myPattern = "!*"_UTsh;
214  if (true && ( (true&&!(((getAffectnumber()==0))||((int64(getGroupop())!=0)))) ) )
215  graph->evalOpParm(myPattern, nodeidx, "pattern", time, 0);
216  myRange = UT_Vector2I(0,0);
217  if (true && ( (true&&!(((getAffectnumber()==0))||((int64(getGroupop())!=1)))) ) )
218  graph->evalOpParm(myRange, nodeidx, "range", time, 0);
219  mySelect = UT_Vector2I(1,2);
220  if (true && ( (true&&!(((getAffectnumber()==0))||((int64(getGroupop())!=1)))) ) )
221  graph->evalOpParm(mySelect, nodeidx, "select", time, 0);
222  myAffectvolume = false;
223  if (true)
224  graph->evalOpParm(myAffectvolume, nodeidx, "affectvolume", time, 0);
225  myBoundtype = 0;
226  if (true && ( (true&&!(((getAffectvolume()==0)))) ) )
227  graph->evalOpParm(myBoundtype, nodeidx, "boundtype", time, 0);
228  mySize = UT_Vector3D(1,1,1);
229  if (true && ( (true&&!(((getAffectvolume()==0)))) ) )
230  graph->evalOpParm(mySize, nodeidx, "size", time, 0);
231  myT = UT_Vector3D(0,0,0);
232  if (true && ( (true&&!(((getAffectvolume()==0)))) ) )
233  graph->evalOpParm(myT, nodeidx, "t", time, 0);
234  myAffectnormal = false;
235  if (true)
236  graph->evalOpParm(myAffectnormal, nodeidx, "affectnormal", time, 0);
237  myCamerapath = ""_UTsh;
238  if (true && ( (true&&!(((getAffectnormal()==0)))) ) )
239  graph->evalOpParm(myCamerapath, nodeidx, "camerapath", time, 0);
240  myAffectdegenerate = false;
241  if (true)
242  graph->evalOpParm(myAffectdegenerate, nodeidx, "affectdegenerate", time, 0);
243  myDegenerate = false;
244  if (true && ( (true&&!(((getAffectdegenerate()==0)))) ) )
245  graph->evalOpParm(myDegenerate, nodeidx, "degenerate", time, 0);
246  myZaf = false;
247  if (true && ( (true&&!(((getAffectdegenerate()==0))||((int64(getEntity())!=0)))) ) )
248  graph->evalOpParm(myZaf, nodeidx, "zaf", time, 0);
249  myDoopen = false;
250  if (true && ( (true&&!(((getAffectdegenerate()==0))||((int64(getEntity())!=0))||((getZaf()==0)))) ) )
251  graph->evalOpParm(myDoopen, nodeidx, "doopen", time, 0);
252  myTol = 0.001;
253  if (true && ( (true&&!(((getAffectdegenerate()==0))||((getZaf()==0)&&(getDegenerate()==0)))) ) )
254  graph->evalOpParm(myTol, nodeidx, "tol", time, 0);
255  myUserandom = false;
256  if (true)
257  graph->evalOpParm(myUserandom, nodeidx, "userandom", time, 0);
258  myGlobalseed = 1;
259  if (true && ( (true&&!(((getUserandom()==0)))) ) )
260  graph->evalOpParm(myGlobalseed, nodeidx, "globalseed", time, 0);
261  myUseseedattrib = false;
262  if (true && ( (true&&!(((getUserandom()==0)))) ) )
263  graph->evalOpParm(myUseseedattrib, nodeidx, "useseedattrib", time, 0);
264  mySeedattrib = "id"_UTsh;
265  if (true && ( (true&&!(((getUserandom()==0))||((getUseseedattrib()==0)))) ) )
266  graph->evalOpParm(mySeedattrib, nodeidx, "seedattrib", time, 0);
267  myPercent = 50;
268  if (true && ( (true&&!(((getUserandom()==0)))) ) )
269  graph->evalOpParm(myPercent, nodeidx, "percent", time, 0);
270  myRemovegrp = true;
271  if (true)
272  graph->evalOpParm(myRemovegrp, nodeidx, "removegrp", time, 0);
273  myKeeppoints = false;
274  if (true && ( (true&&!(((int64(getEntity())!=0)))) ) )
275  graph->evalOpParm(myKeeppoints, nodeidx, "keeppoints", time, 0);
276  myGeotype = 0;
277  if (true && ( (true&&!(((getAffectnumber()==0)&&(getAffectvolume()==0)&&(getAffectnormal()==0)&&(getAffectdegenerate()==0)))) ) )
278  graph->evalOpParm(myGeotype, nodeidx, "geotype", time, 0);
279  myDir = UT_Vector3D(0,0,1);
280  if (true && ( (true&&!(((getAffectnormal()==0))||((getCamerapath()!="")))) ) )
281  graph->evalOpParm(myDir, nodeidx, "dir", time, 0);
282  myAngle = 180;
283  if (true && ( (true&&!(((getAffectnormal()==0))||((getCamerapath()!="")))) ) )
284  graph->evalOpParm(myAngle, nodeidx, "angle", time, 0);
285 
286  }
287 
288 
289  void loadFromOpSubclass(const LoadParms &loadparms) override
290  {
291  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
292  }
293 
294 
295  void copyFrom(const OP_NodeParms *src) override
296  {
297  *this = *((const SOP_DeleteParms *)src);
298  }
299 
300  template <typename T>
301  void
302  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
303  {
304  if (idx.size() < 1)
305  return;
306  UT_ASSERT(idx.size() == instance.size()+1);
307  if (idx.size() != instance.size()+1)
308  return;
309  switch (idx[0])
310  {
311  case 0:
312  coerceValue(value, myGroup);
313  break;
314  case 1:
315  coerceValue(value, myNegate);
316  break;
317  case 2:
318  coerceValue(value, myEntity);
319  break;
320  case 3:
321  coerceValue(value, myAffectnumber);
322  break;
323  case 4:
324  coerceValue(value, myGroupop);
325  break;
326  case 5:
327  coerceValue(value, myFilter);
328  break;
329  case 6:
330  coerceValue(value, myPattern);
331  break;
332  case 7:
333  coerceValue(value, myRange);
334  break;
335  case 8:
336  coerceValue(value, mySelect);
337  break;
338  case 9:
339  coerceValue(value, myAffectvolume);
340  break;
341  case 10:
342  coerceValue(value, myBoundtype);
343  break;
344  case 11:
345  coerceValue(value, mySize);
346  break;
347  case 12:
348  coerceValue(value, myT);
349  break;
350  case 13:
351  coerceValue(value, myAffectnormal);
352  break;
353  case 14:
354  coerceValue(value, myCamerapath);
355  break;
356  case 15:
357  coerceValue(value, myAffectdegenerate);
358  break;
359  case 16:
360  coerceValue(value, myDegenerate);
361  break;
362  case 17:
363  coerceValue(value, myZaf);
364  break;
365  case 18:
366  coerceValue(value, myDoopen);
367  break;
368  case 19:
369  coerceValue(value, myTol);
370  break;
371  case 20:
372  coerceValue(value, myUserandom);
373  break;
374  case 21:
375  coerceValue(value, myGlobalseed);
376  break;
377  case 22:
378  coerceValue(value, myUseseedattrib);
379  break;
380  case 23:
381  coerceValue(value, mySeedattrib);
382  break;
383  case 24:
384  coerceValue(value, myPercent);
385  break;
386  case 25:
387  coerceValue(value, myRemovegrp);
388  break;
389  case 26:
390  coerceValue(value, myKeeppoints);
391  break;
392  case 27:
393  coerceValue(value, myGeotype);
394  break;
395  case 28:
396  coerceValue(value, myDir);
397  break;
398  case 29:
399  coerceValue(value, myAngle);
400  break;
401 
402  }
403  }
404 
405  bool isParmColorRamp(exint idx) const override
406  {
407  switch (idx)
408  {
409 
410  }
411  return false;
412  }
413 
414  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
415  { doGetParmValue(idx, instance, value); }
416  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
417  { doGetParmValue(idx, instance, value); }
418  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
419  { doGetParmValue(idx, instance, value); }
420  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
421  { doGetParmValue(idx, instance, value); }
422  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
423  { doGetParmValue(idx, instance, value); }
424  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
425  { doGetParmValue(idx, instance, value); }
426  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
427  { doGetParmValue(idx, instance, value); }
428  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
429  { doGetParmValue(idx, instance, value); }
430  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
431  { doGetParmValue(idx, instance, value); }
432  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
433  { doGetParmValue(idx, instance, value); }
434  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
435  { doGetParmValue(idx, instance, value); }
436 
437  template <typename T>
438  void
439  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
440  {
441  if (idx.size() < 1)
442  return;
443  UT_ASSERT(idx.size() == instance.size()+1);
444  if (idx.size() != instance.size()+1)
445  return;
446  switch (idx[0])
447  {
448  case 0:
449  coerceValue(myGroup, ( ( value ) ));
450  break;
451  case 1:
452  coerceValue(myNegate, clampMinValue(0, clampMaxValue(1, value ) ));
453  break;
454  case 2:
455  coerceValue(myEntity, clampMinValue(0, clampMaxValue(2, value ) ));
456  break;
457  case 3:
458  coerceValue(myAffectnumber, ( ( value ) ));
459  break;
460  case 4:
461  coerceValue(myGroupop, clampMinValue(0, clampMaxValue(2, value ) ));
462  break;
463  case 5:
464  coerceValue(myFilter, ( ( value ) ));
465  break;
466  case 6:
467  coerceValue(myPattern, ( ( value ) ));
468  break;
469  case 7:
470  coerceValue(myRange, clampMinValue(0, ( value ) ));
471  break;
472  case 8:
473  coerceValue(mySelect, clampMinValue(0, ( value ) ));
474  break;
475  case 9:
476  coerceValue(myAffectvolume, ( ( value ) ));
477  break;
478  case 10:
479  coerceValue(myBoundtype, clampMinValue(0, clampMaxValue(1, value ) ));
480  break;
481  case 11:
482  coerceValue(mySize, ( ( value ) ));
483  break;
484  case 12:
485  coerceValue(myT, ( ( value ) ));
486  break;
487  case 13:
488  coerceValue(myAffectnormal, ( ( value ) ));
489  break;
490  case 14:
491  coerceValue(myCamerapath, ( ( value ) ));
492  break;
493  case 15:
494  coerceValue(myAffectdegenerate, ( ( value ) ));
495  break;
496  case 16:
497  coerceValue(myDegenerate, ( ( value ) ));
498  break;
499  case 17:
500  coerceValue(myZaf, ( ( value ) ));
501  break;
502  case 18:
503  coerceValue(myDoopen, ( ( value ) ));
504  break;
505  case 19:
506  coerceValue(myTol, clampMinValue(0, ( value ) ));
507  break;
508  case 20:
509  coerceValue(myUserandom, ( ( value ) ));
510  break;
511  case 21:
512  coerceValue(myGlobalseed, ( ( value ) ));
513  break;
514  case 22:
515  coerceValue(myUseseedattrib, ( ( value ) ));
516  break;
517  case 23:
518  coerceValue(mySeedattrib, ( ( value ) ));
519  break;
520  case 24:
521  coerceValue(myPercent, clampMinValue(0, clampMaxValue(100, value ) ));
522  break;
523  case 25:
524  coerceValue(myRemovegrp, ( ( value ) ));
525  break;
526  case 26:
527  coerceValue(myKeeppoints, ( ( value ) ));
528  break;
529  case 27:
530  coerceValue(myGeotype, ( ( value ) ));
531  break;
532  case 28:
533  coerceValue(myDir, ( ( value ) ));
534  break;
535  case 29:
536  coerceValue(myAngle, clampMinValue(0, clampMaxValue(180, value ) ));
537  break;
538 
539  }
540  }
541 
542  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
543  { doSetParmValue(idx, instance, value); }
544  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
545  { doSetParmValue(idx, instance, value); }
546  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
547  { doSetParmValue(idx, instance, value); }
548  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
549  { doSetParmValue(idx, instance, value); }
550  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
551  { doSetParmValue(idx, instance, value); }
552  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
553  { doSetParmValue(idx, instance, value); }
554  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
555  { doSetParmValue(idx, instance, value); }
556  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
557  { doSetParmValue(idx, instance, value); }
558  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
559  { doSetParmValue(idx, instance, value); }
560  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
561  { doSetParmValue(idx, instance, value); }
562  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
563  { doSetParmValue(idx, instance, value); }
564 
565  exint getNestNumParms(TempIndex idx) const override
566  {
567  if (idx.size() == 0)
568  return 30;
569  switch (idx[0])
570  {
571 
572  }
573  // Invalid
574  return 0;
575  }
576 
577  const char *getNestParmName(TempIndex fieldnum) const override
578  {
579  if (fieldnum.size() < 1)
580  return 0;
581  switch (fieldnum[0])
582  {
583  case 0:
584  return "group";
585  case 1:
586  return "negate";
587  case 2:
588  return "entity";
589  case 3:
590  return "affectnumber";
591  case 4:
592  return "groupop";
593  case 5:
594  return "filter";
595  case 6:
596  return "pattern";
597  case 7:
598  return "range";
599  case 8:
600  return "select";
601  case 9:
602  return "affectvolume";
603  case 10:
604  return "boundtype";
605  case 11:
606  return "size";
607  case 12:
608  return "t";
609  case 13:
610  return "affectnormal";
611  case 14:
612  return "camerapath";
613  case 15:
614  return "affectdegenerate";
615  case 16:
616  return "degenerate";
617  case 17:
618  return "zaf";
619  case 18:
620  return "doopen";
621  case 19:
622  return "tol";
623  case 20:
624  return "userandom";
625  case 21:
626  return "globalseed";
627  case 22:
628  return "useseedattrib";
629  case 23:
630  return "seedattrib";
631  case 24:
632  return "percent";
633  case 25:
634  return "removegrp";
635  case 26:
636  return "keeppoints";
637  case 27:
638  return "geotype";
639  case 28:
640  return "dir";
641  case 29:
642  return "angle";
643 
644  }
645  return 0;
646  }
647 
648  ParmType getNestParmType(TempIndex fieldnum) const override
649  {
650  if (fieldnum.size() < 1)
651  return PARM_UNSUPPORTED;
652  switch (fieldnum[0])
653  {
654  case 0:
655  return PARM_STRING;
656  case 1:
657  return PARM_INTEGER;
658  case 2:
659  return PARM_INTEGER;
660  case 3:
661  return PARM_INTEGER;
662  case 4:
663  return PARM_INTEGER;
664  case 5:
665  return PARM_INTEGER;
666  case 6:
667  return PARM_STRING;
668  case 7:
669  return PARM_VECTOR2;
670  case 8:
671  return PARM_VECTOR2;
672  case 9:
673  return PARM_INTEGER;
674  case 10:
675  return PARM_INTEGER;
676  case 11:
677  return PARM_VECTOR3;
678  case 12:
679  return PARM_VECTOR3;
680  case 13:
681  return PARM_INTEGER;
682  case 14:
683  return PARM_STRING;
684  case 15:
685  return PARM_INTEGER;
686  case 16:
687  return PARM_INTEGER;
688  case 17:
689  return PARM_INTEGER;
690  case 18:
691  return PARM_INTEGER;
692  case 19:
693  return PARM_FLOAT;
694  case 20:
695  return PARM_INTEGER;
696  case 21:
697  return PARM_FLOAT;
698  case 22:
699  return PARM_INTEGER;
700  case 23:
701  return PARM_STRING;
702  case 24:
703  return PARM_FLOAT;
704  case 25:
705  return PARM_INTEGER;
706  case 26:
707  return PARM_INTEGER;
708  case 27:
709  return PARM_INTEGER;
710  case 28:
711  return PARM_VECTOR3;
712  case 29:
713  return PARM_FLOAT;
714 
715  }
716  return PARM_UNSUPPORTED;
717  }
718 
719  // Boiler plate to load individual types.
720  static void loadData(UT_IStream &is, int64 &v)
721  { is.bread(&v, 1); }
722  static void loadData(UT_IStream &is, bool &v)
723  { int64 iv; is.bread(&iv, 1); v = iv; }
724  static void loadData(UT_IStream &is, fpreal64 &v)
725  { is.bread<fpreal64>(&v, 1); }
726  static void loadData(UT_IStream &is, UT_Vector2D &v)
727  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
728  static void loadData(UT_IStream &is, UT_Vector3D &v)
729  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
730  is.bread<fpreal64>(&v.z(), 1); }
731  static void loadData(UT_IStream &is, UT_Vector4D &v)
732  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
733  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
734  static void loadData(UT_IStream &is, UT_Matrix2D &v)
735  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
736  static void loadData(UT_IStream &is, UT_Matrix3D &v)
737  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
738  static void loadData(UT_IStream &is, UT_Matrix4D &v)
739  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
740  static void loadData(UT_IStream &is, UT_Vector2I &v)
741  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
742  static void loadData(UT_IStream &is, UT_Vector3I &v)
743  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
744  is.bread<int64>(&v.z(), 1); }
745  static void loadData(UT_IStream &is, UT_Vector4I &v)
746  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
747  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
749  { is.bread(v); }
751  { UT_StringHolder rampdata;
752  loadData(is, rampdata);
753  if (rampdata.isstring())
754  {
755  v.reset(new UT_Ramp());
756  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
757  v->load(istr);
758  }
759  else v.reset();
760  }
763  loadData(is, data);
764  if (data.isstring())
765  {
766  // Find the data type.
767  const char *colon = UT_StringWrap(data).findChar(':');
768  if (colon)
769  {
770  int typelen = colon - data.buffer();
772  type.strncpy(data.buffer(), typelen);
773  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
774 
775  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
776  }
777  }
778  else v.reset();
779  }
780 
781  static void saveData(std::ostream &os, int64 v)
782  { UTwrite(os, &v); }
783  static void saveData(std::ostream &os, bool v)
784  { int64 iv = v; UTwrite(os, &iv); }
785  static void saveData(std::ostream &os, fpreal64 v)
786  { UTwrite<fpreal64>(os, &v); }
787  static void saveData(std::ostream &os, UT_Vector2D v)
788  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
789  static void saveData(std::ostream &os, UT_Vector3D v)
790  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
791  UTwrite<fpreal64>(os, &v.z()); }
792  static void saveData(std::ostream &os, UT_Vector4D v)
793  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
794  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
795  static void saveData(std::ostream &os, UT_Matrix2D v)
797  static void saveData(std::ostream &os, UT_Matrix3D v)
799  static void saveData(std::ostream &os, UT_Matrix4D v)
801  static void saveData(std::ostream &os, UT_StringHolder s)
802  { UT_StringWrap(s).saveBinary(os); }
803  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
805  UT_OStringStream ostr;
806  if (s) s->save(ostr);
807  result = ostr.str();
808  saveData(os, result);
809  }
810  static void saveData(std::ostream &os, PRM_DataItemHandle s)
812  UT_OStringStream ostr;
813  if (s)
814  {
815  ostr << s->getDataTypeToken();
816  ostr << ":";
817  s->saveBinary(ostr);
818  }
819  result = ostr.str();
820  saveData(os, result);
821  }
822 
823 
824  void save(std::ostream &os) const
825  {
826  int32 v = version();
827  UTwrite(os, &v);
828  saveData(os, myGroup);
829  saveData(os, myNegate);
830  saveData(os, myEntity);
831  saveData(os, myAffectnumber);
832  saveData(os, myGroupop);
833  saveData(os, myFilter);
834  saveData(os, myPattern);
835  saveData(os, myRange);
836  saveData(os, mySelect);
837  saveData(os, myAffectvolume);
838  saveData(os, myBoundtype);
839  saveData(os, mySize);
840  saveData(os, myT);
841  saveData(os, myAffectnormal);
842  saveData(os, myCamerapath);
843  saveData(os, myAffectdegenerate);
844  saveData(os, myDegenerate);
845  saveData(os, myZaf);
846  saveData(os, myDoopen);
847  saveData(os, myTol);
848  saveData(os, myUserandom);
849  saveData(os, myGlobalseed);
850  saveData(os, myUseseedattrib);
851  saveData(os, mySeedattrib);
852  saveData(os, myPercent);
853  saveData(os, myRemovegrp);
854  saveData(os, myKeeppoints);
855  saveData(os, myGeotype);
856  saveData(os, myDir);
857  saveData(os, myAngle);
858 
859  }
860 
861  bool load(UT_IStream &is)
862  {
863  int32 v;
864  is.bread(&v, 1);
865  if (version() != v)
866  {
867  // Fail incompatible versions
868  return false;
869  }
870  loadData(is, myGroup);
871  loadData(is, myNegate);
872  loadData(is, myEntity);
873  loadData(is, myAffectnumber);
874  loadData(is, myGroupop);
875  loadData(is, myFilter);
876  loadData(is, myPattern);
877  loadData(is, myRange);
878  loadData(is, mySelect);
879  loadData(is, myAffectvolume);
880  loadData(is, myBoundtype);
881  loadData(is, mySize);
882  loadData(is, myT);
883  loadData(is, myAffectnormal);
884  loadData(is, myCamerapath);
885  loadData(is, myAffectdegenerate);
886  loadData(is, myDegenerate);
887  loadData(is, myZaf);
888  loadData(is, myDoopen);
889  loadData(is, myTol);
890  loadData(is, myUserandom);
891  loadData(is, myGlobalseed);
892  loadData(is, myUseseedattrib);
893  loadData(is, mySeedattrib);
894  loadData(is, myPercent);
895  loadData(is, myRemovegrp);
896  loadData(is, myKeeppoints);
897  loadData(is, myGeotype);
898  loadData(is, myDir);
899  loadData(is, myAngle);
900 
901  return true;
902  }
903 
904  const UT_StringHolder & getGroup() const { return myGroup; }
905  void setGroup(const UT_StringHolder & val) { myGroup = val; }
907  {
908  SOP_Node *thissop = cookparms.getNode();
909  if (!thissop) return getGroup();
911  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
912  return result;
913  }
914  Negate getNegate() const { return Negate(myNegate); }
915  void setNegate(Negate val) { myNegate = int64(val); }
916  Negate opNegate(const SOP_NodeVerb::CookParms &cookparms) const
917  {
918  SOP_Node *thissop = cookparms.getNode();
919  if (!thissop) return getNegate();
920  int64 result;
921  OP_Utils::evalOpParm(result, thissop, "negate", cookparms.getCookTime(), 0);
922  return Negate(result);
923  }
924  Entity getEntity() const { return Entity(myEntity); }
925  void setEntity(Entity val) { myEntity = int64(val); }
926  Entity opEntity(const SOP_NodeVerb::CookParms &cookparms) const
927  {
928  SOP_Node *thissop = cookparms.getNode();
929  if (!thissop) return getEntity();
930  int64 result;
931  OP_Utils::evalOpParm(result, thissop, "entity", cookparms.getCookTime(), 0);
932  return Entity(result);
933  }
934  bool getAffectnumber() const { return myAffectnumber; }
935  void setAffectnumber(bool val) { myAffectnumber = val; }
936  bool opAffectnumber(const SOP_NodeVerb::CookParms &cookparms) const
937  {
938  SOP_Node *thissop = cookparms.getNode();
939  if (!thissop) return getAffectnumber();
940  bool result;
941  OP_Utils::evalOpParm(result, thissop, "affectnumber", cookparms.getCookTime(), 0);
942  return result;
943  }
944  Groupop getGroupop() const { return Groupop(myGroupop); }
945  void setGroupop(Groupop val) { myGroupop = int64(val); }
946  Groupop opGroupop(const SOP_NodeVerb::CookParms &cookparms) const
947  {
948  SOP_Node *thissop = cookparms.getNode();
949  if (!thissop) return getGroupop();
950  int64 result;
951  OP_Utils::evalOpParm(result, thissop, "groupop", cookparms.getCookTime(), 0);
952  return Groupop(result);
953  }
954  int64 getFilter() const { return myFilter; }
955  void setFilter(int64 val) { myFilter = val; }
956  int64 opFilter(const SOP_NodeVerb::CookParms &cookparms) const
957  {
958  SOP_Node *thissop = cookparms.getNode();
959  if (!thissop) return getFilter();
960  int64 result;
961  OP_Utils::evalOpParm(result, thissop, "filter", cookparms.getCookTime(), 0);
962  return result;
963  }
964  const UT_StringHolder & getPattern() const { return myPattern; }
965  void setPattern(const UT_StringHolder & val) { myPattern = val; }
967  {
968  SOP_Node *thissop = cookparms.getNode();
969  if (!thissop) return getPattern();
971  OP_Utils::evalOpParm(result, thissop, "pattern", cookparms.getCookTime(), 0);
972  return result;
973  }
974  UT_Vector2I getRange() const { return myRange; }
975  void setRange(UT_Vector2I val) { myRange = val; }
977  {
978  SOP_Node *thissop = cookparms.getNode();
979  if (!thissop) return getRange();
981  OP_Utils::evalOpParm(result, thissop, "range", cookparms.getCookTime(), 0);
982  return result;
983  }
984  UT_Vector2I getSelect() const { return mySelect; }
985  void setSelect(UT_Vector2I val) { mySelect = val; }
987  {
988  SOP_Node *thissop = cookparms.getNode();
989  if (!thissop) return getSelect();
991  OP_Utils::evalOpParm(result, thissop, "select", cookparms.getCookTime(), 0);
992  return result;
993  }
994  bool getAffectvolume() const { return myAffectvolume; }
995  void setAffectvolume(bool val) { myAffectvolume = val; }
996  bool opAffectvolume(const SOP_NodeVerb::CookParms &cookparms) const
997  {
998  SOP_Node *thissop = cookparms.getNode();
999  if (!thissop) return getAffectvolume();
1000  bool result;
1001  OP_Utils::evalOpParm(result, thissop, "affectvolume", cookparms.getCookTime(), 0);
1002  return result;
1003  }
1004  Boundtype getBoundtype() const { return Boundtype(myBoundtype); }
1005  void setBoundtype(Boundtype val) { myBoundtype = int64(val); }
1007  {
1008  SOP_Node *thissop = cookparms.getNode();
1009  if (!thissop) return getBoundtype();
1010  int64 result;
1011  OP_Utils::evalOpParm(result, thissop, "boundtype", cookparms.getCookTime(), 0);
1012  return Boundtype(result);
1013  }
1014  UT_Vector3D getSize() const { return mySize; }
1015  void setSize(UT_Vector3D val) { mySize = val; }
1017  {
1018  SOP_Node *thissop = cookparms.getNode();
1019  if (!thissop) return getSize();
1021  OP_Utils::evalOpParm(result, thissop, "size", cookparms.getCookTime(), 0);
1022  return result;
1023  }
1024  UT_Vector3D getT() const { return myT; }
1025  void setT(UT_Vector3D val) { myT = val; }
1026  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
1027  {
1028  SOP_Node *thissop = cookparms.getNode();
1029  if (!thissop) return getT();
1031  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
1032  return result;
1033  }
1034  bool getAffectnormal() const { return myAffectnormal; }
1035  void setAffectnormal(bool val) { myAffectnormal = val; }
1036  bool opAffectnormal(const SOP_NodeVerb::CookParms &cookparms) const
1037  {
1038  SOP_Node *thissop = cookparms.getNode();
1039  if (!thissop) return getAffectnormal();
1040  bool result;
1041  OP_Utils::evalOpParm(result, thissop, "affectnormal", cookparms.getCookTime(), 0);
1042  return result;
1043  }
1044  const UT_StringHolder & getCamerapath() const { return myCamerapath; }
1045  void setCamerapath(const UT_StringHolder & val) { myCamerapath = val; }
1047  {
1048  SOP_Node *thissop = cookparms.getNode();
1049  if (!thissop) return getCamerapath();
1051  OP_Utils::evalOpParm(result, thissop, "camerapath", cookparms.getCookTime(), 0);
1052  return result;
1053  }
1054  bool getAffectdegenerate() const { return myAffectdegenerate; }
1055  void setAffectdegenerate(bool val) { myAffectdegenerate = val; }
1056  bool opAffectdegenerate(const SOP_NodeVerb::CookParms &cookparms) const
1057  {
1058  SOP_Node *thissop = cookparms.getNode();
1059  if (!thissop) return getAffectdegenerate();
1060  bool result;
1061  OP_Utils::evalOpParm(result, thissop, "affectdegenerate", cookparms.getCookTime(), 0);
1062  return result;
1063  }
1064  bool getDegenerate() const { return myDegenerate; }
1065  void setDegenerate(bool val) { myDegenerate = val; }
1066  bool opDegenerate(const SOP_NodeVerb::CookParms &cookparms) const
1067  {
1068  SOP_Node *thissop = cookparms.getNode();
1069  if (!thissop) return getDegenerate();
1070  bool result;
1071  OP_Utils::evalOpParm(result, thissop, "degenerate", cookparms.getCookTime(), 0);
1072  return result;
1073  }
1074  bool getZaf() const { return myZaf; }
1075  void setZaf(bool val) { myZaf = val; }
1076  bool opZaf(const SOP_NodeVerb::CookParms &cookparms) const
1077  {
1078  SOP_Node *thissop = cookparms.getNode();
1079  if (!thissop) return getZaf();
1080  bool result;
1081  OP_Utils::evalOpParm(result, thissop, "zaf", cookparms.getCookTime(), 0);
1082  return result;
1083  }
1084  bool getDoopen() const { return myDoopen; }
1085  void setDoopen(bool val) { myDoopen = val; }
1086  bool opDoopen(const SOP_NodeVerb::CookParms &cookparms) const
1087  {
1088  SOP_Node *thissop = cookparms.getNode();
1089  if (!thissop) return getDoopen();
1090  bool result;
1091  OP_Utils::evalOpParm(result, thissop, "doopen", cookparms.getCookTime(), 0);
1092  return result;
1093  }
1094  fpreal64 getTol() const { return myTol; }
1095  void setTol(fpreal64 val) { myTol = val; }
1096  fpreal64 opTol(const SOP_NodeVerb::CookParms &cookparms) const
1097  {
1098  SOP_Node *thissop = cookparms.getNode();
1099  if (!thissop) return getTol();
1100  fpreal64 result;
1101  OP_Utils::evalOpParm(result, thissop, "tol", cookparms.getCookTime(), 0);
1102  return result;
1103  }
1104  bool getUserandom() const { return myUserandom; }
1105  void setUserandom(bool val) { myUserandom = val; }
1106  bool opUserandom(const SOP_NodeVerb::CookParms &cookparms) const
1107  {
1108  SOP_Node *thissop = cookparms.getNode();
1109  if (!thissop) return getUserandom();
1110  bool result;
1111  OP_Utils::evalOpParm(result, thissop, "userandom", cookparms.getCookTime(), 0);
1112  return result;
1113  }
1114  fpreal64 getGlobalseed() const { return myGlobalseed; }
1115  void setGlobalseed(fpreal64 val) { myGlobalseed = val; }
1117  {
1118  SOP_Node *thissop = cookparms.getNode();
1119  if (!thissop) return getGlobalseed();
1120  fpreal64 result;
1121  OP_Utils::evalOpParm(result, thissop, "globalseed", cookparms.getCookTime(), 0);
1122  return result;
1123  }
1124  bool getUseseedattrib() const { return myUseseedattrib; }
1125  void setUseseedattrib(bool val) { myUseseedattrib = val; }
1126  bool opUseseedattrib(const SOP_NodeVerb::CookParms &cookparms) const
1127  {
1128  SOP_Node *thissop = cookparms.getNode();
1129  if (!thissop) return getUseseedattrib();
1130  bool result;
1131  OP_Utils::evalOpParm(result, thissop, "useseedattrib", cookparms.getCookTime(), 0);
1132  return result;
1133  }
1134  const UT_StringHolder & getSeedattrib() const { return mySeedattrib; }
1135  void setSeedattrib(const UT_StringHolder & val) { mySeedattrib = val; }
1137  {
1138  SOP_Node *thissop = cookparms.getNode();
1139  if (!thissop) return getSeedattrib();
1141  OP_Utils::evalOpParm(result, thissop, "seedattrib", cookparms.getCookTime(), 0);
1142  return result;
1143  }
1144  fpreal64 getPercent() const { return myPercent; }
1145  void setPercent(fpreal64 val) { myPercent = val; }
1147  {
1148  SOP_Node *thissop = cookparms.getNode();
1149  if (!thissop) return getPercent();
1150  fpreal64 result;
1151  OP_Utils::evalOpParm(result, thissop, "percent", cookparms.getCookTime(), 0);
1152  return result;
1153  }
1154  bool getRemovegrp() const { return myRemovegrp; }
1155  void setRemovegrp(bool val) { myRemovegrp = val; }
1156  bool opRemovegrp(const SOP_NodeVerb::CookParms &cookparms) const
1157  {
1158  SOP_Node *thissop = cookparms.getNode();
1159  if (!thissop) return getRemovegrp();
1160  bool result;
1161  OP_Utils::evalOpParm(result, thissop, "removegrp", cookparms.getCookTime(), 0);
1162  return result;
1163  }
1164  bool getKeeppoints() const { return myKeeppoints; }
1165  void setKeeppoints(bool val) { myKeeppoints = val; }
1166  bool opKeeppoints(const SOP_NodeVerb::CookParms &cookparms) const
1167  {
1168  SOP_Node *thissop = cookparms.getNode();
1169  if (!thissop) return getKeeppoints();
1170  bool result;
1171  OP_Utils::evalOpParm(result, thissop, "keeppoints", cookparms.getCookTime(), 0);
1172  return result;
1173  }
1174  int64 getGeotype() const { return myGeotype; }
1175  void setGeotype(int64 val) { myGeotype = val; }
1176  int64 opGeotype(const SOP_NodeVerb::CookParms &cookparms) const
1177  {
1178  SOP_Node *thissop = cookparms.getNode();
1179  if (!thissop) return getGeotype();
1180  int64 result;
1181  OP_Utils::evalOpParm(result, thissop, "geotype", cookparms.getCookTime(), 0);
1182  return result;
1183  }
1184  UT_Vector3D getDir() const { return myDir; }
1185  void setDir(UT_Vector3D val) { myDir = val; }
1187  {
1188  SOP_Node *thissop = cookparms.getNode();
1189  if (!thissop) return getDir();
1191  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
1192  return result;
1193  }
1194  fpreal64 getAngle() const { return myAngle; }
1195  void setAngle(fpreal64 val) { myAngle = val; }
1196  fpreal64 opAngle(const SOP_NodeVerb::CookParms &cookparms) const
1197  {
1198  SOP_Node *thissop = cookparms.getNode();
1199  if (!thissop) return getAngle();
1200  fpreal64 result;
1201  OP_Utils::evalOpParm(result, thissop, "angle", cookparms.getCookTime(), 0);
1202  return result;
1203  }
1204 
1205 private:
1206  UT_StringHolder myGroup;
1207  int64 myNegate;
1208  int64 myEntity;
1209  bool myAffectnumber;
1210  int64 myGroupop;
1211  int64 myFilter;
1212  UT_StringHolder myPattern;
1213  UT_Vector2I myRange;
1214  UT_Vector2I mySelect;
1215  bool myAffectvolume;
1216  int64 myBoundtype;
1217  UT_Vector3D mySize;
1218  UT_Vector3D myT;
1219  bool myAffectnormal;
1220  UT_StringHolder myCamerapath;
1221  bool myAffectdegenerate;
1222  bool myDegenerate;
1223  bool myZaf;
1224  bool myDoopen;
1225  fpreal64 myTol;
1226  bool myUserandom;
1227  fpreal64 myGlobalseed;
1228  bool myUseseedattrib;
1229  UT_StringHolder mySeedattrib;
1230  fpreal64 myPercent;
1231  bool myRemovegrp;
1232  bool myKeeppoints;
1233  int64 myGeotype;
1234  UT_Vector3D myDir;
1235  fpreal64 myAngle;
1236 
1237 };
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_Vector2T< int64 > UT_Vector2I
bool getUserandom() const
int64 opGeotype(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setGroup(const UT_StringHolder &val)
bool opAffectdegenerate(const SOP_NodeVerb::CookParms &cookparms) const
void setZaf(bool val)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void save(std::ostream &os) const
const char * getNestParmName(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, fpreal64 v)
static int version()
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setAffectvolume(bool val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
bool opUseseedattrib(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setKeeppoints(bool val)
const GLdouble * v
Definition: glcorearb.h:837
static void loadData(UT_IStream &is, UT_Vector3D &v)
fpreal getTime() const
Definition: OP_Context.h:62
fpreal64 getTol() const
const UT_StringHolder & getSeedattrib() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setAffectnumber(bool val)
bool load(UT_IStream &is)
void setCamerapath(const UT_StringHolder &val)
UT_Vector2I getSelect() const
void setDoopen(bool val)
static void loadData(UT_IStream &is, fpreal64 &v)
void setDir(UT_Vector3D val)
SYS_FORCE_INLINE UT_StringHolder getToken(Negate enum_value)
UT_Vector2I opRange(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void setTol(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
static void saveData(std::ostream &os, int64 v)
void loadFromOpSubclass(const LoadParms &loadparms) override
SYS_FORCE_INLINE const char * buffer() const
void setAffectdegenerate(bool val)
GLdouble s
Definition: glad.h:3009
const UT_StringHolder & getCamerapath() const
fpreal64 opAngle(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
bool getDegenerate() const
void setPercent(fpreal64 val)
void setEntity(Entity val)
An output stream object that owns its own string buffer storage.
bool opDoopen(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
Definition: thread.h:613
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opDegenerate(const SOP_NodeVerb::CookParms &cookparms) const
void setPattern(const UT_StringHolder &val)
fpreal64 getAngle() const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
Entity opEntity(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
UT_Vector3D opSize(const SOP_NodeVerb::CookParms &cookparms) const
void setNegate(Negate val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool getUseseedattrib() const
Entity getEntity() const
static void saveData(std::ostream &os, UT_Vector2D v)
UT_Vector2I opSelect(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static void loadData(UT_IStream &is, bool &v)
void setUseseedattrib(bool val)
double fpreal64
Definition: SYS_Types.h:201
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setRemovegrp(bool val)
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
void setRange(UT_Vector2I val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
UT_StringHolder opCamerapath(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
bool opKeeppoints(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGroup() const
bool opAffectnumber(const SOP_NodeVerb::CookParms &cookparms) const
exint length() 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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool getKeeppoints() const
void setGlobalseed(fpreal64 val)
UT_Vector3D getSize() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setBoundtype(Boundtype val)
static void saveData(std::ostream &os, UT_Matrix2D v)
long long int64
Definition: SYS_Types.h:116
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
UT_Vector3T< fpreal64 > UT_Vector3D
bool opRemovegrp(const SOP_NodeVerb::CookParms &cookparms) const
Groupop opGroupop(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getT() const
bool getRemovegrp() const
ParmType getNestParmType(TempIndex fieldnum) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool getAffectnormal() const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
fpreal64 opGlobalseed(const SOP_NodeVerb::CookParms &cookparms) const
bool getAffectnumber() const
GT_API const UT_StringHolder version
bool getAffectdegenerate() const
bool opAffectvolume(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
Boundtype opBoundtype(const SOP_NodeVerb::CookParms &cookparms) const
void setUserandom(bool val)
Negate opNegate(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_StringHolder opSeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setSize(UT_Vector3D val)
void setDegenerate(bool val)
int64 getGeotype() const
void setSeedattrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
bool operator==(const SOP_DeleteParms &src) const
int64 opFilter(const SOP_NodeVerb::CookParms &cookparms) const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
bool isParmColorRamp(exint idx) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
bool opAffectnormal(const SOP_NodeVerb::CookParms &cookparms) const
void setGeotype(int64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
#define SOP_API
Definition: SOP_API.h:10
Negate getNegate() const
void copyFrom(const OP_NodeParms *src) override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool operator!=(const SOP_DeleteParms &src) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
void setGroupop(Groupop val)
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setSelect(UT_Vector2I val)
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
static void saveData(std::ostream &os, UT_Matrix4D v)
GLboolean r
Definition: glcorearb.h:1222
bool getDoopen() const
void setT(UT_Vector3D val)
void setAffectnormal(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setAngle(fpreal64 val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
int64 getFilter() const
static void saveData(std::ostream &os, UT_Matrix3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool opZaf(const SOP_NodeVerb::CookParms &cookparms) const
bool getZaf() const
fpreal64 getGlobalseed() const
static void loadData(UT_IStream &is, int64 &v)
type
Definition: core.h:1059
UT_Vector3D getDir() const
static void saveData(std::ostream &os, UT_Vector4D v)
const UT_StringHolder & getPattern() const
bool getAffectvolume() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
Groupop getGroupop() const
bool opUserandom(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
static void saveData(std::ostream &os, UT_Vector3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal64 getPercent() const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
UT_Vector2I getRange() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
fpreal64 opTol(const SOP_NodeVerb::CookParms &cookparms) const
void setFilter(int64 val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
Boundtype getBoundtype() const
fpreal64 opPercent(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
UT_StringHolder opPattern(const SOP_NodeVerb::CookParms &cookparms) const