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