HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Fuse.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_FuseEnums
24 {
25  enum class Grouppropagation
26  {
27  LEASTPOINTNUMBER = 0,
28  UNION,
29  INTERSECT
30  };
31 
34  {
35  using namespace UT::Literal;
36  switch (enum_value) {
37  case Grouppropagation::LEASTPOINTNUMBER: return "leastpointnumber"_sh;
38  case Grouppropagation::UNION: return "union"_sh;
39  case Grouppropagation::INTERSECT: return "intersect"_sh;
40  default: UT_ASSERT(false); return ""_sh;
41  }
42  }
43 
44  enum class Snaptype
45  {
46  AVERAGE = 0,
47  LOWEST,
48  HIGHEST
49  };
50 
52  getToken(Snaptype enum_value)
53  {
54  using namespace UT::Literal;
55  switch (enum_value) {
56  case Snaptype::AVERAGE: return "average"_sh;
57  case Snaptype::LOWEST: return "lowest"_sh;
58  case Snaptype::HIGHEST: return "highest"_sh;
59  default: UT_ASSERT(false); return ""_sh;
60  }
61  }
62 
63  enum class Gridtype
64  {
65  SPACING = 0,
66  LINES,
67  POW2
68  };
69 
71  getToken(Gridtype enum_value)
72  {
73  using namespace UT::Literal;
74  switch (enum_value) {
75  case Gridtype::SPACING: return "spacing"_sh;
76  case Gridtype::LINES: return "lines"_sh;
77  case Gridtype::POW2: return "pow2"_sh;
78  default: UT_ASSERT(false); return ""_sh;
79  }
80  }
81 
82  enum class Gridround
83  {
84  NEAREST = 0,
85  DOWN,
86  UP
87  };
88 
90  getToken(Gridround enum_value)
91  {
92  using namespace UT::Literal;
93  switch (enum_value) {
94  case Gridround::NEAREST: return "nearest"_sh;
95  case Gridround::DOWN: return "down"_sh;
96  case Gridround::UP: return "up"_sh;
97  default: UT_ASSERT(false); return ""_sh;
98  }
99  }
100 
101 }
102 
103 
105 {
106 public:
107  static int version() { return 1; }
108 
110  {
111  myGroup = ""_UTsh;
112  myUsedist = true;
113  myDist = 0.001;
114  myDeldegen = true;
115  myKeepunusedpoints = false;
116  myKeepconsolidatedpoints = false;
117  myGrouppropagation = 0;
118  mySwitcher = 0;
119  mySnaptype = 0;
120  myTol3d = 0.001;
121  mySnappointpos = true;
122  mySnappointattribs = false;
123  myPointattribnames = ""_UTsh;
124  mySnapswitcher = 0;
125  myGridtype = 0;
126  myGridspacing = UT_Vector3D(0.1,0.1,0.1);
127  myGridlines = UT_Vector3D(10,10,10);
128  myGridpow2 = UT_Vector3I(3,3,3);
129  myGridoffset = UT_Vector3D(0,0,0);
130  myGridround = 0;
131  myGridtol = 10;
132  myUpdatenml = true;
133  myAccurate = true;
134 
135  }
136 
137  explicit SOP_FuseParms(const SOP_FuseParms &) = default;
138  SOP_FuseParms &operator=(const SOP_FuseParms &) = default;
139  SOP_FuseParms(SOP_FuseParms &&) noexcept = default;
140  SOP_FuseParms &operator=(SOP_FuseParms &&) noexcept = default;
141 
142  ~SOP_FuseParms() override {}
143 
144  bool operator==(const SOP_FuseParms &src) const
145  {
146  if (myGroup != src.myGroup) return false;
147  if (myUsedist != src.myUsedist) return false;
148  if (myDist != src.myDist) return false;
149  if (myDeldegen != src.myDeldegen) return false;
150  if (myKeepunusedpoints != src.myKeepunusedpoints) return false;
151  if (myKeepconsolidatedpoints != src.myKeepconsolidatedpoints) return false;
152  if (myGrouppropagation != src.myGrouppropagation) return false;
153  if (mySwitcher != src.mySwitcher) return false;
154  if (mySnaptype != src.mySnaptype) return false;
155  if (myTol3d != src.myTol3d) return false;
156  if (mySnappointpos != src.mySnappointpos) return false;
157  if (mySnappointattribs != src.mySnappointattribs) return false;
158  if (myPointattribnames != src.myPointattribnames) return false;
159  if (mySnapswitcher != src.mySnapswitcher) return false;
160  if (myGridtype != src.myGridtype) return false;
161  if (myGridspacing != src.myGridspacing) return false;
162  if (myGridlines != src.myGridlines) return false;
163  if (myGridpow2 != src.myGridpow2) return false;
164  if (myGridoffset != src.myGridoffset) return false;
165  if (myGridround != src.myGridround) return false;
166  if (myGridtol != src.myGridtol) return false;
167  if (myUpdatenml != src.myUpdatenml) return false;
168  if (myAccurate != src.myAccurate) return false;
169 
170  return true;
171  }
172  bool operator!=(const SOP_FuseParms &src) const
173  {
174  return !operator==(src);
175  }
180 
181 
182 
183  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
184  {
185  myGroup = ""_UTsh;
186  if (true)
187  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
188  myUsedist = true;
189  if (true)
190  graph->evalOpParm(myUsedist, nodeidx, "usedist", time, 0);
191  myDist = 0.001;
192  if (true && ( (true&&!(((getUsedist()==0)))) ) )
193  graph->evalOpParm(myDist, nodeidx, "dist", time, 0);
194  myDeldegen = true;
195  if (true)
196  graph->evalOpParm(myDeldegen, nodeidx, "deldegen", time, 0);
197  myKeepunusedpoints = false;
198  if (true)
199  graph->evalOpParm(myKeepunusedpoints, nodeidx, "keepunusedpoints", time, 0);
200  myKeepconsolidatedpoints = false;
201  if (true)
202  graph->evalOpParm(myKeepconsolidatedpoints, nodeidx, "keepconsolidatedpoints", time, 0);
203  myGrouppropagation = 0;
204  if (true)
205  graph->evalOpParm(myGrouppropagation, nodeidx, "grouppropagation", time, 0);
206  mySwitcher = 0;
207  if (true)
208  graph->evalOpParm(mySwitcher, nodeidx, "switcher", time, 0);
209  mySnaptype = 0;
210  if (true)
211  graph->evalOpParm(mySnaptype, nodeidx, "snaptype", time, 0);
212  myTol3d = 0.001;
213  if (true)
214  graph->evalOpParm(myTol3d, nodeidx, "tol3d", time, 0);
215  mySnappointpos = true;
216  if (true)
217  graph->evalOpParm(mySnappointpos, nodeidx, "snappointpos", time, 0);
218  mySnappointattribs = false;
219  if (true)
220  graph->evalOpParm(mySnappointattribs, nodeidx, "snappointattribs", time, 0);
221  myPointattribnames = ""_UTsh;
222  if (true && ( (true&&!(((getSnappointattribs()==0)))) ) )
223  graph->evalOpParm(myPointattribnames, nodeidx, "pointattribnames", time, 0);
224  mySnapswitcher = 0;
225  if (true)
226  graph->evalOpParm(mySnapswitcher, nodeidx, "snapswitcher", time, 0);
227  myGridtype = 0;
228  if (true)
229  graph->evalOpParm(myGridtype, nodeidx, "gridtype", time, 0);
230  myGridspacing = UT_Vector3D(0.1,0.1,0.1);
231  if (true && ( (true&&!(((int64(getGridtype())!=0)))) ) )
232  graph->evalOpParm(myGridspacing, nodeidx, "gridspacing", time, 0);
233  myGridlines = UT_Vector3D(10,10,10);
234  if (true && ( (true&&!(((int64(getGridtype())!=1)))) ) )
235  graph->evalOpParm(myGridlines, nodeidx, "gridlines", time, 0);
236  myGridpow2 = UT_Vector3I(3,3,3);
237  if (true && ( (true&&!(((int64(getGridtype())!=2)))) ) )
238  graph->evalOpParm(myGridpow2, nodeidx, "gridpow2", time, 0);
239  myGridoffset = UT_Vector3D(0,0,0);
240  if (true)
241  graph->evalOpParm(myGridoffset, nodeidx, "gridoffset", time, 0);
242  myGridround = 0;
243  if (true)
244  graph->evalOpParm(myGridround, nodeidx, "gridround", time, 0);
245  myGridtol = 10;
246  if (true)
247  graph->evalOpParm(myGridtol, nodeidx, "gridtol", time, 0);
248  myUpdatenml = true;
249  if (true)
250  graph->evalOpParm(myUpdatenml, nodeidx, "updatenml", time, 0);
251  myAccurate = true;
252  if (true && ( (true&&!(((int64(getSwitcher())==1))||((int64(getSwitcher())==2)&&(int64(getSnapswitcher())!=0)))) ) )
253  graph->evalOpParm(myAccurate, nodeidx, "accurate", time, 0);
254 
255  }
256 
257 
258  void loadFromOpSubclass(const LoadParms &loadparms) override
259  {
260  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
261  }
262 
263 
264  void copyFrom(const OP_NodeParms *src) override
265  {
266  *this = *((const SOP_FuseParms *)src);
267  }
268 
269  template <typename T>
270  void
271  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
272  {
273  if (idx.size() < 1)
274  return;
275  UT_ASSERT(idx.size() == instance.size()+1);
276  if (idx.size() != instance.size()+1)
277  return;
278  switch (idx[0])
279  {
280  case 0:
281  coerceValue(value, myGroup);
282  break;
283  case 1:
284  coerceValue(value, myUsedist);
285  break;
286  case 2:
287  coerceValue(value, myDist);
288  break;
289  case 3:
290  coerceValue(value, myDeldegen);
291  break;
292  case 4:
293  coerceValue(value, myKeepunusedpoints);
294  break;
295  case 5:
296  coerceValue(value, myKeepconsolidatedpoints);
297  break;
298  case 6:
299  coerceValue(value, myGrouppropagation);
300  break;
301  case 7:
302  coerceValue(value, mySwitcher);
303  break;
304  case 8:
305  coerceValue(value, mySnaptype);
306  break;
307  case 9:
308  coerceValue(value, myTol3d);
309  break;
310  case 10:
311  coerceValue(value, mySnappointpos);
312  break;
313  case 11:
314  coerceValue(value, mySnappointattribs);
315  break;
316  case 12:
317  coerceValue(value, myPointattribnames);
318  break;
319  case 13:
320  coerceValue(value, mySnapswitcher);
321  break;
322  case 14:
323  coerceValue(value, myGridtype);
324  break;
325  case 15:
326  coerceValue(value, myGridspacing);
327  break;
328  case 16:
329  coerceValue(value, myGridlines);
330  break;
331  case 17:
332  coerceValue(value, myGridpow2);
333  break;
334  case 18:
335  coerceValue(value, myGridoffset);
336  break;
337  case 19:
338  coerceValue(value, myGridround);
339  break;
340  case 20:
341  coerceValue(value, myGridtol);
342  break;
343  case 21:
344  coerceValue(value, myUpdatenml);
345  break;
346  case 22:
347  coerceValue(value, myAccurate);
348  break;
349 
350  }
351  }
352 
353  bool isParmColorRamp(exint idx) const override
354  {
355  switch (idx)
356  {
357 
358  }
359  return false;
360  }
361 
362  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
363  { doGetParmValue(idx, instance, value); }
364  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
365  { doGetParmValue(idx, instance, value); }
366  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
367  { doGetParmValue(idx, instance, value); }
368  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
369  { doGetParmValue(idx, instance, value); }
370  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
371  { doGetParmValue(idx, instance, value); }
372  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
373  { doGetParmValue(idx, instance, value); }
374  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
375  { doGetParmValue(idx, instance, value); }
376  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
377  { doGetParmValue(idx, instance, value); }
378  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
379  { doGetParmValue(idx, instance, value); }
380  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
381  { doGetParmValue(idx, instance, value); }
382  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
383  { doGetParmValue(idx, instance, value); }
384 
385  template <typename T>
386  void
387  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
388  {
389  if (idx.size() < 1)
390  return;
391  UT_ASSERT(idx.size() == instance.size()+1);
392  if (idx.size() != instance.size()+1)
393  return;
394  switch (idx[0])
395  {
396  case 0:
397  coerceValue(myGroup, ( ( value ) ));
398  break;
399  case 1:
400  coerceValue(myUsedist, ( ( value ) ));
401  break;
402  case 2:
403  coerceValue(myDist, ( ( value ) ));
404  break;
405  case 3:
406  coerceValue(myDeldegen, ( ( value ) ));
407  break;
408  case 4:
409  coerceValue(myKeepunusedpoints, ( ( value ) ));
410  break;
411  case 5:
412  coerceValue(myKeepconsolidatedpoints, ( ( value ) ));
413  break;
414  case 6:
415  coerceValue(myGrouppropagation, clampMinValue(0, clampMaxValue(2, value ) ));
416  break;
417  case 7:
418  coerceValue(mySwitcher, ( ( value ) ));
419  break;
420  case 8:
421  coerceValue(mySnaptype, clampMinValue(0, clampMaxValue(2, value ) ));
422  break;
423  case 9:
424  coerceValue(myTol3d, ( ( value ) ));
425  break;
426  case 10:
427  coerceValue(mySnappointpos, ( ( value ) ));
428  break;
429  case 11:
430  coerceValue(mySnappointattribs, ( ( value ) ));
431  break;
432  case 12:
433  coerceValue(myPointattribnames, ( ( value ) ));
434  break;
435  case 13:
436  coerceValue(mySnapswitcher, ( ( value ) ));
437  break;
438  case 14:
439  coerceValue(myGridtype, clampMinValue(0, clampMaxValue(2, value ) ));
440  break;
441  case 15:
442  coerceValue(myGridspacing, ( ( value ) ));
443  break;
444  case 16:
445  coerceValue(myGridlines, ( ( value ) ));
446  break;
447  case 17:
448  coerceValue(myGridpow2, ( ( value ) ));
449  break;
450  case 18:
451  coerceValue(myGridoffset, ( ( value ) ));
452  break;
453  case 19:
454  coerceValue(myGridround, clampMinValue(0, clampMaxValue(2, value ) ));
455  break;
456  case 20:
457  coerceValue(myGridtol, ( ( value ) ));
458  break;
459  case 21:
460  coerceValue(myUpdatenml, ( ( value ) ));
461  break;
462  case 22:
463  coerceValue(myAccurate, ( ( value ) ));
464  break;
465 
466  }
467  }
468 
469  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
470  { doSetParmValue(idx, instance, value); }
471  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
472  { doSetParmValue(idx, instance, value); }
473  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
474  { doSetParmValue(idx, instance, value); }
475  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
476  { doSetParmValue(idx, instance, value); }
477  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
478  { doSetParmValue(idx, instance, value); }
479  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
480  { doSetParmValue(idx, instance, value); }
481  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
482  { doSetParmValue(idx, instance, value); }
483  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
484  { doSetParmValue(idx, instance, value); }
485  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
486  { doSetParmValue(idx, instance, value); }
487  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
488  { doSetParmValue(idx, instance, value); }
489  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
490  { doSetParmValue(idx, instance, value); }
491 
492  exint getNestNumParms(TempIndex idx) const override
493  {
494  if (idx.size() == 0)
495  return 23;
496  switch (idx[0])
497  {
498 
499  }
500  // Invalid
501  return 0;
502  }
503 
504  const char *getNestParmName(TempIndex fieldnum) const override
505  {
506  if (fieldnum.size() < 1)
507  return 0;
508  switch (fieldnum[0])
509  {
510  case 0:
511  return "group";
512  case 1:
513  return "usedist";
514  case 2:
515  return "dist";
516  case 3:
517  return "deldegen";
518  case 4:
519  return "keepunusedpoints";
520  case 5:
521  return "keepconsolidatedpoints";
522  case 6:
523  return "grouppropagation";
524  case 7:
525  return "switcher";
526  case 8:
527  return "snaptype";
528  case 9:
529  return "tol3d";
530  case 10:
531  return "snappointpos";
532  case 11:
533  return "snappointattribs";
534  case 12:
535  return "pointattribnames";
536  case 13:
537  return "snapswitcher";
538  case 14:
539  return "gridtype";
540  case 15:
541  return "gridspacing";
542  case 16:
543  return "gridlines";
544  case 17:
545  return "gridpow2";
546  case 18:
547  return "gridoffset";
548  case 19:
549  return "gridround";
550  case 20:
551  return "gridtol";
552  case 21:
553  return "updatenml";
554  case 22:
555  return "accurate";
556 
557  }
558  return 0;
559  }
560 
561  ParmType getNestParmType(TempIndex fieldnum) const override
562  {
563  if (fieldnum.size() < 1)
564  return PARM_UNSUPPORTED;
565  switch (fieldnum[0])
566  {
567  case 0:
568  return PARM_STRING;
569  case 1:
570  return PARM_INTEGER;
571  case 2:
572  return PARM_FLOAT;
573  case 3:
574  return PARM_INTEGER;
575  case 4:
576  return PARM_INTEGER;
577  case 5:
578  return PARM_INTEGER;
579  case 6:
580  return PARM_INTEGER;
581  case 7:
582  return PARM_INTEGER;
583  case 8:
584  return PARM_INTEGER;
585  case 9:
586  return PARM_FLOAT;
587  case 10:
588  return PARM_INTEGER;
589  case 11:
590  return PARM_INTEGER;
591  case 12:
592  return PARM_STRING;
593  case 13:
594  return PARM_INTEGER;
595  case 14:
596  return PARM_INTEGER;
597  case 15:
598  return PARM_VECTOR3;
599  case 16:
600  return PARM_VECTOR3;
601  case 17:
602  return PARM_VECTOR3;
603  case 18:
604  return PARM_VECTOR3;
605  case 19:
606  return PARM_INTEGER;
607  case 20:
608  return PARM_FLOAT;
609  case 21:
610  return PARM_INTEGER;
611  case 22:
612  return PARM_INTEGER;
613 
614  }
615  return PARM_UNSUPPORTED;
616  }
617 
618  // Boiler plate to load individual types.
619  static void loadData(UT_IStream &is, int64 &v)
620  { is.bread(&v, 1); }
621  static void loadData(UT_IStream &is, bool &v)
622  { int64 iv; is.bread(&iv, 1); v = iv; }
623  static void loadData(UT_IStream &is, fpreal64 &v)
624  { is.bread<fpreal64>(&v, 1); }
625  static void loadData(UT_IStream &is, UT_Vector2D &v)
626  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
627  static void loadData(UT_IStream &is, UT_Vector3D &v)
628  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
629  is.bread<fpreal64>(&v.z(), 1); }
630  static void loadData(UT_IStream &is, UT_Vector4D &v)
631  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
632  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
633  static void loadData(UT_IStream &is, UT_Matrix2D &v)
634  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
635  static void loadData(UT_IStream &is, UT_Matrix3D &v)
636  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
637  static void loadData(UT_IStream &is, UT_Matrix4D &v)
638  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
639  static void loadData(UT_IStream &is, UT_Vector2I &v)
640  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
641  static void loadData(UT_IStream &is, UT_Vector3I &v)
642  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
643  is.bread<int64>(&v.z(), 1); }
644  static void loadData(UT_IStream &is, UT_Vector4I &v)
645  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
646  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
648  { is.bread(v); }
650  { UT_StringHolder rampdata;
651  loadData(is, rampdata);
652  if (rampdata.isstring())
653  {
654  v.reset(new UT_Ramp());
655  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
656  v->load(istr);
657  }
658  else v.reset();
659  }
662  loadData(is, data);
663  if (data.isstring())
664  {
665  // Find the data type.
666  const char *colon = UT_StringWrap(data).findChar(':');
667  if (colon)
668  {
669  int typelen = colon - data.buffer();
671  type.strncpy(data.buffer(), typelen);
672  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
673 
674  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
675  }
676  }
677  else v.reset();
678  }
679 
680  static void saveData(std::ostream &os, int64 v)
681  { UTwrite(os, &v); }
682  static void saveData(std::ostream &os, bool v)
683  { int64 iv = v; UTwrite(os, &iv); }
684  static void saveData(std::ostream &os, fpreal64 v)
685  { UTwrite<fpreal64>(os, &v); }
686  static void saveData(std::ostream &os, UT_Vector2D v)
687  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
688  static void saveData(std::ostream &os, UT_Vector3D v)
689  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
690  UTwrite<fpreal64>(os, &v.z()); }
691  static void saveData(std::ostream &os, UT_Vector4D v)
692  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
693  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
694  static void saveData(std::ostream &os, UT_Matrix2D v)
696  static void saveData(std::ostream &os, UT_Matrix3D v)
698  static void saveData(std::ostream &os, UT_Matrix4D v)
700  static void saveData(std::ostream &os, UT_StringHolder s)
701  { UT_StringWrap(s).saveBinary(os); }
702  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
704  UT_OStringStream ostr;
705  if (s) s->save(ostr);
706  result = ostr.str();
707  saveData(os, result);
708  }
709  static void saveData(std::ostream &os, PRM_DataItemHandle s)
711  UT_OStringStream ostr;
712  if (s)
713  {
714  ostr << s->getDataTypeToken();
715  ostr << ":";
716  s->saveBinary(ostr);
717  }
718  result = ostr.str();
719  saveData(os, result);
720  }
721 
722 
723  void save(std::ostream &os) const
724  {
725  int32 v = version();
726  UTwrite(os, &v);
727  saveData(os, myGroup);
728  saveData(os, myUsedist);
729  saveData(os, myDist);
730  saveData(os, myDeldegen);
731  saveData(os, myKeepunusedpoints);
732  saveData(os, myKeepconsolidatedpoints);
733  saveData(os, myGrouppropagation);
734  saveData(os, mySwitcher);
735  saveData(os, mySnaptype);
736  saveData(os, myTol3d);
737  saveData(os, mySnappointpos);
738  saveData(os, mySnappointattribs);
739  saveData(os, myPointattribnames);
740  saveData(os, mySnapswitcher);
741  saveData(os, myGridtype);
742  saveData(os, myGridspacing);
743  saveData(os, myGridlines);
744  saveData(os, myGridpow2);
745  saveData(os, myGridoffset);
746  saveData(os, myGridround);
747  saveData(os, myGridtol);
748  saveData(os, myUpdatenml);
749  saveData(os, myAccurate);
750 
751  }
752 
753  bool load(UT_IStream &is)
754  {
755  int32 v;
756  is.bread(&v, 1);
757  if (version() != v)
758  {
759  // Fail incompatible versions
760  return false;
761  }
762  loadData(is, myGroup);
763  loadData(is, myUsedist);
764  loadData(is, myDist);
765  loadData(is, myDeldegen);
766  loadData(is, myKeepunusedpoints);
767  loadData(is, myKeepconsolidatedpoints);
768  loadData(is, myGrouppropagation);
769  loadData(is, mySwitcher);
770  loadData(is, mySnaptype);
771  loadData(is, myTol3d);
772  loadData(is, mySnappointpos);
773  loadData(is, mySnappointattribs);
774  loadData(is, myPointattribnames);
775  loadData(is, mySnapswitcher);
776  loadData(is, myGridtype);
777  loadData(is, myGridspacing);
778  loadData(is, myGridlines);
779  loadData(is, myGridpow2);
780  loadData(is, myGridoffset);
781  loadData(is, myGridround);
782  loadData(is, myGridtol);
783  loadData(is, myUpdatenml);
784  loadData(is, myAccurate);
785 
786  return true;
787  }
788 
789  const UT_StringHolder & getGroup() const { return myGroup; }
790  void setGroup(const UT_StringHolder & val) { myGroup = val; }
792  {
793  SOP_Node *thissop = cookparms.getNode();
794  if (!thissop) return getGroup();
796  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
797  return result;
798  }
799  bool getUsedist() const { return myUsedist; }
800  void setUsedist(bool val) { myUsedist = val; }
801  bool opUsedist(const SOP_NodeVerb::CookParms &cookparms) const
802  {
803  SOP_Node *thissop = cookparms.getNode();
804  if (!thissop) return getUsedist();
805  bool result;
806  OP_Utils::evalOpParm(result, thissop, "usedist", cookparms.getCookTime(), 0);
807  return result;
808  }
809  fpreal64 getDist() const { return myDist; }
810  void setDist(fpreal64 val) { myDist = val; }
811  fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
812  {
813  SOP_Node *thissop = cookparms.getNode();
814  if (!thissop) return getDist();
816  OP_Utils::evalOpParm(result, thissop, "dist", cookparms.getCookTime(), 0);
817  return result;
818  }
819  bool getDeldegen() const { return myDeldegen; }
820  void setDeldegen(bool val) { myDeldegen = val; }
821  bool opDeldegen(const SOP_NodeVerb::CookParms &cookparms) const
822  {
823  SOP_Node *thissop = cookparms.getNode();
824  if (!thissop) return getDeldegen();
825  bool result;
826  OP_Utils::evalOpParm(result, thissop, "deldegen", cookparms.getCookTime(), 0);
827  return result;
828  }
829  bool getKeepunusedpoints() const { return myKeepunusedpoints; }
830  void setKeepunusedpoints(bool val) { myKeepunusedpoints = val; }
831  bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
832  {
833  SOP_Node *thissop = cookparms.getNode();
834  if (!thissop) return getKeepunusedpoints();
835  bool result;
836  OP_Utils::evalOpParm(result, thissop, "keepunusedpoints", cookparms.getCookTime(), 0);
837  return result;
838  }
839  bool getKeepconsolidatedpoints() const { return myKeepconsolidatedpoints; }
840  void setKeepconsolidatedpoints(bool val) { myKeepconsolidatedpoints = val; }
842  {
843  SOP_Node *thissop = cookparms.getNode();
844  if (!thissop) return getKeepconsolidatedpoints();
845  bool result;
846  OP_Utils::evalOpParm(result, thissop, "keepconsolidatedpoints", cookparms.getCookTime(), 0);
847  return result;
848  }
849  Grouppropagation getGrouppropagation() const { return Grouppropagation(myGrouppropagation); }
850  void setGrouppropagation(Grouppropagation val) { myGrouppropagation = int64(val); }
852  {
853  SOP_Node *thissop = cookparms.getNode();
854  if (!thissop) return getGrouppropagation();
855  int64 result;
856  OP_Utils::evalOpParm(result, thissop, "grouppropagation", cookparms.getCookTime(), 0);
857  return Grouppropagation(result);
858  }
859  int64 getSwitcher() const { return mySwitcher; }
860  void setSwitcher(int64 val) { mySwitcher = val; }
861  int64 opSwitcher(const SOP_NodeVerb::CookParms &cookparms) const
862  {
863  SOP_Node *thissop = cookparms.getNode();
864  if (!thissop) return getSwitcher();
865  int64 result;
866  OP_Utils::evalOpParm(result, thissop, "switcher", cookparms.getCookTime(), 0);
867  return result;
868  }
869  Snaptype getSnaptype() const { return Snaptype(mySnaptype); }
870  void setSnaptype(Snaptype val) { mySnaptype = int64(val); }
872  {
873  SOP_Node *thissop = cookparms.getNode();
874  if (!thissop) return getSnaptype();
875  int64 result;
876  OP_Utils::evalOpParm(result, thissop, "snaptype", cookparms.getCookTime(), 0);
877  return Snaptype(result);
878  }
879  fpreal64 getTol3d() const { return myTol3d; }
880  void setTol3d(fpreal64 val) { myTol3d = val; }
881  fpreal64 opTol3d(const SOP_NodeVerb::CookParms &cookparms) const
882  {
883  SOP_Node *thissop = cookparms.getNode();
884  if (!thissop) return getTol3d();
886  OP_Utils::evalOpParm(result, thissop, "tol3d", cookparms.getCookTime(), 0);
887  return result;
888  }
889  bool getSnappointpos() const { return mySnappointpos; }
890  void setSnappointpos(bool val) { mySnappointpos = val; }
891  bool opSnappointpos(const SOP_NodeVerb::CookParms &cookparms) const
892  {
893  SOP_Node *thissop = cookparms.getNode();
894  if (!thissop) return getSnappointpos();
895  bool result;
896  OP_Utils::evalOpParm(result, thissop, "snappointpos", cookparms.getCookTime(), 0);
897  return result;
898  }
899  bool getSnappointattribs() const { return mySnappointattribs; }
900  void setSnappointattribs(bool val) { mySnappointattribs = val; }
901  bool opSnappointattribs(const SOP_NodeVerb::CookParms &cookparms) const
902  {
903  SOP_Node *thissop = cookparms.getNode();
904  if (!thissop) return getSnappointattribs();
905  bool result;
906  OP_Utils::evalOpParm(result, thissop, "snappointattribs", cookparms.getCookTime(), 0);
907  return result;
908  }
909  const UT_StringHolder & getPointattribnames() const { return myPointattribnames; }
910  void setPointattribnames(const UT_StringHolder & val) { myPointattribnames = val; }
912  {
913  SOP_Node *thissop = cookparms.getNode();
914  if (!thissop) return getPointattribnames();
916  OP_Utils::evalOpParm(result, thissop, "pointattribnames", cookparms.getCookTime(), 0);
917  return result;
918  }
919  int64 getSnapswitcher() const { return mySnapswitcher; }
920  void setSnapswitcher(int64 val) { mySnapswitcher = val; }
922  {
923  SOP_Node *thissop = cookparms.getNode();
924  if (!thissop) return getSnapswitcher();
925  int64 result;
926  OP_Utils::evalOpParm(result, thissop, "snapswitcher", cookparms.getCookTime(), 0);
927  return result;
928  }
929  Gridtype getGridtype() const { return Gridtype(myGridtype); }
930  void setGridtype(Gridtype val) { myGridtype = int64(val); }
932  {
933  SOP_Node *thissop = cookparms.getNode();
934  if (!thissop) return getGridtype();
935  int64 result;
936  OP_Utils::evalOpParm(result, thissop, "gridtype", cookparms.getCookTime(), 0);
937  return Gridtype(result);
938  }
939  UT_Vector3D getGridspacing() const { return myGridspacing; }
940  void setGridspacing(UT_Vector3D val) { myGridspacing = val; }
942  {
943  SOP_Node *thissop = cookparms.getNode();
944  if (!thissop) return getGridspacing();
946  OP_Utils::evalOpParm(result, thissop, "gridspacing", cookparms.getCookTime(), 0);
947  return result;
948  }
949  UT_Vector3D getGridlines() const { return myGridlines; }
950  void setGridlines(UT_Vector3D val) { myGridlines = val; }
952  {
953  SOP_Node *thissop = cookparms.getNode();
954  if (!thissop) return getGridlines();
956  OP_Utils::evalOpParm(result, thissop, "gridlines", cookparms.getCookTime(), 0);
957  return result;
958  }
959  UT_Vector3I getGridpow2() const { return myGridpow2; }
960  void setGridpow2(UT_Vector3I val) { myGridpow2 = val; }
962  {
963  SOP_Node *thissop = cookparms.getNode();
964  if (!thissop) return getGridpow2();
966  OP_Utils::evalOpParm(result, thissop, "gridpow2", cookparms.getCookTime(), 0);
967  return result;
968  }
969  UT_Vector3D getGridoffset() const { return myGridoffset; }
970  void setGridoffset(UT_Vector3D val) { myGridoffset = val; }
972  {
973  SOP_Node *thissop = cookparms.getNode();
974  if (!thissop) return getGridoffset();
976  OP_Utils::evalOpParm(result, thissop, "gridoffset", cookparms.getCookTime(), 0);
977  return result;
978  }
979  Gridround getGridround() const { return Gridround(myGridround); }
980  void setGridround(Gridround val) { myGridround = int64(val); }
982  {
983  SOP_Node *thissop = cookparms.getNode();
984  if (!thissop) return getGridround();
985  int64 result;
986  OP_Utils::evalOpParm(result, thissop, "gridround", cookparms.getCookTime(), 0);
987  return Gridround(result);
988  }
989  fpreal64 getGridtol() const { return myGridtol; }
990  void setGridtol(fpreal64 val) { myGridtol = val; }
992  {
993  SOP_Node *thissop = cookparms.getNode();
994  if (!thissop) return getGridtol();
996  OP_Utils::evalOpParm(result, thissop, "gridtol", cookparms.getCookTime(), 0);
997  return result;
998  }
999  bool getUpdatenml() const { return myUpdatenml; }
1000  void setUpdatenml(bool val) { myUpdatenml = val; }
1001  bool opUpdatenml(const SOP_NodeVerb::CookParms &cookparms) const
1002  {
1003  SOP_Node *thissop = cookparms.getNode();
1004  if (!thissop) return getUpdatenml();
1005  bool result;
1006  OP_Utils::evalOpParm(result, thissop, "updatenml", cookparms.getCookTime(), 0);
1007  return result;
1008  }
1009  bool getAccurate() const { return myAccurate; }
1010  void setAccurate(bool val) { myAccurate = val; }
1011  bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
1012  {
1013  SOP_Node *thissop = cookparms.getNode();
1014  if (!thissop) return getAccurate();
1015  bool result;
1016  OP_Utils::evalOpParm(result, thissop, "accurate", cookparms.getCookTime(), 0);
1017  return result;
1018  }
1019 
1020 private:
1021  UT_StringHolder myGroup;
1022  bool myUsedist;
1023  fpreal64 myDist;
1024  bool myDeldegen;
1025  bool myKeepunusedpoints;
1026  bool myKeepconsolidatedpoints;
1027  int64 myGrouppropagation;
1028  int64 mySwitcher;
1029  int64 mySnaptype;
1030  fpreal64 myTol3d;
1031  bool mySnappointpos;
1032  bool mySnappointattribs;
1033  UT_StringHolder myPointattribnames;
1034  int64 mySnapswitcher;
1035  int64 myGridtype;
1036  UT_Vector3D myGridspacing;
1037  UT_Vector3D myGridlines;
1038  UT_Vector3I myGridpow2;
1039  UT_Vector3D myGridoffset;
1040  int64 myGridround;
1041  fpreal64 myGridtol;
1042  bool myUpdatenml;
1043  bool myAccurate;
1044 
1045 };
static int version()
bool getDeldegen() const
void setSnaptype(Snaptype val)
static void saveData(std::ostream &os, UT_Vector3D v)
void setPointattribnames(const UT_StringHolder &val)
UT_Vector3D getGridoffset() const
static void saveData(std::ostream &os, UT_StringHolder s)
static void saveData(std::ostream &os, int64 v)
UT_StringHolder opPointattribnames(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
static void loadData(UT_IStream &is, UT_StringHolder &v)
int64 opSnapswitcher(const SOP_NodeVerb::CookParms &cookparms) const
void setGridlines(UT_Vector3D val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
fpreal64 getDist() const
static void loadData(UT_IStream &is, bool &v)
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
int64 getSnapswitcher() const
fpreal getTime() const
Definition: OP_Context.h:62
UT_Vector3D opGridoffset(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool getSnappointattribs() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
Grouppropagation opGrouppropagation(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void setGridtype(Gridtype val)
void setGrouppropagation(Grouppropagation val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
bool opUsedist(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
SYS_FORCE_INLINE const char * buffer() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool operator==(const SOP_FuseParms &src) const
GLdouble s
Definition: glad.h:3009
static void loadData(UT_IStream &is, UT_Vector2I &v)
An output stream object that owns its own string buffer storage.
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
**But if you need a result
Definition: thread.h:613
SYS_FORCE_INLINE UT_StringHolder getToken(Grouppropagation enum_value)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
UT_Vector3T< int64 > UT_Vector3I
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
fpreal64 getGridtol() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void saveData(std::ostream &os, bool v)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, fpreal64 &v)
exint getNestNumParms(TempIndex idx) const override
void setTol3d(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector3I &v)
UT_Vector3I getGridpow2() const
bool opSnappointpos(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setGridspacing(UT_Vector3D val)
static void saveData(std::ostream &os, fpreal64 v)
double fpreal64
Definition: SYS_Types.h:201
void setSnappointpos(bool val)
bool getSnappointpos() const
fpreal64 getTol3d() const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool opSnappointattribs(const SOP_NodeVerb::CookParms &cookparms) const
void setKeepunusedpoints(bool val)
void setGridtol(fpreal64 val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
Gridround opGridround(const SOP_NodeVerb::CookParms &cookparms) const
Gridtype opGridtype(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void loadFromOpSubclass(const LoadParms &loadparms) override
void setKeepconsolidatedpoints(bool val)
void setAccurate(bool val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_Vector3I opGridpow2(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
exint length() const
void setGridround(Gridround val)
bool getKeepunusedpoints() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
UT_Vector3D opGridspacing(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opTol3d(const SOP_NodeVerb::CookParms &cookparms) const
void setUpdatenml(bool val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator!=(const SOP_FuseParms &src) const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
bool opUpdatenml(const SOP_NodeVerb::CookParms &cookparms) const
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_StringHolder & getPointattribnames() const
const UT_StringHolder & getGroup() const
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, int64 &v)
void save(std::ostream &os) const
UT_Vector3T< fpreal64 > UT_Vector3D
Snaptype getSnaptype() const
bool load(UT_IStream &is)
bool getKeepconsolidatedpoints() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setSwitcher(int64 val)
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
static void saveData(std::ostream &os, UT_Matrix4D v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
GT_API const UT_StringHolder version
int64 opSwitcher(const SOP_NodeVerb::CookParms &cookparms) const
bool getUpdatenml() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
Grouppropagation getGrouppropagation() const
UT_Vector3D getGridlines() const
void setGridoffset(UT_Vector3D val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
fpreal64 opGridtol(const SOP_NodeVerb::CookParms &cookparms) const
Gridtype getGridtype() const
bool getUsedist() const
bool getAccurate() const
UT_Vector3D getGridspacing() const
static void saveData(std::ostream &os, UT_Vector2D v)
void setUsedist(bool val)
bool isParmColorRamp(exint idx) const override
Gridround getGridround() const
void setGridpow2(UT_Vector3I val)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
static void saveData(std::ostream &os, UT_Matrix2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setDist(fpreal64 val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setSnappointattribs(bool val)
#define SOP_API
Definition: SOP_API.h:10
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opDeldegen(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_Vector3D opGridlines(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
int64 getSwitcher() const
GLboolean r
Definition: glcorearb.h:1222
static void saveData(std::ostream &os, UT_Vector4D v)
void setSnapswitcher(int64 val)
Snaptype opSnaptype(const SOP_NodeVerb::CookParms &cookparms) const
bool opKeepconsolidatedpoints(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
type
Definition: core.h:1059
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setDeldegen(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const