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 <OP/OP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_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 
171  if (baseGetSignature() != src.baseGetSignature()) return false;
172 
173  return true;
174  }
175  bool operator!=(const SOP_FuseParms &src) const
176  {
177  return !operator==(src);
178  }
183 
184 
185 
186  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
187  {
188  myGroup = ""_UTsh;
189  if (true)
190  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
191  myUsedist = true;
192  if (true)
193  graph->evalOpParm(myUsedist, nodeidx, "usedist", time, graph->isDirect()?nullptr:depnode);
194  myDist = 0.001;
195  if (true && ( (true&&!(((getUsedist()==0)))) ) )
196  graph->evalOpParm(myDist, nodeidx, "dist", time, graph->isDirect()?nullptr:depnode);
197  myDeldegen = true;
198  if (true)
199  graph->evalOpParm(myDeldegen, nodeidx, "deldegen", time, graph->isDirect()?nullptr:depnode);
200  myKeepunusedpoints = false;
201  if (true)
202  graph->evalOpParm(myKeepunusedpoints, nodeidx, "keepunusedpoints", time, graph->isDirect()?nullptr:depnode);
203  myKeepconsolidatedpoints = false;
204  if (true)
205  graph->evalOpParm(myKeepconsolidatedpoints, nodeidx, "keepconsolidatedpoints", time, graph->isDirect()?nullptr:depnode);
206  myGrouppropagation = 0;
207  if (true)
208  graph->evalOpParm(myGrouppropagation, nodeidx, "grouppropagation", time, graph->isDirect()?nullptr:depnode);
209  mySwitcher = 0;
210  if (true)
211  graph->evalOpParm(mySwitcher, nodeidx, "switcher", time, graph->isDirect()?nullptr:depnode);
212  mySnaptype = 0;
213  if (true)
214  graph->evalOpParm(mySnaptype, nodeidx, "snaptype", time, graph->isDirect()?nullptr:depnode);
215  myTol3d = 0.001;
216  if (true)
217  graph->evalOpParm(myTol3d, nodeidx, "tol3d", time, graph->isDirect()?nullptr:depnode);
218  mySnappointpos = true;
219  if (true)
220  graph->evalOpParm(mySnappointpos, nodeidx, "snappointpos", time, graph->isDirect()?nullptr:depnode);
221  mySnappointattribs = false;
222  if (true)
223  graph->evalOpParm(mySnappointattribs, nodeidx, "snappointattribs", time, graph->isDirect()?nullptr:depnode);
224  myPointattribnames = ""_UTsh;
225  if (true && ( (true&&!(((getSnappointattribs()==0)))) ) )
226  graph->evalOpParm(myPointattribnames, nodeidx, "pointattribnames", time, graph->isDirect()?nullptr:depnode);
227  mySnapswitcher = 0;
228  if (true)
229  graph->evalOpParm(mySnapswitcher, nodeidx, "snapswitcher", time, graph->isDirect()?nullptr:depnode);
230  myGridtype = 0;
231  if (true)
232  graph->evalOpParm(myGridtype, nodeidx, "gridtype", time, graph->isDirect()?nullptr:depnode);
233  myGridspacing = UT_Vector3D(0.1,0.1,0.1);
234  if (true && ( (true&&!(((int64(getGridtype())!=0)))) ) )
235  graph->evalOpParm(myGridspacing, nodeidx, "gridspacing", time, graph->isDirect()?nullptr:depnode);
236  myGridlines = UT_Vector3D(10,10,10);
237  if (true && ( (true&&!(((int64(getGridtype())!=1)))) ) )
238  graph->evalOpParm(myGridlines, nodeidx, "gridlines", time, graph->isDirect()?nullptr:depnode);
239  myGridpow2 = UT_Vector3I(3,3,3);
240  if (true && ( (true&&!(((int64(getGridtype())!=2)))) ) )
241  graph->evalOpParm(myGridpow2, nodeidx, "gridpow2", time, graph->isDirect()?nullptr:depnode);
242  myGridoffset = UT_Vector3D(0,0,0);
243  if (true)
244  graph->evalOpParm(myGridoffset, nodeidx, "gridoffset", time, graph->isDirect()?nullptr:depnode);
245  myGridround = 0;
246  if (true)
247  graph->evalOpParm(myGridround, nodeidx, "gridround", time, graph->isDirect()?nullptr:depnode);
248  myGridtol = 10;
249  if (true)
250  graph->evalOpParm(myGridtol, nodeidx, "gridtol", time, graph->isDirect()?nullptr:depnode);
251  myUpdatenml = true;
252  if (true)
253  graph->evalOpParm(myUpdatenml, nodeidx, "updatenml", time, graph->isDirect()?nullptr:depnode);
254  myAccurate = true;
255  if (true && ( (true&&!(((int64(getSwitcher())==1))||((int64(getSwitcher())==2)&&(int64(getSnapswitcher())!=0)))) ) )
256  graph->evalOpParm(myAccurate, nodeidx, "accurate", time, graph->isDirect()?nullptr:depnode);
257 
258  }
259 
260 
261  void loadFromOpSubclass(const LoadParms &loadparms) override
262  {
263  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
264  }
265 
266 
267  void copyFrom(const OP_NodeParms *src) override
268  {
269  *this = *((const SOP_FuseParms *)src);
270  }
271 
272  template <typename T>
273  void
274  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
275  {
276  if (idx.size() < 1)
277  return;
278  UT_ASSERT(idx.size() == instance.size()+1);
279  if (idx.size() != instance.size()+1)
280  return;
281  switch (idx[0])
282  {
283  case 0:
284  coerceValue(value, myGroup);
285  break;
286  case 1:
287  coerceValue(value, myUsedist);
288  break;
289  case 2:
290  coerceValue(value, myDist);
291  break;
292  case 3:
293  coerceValue(value, myDeldegen);
294  break;
295  case 4:
296  coerceValue(value, myKeepunusedpoints);
297  break;
298  case 5:
299  coerceValue(value, myKeepconsolidatedpoints);
300  break;
301  case 6:
302  coerceValue(value, myGrouppropagation);
303  break;
304  case 7:
305  coerceValue(value, mySwitcher);
306  break;
307  case 8:
308  coerceValue(value, mySnaptype);
309  break;
310  case 9:
311  coerceValue(value, myTol3d);
312  break;
313  case 10:
314  coerceValue(value, mySnappointpos);
315  break;
316  case 11:
317  coerceValue(value, mySnappointattribs);
318  break;
319  case 12:
320  coerceValue(value, myPointattribnames);
321  break;
322  case 13:
323  coerceValue(value, mySnapswitcher);
324  break;
325  case 14:
326  coerceValue(value, myGridtype);
327  break;
328  case 15:
329  coerceValue(value, myGridspacing);
330  break;
331  case 16:
332  coerceValue(value, myGridlines);
333  break;
334  case 17:
335  coerceValue(value, myGridpow2);
336  break;
337  case 18:
338  coerceValue(value, myGridoffset);
339  break;
340  case 19:
341  coerceValue(value, myGridround);
342  break;
343  case 20:
344  coerceValue(value, myGridtol);
345  break;
346  case 21:
347  coerceValue(value, myUpdatenml);
348  break;
349  case 22:
350  coerceValue(value, myAccurate);
351  break;
352 
353  }
354  }
355 
356  bool isParmColorRamp(exint idx) const override
357  {
358  switch (idx)
359  {
360 
361  }
362  return false;
363  }
364 
365  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
366  { doGetParmValue(idx, instance, value); }
367  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
368  { doGetParmValue(idx, instance, value); }
369  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
370  { doGetParmValue(idx, instance, value); }
371  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
372  { doGetParmValue(idx, instance, value); }
373  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
374  { doGetParmValue(idx, instance, value); }
375  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
376  { doGetParmValue(idx, instance, value); }
377  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
378  { doGetParmValue(idx, instance, value); }
379  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
380  { doGetParmValue(idx, instance, value); }
381  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
382  { doGetParmValue(idx, instance, value); }
383  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
384  { doGetParmValue(idx, instance, value); }
385  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
386  { doGetParmValue(idx, instance, value); }
387 
388  template <typename T>
389  void
390  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
391  {
392  if (idx.size() < 1)
393  return;
394  UT_ASSERT(idx.size() == instance.size()+1);
395  if (idx.size() != instance.size()+1)
396  return;
397  switch (idx[0])
398  {
399  case 0:
400  coerceValue(myGroup, ( ( value ) ));
401  break;
402  case 1:
403  coerceValue(myUsedist, ( ( value ) ));
404  break;
405  case 2:
406  coerceValue(myDist, ( ( value ) ));
407  break;
408  case 3:
409  coerceValue(myDeldegen, ( ( value ) ));
410  break;
411  case 4:
412  coerceValue(myKeepunusedpoints, ( ( value ) ));
413  break;
414  case 5:
415  coerceValue(myKeepconsolidatedpoints, ( ( value ) ));
416  break;
417  case 6:
418  coerceValue(myGrouppropagation, clampMinValue(0, clampMaxValue(2, value ) ));
419  break;
420  case 7:
421  coerceValue(mySwitcher, ( ( value ) ));
422  break;
423  case 8:
424  coerceValue(mySnaptype, clampMinValue(0, clampMaxValue(2, value ) ));
425  break;
426  case 9:
427  coerceValue(myTol3d, ( ( value ) ));
428  break;
429  case 10:
430  coerceValue(mySnappointpos, ( ( value ) ));
431  break;
432  case 11:
433  coerceValue(mySnappointattribs, ( ( value ) ));
434  break;
435  case 12:
436  coerceValue(myPointattribnames, ( ( value ) ));
437  break;
438  case 13:
439  coerceValue(mySnapswitcher, ( ( value ) ));
440  break;
441  case 14:
442  coerceValue(myGridtype, clampMinValue(0, clampMaxValue(2, value ) ));
443  break;
444  case 15:
445  coerceValue(myGridspacing, ( ( value ) ));
446  break;
447  case 16:
448  coerceValue(myGridlines, ( ( value ) ));
449  break;
450  case 17:
451  coerceValue(myGridpow2, ( ( value ) ));
452  break;
453  case 18:
454  coerceValue(myGridoffset, ( ( value ) ));
455  break;
456  case 19:
457  coerceValue(myGridround, clampMinValue(0, clampMaxValue(2, value ) ));
458  break;
459  case 20:
460  coerceValue(myGridtol, ( ( value ) ));
461  break;
462  case 21:
463  coerceValue(myUpdatenml, ( ( value ) ));
464  break;
465  case 22:
466  coerceValue(myAccurate, ( ( value ) ));
467  break;
468 
469  }
470  }
471 
472  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
473  { doSetParmValue(idx, instance, value); }
474  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
475  { doSetParmValue(idx, instance, value); }
476  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
477  { doSetParmValue(idx, instance, value); }
478  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
479  { doSetParmValue(idx, instance, value); }
480  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
481  { doSetParmValue(idx, instance, value); }
482  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
483  { doSetParmValue(idx, instance, value); }
484  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
485  { doSetParmValue(idx, instance, value); }
486  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
487  { doSetParmValue(idx, instance, value); }
488  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
489  { doSetParmValue(idx, instance, value); }
490  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
491  { doSetParmValue(idx, instance, value); }
492  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
493  { doSetParmValue(idx, instance, value); }
494 
495  exint getNestNumParms(TempIndex idx) const override
496  {
497  if (idx.size() == 0)
498  return 23;
499  switch (idx[0])
500  {
501 
502  }
503  // Invalid
504  return 0;
505  }
506 
507  const char *getNestParmName(TempIndex fieldnum) const override
508  {
509  if (fieldnum.size() < 1)
510  return 0;
511  switch (fieldnum[0])
512  {
513  case 0:
514  return "group";
515  case 1:
516  return "usedist";
517  case 2:
518  return "dist";
519  case 3:
520  return "deldegen";
521  case 4:
522  return "keepunusedpoints";
523  case 5:
524  return "keepconsolidatedpoints";
525  case 6:
526  return "grouppropagation";
527  case 7:
528  return "switcher";
529  case 8:
530  return "snaptype";
531  case 9:
532  return "tol3d";
533  case 10:
534  return "snappointpos";
535  case 11:
536  return "snappointattribs";
537  case 12:
538  return "pointattribnames";
539  case 13:
540  return "snapswitcher";
541  case 14:
542  return "gridtype";
543  case 15:
544  return "gridspacing";
545  case 16:
546  return "gridlines";
547  case 17:
548  return "gridpow2";
549  case 18:
550  return "gridoffset";
551  case 19:
552  return "gridround";
553  case 20:
554  return "gridtol";
555  case 21:
556  return "updatenml";
557  case 22:
558  return "accurate";
559 
560  }
561  return 0;
562  }
563 
564  ParmType getNestParmType(TempIndex fieldnum) const override
565  {
566  if (fieldnum.size() < 1)
567  return PARM_UNSUPPORTED;
568  switch (fieldnum[0])
569  {
570  case 0:
571  return PARM_STRING;
572  case 1:
573  return PARM_INTEGER;
574  case 2:
575  return PARM_FLOAT;
576  case 3:
577  return PARM_INTEGER;
578  case 4:
579  return PARM_INTEGER;
580  case 5:
581  return PARM_INTEGER;
582  case 6:
583  return PARM_INTEGER;
584  case 7:
585  return PARM_INTEGER;
586  case 8:
587  return PARM_INTEGER;
588  case 9:
589  return PARM_FLOAT;
590  case 10:
591  return PARM_INTEGER;
592  case 11:
593  return PARM_INTEGER;
594  case 12:
595  return PARM_STRING;
596  case 13:
597  return PARM_INTEGER;
598  case 14:
599  return PARM_INTEGER;
600  case 15:
601  return PARM_VECTOR3;
602  case 16:
603  return PARM_VECTOR3;
604  case 17:
605  return PARM_VECTOR3;
606  case 18:
607  return PARM_VECTOR3;
608  case 19:
609  return PARM_INTEGER;
610  case 20:
611  return PARM_FLOAT;
612  case 21:
613  return PARM_INTEGER;
614  case 22:
615  return PARM_INTEGER;
616 
617  }
618  return PARM_UNSUPPORTED;
619  }
620 
621  // Boiler plate to load individual types.
622  static void loadData(UT_IStream &is, int64 &v)
623  { is.bread(&v, 1); }
624  static void loadData(UT_IStream &is, bool &v)
625  { int64 iv; is.bread(&iv, 1); v = iv; }
626  static void loadData(UT_IStream &is, fpreal64 &v)
627  { is.bread<fpreal64>(&v, 1); }
628  static void loadData(UT_IStream &is, UT_Vector2D &v)
629  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
630  static void loadData(UT_IStream &is, UT_Vector3D &v)
631  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
632  is.bread<fpreal64>(&v.z(), 1); }
633  static void loadData(UT_IStream &is, UT_Vector4D &v)
634  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
635  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
636  static void loadData(UT_IStream &is, UT_Matrix2D &v)
637  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
638  static void loadData(UT_IStream &is, UT_Matrix3D &v)
639  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
640  static void loadData(UT_IStream &is, UT_Matrix4D &v)
641  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
642  static void loadData(UT_IStream &is, UT_Vector2I &v)
643  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
644  static void loadData(UT_IStream &is, UT_Vector3I &v)
645  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
646  is.bread<int64>(&v.z(), 1); }
647  static void loadData(UT_IStream &is, UT_Vector4I &v)
648  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
649  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
651  { is.bread(v); }
653  { UT_StringHolder rampdata;
654  loadData(is, rampdata);
655  if (rampdata.isstring())
656  {
657  v.reset(new UT_Ramp());
658  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
659  v->load(istr);
660  }
661  else v.reset();
662  }
665  loadData(is, data);
666  if (data.isstring())
667  {
668  // Find the data type.
669  const char *colon = UT_StringWrap(data).findChar(':');
670  if (colon)
671  {
672  int typelen = colon - data.buffer();
674  type.strncpy(data.buffer(), typelen);
675  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
676 
677  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
678  }
679  }
680  else v.reset();
681  }
682 
683  static void saveData(std::ostream &os, int64 v)
684  { UTwrite(os, &v); }
685  static void saveData(std::ostream &os, bool v)
686  { int64 iv = v; UTwrite(os, &iv); }
687  static void saveData(std::ostream &os, fpreal64 v)
688  { UTwrite<fpreal64>(os, &v); }
689  static void saveData(std::ostream &os, UT_Vector2D v)
690  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
691  static void saveData(std::ostream &os, UT_Vector3D v)
692  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
693  UTwrite<fpreal64>(os, &v.z()); }
694  static void saveData(std::ostream &os, UT_Vector4D v)
695  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
696  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
697  static void saveData(std::ostream &os, UT_Matrix2D v)
699  static void saveData(std::ostream &os, UT_Matrix3D v)
701  static void saveData(std::ostream &os, UT_Matrix4D v)
703  static void saveData(std::ostream &os, UT_StringHolder s)
704  { UT_StringWrap(s).saveBinary(os); }
705  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
707  UT_OStringStream ostr;
708  if (s) s->save(ostr);
709  result = ostr.str();
710  saveData(os, result);
711  }
712  static void saveData(std::ostream &os, PRM_DataItemHandle s)
714  UT_OStringStream ostr;
715  if (s)
716  {
717  ostr << s->getDataTypeToken();
718  ostr << ":";
719  s->saveBinary(ostr);
720  }
721  result = ostr.str();
722  saveData(os, result);
723  }
724 
725 
726  void save(std::ostream &os) const
727  {
728  int32 v = version();
729  UTwrite(os, &v);
730  saveData(os, myGroup);
731  saveData(os, myUsedist);
732  saveData(os, myDist);
733  saveData(os, myDeldegen);
734  saveData(os, myKeepunusedpoints);
735  saveData(os, myKeepconsolidatedpoints);
736  saveData(os, myGrouppropagation);
737  saveData(os, mySwitcher);
738  saveData(os, mySnaptype);
739  saveData(os, myTol3d);
740  saveData(os, mySnappointpos);
741  saveData(os, mySnappointattribs);
742  saveData(os, myPointattribnames);
743  saveData(os, mySnapswitcher);
744  saveData(os, myGridtype);
745  saveData(os, myGridspacing);
746  saveData(os, myGridlines);
747  saveData(os, myGridpow2);
748  saveData(os, myGridoffset);
749  saveData(os, myGridround);
750  saveData(os, myGridtol);
751  saveData(os, myUpdatenml);
752  saveData(os, myAccurate);
753 
754  }
755 
756  bool load(UT_IStream &is)
757  {
758  int32 v;
759  is.bread(&v, 1);
760  if (version() != v)
761  {
762  // Fail incompatible versions
763  return false;
764  }
765  loadData(is, myGroup);
766  loadData(is, myUsedist);
767  loadData(is, myDist);
768  loadData(is, myDeldegen);
769  loadData(is, myKeepunusedpoints);
770  loadData(is, myKeepconsolidatedpoints);
771  loadData(is, myGrouppropagation);
772  loadData(is, mySwitcher);
773  loadData(is, mySnaptype);
774  loadData(is, myTol3d);
775  loadData(is, mySnappointpos);
776  loadData(is, mySnappointattribs);
777  loadData(is, myPointattribnames);
778  loadData(is, mySnapswitcher);
779  loadData(is, myGridtype);
780  loadData(is, myGridspacing);
781  loadData(is, myGridlines);
782  loadData(is, myGridpow2);
783  loadData(is, myGridoffset);
784  loadData(is, myGridround);
785  loadData(is, myGridtol);
786  loadData(is, myUpdatenml);
787  loadData(is, myAccurate);
788 
789  return true;
790  }
791 
792  const UT_StringHolder & getGroup() const { return myGroup; }
793  void setGroup(const UT_StringHolder & val) { myGroup = val; }
795  {
796  SOP_Node *thissop = cookparms.getNode();
797  if (!thissop) return getGroup();
799  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
800  return result;
801  }
802  bool getUsedist() const { return myUsedist; }
803  void setUsedist(bool val) { myUsedist = val; }
804  bool opUsedist(const SOP_NodeVerb::CookParms &cookparms) const
805  {
806  SOP_Node *thissop = cookparms.getNode();
807  if (!thissop) return getUsedist();
808  bool result;
809  OP_Utils::evalOpParm(result, thissop, "usedist", cookparms.getCookTime(), 0);
810  return result;
811  }
812  fpreal64 getDist() const { return myDist; }
813  void setDist(fpreal64 val) { myDist = val; }
814  fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
815  {
816  SOP_Node *thissop = cookparms.getNode();
817  if (!thissop) return getDist();
819  OP_Utils::evalOpParm(result, thissop, "dist", cookparms.getCookTime(), 0);
820  return result;
821  }
822  bool getDeldegen() const { return myDeldegen; }
823  void setDeldegen(bool val) { myDeldegen = val; }
824  bool opDeldegen(const SOP_NodeVerb::CookParms &cookparms) const
825  {
826  SOP_Node *thissop = cookparms.getNode();
827  if (!thissop) return getDeldegen();
828  bool result;
829  OP_Utils::evalOpParm(result, thissop, "deldegen", cookparms.getCookTime(), 0);
830  return result;
831  }
832  bool getKeepunusedpoints() const { return myKeepunusedpoints; }
833  void setKeepunusedpoints(bool val) { myKeepunusedpoints = val; }
834  bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
835  {
836  SOP_Node *thissop = cookparms.getNode();
837  if (!thissop) return getKeepunusedpoints();
838  bool result;
839  OP_Utils::evalOpParm(result, thissop, "keepunusedpoints", cookparms.getCookTime(), 0);
840  return result;
841  }
842  bool getKeepconsolidatedpoints() const { return myKeepconsolidatedpoints; }
843  void setKeepconsolidatedpoints(bool val) { myKeepconsolidatedpoints = val; }
845  {
846  SOP_Node *thissop = cookparms.getNode();
847  if (!thissop) return getKeepconsolidatedpoints();
848  bool result;
849  OP_Utils::evalOpParm(result, thissop, "keepconsolidatedpoints", cookparms.getCookTime(), 0);
850  return result;
851  }
852  Grouppropagation getGrouppropagation() const { return Grouppropagation(myGrouppropagation); }
853  void setGrouppropagation(Grouppropagation val) { myGrouppropagation = int64(val); }
855  {
856  SOP_Node *thissop = cookparms.getNode();
857  if (!thissop) return getGrouppropagation();
858  int64 result;
859  OP_Utils::evalOpParm(result, thissop, "grouppropagation", cookparms.getCookTime(), 0);
860  return Grouppropagation(result);
861  }
862  int64 getSwitcher() const { return mySwitcher; }
863  void setSwitcher(int64 val) { mySwitcher = val; }
864  int64 opSwitcher(const SOP_NodeVerb::CookParms &cookparms) const
865  {
866  SOP_Node *thissop = cookparms.getNode();
867  if (!thissop) return getSwitcher();
868  int64 result;
869  OP_Utils::evalOpParm(result, thissop, "switcher", cookparms.getCookTime(), 0);
870  return result;
871  }
872  Snaptype getSnaptype() const { return Snaptype(mySnaptype); }
873  void setSnaptype(Snaptype val) { mySnaptype = int64(val); }
875  {
876  SOP_Node *thissop = cookparms.getNode();
877  if (!thissop) return getSnaptype();
878  int64 result;
879  OP_Utils::evalOpParm(result, thissop, "snaptype", cookparms.getCookTime(), 0);
880  return Snaptype(result);
881  }
882  fpreal64 getTol3d() const { return myTol3d; }
883  void setTol3d(fpreal64 val) { myTol3d = val; }
884  fpreal64 opTol3d(const SOP_NodeVerb::CookParms &cookparms) const
885  {
886  SOP_Node *thissop = cookparms.getNode();
887  if (!thissop) return getTol3d();
889  OP_Utils::evalOpParm(result, thissop, "tol3d", cookparms.getCookTime(), 0);
890  return result;
891  }
892  bool getSnappointpos() const { return mySnappointpos; }
893  void setSnappointpos(bool val) { mySnappointpos = val; }
894  bool opSnappointpos(const SOP_NodeVerb::CookParms &cookparms) const
895  {
896  SOP_Node *thissop = cookparms.getNode();
897  if (!thissop) return getSnappointpos();
898  bool result;
899  OP_Utils::evalOpParm(result, thissop, "snappointpos", cookparms.getCookTime(), 0);
900  return result;
901  }
902  bool getSnappointattribs() const { return mySnappointattribs; }
903  void setSnappointattribs(bool val) { mySnappointattribs = val; }
904  bool opSnappointattribs(const SOP_NodeVerb::CookParms &cookparms) const
905  {
906  SOP_Node *thissop = cookparms.getNode();
907  if (!thissop) return getSnappointattribs();
908  bool result;
909  OP_Utils::evalOpParm(result, thissop, "snappointattribs", cookparms.getCookTime(), 0);
910  return result;
911  }
912  const UT_StringHolder & getPointattribnames() const { return myPointattribnames; }
913  void setPointattribnames(const UT_StringHolder & val) { myPointattribnames = val; }
915  {
916  SOP_Node *thissop = cookparms.getNode();
917  if (!thissop) return getPointattribnames();
919  OP_Utils::evalOpParm(result, thissop, "pointattribnames", cookparms.getCookTime(), 0);
920  return result;
921  }
922  int64 getSnapswitcher() const { return mySnapswitcher; }
923  void setSnapswitcher(int64 val) { mySnapswitcher = val; }
925  {
926  SOP_Node *thissop = cookparms.getNode();
927  if (!thissop) return getSnapswitcher();
928  int64 result;
929  OP_Utils::evalOpParm(result, thissop, "snapswitcher", cookparms.getCookTime(), 0);
930  return result;
931  }
932  Gridtype getGridtype() const { return Gridtype(myGridtype); }
933  void setGridtype(Gridtype val) { myGridtype = int64(val); }
935  {
936  SOP_Node *thissop = cookparms.getNode();
937  if (!thissop) return getGridtype();
938  int64 result;
939  OP_Utils::evalOpParm(result, thissop, "gridtype", cookparms.getCookTime(), 0);
940  return Gridtype(result);
941  }
942  UT_Vector3D getGridspacing() const { return myGridspacing; }
943  void setGridspacing(UT_Vector3D val) { myGridspacing = val; }
945  {
946  SOP_Node *thissop = cookparms.getNode();
947  if (!thissop) return getGridspacing();
949  OP_Utils::evalOpParm(result, thissop, "gridspacing", cookparms.getCookTime(), 0);
950  return result;
951  }
952  UT_Vector3D getGridlines() const { return myGridlines; }
953  void setGridlines(UT_Vector3D val) { myGridlines = val; }
955  {
956  SOP_Node *thissop = cookparms.getNode();
957  if (!thissop) return getGridlines();
959  OP_Utils::evalOpParm(result, thissop, "gridlines", cookparms.getCookTime(), 0);
960  return result;
961  }
962  UT_Vector3I getGridpow2() const { return myGridpow2; }
963  void setGridpow2(UT_Vector3I val) { myGridpow2 = val; }
965  {
966  SOP_Node *thissop = cookparms.getNode();
967  if (!thissop) return getGridpow2();
969  OP_Utils::evalOpParm(result, thissop, "gridpow2", cookparms.getCookTime(), 0);
970  return result;
971  }
972  UT_Vector3D getGridoffset() const { return myGridoffset; }
973  void setGridoffset(UT_Vector3D val) { myGridoffset = val; }
975  {
976  SOP_Node *thissop = cookparms.getNode();
977  if (!thissop) return getGridoffset();
979  OP_Utils::evalOpParm(result, thissop, "gridoffset", cookparms.getCookTime(), 0);
980  return result;
981  }
982  Gridround getGridround() const { return Gridround(myGridround); }
983  void setGridround(Gridround val) { myGridround = int64(val); }
985  {
986  SOP_Node *thissop = cookparms.getNode();
987  if (!thissop) return getGridround();
988  int64 result;
989  OP_Utils::evalOpParm(result, thissop, "gridround", cookparms.getCookTime(), 0);
990  return Gridround(result);
991  }
992  fpreal64 getGridtol() const { return myGridtol; }
993  void setGridtol(fpreal64 val) { myGridtol = val; }
995  {
996  SOP_Node *thissop = cookparms.getNode();
997  if (!thissop) return getGridtol();
999  OP_Utils::evalOpParm(result, thissop, "gridtol", cookparms.getCookTime(), 0);
1000  return result;
1001  }
1002  bool getUpdatenml() const { return myUpdatenml; }
1003  void setUpdatenml(bool val) { myUpdatenml = val; }
1004  bool opUpdatenml(const SOP_NodeVerb::CookParms &cookparms) const
1005  {
1006  SOP_Node *thissop = cookparms.getNode();
1007  if (!thissop) return getUpdatenml();
1008  bool result;
1009  OP_Utils::evalOpParm(result, thissop, "updatenml", cookparms.getCookTime(), 0);
1010  return result;
1011  }
1012  bool getAccurate() const { return myAccurate; }
1013  void setAccurate(bool val) { myAccurate = val; }
1014  bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
1015  {
1016  SOP_Node *thissop = cookparms.getNode();
1017  if (!thissop) return getAccurate();
1018  bool result;
1019  OP_Utils::evalOpParm(result, thissop, "accurate", cookparms.getCookTime(), 0);
1020  return result;
1021  }
1022 
1023 private:
1024  UT_StringHolder myGroup;
1025  bool myUsedist;
1026  fpreal64 myDist;
1027  bool myDeldegen;
1028  bool myKeepunusedpoints;
1029  bool myKeepconsolidatedpoints;
1030  int64 myGrouppropagation;
1031  int64 mySwitcher;
1032  int64 mySnaptype;
1033  fpreal64 myTol3d;
1034  bool mySnappointpos;
1035  bool mySnappointattribs;
1036  UT_StringHolder myPointattribnames;
1037  int64 mySnapswitcher;
1038  int64 myGridtype;
1039  UT_Vector3D myGridspacing;
1040  UT_Vector3D myGridlines;
1041  UT_Vector3I myGridpow2;
1042  UT_Vector3D myGridoffset;
1043  int64 myGridround;
1044  fpreal64 myGridtol;
1045  bool myUpdatenml;
1046  bool myAccurate;
1047 
1048 };
type
Definition: core.h:556
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:63
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)
GLsizei const GLfloat * value
Definition: glcorearb.h:824
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:622
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)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
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:303
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:278
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:96
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
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
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:372
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:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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