HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_PolyExpand2D.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_PolyExpand2DEnums
24 {
25  enum class Planepossrc
26  {
27  FITPLANE = 0,
28  SETPLANE
29  };
30 
32  getToken(Planepossrc enum_value)
33  {
34  using namespace UT::Literal;
35  switch (enum_value) {
36  case Planepossrc::FITPLANE: return "fitplane"_sh;
37  case Planepossrc::SETPLANE: return "setplane"_sh;
38  default: UT_ASSERT(false); return ""_sh;
39  }
40  }
41 
42  enum class Output
43  {
44  CURVES = 0,
45  SURFACES
46  };
47 
49  getToken(Output enum_value)
50  {
51  using namespace UT::Literal;
52  switch (enum_value) {
53  case Output::CURVES: return "curves"_sh;
54  case Output::SURFACES: return "surfaces"_sh;
55  default: UT_ASSERT(false); return ""_sh;
56  }
57  }
58 
59  enum class Sidedetermination
60  {
61  VERTEXORDER = 0,
63  ALTREACH,
65  };
66 
69  {
70  using namespace UT::Literal;
71  switch (enum_value) {
72  case Sidedetermination::VERTEXORDER: return "vertexorder"_sh;
73  case Sidedetermination::SIMPLEREACH: return "simplereach"_sh;
74  case Sidedetermination::ALTREACH: return "altreach"_sh;
75  case Sidedetermination::ALTREACHPERMEABLE: return "altreachpermeable"_sh;
76  default: UT_ASSERT(false); return ""_sh;
77  }
78  }
79 
80  enum class Skeletonfailure
81  {
82  ERROR = 0,
83  WARN
84  };
85 
88  {
89  using namespace UT::Literal;
90  switch (enum_value) {
91  case Skeletonfailure::ERROR: return "error"_sh;
92  case Skeletonfailure::WARN: return "warn"_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  myPlanepossrc = 0;
109  myPlaneorigin = UT_Vector3D(0,0,0);
110  myPlanedist = 0;
111  myPlanenormal = UT_Vector3D(0,1,0);
112  myOutput = 0;
113  myOffset = 0.1;
114  myDivs = 1;
115  mySidedetermination = 1;
116  myOutputinside = true;
117  myOutputoutside = true;
118  myKeepinput = false;
119  myOmitendcaps = false;
120  myUselocalinsidescale = false;
121  myLocalinsidescale = "offsetscale"_UTsh;
122  myUselocaloutsidescale = false;
123  myLocaloutsidescale = "offsetscale"_UTsh;
124  myNewg = false;
125  myInsidegroup = "inside"_UTsh;
126  myOutsidegroup = "outside"_UTsh;
127  myDoedgedistattrib = false;
128  myEdgedistattrib = "edgedist"_UTsh;
129  myDoedgespeedattrib = false;
130  myEdgespeedattrib = "edgespeed"_UTsh;
131  myCoincidencetol = 0.003;
132  myParallelismtol = 0.01;
133  mySkeletonfailure = 0;
134  myCacheskeleton = true;
135  myUpdatenmls = true;
136 
137  }
138 
139  explicit SOP_PolyExpand2DParms(const SOP_PolyExpand2DParms &) = default;
141  SOP_PolyExpand2DParms(SOP_PolyExpand2DParms &&) noexcept = default;
142  SOP_PolyExpand2DParms &operator=(SOP_PolyExpand2DParms &&) noexcept = default;
143 
144  ~SOP_PolyExpand2DParms() override {}
145 
147  {
148  if (myGroup != src.myGroup) return false;
149  if (myPlanepossrc != src.myPlanepossrc) return false;
150  if (myPlaneorigin != src.myPlaneorigin) return false;
151  if (myPlanedist != src.myPlanedist) return false;
152  if (myPlanenormal != src.myPlanenormal) return false;
153  if (myOutput != src.myOutput) return false;
154  if (myOffset != src.myOffset) return false;
155  if (myDivs != src.myDivs) return false;
156  if (mySidedetermination != src.mySidedetermination) return false;
157  if (myOutputinside != src.myOutputinside) return false;
158  if (myOutputoutside != src.myOutputoutside) return false;
159  if (myKeepinput != src.myKeepinput) return false;
160  if (myOmitendcaps != src.myOmitendcaps) return false;
161  if (myUselocalinsidescale != src.myUselocalinsidescale) return false;
162  if (myLocalinsidescale != src.myLocalinsidescale) return false;
163  if (myUselocaloutsidescale != src.myUselocaloutsidescale) return false;
164  if (myLocaloutsidescale != src.myLocaloutsidescale) return false;
165  if (myNewg != src.myNewg) return false;
166  if (myInsidegroup != src.myInsidegroup) return false;
167  if (myOutsidegroup != src.myOutsidegroup) return false;
168  if (myDoedgedistattrib != src.myDoedgedistattrib) return false;
169  if (myEdgedistattrib != src.myEdgedistattrib) return false;
170  if (myDoedgespeedattrib != src.myDoedgespeedattrib) return false;
171  if (myEdgespeedattrib != src.myEdgespeedattrib) return false;
172  if (myCoincidencetol != src.myCoincidencetol) return false;
173  if (myParallelismtol != src.myParallelismtol) return false;
174  if (mySkeletonfailure != src.mySkeletonfailure) return false;
175  if (myCacheskeleton != src.myCacheskeleton) return false;
176  if (myUpdatenmls != src.myUpdatenmls) return false;
177 
178  return true;
179  }
181  {
182  return !operator==(src);
183  }
188 
189 
190 
191  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
192  {
193  myGroup = ""_UTsh;
194  if (true)
195  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
196  myPlanepossrc = 0;
197  if (true)
198  graph->evalOpParm(myPlanepossrc, nodeidx, "planepossrc", time, 0);
199  myPlaneorigin = UT_Vector3D(0,0,0);
200  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
201  graph->evalOpParm(myPlaneorigin, nodeidx, "planeorigin", time, 0);
202  myPlanedist = 0;
203  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
204  graph->evalOpParm(myPlanedist, nodeidx, "planedist", time, 0);
205  myPlanenormal = UT_Vector3D(0,1,0);
206  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
207  graph->evalOpParm(myPlanenormal, nodeidx, "planenormal", time, 0);
208  myOutput = 0;
209  if (true)
210  graph->evalOpParm(myOutput, nodeidx, "output", time, 0);
211  myOffset = 0.1;
212  if (true)
213  graph->evalOpParm(myOffset, nodeidx, "offset", time, 0);
214  myDivs = 1;
215  if (true)
216  graph->evalOpParm(myDivs, nodeidx, "divs", time, 0);
217  mySidedetermination = 1;
218  if (true)
219  graph->evalOpParm(mySidedetermination, nodeidx, "sidedetermination", time, 0);
220  myOutputinside = true;
221  if (true)
222  graph->evalOpParm(myOutputinside, nodeidx, "outputinside", time, 0);
223  myOutputoutside = true;
224  if (true)
225  graph->evalOpParm(myOutputoutside, nodeidx, "outputoutside", time, 0);
226  myKeepinput = false;
227  if (true)
228  graph->evalOpParm(myKeepinput, nodeidx, "keepinput", time, 0);
229  myOmitendcaps = false;
230  if (true && ( (true&&!(((int64(getOutput())==1)))) ) )
231  graph->evalOpParm(myOmitendcaps, nodeidx, "omitendcaps", time, 0);
232  myUselocalinsidescale = false;
233  if (true)
234  graph->evalOpParm(myUselocalinsidescale, nodeidx, "uselocalinsidescale", time, 0);
235  myLocalinsidescale = "offsetscale"_UTsh;
236  if (true && ( (true&&!(((getUselocalinsidescale()==0)))) ) )
237  graph->evalOpParm(myLocalinsidescale, nodeidx, "localinsidescale", time, 0);
238  myUselocaloutsidescale = false;
239  if (true)
240  graph->evalOpParm(myUselocaloutsidescale, nodeidx, "uselocaloutsidescale", time, 0);
241  myLocaloutsidescale = "offsetscale"_UTsh;
242  if (true && ( (true&&!(((getUselocaloutsidescale()==0)))) ) )
243  graph->evalOpParm(myLocaloutsidescale, nodeidx, "localoutsidescale", time, 0);
244  myNewg = false;
245  if (true)
246  graph->evalOpParm(myNewg, nodeidx, "newg", time, 0);
247  myInsidegroup = "inside"_UTsh;
248  if (true && ( (true&&!(((getNewg()==0))||((getOutputinside()==0)))) ) )
249  graph->evalOpParm(myInsidegroup, nodeidx, "insidegroup", time, 0);
250  myOutsidegroup = "outside"_UTsh;
251  if (true && ( (true&&!(((getNewg()==0))||((getOutputoutside()==0)))) ) )
252  graph->evalOpParm(myOutsidegroup, nodeidx, "outsidegroup", time, 0);
253  myDoedgedistattrib = false;
254  if (true && ( (true&&!(((int64(getOutput())==0)))) ) )
255  graph->evalOpParm(myDoedgedistattrib, nodeidx, "doedgedistattrib", time, 0);
256  myEdgedistattrib = "edgedist"_UTsh;
257  if (true && ( (true&&!(((int64(getOutput())==0))||((getDoedgedistattrib()==0)))) ) )
258  graph->evalOpParm(myEdgedistattrib, nodeidx, "edgedistattrib", time, 0);
259  myDoedgespeedattrib = false;
260  if (true && ( (true&&!(((int64(getOutput())==0)))) ) )
261  graph->evalOpParm(myDoedgespeedattrib, nodeidx, "doedgespeedattrib", time, 0);
262  myEdgespeedattrib = "edgespeed"_UTsh;
263  if (true && ( (true&&!(((int64(getOutput())==0))||((getDoedgedistattrib()==0)))) ) )
264  graph->evalOpParm(myEdgespeedattrib, nodeidx, "edgespeedattrib", time, 0);
265  myCoincidencetol = 0.003;
266  if (true)
267  graph->evalOpParm(myCoincidencetol, nodeidx, "coincidencetol", time, 0);
268  myParallelismtol = 0.01;
269  if (true)
270  graph->evalOpParm(myParallelismtol, nodeidx, "parallelismtol", time, 0);
271  mySkeletonfailure = 0;
272  if (true)
273  graph->evalOpParm(mySkeletonfailure, nodeidx, "skeletonfailure", time, 0);
274  myCacheskeleton = true;
275  if (true)
276  graph->evalOpParm(myCacheskeleton, nodeidx, "cacheskeleton", time, 0);
277  myUpdatenmls = true;
278  if (true)
279  graph->evalOpParm(myUpdatenmls, nodeidx, "updatenmls", time, 0);
280 
281  }
282 
283 
284  void loadFromOpSubclass(const LoadParms &loadparms) override
285  {
286  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
287  }
288 
289 
290  void copyFrom(const OP_NodeParms *src) override
291  {
292  *this = *((const SOP_PolyExpand2DParms *)src);
293  }
294 
295  template <typename T>
296  void
297  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
298  {
299  if (idx.size() < 1)
300  return;
301  UT_ASSERT(idx.size() == instance.size()+1);
302  if (idx.size() != instance.size()+1)
303  return;
304  switch (idx[0])
305  {
306  case 0:
307  coerceValue(value, myGroup);
308  break;
309  case 1:
310  coerceValue(value, myPlanepossrc);
311  break;
312  case 2:
313  coerceValue(value, myPlaneorigin);
314  break;
315  case 3:
316  coerceValue(value, myPlanedist);
317  break;
318  case 4:
319  coerceValue(value, myPlanenormal);
320  break;
321  case 5:
322  coerceValue(value, myOutput);
323  break;
324  case 6:
325  coerceValue(value, myOffset);
326  break;
327  case 7:
328  coerceValue(value, myDivs);
329  break;
330  case 8:
331  coerceValue(value, mySidedetermination);
332  break;
333  case 9:
334  coerceValue(value, myOutputinside);
335  break;
336  case 10:
337  coerceValue(value, myOutputoutside);
338  break;
339  case 11:
340  coerceValue(value, myKeepinput);
341  break;
342  case 12:
343  coerceValue(value, myOmitendcaps);
344  break;
345  case 13:
346  coerceValue(value, myUselocalinsidescale);
347  break;
348  case 14:
349  coerceValue(value, myLocalinsidescale);
350  break;
351  case 15:
352  coerceValue(value, myUselocaloutsidescale);
353  break;
354  case 16:
355  coerceValue(value, myLocaloutsidescale);
356  break;
357  case 17:
358  coerceValue(value, myNewg);
359  break;
360  case 18:
361  coerceValue(value, myInsidegroup);
362  break;
363  case 19:
364  coerceValue(value, myOutsidegroup);
365  break;
366  case 20:
367  coerceValue(value, myDoedgedistattrib);
368  break;
369  case 21:
370  coerceValue(value, myEdgedistattrib);
371  break;
372  case 22:
373  coerceValue(value, myDoedgespeedattrib);
374  break;
375  case 23:
376  coerceValue(value, myEdgespeedattrib);
377  break;
378  case 24:
379  coerceValue(value, myCoincidencetol);
380  break;
381  case 25:
382  coerceValue(value, myParallelismtol);
383  break;
384  case 26:
385  coerceValue(value, mySkeletonfailure);
386  break;
387  case 27:
388  coerceValue(value, myCacheskeleton);
389  break;
390  case 28:
391  coerceValue(value, myUpdatenmls);
392  break;
393 
394  }
395  }
396 
397  bool isParmColorRamp(exint idx) const override
398  {
399  switch (idx)
400  {
401 
402  }
403  return false;
404  }
405 
406  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
407  { doGetParmValue(idx, instance, value); }
408  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
409  { doGetParmValue(idx, instance, value); }
410  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
411  { doGetParmValue(idx, instance, value); }
412  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
413  { doGetParmValue(idx, instance, value); }
414  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
415  { doGetParmValue(idx, instance, value); }
416  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
417  { doGetParmValue(idx, instance, value); }
418  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
419  { doGetParmValue(idx, instance, value); }
420  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
421  { doGetParmValue(idx, instance, value); }
422  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
423  { doGetParmValue(idx, instance, value); }
424  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
425  { doGetParmValue(idx, instance, value); }
426  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
427  { doGetParmValue(idx, instance, value); }
428 
429  template <typename T>
430  void
431  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
432  {
433  if (idx.size() < 1)
434  return;
435  UT_ASSERT(idx.size() == instance.size()+1);
436  if (idx.size() != instance.size()+1)
437  return;
438  switch (idx[0])
439  {
440  case 0:
441  coerceValue(myGroup, ( ( value ) ));
442  break;
443  case 1:
444  coerceValue(myPlanepossrc, clampMinValue(0, clampMaxValue(1, value ) ));
445  break;
446  case 2:
447  coerceValue(myPlaneorigin, ( ( value ) ));
448  break;
449  case 3:
450  coerceValue(myPlanedist, ( ( value ) ));
451  break;
452  case 4:
453  coerceValue(myPlanenormal, ( ( value ) ));
454  break;
455  case 5:
456  coerceValue(myOutput, clampMinValue(0, clampMaxValue(1, value ) ));
457  break;
458  case 6:
459  coerceValue(myOffset, clampMinValue(0.0001, ( value ) ));
460  break;
461  case 7:
462  coerceValue(myDivs, clampMinValue(1, ( value ) ));
463  break;
464  case 8:
465  coerceValue(mySidedetermination, clampMinValue(0, clampMaxValue(3, value ) ));
466  break;
467  case 9:
468  coerceValue(myOutputinside, ( ( value ) ));
469  break;
470  case 10:
471  coerceValue(myOutputoutside, ( ( value ) ));
472  break;
473  case 11:
474  coerceValue(myKeepinput, ( ( value ) ));
475  break;
476  case 12:
477  coerceValue(myOmitendcaps, ( ( value ) ));
478  break;
479  case 13:
480  coerceValue(myUselocalinsidescale, ( ( value ) ));
481  break;
482  case 14:
483  coerceValue(myLocalinsidescale, ( ( value ) ));
484  break;
485  case 15:
486  coerceValue(myUselocaloutsidescale, ( ( value ) ));
487  break;
488  case 16:
489  coerceValue(myLocaloutsidescale, ( ( value ) ));
490  break;
491  case 17:
492  coerceValue(myNewg, ( ( value ) ));
493  break;
494  case 18:
495  coerceValue(myInsidegroup, ( ( value ) ));
496  break;
497  case 19:
498  coerceValue(myOutsidegroup, ( ( value ) ));
499  break;
500  case 20:
501  coerceValue(myDoedgedistattrib, ( ( value ) ));
502  break;
503  case 21:
504  coerceValue(myEdgedistattrib, ( ( value ) ));
505  break;
506  case 22:
507  coerceValue(myDoedgespeedattrib, ( ( value ) ));
508  break;
509  case 23:
510  coerceValue(myEdgespeedattrib, ( ( value ) ));
511  break;
512  case 24:
513  coerceValue(myCoincidencetol, clampMinValue(0, clampMaxValue(1, value ) ));
514  break;
515  case 25:
516  coerceValue(myParallelismtol, clampMinValue(0, clampMaxValue(1, value ) ));
517  break;
518  case 26:
519  coerceValue(mySkeletonfailure, clampMinValue(0, clampMaxValue(1, value ) ));
520  break;
521  case 27:
522  coerceValue(myCacheskeleton, ( ( value ) ));
523  break;
524  case 28:
525  coerceValue(myUpdatenmls, ( ( value ) ));
526  break;
527 
528  }
529  }
530 
531  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
532  { doSetParmValue(idx, instance, value); }
533  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
534  { doSetParmValue(idx, instance, value); }
535  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
536  { doSetParmValue(idx, instance, value); }
537  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
538  { doSetParmValue(idx, instance, value); }
539  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
540  { doSetParmValue(idx, instance, value); }
541  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
542  { doSetParmValue(idx, instance, value); }
543  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
544  { doSetParmValue(idx, instance, value); }
545  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
546  { doSetParmValue(idx, instance, value); }
547  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
548  { doSetParmValue(idx, instance, value); }
549  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
550  { doSetParmValue(idx, instance, value); }
551  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
552  { doSetParmValue(idx, instance, value); }
553 
554  exint getNestNumParms(TempIndex idx) const override
555  {
556  if (idx.size() == 0)
557  return 29;
558  switch (idx[0])
559  {
560 
561  }
562  // Invalid
563  return 0;
564  }
565 
566  const char *getNestParmName(TempIndex fieldnum) const override
567  {
568  if (fieldnum.size() < 1)
569  return 0;
570  switch (fieldnum[0])
571  {
572  case 0:
573  return "group";
574  case 1:
575  return "planepossrc";
576  case 2:
577  return "planeorigin";
578  case 3:
579  return "planedist";
580  case 4:
581  return "planenormal";
582  case 5:
583  return "output";
584  case 6:
585  return "offset";
586  case 7:
587  return "divs";
588  case 8:
589  return "sidedetermination";
590  case 9:
591  return "outputinside";
592  case 10:
593  return "outputoutside";
594  case 11:
595  return "keepinput";
596  case 12:
597  return "omitendcaps";
598  case 13:
599  return "uselocalinsidescale";
600  case 14:
601  return "localinsidescale";
602  case 15:
603  return "uselocaloutsidescale";
604  case 16:
605  return "localoutsidescale";
606  case 17:
607  return "newg";
608  case 18:
609  return "insidegroup";
610  case 19:
611  return "outsidegroup";
612  case 20:
613  return "doedgedistattrib";
614  case 21:
615  return "edgedistattrib";
616  case 22:
617  return "doedgespeedattrib";
618  case 23:
619  return "edgespeedattrib";
620  case 24:
621  return "coincidencetol";
622  case 25:
623  return "parallelismtol";
624  case 26:
625  return "skeletonfailure";
626  case 27:
627  return "cacheskeleton";
628  case 28:
629  return "updatenmls";
630 
631  }
632  return 0;
633  }
634 
635  ParmType getNestParmType(TempIndex fieldnum) const override
636  {
637  if (fieldnum.size() < 1)
638  return PARM_UNSUPPORTED;
639  switch (fieldnum[0])
640  {
641  case 0:
642  return PARM_STRING;
643  case 1:
644  return PARM_INTEGER;
645  case 2:
646  return PARM_VECTOR3;
647  case 3:
648  return PARM_FLOAT;
649  case 4:
650  return PARM_VECTOR3;
651  case 5:
652  return PARM_INTEGER;
653  case 6:
654  return PARM_FLOAT;
655  case 7:
656  return PARM_INTEGER;
657  case 8:
658  return PARM_INTEGER;
659  case 9:
660  return PARM_INTEGER;
661  case 10:
662  return PARM_INTEGER;
663  case 11:
664  return PARM_INTEGER;
665  case 12:
666  return PARM_INTEGER;
667  case 13:
668  return PARM_INTEGER;
669  case 14:
670  return PARM_STRING;
671  case 15:
672  return PARM_INTEGER;
673  case 16:
674  return PARM_STRING;
675  case 17:
676  return PARM_INTEGER;
677  case 18:
678  return PARM_STRING;
679  case 19:
680  return PARM_STRING;
681  case 20:
682  return PARM_INTEGER;
683  case 21:
684  return PARM_STRING;
685  case 22:
686  return PARM_INTEGER;
687  case 23:
688  return PARM_STRING;
689  case 24:
690  return PARM_FLOAT;
691  case 25:
692  return PARM_FLOAT;
693  case 26:
694  return PARM_INTEGER;
695  case 27:
696  return PARM_INTEGER;
697  case 28:
698  return PARM_INTEGER;
699 
700  }
701  return PARM_UNSUPPORTED;
702  }
703 
704  // Boiler plate to load individual types.
705  static void loadData(UT_IStream &is, int64 &v)
706  { is.bread(&v, 1); }
707  static void loadData(UT_IStream &is, bool &v)
708  { int64 iv; is.bread(&iv, 1); v = iv; }
709  static void loadData(UT_IStream &is, fpreal64 &v)
710  { is.bread<fpreal64>(&v, 1); }
711  static void loadData(UT_IStream &is, UT_Vector2D &v)
712  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
713  static void loadData(UT_IStream &is, UT_Vector3D &v)
714  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
715  is.bread<fpreal64>(&v.z(), 1); }
716  static void loadData(UT_IStream &is, UT_Vector4D &v)
717  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
718  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
719  static void loadData(UT_IStream &is, UT_Matrix2D &v)
720  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
721  static void loadData(UT_IStream &is, UT_Matrix3D &v)
722  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
723  static void loadData(UT_IStream &is, UT_Matrix4D &v)
724  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
725  static void loadData(UT_IStream &is, UT_Vector2I &v)
726  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
727  static void loadData(UT_IStream &is, UT_Vector3I &v)
728  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
729  is.bread<int64>(&v.z(), 1); }
730  static void loadData(UT_IStream &is, UT_Vector4I &v)
731  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
732  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
734  { is.bread(v); }
736  { UT_StringHolder rampdata;
737  loadData(is, rampdata);
738  if (rampdata.isstring())
739  {
740  v.reset(new UT_Ramp());
741  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
742  v->load(istr);
743  }
744  else v.reset();
745  }
748  loadData(is, data);
749  if (data.isstring())
750  {
751  // Find the data type.
752  const char *colon = UT_StringWrap(data).findChar(':');
753  if (colon)
754  {
755  int typelen = colon - data.buffer();
757  type.strncpy(data.buffer(), typelen);
758  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
759 
760  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
761  }
762  }
763  else v.reset();
764  }
765 
766  static void saveData(std::ostream &os, int64 v)
767  { UTwrite(os, &v); }
768  static void saveData(std::ostream &os, bool v)
769  { int64 iv = v; UTwrite(os, &iv); }
770  static void saveData(std::ostream &os, fpreal64 v)
771  { UTwrite<fpreal64>(os, &v); }
772  static void saveData(std::ostream &os, UT_Vector2D v)
773  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
774  static void saveData(std::ostream &os, UT_Vector3D v)
775  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
776  UTwrite<fpreal64>(os, &v.z()); }
777  static void saveData(std::ostream &os, UT_Vector4D v)
778  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
779  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
780  static void saveData(std::ostream &os, UT_Matrix2D v)
782  static void saveData(std::ostream &os, UT_Matrix3D v)
784  static void saveData(std::ostream &os, UT_Matrix4D v)
786  static void saveData(std::ostream &os, UT_StringHolder s)
787  { UT_StringWrap(s).saveBinary(os); }
788  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
790  UT_OStringStream ostr;
791  if (s) s->save(ostr);
792  result = ostr.str();
793  saveData(os, result);
794  }
795  static void saveData(std::ostream &os, PRM_DataItemHandle s)
797  UT_OStringStream ostr;
798  if (s)
799  {
800  ostr << s->getDataTypeToken();
801  ostr << ":";
802  s->saveBinary(ostr);
803  }
804  result = ostr.str();
805  saveData(os, result);
806  }
807 
808 
809  void save(std::ostream &os) const
810  {
811  int32 v = version();
812  UTwrite(os, &v);
813  saveData(os, myGroup);
814  saveData(os, myPlanepossrc);
815  saveData(os, myPlaneorigin);
816  saveData(os, myPlanedist);
817  saveData(os, myPlanenormal);
818  saveData(os, myOutput);
819  saveData(os, myOffset);
820  saveData(os, myDivs);
821  saveData(os, mySidedetermination);
822  saveData(os, myOutputinside);
823  saveData(os, myOutputoutside);
824  saveData(os, myKeepinput);
825  saveData(os, myOmitendcaps);
826  saveData(os, myUselocalinsidescale);
827  saveData(os, myLocalinsidescale);
828  saveData(os, myUselocaloutsidescale);
829  saveData(os, myLocaloutsidescale);
830  saveData(os, myNewg);
831  saveData(os, myInsidegroup);
832  saveData(os, myOutsidegroup);
833  saveData(os, myDoedgedistattrib);
834  saveData(os, myEdgedistattrib);
835  saveData(os, myDoedgespeedattrib);
836  saveData(os, myEdgespeedattrib);
837  saveData(os, myCoincidencetol);
838  saveData(os, myParallelismtol);
839  saveData(os, mySkeletonfailure);
840  saveData(os, myCacheskeleton);
841  saveData(os, myUpdatenmls);
842 
843  }
844 
845  bool load(UT_IStream &is)
846  {
847  int32 v;
848  is.bread(&v, 1);
849  if (version() != v)
850  {
851  // Fail incompatible versions
852  return false;
853  }
854  loadData(is, myGroup);
855  loadData(is, myPlanepossrc);
856  loadData(is, myPlaneorigin);
857  loadData(is, myPlanedist);
858  loadData(is, myPlanenormal);
859  loadData(is, myOutput);
860  loadData(is, myOffset);
861  loadData(is, myDivs);
862  loadData(is, mySidedetermination);
863  loadData(is, myOutputinside);
864  loadData(is, myOutputoutside);
865  loadData(is, myKeepinput);
866  loadData(is, myOmitendcaps);
867  loadData(is, myUselocalinsidescale);
868  loadData(is, myLocalinsidescale);
869  loadData(is, myUselocaloutsidescale);
870  loadData(is, myLocaloutsidescale);
871  loadData(is, myNewg);
872  loadData(is, myInsidegroup);
873  loadData(is, myOutsidegroup);
874  loadData(is, myDoedgedistattrib);
875  loadData(is, myEdgedistattrib);
876  loadData(is, myDoedgespeedattrib);
877  loadData(is, myEdgespeedattrib);
878  loadData(is, myCoincidencetol);
879  loadData(is, myParallelismtol);
880  loadData(is, mySkeletonfailure);
881  loadData(is, myCacheskeleton);
882  loadData(is, myUpdatenmls);
883 
884  return true;
885  }
886 
887  const UT_StringHolder & getGroup() const { return myGroup; }
888  void setGroup(const UT_StringHolder & val) { myGroup = val; }
890  {
891  SOP_Node *thissop = cookparms.getNode();
892  if (!thissop) return getGroup();
894  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
895  return result;
896  }
897  Planepossrc getPlanepossrc() const { return Planepossrc(myPlanepossrc); }
898  void setPlanepossrc(Planepossrc val) { myPlanepossrc = int64(val); }
900  {
901  SOP_Node *thissop = cookparms.getNode();
902  if (!thissop) return getPlanepossrc();
903  int64 result;
904  OP_Utils::evalOpParm(result, thissop, "planepossrc", cookparms.getCookTime(), 0);
905  return Planepossrc(result);
906  }
907  UT_Vector3D getPlaneorigin() const { return myPlaneorigin; }
908  void setPlaneorigin(UT_Vector3D val) { myPlaneorigin = val; }
910  {
911  SOP_Node *thissop = cookparms.getNode();
912  if (!thissop) return getPlaneorigin();
914  OP_Utils::evalOpParm(result, thissop, "planeorigin", cookparms.getCookTime(), 0);
915  return result;
916  }
917  fpreal64 getPlanedist() const { return myPlanedist; }
918  void setPlanedist(fpreal64 val) { myPlanedist = val; }
920  {
921  SOP_Node *thissop = cookparms.getNode();
922  if (!thissop) return getPlanedist();
924  OP_Utils::evalOpParm(result, thissop, "planedist", cookparms.getCookTime(), 0);
925  return result;
926  }
927  UT_Vector3D getPlanenormal() const { return myPlanenormal; }
928  void setPlanenormal(UT_Vector3D val) { myPlanenormal = val; }
930  {
931  SOP_Node *thissop = cookparms.getNode();
932  if (!thissop) return getPlanenormal();
934  OP_Utils::evalOpParm(result, thissop, "planenormal", cookparms.getCookTime(), 0);
935  return result;
936  }
937  Output getOutput() const { return Output(myOutput); }
938  void setOutput(Output val) { myOutput = int64(val); }
939  Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
940  {
941  SOP_Node *thissop = cookparms.getNode();
942  if (!thissop) return getOutput();
943  int64 result;
944  OP_Utils::evalOpParm(result, thissop, "output", cookparms.getCookTime(), 0);
945  return Output(result);
946  }
947  fpreal64 getOffset() const { return myOffset; }
948  void setOffset(fpreal64 val) { myOffset = val; }
949  fpreal64 opOffset(const SOP_NodeVerb::CookParms &cookparms) const
950  {
951  SOP_Node *thissop = cookparms.getNode();
952  if (!thissop) return getOffset();
954  OP_Utils::evalOpParm(result, thissop, "offset", cookparms.getCookTime(), 0);
955  return result;
956  }
957  int64 getDivs() const { return myDivs; }
958  void setDivs(int64 val) { myDivs = val; }
959  int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
960  {
961  SOP_Node *thissop = cookparms.getNode();
962  if (!thissop) return getDivs();
963  int64 result;
964  OP_Utils::evalOpParm(result, thissop, "divs", cookparms.getCookTime(), 0);
965  return result;
966  }
967  Sidedetermination getSidedetermination() const { return Sidedetermination(mySidedetermination); }
968  void setSidedetermination(Sidedetermination val) { mySidedetermination = int64(val); }
970  {
971  SOP_Node *thissop = cookparms.getNode();
972  if (!thissop) return getSidedetermination();
973  int64 result;
974  OP_Utils::evalOpParm(result, thissop, "sidedetermination", cookparms.getCookTime(), 0);
975  return Sidedetermination(result);
976  }
977  bool getOutputinside() const { return myOutputinside; }
978  void setOutputinside(bool val) { myOutputinside = val; }
979  bool opOutputinside(const SOP_NodeVerb::CookParms &cookparms) const
980  {
981  SOP_Node *thissop = cookparms.getNode();
982  if (!thissop) return getOutputinside();
983  bool result;
984  OP_Utils::evalOpParm(result, thissop, "outputinside", cookparms.getCookTime(), 0);
985  return result;
986  }
987  bool getOutputoutside() const { return myOutputoutside; }
988  void setOutputoutside(bool val) { myOutputoutside = val; }
989  bool opOutputoutside(const SOP_NodeVerb::CookParms &cookparms) const
990  {
991  SOP_Node *thissop = cookparms.getNode();
992  if (!thissop) return getOutputoutside();
993  bool result;
994  OP_Utils::evalOpParm(result, thissop, "outputoutside", cookparms.getCookTime(), 0);
995  return result;
996  }
997  bool getKeepinput() const { return myKeepinput; }
998  void setKeepinput(bool val) { myKeepinput = val; }
999  bool opKeepinput(const SOP_NodeVerb::CookParms &cookparms) const
1000  {
1001  SOP_Node *thissop = cookparms.getNode();
1002  if (!thissop) return getKeepinput();
1003  bool result;
1004  OP_Utils::evalOpParm(result, thissop, "keepinput", cookparms.getCookTime(), 0);
1005  return result;
1006  }
1007  bool getOmitendcaps() const { return myOmitendcaps; }
1008  void setOmitendcaps(bool val) { myOmitendcaps = val; }
1009  bool opOmitendcaps(const SOP_NodeVerb::CookParms &cookparms) const
1010  {
1011  SOP_Node *thissop = cookparms.getNode();
1012  if (!thissop) return getOmitendcaps();
1013  bool result;
1014  OP_Utils::evalOpParm(result, thissop, "omitendcaps", cookparms.getCookTime(), 0);
1015  return result;
1016  }
1017  bool getUselocalinsidescale() const { return myUselocalinsidescale; }
1018  void setUselocalinsidescale(bool val) { myUselocalinsidescale = val; }
1019  bool opUselocalinsidescale(const SOP_NodeVerb::CookParms &cookparms) const
1020  {
1021  SOP_Node *thissop = cookparms.getNode();
1022  if (!thissop) return getUselocalinsidescale();
1023  bool result;
1024  OP_Utils::evalOpParm(result, thissop, "uselocalinsidescale", cookparms.getCookTime(), 0);
1025  return result;
1026  }
1027  const UT_StringHolder & getLocalinsidescale() const { return myLocalinsidescale; }
1028  void setLocalinsidescale(const UT_StringHolder & val) { myLocalinsidescale = val; }
1030  {
1031  SOP_Node *thissop = cookparms.getNode();
1032  if (!thissop) return getLocalinsidescale();
1034  OP_Utils::evalOpParm(result, thissop, "localinsidescale", cookparms.getCookTime(), 0);
1035  return result;
1036  }
1037  bool getUselocaloutsidescale() const { return myUselocaloutsidescale; }
1038  void setUselocaloutsidescale(bool val) { myUselocaloutsidescale = val; }
1040  {
1041  SOP_Node *thissop = cookparms.getNode();
1042  if (!thissop) return getUselocaloutsidescale();
1043  bool result;
1044  OP_Utils::evalOpParm(result, thissop, "uselocaloutsidescale", cookparms.getCookTime(), 0);
1045  return result;
1046  }
1047  const UT_StringHolder & getLocaloutsidescale() const { return myLocaloutsidescale; }
1048  void setLocaloutsidescale(const UT_StringHolder & val) { myLocaloutsidescale = val; }
1050  {
1051  SOP_Node *thissop = cookparms.getNode();
1052  if (!thissop) return getLocaloutsidescale();
1054  OP_Utils::evalOpParm(result, thissop, "localoutsidescale", cookparms.getCookTime(), 0);
1055  return result;
1056  }
1057  bool getNewg() const { return myNewg; }
1058  void setNewg(bool val) { myNewg = val; }
1059  bool opNewg(const SOP_NodeVerb::CookParms &cookparms) const
1060  {
1061  SOP_Node *thissop = cookparms.getNode();
1062  if (!thissop) return getNewg();
1063  bool result;
1064  OP_Utils::evalOpParm(result, thissop, "newg", cookparms.getCookTime(), 0);
1065  return result;
1066  }
1067  const UT_StringHolder & getInsidegroup() const { return myInsidegroup; }
1068  void setInsidegroup(const UT_StringHolder & val) { myInsidegroup = val; }
1070  {
1071  SOP_Node *thissop = cookparms.getNode();
1072  if (!thissop) return getInsidegroup();
1074  OP_Utils::evalOpParm(result, thissop, "insidegroup", cookparms.getCookTime(), 0);
1075  return result;
1076  }
1077  const UT_StringHolder & getOutsidegroup() const { return myOutsidegroup; }
1078  void setOutsidegroup(const UT_StringHolder & val) { myOutsidegroup = val; }
1080  {
1081  SOP_Node *thissop = cookparms.getNode();
1082  if (!thissop) return getOutsidegroup();
1084  OP_Utils::evalOpParm(result, thissop, "outsidegroup", cookparms.getCookTime(), 0);
1085  return result;
1086  }
1087  bool getDoedgedistattrib() const { return myDoedgedistattrib; }
1088  void setDoedgedistattrib(bool val) { myDoedgedistattrib = val; }
1089  bool opDoedgedistattrib(const SOP_NodeVerb::CookParms &cookparms) const
1090  {
1091  SOP_Node *thissop = cookparms.getNode();
1092  if (!thissop) return getDoedgedistattrib();
1093  bool result;
1094  OP_Utils::evalOpParm(result, thissop, "doedgedistattrib", cookparms.getCookTime(), 0);
1095  return result;
1096  }
1097  const UT_StringHolder & getEdgedistattrib() const { return myEdgedistattrib; }
1098  void setEdgedistattrib(const UT_StringHolder & val) { myEdgedistattrib = val; }
1100  {
1101  SOP_Node *thissop = cookparms.getNode();
1102  if (!thissop) return getEdgedistattrib();
1104  OP_Utils::evalOpParm(result, thissop, "edgedistattrib", cookparms.getCookTime(), 0);
1105  return result;
1106  }
1107  bool getDoedgespeedattrib() const { return myDoedgespeedattrib; }
1108  void setDoedgespeedattrib(bool val) { myDoedgespeedattrib = val; }
1109  bool opDoedgespeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
1110  {
1111  SOP_Node *thissop = cookparms.getNode();
1112  if (!thissop) return getDoedgespeedattrib();
1113  bool result;
1114  OP_Utils::evalOpParm(result, thissop, "doedgespeedattrib", cookparms.getCookTime(), 0);
1115  return result;
1116  }
1117  const UT_StringHolder & getEdgespeedattrib() const { return myEdgespeedattrib; }
1118  void setEdgespeedattrib(const UT_StringHolder & val) { myEdgespeedattrib = val; }
1120  {
1121  SOP_Node *thissop = cookparms.getNode();
1122  if (!thissop) return getEdgespeedattrib();
1124  OP_Utils::evalOpParm(result, thissop, "edgespeedattrib", cookparms.getCookTime(), 0);
1125  return result;
1126  }
1127  fpreal64 getCoincidencetol() const { return myCoincidencetol; }
1128  void setCoincidencetol(fpreal64 val) { myCoincidencetol = val; }
1130  {
1131  SOP_Node *thissop = cookparms.getNode();
1132  if (!thissop) return getCoincidencetol();
1133  fpreal64 result;
1134  OP_Utils::evalOpParm(result, thissop, "coincidencetol", cookparms.getCookTime(), 0);
1135  return result;
1136  }
1137  fpreal64 getParallelismtol() const { return myParallelismtol; }
1138  void setParallelismtol(fpreal64 val) { myParallelismtol = val; }
1140  {
1141  SOP_Node *thissop = cookparms.getNode();
1142  if (!thissop) return getParallelismtol();
1143  fpreal64 result;
1144  OP_Utils::evalOpParm(result, thissop, "parallelismtol", cookparms.getCookTime(), 0);
1145  return result;
1146  }
1147  Skeletonfailure getSkeletonfailure() const { return Skeletonfailure(mySkeletonfailure); }
1148  void setSkeletonfailure(Skeletonfailure val) { mySkeletonfailure = int64(val); }
1150  {
1151  SOP_Node *thissop = cookparms.getNode();
1152  if (!thissop) return getSkeletonfailure();
1153  int64 result;
1154  OP_Utils::evalOpParm(result, thissop, "skeletonfailure", cookparms.getCookTime(), 0);
1155  return Skeletonfailure(result);
1156  }
1157  bool getCacheskeleton() const { return myCacheskeleton; }
1158  void setCacheskeleton(bool val) { myCacheskeleton = val; }
1159  bool opCacheskeleton(const SOP_NodeVerb::CookParms &cookparms) const
1160  {
1161  SOP_Node *thissop = cookparms.getNode();
1162  if (!thissop) return getCacheskeleton();
1163  bool result;
1164  OP_Utils::evalOpParm(result, thissop, "cacheskeleton", cookparms.getCookTime(), 0);
1165  return result;
1166  }
1167  bool getUpdatenmls() const { return myUpdatenmls; }
1168  void setUpdatenmls(bool val) { myUpdatenmls = val; }
1169  bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
1170  {
1171  SOP_Node *thissop = cookparms.getNode();
1172  if (!thissop) return getUpdatenmls();
1173  bool result;
1174  OP_Utils::evalOpParm(result, thissop, "updatenmls", cookparms.getCookTime(), 0);
1175  return result;
1176  }
1177 
1178 private:
1179  UT_StringHolder myGroup;
1180  int64 myPlanepossrc;
1181  UT_Vector3D myPlaneorigin;
1182  fpreal64 myPlanedist;
1183  UT_Vector3D myPlanenormal;
1184  int64 myOutput;
1185  fpreal64 myOffset;
1186  int64 myDivs;
1187  int64 mySidedetermination;
1188  bool myOutputinside;
1189  bool myOutputoutside;
1190  bool myKeepinput;
1191  bool myOmitendcaps;
1192  bool myUselocalinsidescale;
1193  UT_StringHolder myLocalinsidescale;
1194  bool myUselocaloutsidescale;
1195  UT_StringHolder myLocaloutsidescale;
1196  bool myNewg;
1197  UT_StringHolder myInsidegroup;
1198  UT_StringHolder myOutsidegroup;
1199  bool myDoedgedistattrib;
1200  UT_StringHolder myEdgedistattrib;
1201  bool myDoedgespeedattrib;
1202  UT_StringHolder myEdgespeedattrib;
1203  fpreal64 myCoincidencetol;
1204  fpreal64 myParallelismtol;
1205  int64 mySkeletonfailure;
1206  bool myCacheskeleton;
1207  bool myUpdatenmls;
1208 
1209 };
bool opOutputinside(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
const UT_StringHolder & getInsidegroup() const
Planepossrc getPlanepossrc() const
exint getNestNumParms(TempIndex idx) const override
bool opCacheskeleton(const SOP_NodeVerb::CookParms &cookparms) const
void setEdgespeedattrib(const UT_StringHolder &val)
bool load(UT_IStream &is)
void setCoincidencetol(fpreal64 val)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void save(std::ostream &os) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool opNewg(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
void setPlanedist(fpreal64 val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
Skeletonfailure getSkeletonfailure() const
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
void setUselocaloutsidescale(bool val)
fpreal64 opPlanedist(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOutsidegroup() const
static void saveData(std::ostream &os, UT_Vector2D v)
const UT_StringHolder & getLocalinsidescale() const
const UT_StringHolder & getEdgedistattrib() const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
UT_StringHolder opEdgespeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
fpreal64 opCoincidencetol(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
const char * getNestParmName(TempIndex fieldnum) const override
SYS_FORCE_INLINE const char * buffer() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GLdouble s
Definition: glad.h:3009
static void saveData(std::ostream &os, UT_Matrix2D v)
ParmType getNestParmType(TempIndex fieldnum) const override
An output stream object that owns its own string buffer storage.
UT_Vector3D opPlanenormal(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
Definition: thread.h:613
fpreal64 getParallelismtol() const
bool opKeepinput(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
Sidedetermination opSidedetermination(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Vector3D &v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
fpreal64 getCoincidencetol() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool operator==(const SOP_PolyExpand2DParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setOutsidegroup(const UT_StringHolder &val)
const UT_StringHolder & getGroup() const
bool opDoedgespeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
exint length() const
void loadFromOpSubclass(const LoadParms &loadparms) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
UT_StringHolder opOutsidegroup(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
bool opDoedgedistattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setGroup(const UT_StringHolder &val)
UT_StringHolder opEdgedistattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getPlanedist() const
int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
Sidedetermination getSidedetermination() const
static void loadData(UT_IStream &is, fpreal64 &v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
const UT_StringHolder & getLocaloutsidescale() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opOffset(const SOP_NodeVerb::CookParms &cookparms) const
bool opOutputoutside(const SOP_NodeVerb::CookParms &cookparms) const
long long int64
Definition: SYS_Types.h:116
void setSkeletonfailure(Skeletonfailure val)
Planepossrc opPlanepossrc(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3T< fpreal64 > UT_Vector3D
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder opLocaloutsidescale(const SOP_NodeVerb::CookParms &cookparms) const
void setPlanenormal(UT_Vector3D val)
static void saveData(std::ostream &os, bool v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
fpreal64 opParallelismtol(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
UT_StringHolder opLocalinsidescale(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opInsidegroup(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
GT_API const UT_StringHolder version
void setEdgedistattrib(const UT_StringHolder &val)
void setLocalinsidescale(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
void setSidedetermination(Sidedetermination val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void loadData(UT_IStream &is, UT_Vector2D &v)
Skeletonfailure opSkeletonfailure(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector3D v)
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
void setParallelismtol(fpreal64 val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
UT_Vector3D opPlaneorigin(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
#define SOP_API
Definition: SOP_API.h:10
void setLocaloutsidescale(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, UT_Vector4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
UT_Vector3D getPlanenormal() const
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
void setInsidegroup(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
GLboolean r
Definition: glcorearb.h:1222
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool opUselocalinsidescale(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void copyFrom(const OP_NodeParms *src) override
type
Definition: core.h:1059
bool opOmitendcaps(const SOP_NodeVerb::CookParms &cookparms) const
bool opUselocaloutsidescale(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static void saveData(std::ostream &os, fpreal64 v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
void setPlaneorigin(UT_Vector3D val)
static void saveData(std::ostream &os, int64 v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
static void loadData(UT_IStream &is, bool &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setPlanepossrc(Planepossrc val)
SYS_FORCE_INLINE UT_StringHolder getToken(Planepossrc enum_value)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setOffset(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix4D v)
bool operator!=(const SOP_PolyExpand2DParms &src) const
UT_Vector3D getPlaneorigin() const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
const UT_StringHolder & getEdgespeedattrib() const