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 <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_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 
179  if (baseGetSignature() != src.baseGetSignature()) return false;
180 
181  return true;
182  }
184  {
185  return !operator==(src);
186  }
191 
192 
193 
194  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
195  {
196  myGroup = ""_UTsh;
197  if (true)
198  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
199  myPlanepossrc = 0;
200  if (true)
201  graph->evalOpParm(myPlanepossrc, nodeidx, "planepossrc", time, graph->isDirect()?nullptr:depnode);
202  myPlaneorigin = UT_Vector3D(0,0,0);
203  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
204  graph->evalOpParm(myPlaneorigin, nodeidx, "planeorigin", time, graph->isDirect()?nullptr:depnode);
205  myPlanedist = 0;
206  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
207  graph->evalOpParm(myPlanedist, nodeidx, "planedist", time, graph->isDirect()?nullptr:depnode);
208  myPlanenormal = UT_Vector3D(0,1,0);
209  if (true && ( (true&&!(((int64(getPlanepossrc())==0)))) ) )
210  graph->evalOpParm(myPlanenormal, nodeidx, "planenormal", time, graph->isDirect()?nullptr:depnode);
211  myOutput = 0;
212  if (true)
213  graph->evalOpParm(myOutput, nodeidx, "output", time, graph->isDirect()?nullptr:depnode);
214  myOffset = 0.1;
215  if (true)
216  graph->evalOpParm(myOffset, nodeidx, "offset", time, graph->isDirect()?nullptr:depnode);
217  myDivs = 1;
218  if (true)
219  graph->evalOpParm(myDivs, nodeidx, "divs", time, graph->isDirect()?nullptr:depnode);
220  mySidedetermination = 1;
221  if (true)
222  graph->evalOpParm(mySidedetermination, nodeidx, "sidedetermination", time, graph->isDirect()?nullptr:depnode);
223  myOutputinside = true;
224  if (true)
225  graph->evalOpParm(myOutputinside, nodeidx, "outputinside", time, graph->isDirect()?nullptr:depnode);
226  myOutputoutside = true;
227  if (true)
228  graph->evalOpParm(myOutputoutside, nodeidx, "outputoutside", time, graph->isDirect()?nullptr:depnode);
229  myKeepinput = false;
230  if (true)
231  graph->evalOpParm(myKeepinput, nodeidx, "keepinput", time, graph->isDirect()?nullptr:depnode);
232  myOmitendcaps = false;
233  if (true && ( (true&&!(((int64(getOutput())==1)))) ) )
234  graph->evalOpParm(myOmitendcaps, nodeidx, "omitendcaps", time, graph->isDirect()?nullptr:depnode);
235  myUselocalinsidescale = false;
236  if (true)
237  graph->evalOpParm(myUselocalinsidescale, nodeidx, "uselocalinsidescale", time, graph->isDirect()?nullptr:depnode);
238  myLocalinsidescale = "offsetscale"_UTsh;
239  if (true && ( (true&&!(((getUselocalinsidescale()==0)))) ) )
240  graph->evalOpParm(myLocalinsidescale, nodeidx, "localinsidescale", time, graph->isDirect()?nullptr:depnode);
241  myUselocaloutsidescale = false;
242  if (true)
243  graph->evalOpParm(myUselocaloutsidescale, nodeidx, "uselocaloutsidescale", time, graph->isDirect()?nullptr:depnode);
244  myLocaloutsidescale = "offsetscale"_UTsh;
245  if (true && ( (true&&!(((getUselocaloutsidescale()==0)))) ) )
246  graph->evalOpParm(myLocaloutsidescale, nodeidx, "localoutsidescale", time, graph->isDirect()?nullptr:depnode);
247  myNewg = false;
248  if (true)
249  graph->evalOpParm(myNewg, nodeidx, "newg", time, graph->isDirect()?nullptr:depnode);
250  myInsidegroup = "inside"_UTsh;
251  if (true && ( (true&&!(((getNewg()==0))||((getOutputinside()==0)))) ) )
252  graph->evalOpParm(myInsidegroup, nodeidx, "insidegroup", time, graph->isDirect()?nullptr:depnode);
253  myOutsidegroup = "outside"_UTsh;
254  if (true && ( (true&&!(((getNewg()==0))||((getOutputoutside()==0)))) ) )
255  graph->evalOpParm(myOutsidegroup, nodeidx, "outsidegroup", time, graph->isDirect()?nullptr:depnode);
256  myDoedgedistattrib = false;
257  if (true && ( (true&&!(((int64(getOutput())==0)))) ) )
258  graph->evalOpParm(myDoedgedistattrib, nodeidx, "doedgedistattrib", time, graph->isDirect()?nullptr:depnode);
259  myEdgedistattrib = "edgedist"_UTsh;
260  if (true && ( (true&&!(((int64(getOutput())==0))||((getDoedgedistattrib()==0)))) ) )
261  graph->evalOpParm(myEdgedistattrib, nodeidx, "edgedistattrib", time, graph->isDirect()?nullptr:depnode);
262  myDoedgespeedattrib = false;
263  if (true && ( (true&&!(((int64(getOutput())==0)))) ) )
264  graph->evalOpParm(myDoedgespeedattrib, nodeidx, "doedgespeedattrib", time, graph->isDirect()?nullptr:depnode);
265  myEdgespeedattrib = "edgespeed"_UTsh;
266  if (true && ( (true&&!(((int64(getOutput())==0))||((getDoedgedistattrib()==0)))) ) )
267  graph->evalOpParm(myEdgespeedattrib, nodeidx, "edgespeedattrib", time, graph->isDirect()?nullptr:depnode);
268  myCoincidencetol = 0.003;
269  if (true)
270  graph->evalOpParm(myCoincidencetol, nodeidx, "coincidencetol", time, graph->isDirect()?nullptr:depnode);
271  myParallelismtol = 0.01;
272  if (true)
273  graph->evalOpParm(myParallelismtol, nodeidx, "parallelismtol", time, graph->isDirect()?nullptr:depnode);
274  mySkeletonfailure = 0;
275  if (true)
276  graph->evalOpParm(mySkeletonfailure, nodeidx, "skeletonfailure", time, graph->isDirect()?nullptr:depnode);
277  myCacheskeleton = true;
278  if (true)
279  graph->evalOpParm(myCacheskeleton, nodeidx, "cacheskeleton", time, graph->isDirect()?nullptr:depnode);
280  myUpdatenmls = true;
281  if (true)
282  graph->evalOpParm(myUpdatenmls, nodeidx, "updatenmls", time, graph->isDirect()?nullptr:depnode);
283 
284  }
285 
286 
287  void loadFromOpSubclass(const LoadParms &loadparms) override
288  {
289  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
290  }
291 
292 
293  void copyFrom(const OP_NodeParms *src) override
294  {
295  *this = *((const SOP_PolyExpand2DParms *)src);
296  }
297 
298  template <typename T>
299  void
300  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
301  {
302  if (idx.size() < 1)
303  return;
304  UT_ASSERT(idx.size() == instance.size()+1);
305  if (idx.size() != instance.size()+1)
306  return;
307  switch (idx[0])
308  {
309  case 0:
310  coerceValue(value, myGroup);
311  break;
312  case 1:
313  coerceValue(value, myPlanepossrc);
314  break;
315  case 2:
316  coerceValue(value, myPlaneorigin);
317  break;
318  case 3:
319  coerceValue(value, myPlanedist);
320  break;
321  case 4:
322  coerceValue(value, myPlanenormal);
323  break;
324  case 5:
325  coerceValue(value, myOutput);
326  break;
327  case 6:
328  coerceValue(value, myOffset);
329  break;
330  case 7:
331  coerceValue(value, myDivs);
332  break;
333  case 8:
334  coerceValue(value, mySidedetermination);
335  break;
336  case 9:
337  coerceValue(value, myOutputinside);
338  break;
339  case 10:
340  coerceValue(value, myOutputoutside);
341  break;
342  case 11:
343  coerceValue(value, myKeepinput);
344  break;
345  case 12:
346  coerceValue(value, myOmitendcaps);
347  break;
348  case 13:
349  coerceValue(value, myUselocalinsidescale);
350  break;
351  case 14:
352  coerceValue(value, myLocalinsidescale);
353  break;
354  case 15:
355  coerceValue(value, myUselocaloutsidescale);
356  break;
357  case 16:
358  coerceValue(value, myLocaloutsidescale);
359  break;
360  case 17:
361  coerceValue(value, myNewg);
362  break;
363  case 18:
364  coerceValue(value, myInsidegroup);
365  break;
366  case 19:
367  coerceValue(value, myOutsidegroup);
368  break;
369  case 20:
370  coerceValue(value, myDoedgedistattrib);
371  break;
372  case 21:
373  coerceValue(value, myEdgedistattrib);
374  break;
375  case 22:
376  coerceValue(value, myDoedgespeedattrib);
377  break;
378  case 23:
379  coerceValue(value, myEdgespeedattrib);
380  break;
381  case 24:
382  coerceValue(value, myCoincidencetol);
383  break;
384  case 25:
385  coerceValue(value, myParallelismtol);
386  break;
387  case 26:
388  coerceValue(value, mySkeletonfailure);
389  break;
390  case 27:
391  coerceValue(value, myCacheskeleton);
392  break;
393  case 28:
394  coerceValue(value, myUpdatenmls);
395  break;
396 
397  }
398  }
399 
400  bool isParmColorRamp(exint idx) const override
401  {
402  switch (idx)
403  {
404 
405  }
406  return false;
407  }
408 
409  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
410  { doGetParmValue(idx, instance, value); }
411  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
412  { doGetParmValue(idx, instance, value); }
413  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
414  { doGetParmValue(idx, instance, value); }
415  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
416  { doGetParmValue(idx, instance, value); }
417  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
418  { doGetParmValue(idx, instance, value); }
419  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
420  { doGetParmValue(idx, instance, value); }
421  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
422  { doGetParmValue(idx, instance, value); }
423  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
424  { doGetParmValue(idx, instance, value); }
425  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
426  { doGetParmValue(idx, instance, value); }
427  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
428  { doGetParmValue(idx, instance, value); }
429  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
430  { doGetParmValue(idx, instance, value); }
431 
432  template <typename T>
433  void
434  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
435  {
436  if (idx.size() < 1)
437  return;
438  UT_ASSERT(idx.size() == instance.size()+1);
439  if (idx.size() != instance.size()+1)
440  return;
441  switch (idx[0])
442  {
443  case 0:
444  coerceValue(myGroup, ( ( value ) ));
445  break;
446  case 1:
447  coerceValue(myPlanepossrc, clampMinValue(0, clampMaxValue(1, value ) ));
448  break;
449  case 2:
450  coerceValue(myPlaneorigin, ( ( value ) ));
451  break;
452  case 3:
453  coerceValue(myPlanedist, ( ( value ) ));
454  break;
455  case 4:
456  coerceValue(myPlanenormal, ( ( value ) ));
457  break;
458  case 5:
459  coerceValue(myOutput, clampMinValue(0, clampMaxValue(1, value ) ));
460  break;
461  case 6:
462  coerceValue(myOffset, clampMinValue(0.0001, ( value ) ));
463  break;
464  case 7:
465  coerceValue(myDivs, clampMinValue(1, ( value ) ));
466  break;
467  case 8:
468  coerceValue(mySidedetermination, clampMinValue(0, clampMaxValue(3, value ) ));
469  break;
470  case 9:
471  coerceValue(myOutputinside, ( ( value ) ));
472  break;
473  case 10:
474  coerceValue(myOutputoutside, ( ( value ) ));
475  break;
476  case 11:
477  coerceValue(myKeepinput, ( ( value ) ));
478  break;
479  case 12:
480  coerceValue(myOmitendcaps, ( ( value ) ));
481  break;
482  case 13:
483  coerceValue(myUselocalinsidescale, ( ( value ) ));
484  break;
485  case 14:
486  coerceValue(myLocalinsidescale, ( ( value ) ));
487  break;
488  case 15:
489  coerceValue(myUselocaloutsidescale, ( ( value ) ));
490  break;
491  case 16:
492  coerceValue(myLocaloutsidescale, ( ( value ) ));
493  break;
494  case 17:
495  coerceValue(myNewg, ( ( value ) ));
496  break;
497  case 18:
498  coerceValue(myInsidegroup, ( ( value ) ));
499  break;
500  case 19:
501  coerceValue(myOutsidegroup, ( ( value ) ));
502  break;
503  case 20:
504  coerceValue(myDoedgedistattrib, ( ( value ) ));
505  break;
506  case 21:
507  coerceValue(myEdgedistattrib, ( ( value ) ));
508  break;
509  case 22:
510  coerceValue(myDoedgespeedattrib, ( ( value ) ));
511  break;
512  case 23:
513  coerceValue(myEdgespeedattrib, ( ( value ) ));
514  break;
515  case 24:
516  coerceValue(myCoincidencetol, clampMinValue(0, clampMaxValue(1, value ) ));
517  break;
518  case 25:
519  coerceValue(myParallelismtol, clampMinValue(0, clampMaxValue(1, value ) ));
520  break;
521  case 26:
522  coerceValue(mySkeletonfailure, clampMinValue(0, clampMaxValue(1, value ) ));
523  break;
524  case 27:
525  coerceValue(myCacheskeleton, ( ( value ) ));
526  break;
527  case 28:
528  coerceValue(myUpdatenmls, ( ( value ) ));
529  break;
530 
531  }
532  }
533 
534  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
535  { doSetParmValue(idx, instance, value); }
536  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
537  { doSetParmValue(idx, instance, value); }
538  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
539  { doSetParmValue(idx, instance, value); }
540  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
541  { doSetParmValue(idx, instance, value); }
542  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
543  { doSetParmValue(idx, instance, value); }
544  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
545  { doSetParmValue(idx, instance, value); }
546  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
547  { doSetParmValue(idx, instance, value); }
548  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
549  { doSetParmValue(idx, instance, value); }
550  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
551  { doSetParmValue(idx, instance, value); }
552  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
553  { doSetParmValue(idx, instance, value); }
554  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
555  { doSetParmValue(idx, instance, value); }
556 
557  exint getNestNumParms(TempIndex idx) const override
558  {
559  if (idx.size() == 0)
560  return 29;
561  switch (idx[0])
562  {
563 
564  }
565  // Invalid
566  return 0;
567  }
568 
569  const char *getNestParmName(TempIndex fieldnum) const override
570  {
571  if (fieldnum.size() < 1)
572  return 0;
573  switch (fieldnum[0])
574  {
575  case 0:
576  return "group";
577  case 1:
578  return "planepossrc";
579  case 2:
580  return "planeorigin";
581  case 3:
582  return "planedist";
583  case 4:
584  return "planenormal";
585  case 5:
586  return "output";
587  case 6:
588  return "offset";
589  case 7:
590  return "divs";
591  case 8:
592  return "sidedetermination";
593  case 9:
594  return "outputinside";
595  case 10:
596  return "outputoutside";
597  case 11:
598  return "keepinput";
599  case 12:
600  return "omitendcaps";
601  case 13:
602  return "uselocalinsidescale";
603  case 14:
604  return "localinsidescale";
605  case 15:
606  return "uselocaloutsidescale";
607  case 16:
608  return "localoutsidescale";
609  case 17:
610  return "newg";
611  case 18:
612  return "insidegroup";
613  case 19:
614  return "outsidegroup";
615  case 20:
616  return "doedgedistattrib";
617  case 21:
618  return "edgedistattrib";
619  case 22:
620  return "doedgespeedattrib";
621  case 23:
622  return "edgespeedattrib";
623  case 24:
624  return "coincidencetol";
625  case 25:
626  return "parallelismtol";
627  case 26:
628  return "skeletonfailure";
629  case 27:
630  return "cacheskeleton";
631  case 28:
632  return "updatenmls";
633 
634  }
635  return 0;
636  }
637 
638  ParmType getNestParmType(TempIndex fieldnum) const override
639  {
640  if (fieldnum.size() < 1)
641  return PARM_UNSUPPORTED;
642  switch (fieldnum[0])
643  {
644  case 0:
645  return PARM_STRING;
646  case 1:
647  return PARM_INTEGER;
648  case 2:
649  return PARM_VECTOR3;
650  case 3:
651  return PARM_FLOAT;
652  case 4:
653  return PARM_VECTOR3;
654  case 5:
655  return PARM_INTEGER;
656  case 6:
657  return PARM_FLOAT;
658  case 7:
659  return PARM_INTEGER;
660  case 8:
661  return PARM_INTEGER;
662  case 9:
663  return PARM_INTEGER;
664  case 10:
665  return PARM_INTEGER;
666  case 11:
667  return PARM_INTEGER;
668  case 12:
669  return PARM_INTEGER;
670  case 13:
671  return PARM_INTEGER;
672  case 14:
673  return PARM_STRING;
674  case 15:
675  return PARM_INTEGER;
676  case 16:
677  return PARM_STRING;
678  case 17:
679  return PARM_INTEGER;
680  case 18:
681  return PARM_STRING;
682  case 19:
683  return PARM_STRING;
684  case 20:
685  return PARM_INTEGER;
686  case 21:
687  return PARM_STRING;
688  case 22:
689  return PARM_INTEGER;
690  case 23:
691  return PARM_STRING;
692  case 24:
693  return PARM_FLOAT;
694  case 25:
695  return PARM_FLOAT;
696  case 26:
697  return PARM_INTEGER;
698  case 27:
699  return PARM_INTEGER;
700  case 28:
701  return PARM_INTEGER;
702 
703  }
704  return PARM_UNSUPPORTED;
705  }
706 
707  // Boiler plate to load individual types.
708  static void loadData(UT_IStream &is, int64 &v)
709  { is.bread(&v, 1); }
710  static void loadData(UT_IStream &is, bool &v)
711  { int64 iv; is.bread(&iv, 1); v = iv; }
712  static void loadData(UT_IStream &is, fpreal64 &v)
713  { is.bread<fpreal64>(&v, 1); }
714  static void loadData(UT_IStream &is, UT_Vector2D &v)
715  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
716  static void loadData(UT_IStream &is, UT_Vector3D &v)
717  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
718  is.bread<fpreal64>(&v.z(), 1); }
719  static void loadData(UT_IStream &is, UT_Vector4D &v)
720  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
721  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
722  static void loadData(UT_IStream &is, UT_Matrix2D &v)
723  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
724  static void loadData(UT_IStream &is, UT_Matrix3D &v)
725  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
726  static void loadData(UT_IStream &is, UT_Matrix4D &v)
727  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
728  static void loadData(UT_IStream &is, UT_Vector2I &v)
729  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
730  static void loadData(UT_IStream &is, UT_Vector3I &v)
731  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
732  is.bread<int64>(&v.z(), 1); }
733  static void loadData(UT_IStream &is, UT_Vector4I &v)
734  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
735  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
737  { is.bread(v); }
739  { UT_StringHolder rampdata;
740  loadData(is, rampdata);
741  if (rampdata.isstring())
742  {
743  v.reset(new UT_Ramp());
744  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
745  v->load(istr);
746  }
747  else v.reset();
748  }
751  loadData(is, data);
752  if (data.isstring())
753  {
754  // Find the data type.
755  const char *colon = UT_StringWrap(data).findChar(':');
756  if (colon)
757  {
758  int typelen = colon - data.buffer();
760  type.strncpy(data.buffer(), typelen);
761  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
762 
763  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
764  }
765  }
766  else v.reset();
767  }
768 
769  static void saveData(std::ostream &os, int64 v)
770  { UTwrite(os, &v); }
771  static void saveData(std::ostream &os, bool v)
772  { int64 iv = v; UTwrite(os, &iv); }
773  static void saveData(std::ostream &os, fpreal64 v)
774  { UTwrite<fpreal64>(os, &v); }
775  static void saveData(std::ostream &os, UT_Vector2D v)
776  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
777  static void saveData(std::ostream &os, UT_Vector3D v)
778  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
779  UTwrite<fpreal64>(os, &v.z()); }
780  static void saveData(std::ostream &os, UT_Vector4D v)
781  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
782  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
783  static void saveData(std::ostream &os, UT_Matrix2D v)
785  static void saveData(std::ostream &os, UT_Matrix3D v)
787  static void saveData(std::ostream &os, UT_Matrix4D v)
789  static void saveData(std::ostream &os, UT_StringHolder s)
790  { UT_StringWrap(s).saveBinary(os); }
791  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
793  UT_OStringStream ostr;
794  if (s) s->save(ostr);
795  result = ostr.str();
796  saveData(os, result);
797  }
798  static void saveData(std::ostream &os, PRM_DataItemHandle s)
800  UT_OStringStream ostr;
801  if (s)
802  {
803  ostr << s->getDataTypeToken();
804  ostr << ":";
805  s->saveBinary(ostr);
806  }
807  result = ostr.str();
808  saveData(os, result);
809  }
810 
811 
812  void save(std::ostream &os) const
813  {
814  int32 v = version();
815  UTwrite(os, &v);
816  saveData(os, myGroup);
817  saveData(os, myPlanepossrc);
818  saveData(os, myPlaneorigin);
819  saveData(os, myPlanedist);
820  saveData(os, myPlanenormal);
821  saveData(os, myOutput);
822  saveData(os, myOffset);
823  saveData(os, myDivs);
824  saveData(os, mySidedetermination);
825  saveData(os, myOutputinside);
826  saveData(os, myOutputoutside);
827  saveData(os, myKeepinput);
828  saveData(os, myOmitendcaps);
829  saveData(os, myUselocalinsidescale);
830  saveData(os, myLocalinsidescale);
831  saveData(os, myUselocaloutsidescale);
832  saveData(os, myLocaloutsidescale);
833  saveData(os, myNewg);
834  saveData(os, myInsidegroup);
835  saveData(os, myOutsidegroup);
836  saveData(os, myDoedgedistattrib);
837  saveData(os, myEdgedistattrib);
838  saveData(os, myDoedgespeedattrib);
839  saveData(os, myEdgespeedattrib);
840  saveData(os, myCoincidencetol);
841  saveData(os, myParallelismtol);
842  saveData(os, mySkeletonfailure);
843  saveData(os, myCacheskeleton);
844  saveData(os, myUpdatenmls);
845 
846  }
847 
848  bool load(UT_IStream &is)
849  {
850  int32 v;
851  is.bread(&v, 1);
852  if (version() != v)
853  {
854  // Fail incompatible versions
855  return false;
856  }
857  loadData(is, myGroup);
858  loadData(is, myPlanepossrc);
859  loadData(is, myPlaneorigin);
860  loadData(is, myPlanedist);
861  loadData(is, myPlanenormal);
862  loadData(is, myOutput);
863  loadData(is, myOffset);
864  loadData(is, myDivs);
865  loadData(is, mySidedetermination);
866  loadData(is, myOutputinside);
867  loadData(is, myOutputoutside);
868  loadData(is, myKeepinput);
869  loadData(is, myOmitendcaps);
870  loadData(is, myUselocalinsidescale);
871  loadData(is, myLocalinsidescale);
872  loadData(is, myUselocaloutsidescale);
873  loadData(is, myLocaloutsidescale);
874  loadData(is, myNewg);
875  loadData(is, myInsidegroup);
876  loadData(is, myOutsidegroup);
877  loadData(is, myDoedgedistattrib);
878  loadData(is, myEdgedistattrib);
879  loadData(is, myDoedgespeedattrib);
880  loadData(is, myEdgespeedattrib);
881  loadData(is, myCoincidencetol);
882  loadData(is, myParallelismtol);
883  loadData(is, mySkeletonfailure);
884  loadData(is, myCacheskeleton);
885  loadData(is, myUpdatenmls);
886 
887  return true;
888  }
889 
890  const UT_StringHolder & getGroup() const { return myGroup; }
891  void setGroup(const UT_StringHolder & val) { myGroup = val; }
893  {
894  SOP_Node *thissop = cookparms.getNode();
895  if (!thissop) return getGroup();
897  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
898  return result;
899  }
900  Planepossrc getPlanepossrc() const { return Planepossrc(myPlanepossrc); }
901  void setPlanepossrc(Planepossrc val) { myPlanepossrc = int64(val); }
903  {
904  SOP_Node *thissop = cookparms.getNode();
905  if (!thissop) return getPlanepossrc();
906  int64 result;
907  OP_Utils::evalOpParm(result, thissop, "planepossrc", cookparms.getCookTime(), 0);
908  return Planepossrc(result);
909  }
910  UT_Vector3D getPlaneorigin() const { return myPlaneorigin; }
911  void setPlaneorigin(UT_Vector3D val) { myPlaneorigin = val; }
913  {
914  SOP_Node *thissop = cookparms.getNode();
915  if (!thissop) return getPlaneorigin();
917  OP_Utils::evalOpParm(result, thissop, "planeorigin", cookparms.getCookTime(), 0);
918  return result;
919  }
920  fpreal64 getPlanedist() const { return myPlanedist; }
921  void setPlanedist(fpreal64 val) { myPlanedist = val; }
923  {
924  SOP_Node *thissop = cookparms.getNode();
925  if (!thissop) return getPlanedist();
927  OP_Utils::evalOpParm(result, thissop, "planedist", cookparms.getCookTime(), 0);
928  return result;
929  }
930  UT_Vector3D getPlanenormal() const { return myPlanenormal; }
931  void setPlanenormal(UT_Vector3D val) { myPlanenormal = val; }
933  {
934  SOP_Node *thissop = cookparms.getNode();
935  if (!thissop) return getPlanenormal();
937  OP_Utils::evalOpParm(result, thissop, "planenormal", cookparms.getCookTime(), 0);
938  return result;
939  }
940  Output getOutput() const { return Output(myOutput); }
941  void setOutput(Output val) { myOutput = int64(val); }
942  Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
943  {
944  SOP_Node *thissop = cookparms.getNode();
945  if (!thissop) return getOutput();
946  int64 result;
947  OP_Utils::evalOpParm(result, thissop, "output", cookparms.getCookTime(), 0);
948  return Output(result);
949  }
950  fpreal64 getOffset() const { return myOffset; }
951  void setOffset(fpreal64 val) { myOffset = val; }
952  fpreal64 opOffset(const SOP_NodeVerb::CookParms &cookparms) const
953  {
954  SOP_Node *thissop = cookparms.getNode();
955  if (!thissop) return getOffset();
957  OP_Utils::evalOpParm(result, thissop, "offset", cookparms.getCookTime(), 0);
958  return result;
959  }
960  int64 getDivs() const { return myDivs; }
961  void setDivs(int64 val) { myDivs = val; }
962  int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
963  {
964  SOP_Node *thissop = cookparms.getNode();
965  if (!thissop) return getDivs();
966  int64 result;
967  OP_Utils::evalOpParm(result, thissop, "divs", cookparms.getCookTime(), 0);
968  return result;
969  }
970  Sidedetermination getSidedetermination() const { return Sidedetermination(mySidedetermination); }
971  void setSidedetermination(Sidedetermination val) { mySidedetermination = int64(val); }
973  {
974  SOP_Node *thissop = cookparms.getNode();
975  if (!thissop) return getSidedetermination();
976  int64 result;
977  OP_Utils::evalOpParm(result, thissop, "sidedetermination", cookparms.getCookTime(), 0);
978  return Sidedetermination(result);
979  }
980  bool getOutputinside() const { return myOutputinside; }
981  void setOutputinside(bool val) { myOutputinside = val; }
982  bool opOutputinside(const SOP_NodeVerb::CookParms &cookparms) const
983  {
984  SOP_Node *thissop = cookparms.getNode();
985  if (!thissop) return getOutputinside();
986  bool result;
987  OP_Utils::evalOpParm(result, thissop, "outputinside", cookparms.getCookTime(), 0);
988  return result;
989  }
990  bool getOutputoutside() const { return myOutputoutside; }
991  void setOutputoutside(bool val) { myOutputoutside = val; }
992  bool opOutputoutside(const SOP_NodeVerb::CookParms &cookparms) const
993  {
994  SOP_Node *thissop = cookparms.getNode();
995  if (!thissop) return getOutputoutside();
996  bool result;
997  OP_Utils::evalOpParm(result, thissop, "outputoutside", cookparms.getCookTime(), 0);
998  return result;
999  }
1000  bool getKeepinput() const { return myKeepinput; }
1001  void setKeepinput(bool val) { myKeepinput = val; }
1002  bool opKeepinput(const SOP_NodeVerb::CookParms &cookparms) const
1003  {
1004  SOP_Node *thissop = cookparms.getNode();
1005  if (!thissop) return getKeepinput();
1006  bool result;
1007  OP_Utils::evalOpParm(result, thissop, "keepinput", cookparms.getCookTime(), 0);
1008  return result;
1009  }
1010  bool getOmitendcaps() const { return myOmitendcaps; }
1011  void setOmitendcaps(bool val) { myOmitendcaps = val; }
1012  bool opOmitendcaps(const SOP_NodeVerb::CookParms &cookparms) const
1013  {
1014  SOP_Node *thissop = cookparms.getNode();
1015  if (!thissop) return getOmitendcaps();
1016  bool result;
1017  OP_Utils::evalOpParm(result, thissop, "omitendcaps", cookparms.getCookTime(), 0);
1018  return result;
1019  }
1020  bool getUselocalinsidescale() const { return myUselocalinsidescale; }
1021  void setUselocalinsidescale(bool val) { myUselocalinsidescale = val; }
1022  bool opUselocalinsidescale(const SOP_NodeVerb::CookParms &cookparms) const
1023  {
1024  SOP_Node *thissop = cookparms.getNode();
1025  if (!thissop) return getUselocalinsidescale();
1026  bool result;
1027  OP_Utils::evalOpParm(result, thissop, "uselocalinsidescale", cookparms.getCookTime(), 0);
1028  return result;
1029  }
1030  const UT_StringHolder & getLocalinsidescale() const { return myLocalinsidescale; }
1031  void setLocalinsidescale(const UT_StringHolder & val) { myLocalinsidescale = val; }
1033  {
1034  SOP_Node *thissop = cookparms.getNode();
1035  if (!thissop) return getLocalinsidescale();
1037  OP_Utils::evalOpParm(result, thissop, "localinsidescale", cookparms.getCookTime(), 0);
1038  return result;
1039  }
1040  bool getUselocaloutsidescale() const { return myUselocaloutsidescale; }
1041  void setUselocaloutsidescale(bool val) { myUselocaloutsidescale = val; }
1043  {
1044  SOP_Node *thissop = cookparms.getNode();
1045  if (!thissop) return getUselocaloutsidescale();
1046  bool result;
1047  OP_Utils::evalOpParm(result, thissop, "uselocaloutsidescale", cookparms.getCookTime(), 0);
1048  return result;
1049  }
1050  const UT_StringHolder & getLocaloutsidescale() const { return myLocaloutsidescale; }
1051  void setLocaloutsidescale(const UT_StringHolder & val) { myLocaloutsidescale = val; }
1053  {
1054  SOP_Node *thissop = cookparms.getNode();
1055  if (!thissop) return getLocaloutsidescale();
1057  OP_Utils::evalOpParm(result, thissop, "localoutsidescale", cookparms.getCookTime(), 0);
1058  return result;
1059  }
1060  bool getNewg() const { return myNewg; }
1061  void setNewg(bool val) { myNewg = val; }
1062  bool opNewg(const SOP_NodeVerb::CookParms &cookparms) const
1063  {
1064  SOP_Node *thissop = cookparms.getNode();
1065  if (!thissop) return getNewg();
1066  bool result;
1067  OP_Utils::evalOpParm(result, thissop, "newg", cookparms.getCookTime(), 0);
1068  return result;
1069  }
1070  const UT_StringHolder & getInsidegroup() const { return myInsidegroup; }
1071  void setInsidegroup(const UT_StringHolder & val) { myInsidegroup = val; }
1073  {
1074  SOP_Node *thissop = cookparms.getNode();
1075  if (!thissop) return getInsidegroup();
1077  OP_Utils::evalOpParm(result, thissop, "insidegroup", cookparms.getCookTime(), 0);
1078  return result;
1079  }
1080  const UT_StringHolder & getOutsidegroup() const { return myOutsidegroup; }
1081  void setOutsidegroup(const UT_StringHolder & val) { myOutsidegroup = val; }
1083  {
1084  SOP_Node *thissop = cookparms.getNode();
1085  if (!thissop) return getOutsidegroup();
1087  OP_Utils::evalOpParm(result, thissop, "outsidegroup", cookparms.getCookTime(), 0);
1088  return result;
1089  }
1090  bool getDoedgedistattrib() const { return myDoedgedistattrib; }
1091  void setDoedgedistattrib(bool val) { myDoedgedistattrib = val; }
1092  bool opDoedgedistattrib(const SOP_NodeVerb::CookParms &cookparms) const
1093  {
1094  SOP_Node *thissop = cookparms.getNode();
1095  if (!thissop) return getDoedgedistattrib();
1096  bool result;
1097  OP_Utils::evalOpParm(result, thissop, "doedgedistattrib", cookparms.getCookTime(), 0);
1098  return result;
1099  }
1100  const UT_StringHolder & getEdgedistattrib() const { return myEdgedistattrib; }
1101  void setEdgedistattrib(const UT_StringHolder & val) { myEdgedistattrib = val; }
1103  {
1104  SOP_Node *thissop = cookparms.getNode();
1105  if (!thissop) return getEdgedistattrib();
1107  OP_Utils::evalOpParm(result, thissop, "edgedistattrib", cookparms.getCookTime(), 0);
1108  return result;
1109  }
1110  bool getDoedgespeedattrib() const { return myDoedgespeedattrib; }
1111  void setDoedgespeedattrib(bool val) { myDoedgespeedattrib = val; }
1112  bool opDoedgespeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
1113  {
1114  SOP_Node *thissop = cookparms.getNode();
1115  if (!thissop) return getDoedgespeedattrib();
1116  bool result;
1117  OP_Utils::evalOpParm(result, thissop, "doedgespeedattrib", cookparms.getCookTime(), 0);
1118  return result;
1119  }
1120  const UT_StringHolder & getEdgespeedattrib() const { return myEdgespeedattrib; }
1121  void setEdgespeedattrib(const UT_StringHolder & val) { myEdgespeedattrib = val; }
1123  {
1124  SOP_Node *thissop = cookparms.getNode();
1125  if (!thissop) return getEdgespeedattrib();
1127  OP_Utils::evalOpParm(result, thissop, "edgespeedattrib", cookparms.getCookTime(), 0);
1128  return result;
1129  }
1130  fpreal64 getCoincidencetol() const { return myCoincidencetol; }
1131  void setCoincidencetol(fpreal64 val) { myCoincidencetol = val; }
1133  {
1134  SOP_Node *thissop = cookparms.getNode();
1135  if (!thissop) return getCoincidencetol();
1136  fpreal64 result;
1137  OP_Utils::evalOpParm(result, thissop, "coincidencetol", cookparms.getCookTime(), 0);
1138  return result;
1139  }
1140  fpreal64 getParallelismtol() const { return myParallelismtol; }
1141  void setParallelismtol(fpreal64 val) { myParallelismtol = val; }
1143  {
1144  SOP_Node *thissop = cookparms.getNode();
1145  if (!thissop) return getParallelismtol();
1146  fpreal64 result;
1147  OP_Utils::evalOpParm(result, thissop, "parallelismtol", cookparms.getCookTime(), 0);
1148  return result;
1149  }
1150  Skeletonfailure getSkeletonfailure() const { return Skeletonfailure(mySkeletonfailure); }
1151  void setSkeletonfailure(Skeletonfailure val) { mySkeletonfailure = int64(val); }
1153  {
1154  SOP_Node *thissop = cookparms.getNode();
1155  if (!thissop) return getSkeletonfailure();
1156  int64 result;
1157  OP_Utils::evalOpParm(result, thissop, "skeletonfailure", cookparms.getCookTime(), 0);
1158  return Skeletonfailure(result);
1159  }
1160  bool getCacheskeleton() const { return myCacheskeleton; }
1161  void setCacheskeleton(bool val) { myCacheskeleton = val; }
1162  bool opCacheskeleton(const SOP_NodeVerb::CookParms &cookparms) const
1163  {
1164  SOP_Node *thissop = cookparms.getNode();
1165  if (!thissop) return getCacheskeleton();
1166  bool result;
1167  OP_Utils::evalOpParm(result, thissop, "cacheskeleton", cookparms.getCookTime(), 0);
1168  return result;
1169  }
1170  bool getUpdatenmls() const { return myUpdatenmls; }
1171  void setUpdatenmls(bool val) { myUpdatenmls = val; }
1172  bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
1173  {
1174  SOP_Node *thissop = cookparms.getNode();
1175  if (!thissop) return getUpdatenmls();
1176  bool result;
1177  OP_Utils::evalOpParm(result, thissop, "updatenmls", cookparms.getCookTime(), 0);
1178  return result;
1179  }
1180 
1181 private:
1182  UT_StringHolder myGroup;
1183  int64 myPlanepossrc;
1184  UT_Vector3D myPlaneorigin;
1185  fpreal64 myPlanedist;
1186  UT_Vector3D myPlanenormal;
1187  int64 myOutput;
1188  fpreal64 myOffset;
1189  int64 myDivs;
1190  int64 mySidedetermination;
1191  bool myOutputinside;
1192  bool myOutputoutside;
1193  bool myKeepinput;
1194  bool myOmitendcaps;
1195  bool myUselocalinsidescale;
1196  UT_StringHolder myLocalinsidescale;
1197  bool myUselocaloutsidescale;
1198  UT_StringHolder myLocaloutsidescale;
1199  bool myNewg;
1200  UT_StringHolder myInsidegroup;
1201  UT_StringHolder myOutsidegroup;
1202  bool myDoedgedistattrib;
1203  UT_StringHolder myEdgedistattrib;
1204  bool myDoedgespeedattrib;
1205  UT_StringHolder myEdgespeedattrib;
1206  fpreal64 myCoincidencetol;
1207  fpreal64 myParallelismtol;
1208  int64 mySkeletonfailure;
1209  bool myCacheskeleton;
1210  bool myUpdatenmls;
1211 
1212 };
type
Definition: core.h:556
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:63
void setUselocaloutsidescale(bool val)
fpreal64 opPlanedist(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
Definition: glcorearb.h:824
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:622
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
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:303
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: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
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
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
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:372
UT_Vector3D getPlanenormal() const
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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)
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