HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Bound.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_BoundEnums
24 {
25  enum class Grouptype
26  {
27  GUESS = 0,
29  EDGES,
30  POINTS,
31  PRIMS
32  };
33 
35  getToken(Grouptype enum_value)
36  {
37  using namespace UT::Literal;
38  switch (enum_value) {
39  case Grouptype::GUESS: return "guess"_sh;
40  case Grouptype::BREAKPOINTS: return "breakpoints"_sh;
41  case Grouptype::EDGES: return "edges"_sh;
42  case Grouptype::POINTS: return "points"_sh;
43  case Grouptype::PRIMS: return "prims"_sh;
44  default: UT_ASSERT(false); return ""_sh;
45  }
46  }
47 
48  enum class BoundType
49  {
50  OFF = 0,
51  ON,
52  RECTANGLE
53  };
54 
56  getToken(BoundType enum_value)
57  {
58  using namespace UT::Literal;
59  switch (enum_value) {
60  case BoundType::OFF: return "off"_sh;
61  case BoundType::ON: return "on"_sh;
62  case BoundType::RECTANGLE: return "rectangle"_sh;
63  default: UT_ASSERT(false); return ""_sh;
64  }
65  }
66 
67  enum class Orient
68  {
69  X = 0,
70  Y,
71  Z
72  };
73 
75  getToken(Orient enum_value)
76  {
77  using namespace UT::Literal;
78  switch (enum_value) {
79  case Orient::X: return "x"_sh;
80  case Orient::Y: return "y"_sh;
81  case Orient::Z: return "z"_sh;
82  default: UT_ASSERT(false); return ""_sh;
83  }
84  }
85 
86 }
87 
88 
90 {
91 public:
92  static int version() { return 1; }
93 
95  {
96  myGroup = ""_UTsh;
97  myGrouptype = 0;
98  myKeeporiginal = false;
99  myCreateBoundingGeo = true;
100  myCreateempty = true;
101  myBoundType = 0;
102  myOrientedbbox = false;
103  myRefinementIterations = 6;
104  myDodivs = false;
105  myDivs = UT_Vector3I(3,3,3);
106  myRebar = false;
107  myMinsize = UT_Vector3D(0,0,0);
108  myOrient = 1;
109  myAccurate = false;
110  myMinradius = 0;
111  myOrientedBRect = false;
112  myOrigin = UT_Vector3D(0,0,0);
113  myDistance = 0;
114  myDirection = UT_Vector3D(0,1,0);
115  myMinpad = UT_Vector3D(0,0,0);
116  myMaxpad = UT_Vector3D(0,0,0);
117  myAddBoundsGroup = false;
118  myBoundsGroup = "bounds"_UTsh;
119  myAddXformAttrib = false;
120  myXformAttrib = "xform"_UTsh;
121  myAddRadiiAttrib = false;
122  myRadiiAttrib = "radii"_UTsh;
123 
124  }
125 
126  explicit SOP_BoundParms(const SOP_BoundParms &) = default;
127  SOP_BoundParms &operator=(const SOP_BoundParms &) = default;
128  SOP_BoundParms(SOP_BoundParms &&) noexcept = default;
129  SOP_BoundParms &operator=(SOP_BoundParms &&) noexcept = default;
130 
131  ~SOP_BoundParms() override {}
132 
133  bool operator==(const SOP_BoundParms &src) const
134  {
135  if (myGroup != src.myGroup) return false;
136  if (myGrouptype != src.myGrouptype) return false;
137  if (myKeeporiginal != src.myKeeporiginal) return false;
138  if (myCreateBoundingGeo != src.myCreateBoundingGeo) return false;
139  if (myCreateempty != src.myCreateempty) return false;
140  if (myBoundType != src.myBoundType) return false;
141  if (myOrientedbbox != src.myOrientedbbox) return false;
142  if (myRefinementIterations != src.myRefinementIterations) return false;
143  if (myDodivs != src.myDodivs) return false;
144  if (myDivs != src.myDivs) return false;
145  if (myRebar != src.myRebar) return false;
146  if (myMinsize != src.myMinsize) return false;
147  if (myOrient != src.myOrient) return false;
148  if (myAccurate != src.myAccurate) return false;
149  if (myMinradius != src.myMinradius) return false;
150  if (myOrientedBRect != src.myOrientedBRect) return false;
151  if (myOrigin != src.myOrigin) return false;
152  if (myDistance != src.myDistance) return false;
153  if (myDirection != src.myDirection) return false;
154  if (myMinpad != src.myMinpad) return false;
155  if (myMaxpad != src.myMaxpad) return false;
156  if (myAddBoundsGroup != src.myAddBoundsGroup) return false;
157  if (myBoundsGroup != src.myBoundsGroup) return false;
158  if (myAddXformAttrib != src.myAddXformAttrib) return false;
159  if (myXformAttrib != src.myXformAttrib) return false;
160  if (myAddRadiiAttrib != src.myAddRadiiAttrib) return false;
161  if (myRadiiAttrib != src.myRadiiAttrib) return false;
162 
163  return true;
164  }
165  bool operator!=(const SOP_BoundParms &src) const
166  {
167  return !operator==(src);
168  }
172 
173 
174 
175  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
176  {
177  myGroup = ""_UTsh;
178  if (true)
179  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
180  myGrouptype = 0;
181  if (true)
182  graph->evalOpParm(myGrouptype, nodeidx, "grouptype", time, 0);
183  myKeeporiginal = false;
184  if (true)
185  graph->evalOpParm(myKeeporiginal, nodeidx, "keepOriginal", time, 0);
186  myCreateBoundingGeo = true;
187  if (true)
188  graph->evalOpParm(myCreateBoundingGeo, nodeidx, "createboundinggeo", time, 0);
189  myCreateempty = true;
190  if (true && ( (true&&!(((getCreateBoundingGeo()==0)))) ) )
191  graph->evalOpParm(myCreateempty, nodeidx, "createempty", time, 0);
192  myBoundType = 0;
193  if (true)
194  graph->evalOpParm(myBoundType, nodeidx, "boundtype", time, 0);
195  myOrientedbbox = false;
196  if (true && ( (true&&!(((int64(getBoundType())!=0)))) ) )
197  graph->evalOpParm(myOrientedbbox, nodeidx, "orientedbbox", time, 0);
198  myRefinementIterations = 6;
199  if (true && ( (true&&!(((int64(getBoundType())!=0))||((getOrientedbbox()==0))||((int64(getBoundType())!=0))||((getOrientedbbox()==0)))) ) )
200  graph->evalOpParm(myRefinementIterations, nodeidx, "refinementiterations", time, 0);
201  myDodivs = false;
202  if (true && ( (true&&!(((getCreateBoundingGeo()==0))||((int64(getBoundType())!=0)))) ) )
203  graph->evalOpParm(myDodivs, nodeidx, "dodivs", time, 0);
204  myDivs = UT_Vector3I(3,3,3);
205  if (true && ( (true&&!(((getDodivs()==0))||((getCreateBoundingGeo()==0))||((int64(getBoundType())!=0)))) ) )
206  graph->evalOpParm(myDivs, nodeidx, "divs", time, 0);
207  myRebar = false;
208  if (true && ( (true&&!(((getDodivs()==0))||((getCreateBoundingGeo()==0))||((int64(getBoundType())!=0)))) ) )
209  graph->evalOpParm(myRebar, nodeidx, "rebar", time, 0);
210  myMinsize = UT_Vector3D(0,0,0);
211  if (true && ( (true&&!(((int64(getBoundType())!=0)))) ) )
212  graph->evalOpParm(myMinsize, nodeidx, "minsize", time, 0);
213  myOrient = 1;
214  if (true && ( (true&&!(((getCreateBoundingGeo()==0))||((int64(getBoundType())!=1)))) ) )
215  graph->evalOpParm(myOrient, nodeidx, "orient", time, 0);
216  myAccurate = false;
217  if (true && ( (true&&!(((int64(getBoundType())!=1)))) ) )
218  graph->evalOpParm(myAccurate, nodeidx, "accurate", time, 0);
219  myMinradius = 0;
220  if (true && ( (true&&!(((int64(getBoundType())!=1)))) ) )
221  graph->evalOpParm(myMinradius, nodeidx, "minradius", time, 0);
222  myOrientedBRect = false;
223  if (true && ( (true&&!(((int64(getBoundType())!=2)))) ) )
224  graph->evalOpParm(myOrientedBRect, nodeidx, "orientedbrect", time, 0);
225  myOrigin = UT_Vector3D(0,0,0);
226  if (true && ( (true&&!(((int64(getBoundType())!=2)))) ) )
227  graph->evalOpParm(myOrigin, nodeidx, "origin", time, 0);
228  myDistance = 0;
229  if (true && ( (true&&!(((int64(getBoundType())!=2)))) ) )
230  graph->evalOpParm(myDistance, nodeidx, "dist", time, 0);
231  myDirection = UT_Vector3D(0,1,0);
232  if (true && ( (true&&!(((int64(getBoundType())!=2)))) ) )
233  graph->evalOpParm(myDirection, nodeidx, "dir", time, 0);
234  myMinpad = UT_Vector3D(0,0,0);
235  if (true)
236  graph->evalOpParm(myMinpad, nodeidx, "minpad", time, 0);
237  myMaxpad = UT_Vector3D(0,0,0);
238  if (true)
239  graph->evalOpParm(myMaxpad, nodeidx, "maxpad", time, 0);
240  myAddBoundsGroup = false;
241  if (true && ( (true&&!(((getCreateBoundingGeo()==0)))) ) )
242  graph->evalOpParm(myAddBoundsGroup, nodeidx, "addboundsgroup", time, 0);
243  myBoundsGroup = "bounds"_UTsh;
244  if (true && ( (true&&!(((getAddBoundsGroup()==0))||((getCreateBoundingGeo()==0)))) ) )
245  graph->evalOpParm(myBoundsGroup, nodeidx, "boundsgroup", time, 0);
246  myAddXformAttrib = false;
247  if (true)
248  graph->evalOpParm(myAddXformAttrib, nodeidx, "addxformattrib", time, 0);
249  myXformAttrib = "xform"_UTsh;
250  if (true && ( (true&&!(((getAddXformAttrib()==0)))) ) )
251  graph->evalOpParm(myXformAttrib, nodeidx, "xformattrib", time, 0);
252  myAddRadiiAttrib = false;
253  if (true)
254  graph->evalOpParm(myAddRadiiAttrib, nodeidx, "addradiiattrib", time, 0);
255  myRadiiAttrib = "radii"_UTsh;
256  if (true && ( (true&&!(((getAddRadiiAttrib()==0)))) ) )
257  graph->evalOpParm(myRadiiAttrib, nodeidx, "radiiattrib", time, 0);
258 
259  }
260 
261 
262  void loadFromOpSubclass(const LoadParms &loadparms) override
263  {
264  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
265  }
266 
267 
268  void copyFrom(const OP_NodeParms *src) override
269  {
270  *this = *((const SOP_BoundParms *)src);
271  }
272 
273  template <typename T>
274  void
275  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
276  {
277  if (idx.size() < 1)
278  return;
279  UT_ASSERT(idx.size() == instance.size()+1);
280  if (idx.size() != instance.size()+1)
281  return;
282  switch (idx[0])
283  {
284  case 0:
285  coerceValue(value, myGroup);
286  break;
287  case 1:
288  coerceValue(value, myGrouptype);
289  break;
290  case 2:
291  coerceValue(value, myKeeporiginal);
292  break;
293  case 3:
294  coerceValue(value, myCreateBoundingGeo);
295  break;
296  case 4:
297  coerceValue(value, myCreateempty);
298  break;
299  case 5:
300  coerceValue(value, myBoundType);
301  break;
302  case 6:
303  coerceValue(value, myOrientedbbox);
304  break;
305  case 7:
306  coerceValue(value, myRefinementIterations);
307  break;
308  case 8:
309  coerceValue(value, myDodivs);
310  break;
311  case 9:
312  coerceValue(value, myDivs);
313  break;
314  case 10:
315  coerceValue(value, myRebar);
316  break;
317  case 11:
318  coerceValue(value, myMinsize);
319  break;
320  case 12:
321  coerceValue(value, myOrient);
322  break;
323  case 13:
324  coerceValue(value, myAccurate);
325  break;
326  case 14:
327  coerceValue(value, myMinradius);
328  break;
329  case 15:
330  coerceValue(value, myOrientedBRect);
331  break;
332  case 16:
333  coerceValue(value, myOrigin);
334  break;
335  case 17:
336  coerceValue(value, myDistance);
337  break;
338  case 18:
339  coerceValue(value, myDirection);
340  break;
341  case 19:
342  coerceValue(value, myMinpad);
343  break;
344  case 20:
345  coerceValue(value, myMaxpad);
346  break;
347  case 21:
348  coerceValue(value, myAddBoundsGroup);
349  break;
350  case 22:
351  coerceValue(value, myBoundsGroup);
352  break;
353  case 23:
354  coerceValue(value, myAddXformAttrib);
355  break;
356  case 24:
357  coerceValue(value, myXformAttrib);
358  break;
359  case 25:
360  coerceValue(value, myAddRadiiAttrib);
361  break;
362  case 26:
363  coerceValue(value, myRadiiAttrib);
364  break;
365 
366  }
367  }
368 
369  bool isParmColorRamp(exint idx) const override
370  {
371  switch (idx)
372  {
373 
374  }
375  return false;
376  }
377 
378  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
379  { doGetParmValue(idx, instance, value); }
380  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
381  { doGetParmValue(idx, instance, value); }
382  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
383  { doGetParmValue(idx, instance, value); }
384  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
385  { doGetParmValue(idx, instance, value); }
386  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
387  { doGetParmValue(idx, instance, value); }
388  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
389  { doGetParmValue(idx, instance, value); }
390  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
391  { doGetParmValue(idx, instance, value); }
392  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
393  { doGetParmValue(idx, instance, value); }
394  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
395  { doGetParmValue(idx, instance, value); }
396  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
397  { doGetParmValue(idx, instance, value); }
398  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
399  { doGetParmValue(idx, instance, value); }
400 
401  template <typename T>
402  void
403  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
404  {
405  if (idx.size() < 1)
406  return;
407  UT_ASSERT(idx.size() == instance.size()+1);
408  if (idx.size() != instance.size()+1)
409  return;
410  switch (idx[0])
411  {
412  case 0:
413  coerceValue(myGroup, ( ( value ) ));
414  break;
415  case 1:
416  coerceValue(myGrouptype, clampMinValue(0, clampMaxValue(4, value ) ));
417  break;
418  case 2:
419  coerceValue(myKeeporiginal, ( ( value ) ));
420  break;
421  case 3:
422  coerceValue(myCreateBoundingGeo, ( ( value ) ));
423  break;
424  case 4:
425  coerceValue(myCreateempty, ( ( value ) ));
426  break;
427  case 5:
428  coerceValue(myBoundType, clampMinValue(0, clampMaxValue(2, value ) ));
429  break;
430  case 6:
431  coerceValue(myOrientedbbox, ( ( value ) ));
432  break;
433  case 7:
434  coerceValue(myRefinementIterations, clampMinValue(0, ( value ) ));
435  break;
436  case 8:
437  coerceValue(myDodivs, ( ( value ) ));
438  break;
439  case 9:
440  coerceValue(myDivs, clampMinValue(1, ( value ) ));
441  break;
442  case 10:
443  coerceValue(myRebar, ( ( value ) ));
444  break;
445  case 11:
446  coerceValue(myMinsize, clampMinValue(0, ( value ) ));
447  break;
448  case 12:
449  coerceValue(myOrient, clampMinValue(0, clampMaxValue(2, value ) ));
450  break;
451  case 13:
452  coerceValue(myAccurate, ( ( value ) ));
453  break;
454  case 14:
455  coerceValue(myMinradius, clampMinValue(0, ( value ) ));
456  break;
457  case 15:
458  coerceValue(myOrientedBRect, ( ( value ) ));
459  break;
460  case 16:
461  coerceValue(myOrigin, ( ( value ) ));
462  break;
463  case 17:
464  coerceValue(myDistance, ( ( value ) ));
465  break;
466  case 18:
467  coerceValue(myDirection, ( ( value ) ));
468  break;
469  case 19:
470  coerceValue(myMinpad, ( ( value ) ));
471  break;
472  case 20:
473  coerceValue(myMaxpad, ( ( value ) ));
474  break;
475  case 21:
476  coerceValue(myAddBoundsGroup, ( ( value ) ));
477  break;
478  case 22:
479  coerceValue(myBoundsGroup, ( ( value ) ));
480  break;
481  case 23:
482  coerceValue(myAddXformAttrib, ( ( value ) ));
483  break;
484  case 24:
485  coerceValue(myXformAttrib, ( ( value ) ));
486  break;
487  case 25:
488  coerceValue(myAddRadiiAttrib, ( ( value ) ));
489  break;
490  case 26:
491  coerceValue(myRadiiAttrib, ( ( value ) ));
492  break;
493 
494  }
495  }
496 
497  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
498  { doSetParmValue(idx, instance, value); }
499  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
500  { doSetParmValue(idx, instance, value); }
501  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
502  { doSetParmValue(idx, instance, value); }
503  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
504  { doSetParmValue(idx, instance, value); }
505  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
506  { doSetParmValue(idx, instance, value); }
507  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
508  { doSetParmValue(idx, instance, value); }
509  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
510  { doSetParmValue(idx, instance, value); }
511  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
512  { doSetParmValue(idx, instance, value); }
513  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
514  { doSetParmValue(idx, instance, value); }
515  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
516  { doSetParmValue(idx, instance, value); }
517  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
518  { doSetParmValue(idx, instance, value); }
519 
520  exint getNestNumParms(TempIndex idx) const override
521  {
522  if (idx.size() == 0)
523  return 27;
524  switch (idx[0])
525  {
526 
527  }
528  // Invalid
529  return 0;
530  }
531 
532  const char *getNestParmName(TempIndex fieldnum) const override
533  {
534  if (fieldnum.size() < 1)
535  return 0;
536  switch (fieldnum[0])
537  {
538  case 0:
539  return "group";
540  case 1:
541  return "grouptype";
542  case 2:
543  return "keepOriginal";
544  case 3:
545  return "createboundinggeo";
546  case 4:
547  return "createempty";
548  case 5:
549  return "boundtype";
550  case 6:
551  return "orientedbbox";
552  case 7:
553  return "refinementiterations";
554  case 8:
555  return "dodivs";
556  case 9:
557  return "divs";
558  case 10:
559  return "rebar";
560  case 11:
561  return "minsize";
562  case 12:
563  return "orient";
564  case 13:
565  return "accurate";
566  case 14:
567  return "minradius";
568  case 15:
569  return "orientedbrect";
570  case 16:
571  return "origin";
572  case 17:
573  return "dist";
574  case 18:
575  return "dir";
576  case 19:
577  return "minpad";
578  case 20:
579  return "maxpad";
580  case 21:
581  return "addboundsgroup";
582  case 22:
583  return "boundsgroup";
584  case 23:
585  return "addxformattrib";
586  case 24:
587  return "xformattrib";
588  case 25:
589  return "addradiiattrib";
590  case 26:
591  return "radiiattrib";
592 
593  }
594  return 0;
595  }
596 
597  ParmType getNestParmType(TempIndex fieldnum) const override
598  {
599  if (fieldnum.size() < 1)
600  return PARM_UNSUPPORTED;
601  switch (fieldnum[0])
602  {
603  case 0:
604  return PARM_STRING;
605  case 1:
606  return PARM_INTEGER;
607  case 2:
608  return PARM_INTEGER;
609  case 3:
610  return PARM_INTEGER;
611  case 4:
612  return PARM_INTEGER;
613  case 5:
614  return PARM_INTEGER;
615  case 6:
616  return PARM_INTEGER;
617  case 7:
618  return PARM_INTEGER;
619  case 8:
620  return PARM_INTEGER;
621  case 9:
622  return PARM_VECTOR3;
623  case 10:
624  return PARM_INTEGER;
625  case 11:
626  return PARM_VECTOR3;
627  case 12:
628  return PARM_INTEGER;
629  case 13:
630  return PARM_INTEGER;
631  case 14:
632  return PARM_FLOAT;
633  case 15:
634  return PARM_INTEGER;
635  case 16:
636  return PARM_VECTOR3;
637  case 17:
638  return PARM_FLOAT;
639  case 18:
640  return PARM_VECTOR3;
641  case 19:
642  return PARM_VECTOR3;
643  case 20:
644  return PARM_VECTOR3;
645  case 21:
646  return PARM_INTEGER;
647  case 22:
648  return PARM_STRING;
649  case 23:
650  return PARM_INTEGER;
651  case 24:
652  return PARM_STRING;
653  case 25:
654  return PARM_INTEGER;
655  case 26:
656  return PARM_STRING;
657 
658  }
659  return PARM_UNSUPPORTED;
660  }
661 
662  // Boiler plate to load individual types.
663  static void loadData(UT_IStream &is, int64 &v)
664  { is.bread(&v, 1); }
665  static void loadData(UT_IStream &is, bool &v)
666  { int64 iv; is.bread(&iv, 1); v = iv; }
667  static void loadData(UT_IStream &is, fpreal64 &v)
668  { is.bread<fpreal64>(&v, 1); }
669  static void loadData(UT_IStream &is, UT_Vector2D &v)
670  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
671  static void loadData(UT_IStream &is, UT_Vector3D &v)
672  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
673  is.bread<fpreal64>(&v.z(), 1); }
674  static void loadData(UT_IStream &is, UT_Vector4D &v)
675  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
676  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
677  static void loadData(UT_IStream &is, UT_Matrix2D &v)
678  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
679  static void loadData(UT_IStream &is, UT_Matrix3D &v)
680  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
681  static void loadData(UT_IStream &is, UT_Matrix4D &v)
682  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
683  static void loadData(UT_IStream &is, UT_Vector2I &v)
684  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
685  static void loadData(UT_IStream &is, UT_Vector3I &v)
686  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
687  is.bread<int64>(&v.z(), 1); }
688  static void loadData(UT_IStream &is, UT_Vector4I &v)
689  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
690  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
692  { is.bread(v); }
694  { UT_StringHolder rampdata;
695  loadData(is, rampdata);
696  if (rampdata.isstring())
697  {
698  v.reset(new UT_Ramp());
699  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
700  v->load(istr);
701  }
702  else v.reset();
703  }
706  loadData(is, data);
707  if (data.isstring())
708  {
709  // Find the data type.
710  const char *colon = UT_StringWrap(data).findChar(':');
711  if (colon)
712  {
713  int typelen = colon - data.buffer();
715  type.strncpy(data.buffer(), typelen);
716  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
717 
718  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
719  }
720  }
721  else v.reset();
722  }
723 
724  static void saveData(std::ostream &os, int64 v)
725  { UTwrite(os, &v); }
726  static void saveData(std::ostream &os, bool v)
727  { int64 iv = v; UTwrite(os, &iv); }
728  static void saveData(std::ostream &os, fpreal64 v)
729  { UTwrite<fpreal64>(os, &v); }
730  static void saveData(std::ostream &os, UT_Vector2D v)
731  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
732  static void saveData(std::ostream &os, UT_Vector3D v)
733  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
734  UTwrite<fpreal64>(os, &v.z()); }
735  static void saveData(std::ostream &os, UT_Vector4D v)
736  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
737  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
738  static void saveData(std::ostream &os, UT_Matrix2D v)
740  static void saveData(std::ostream &os, UT_Matrix3D v)
742  static void saveData(std::ostream &os, UT_Matrix4D v)
744  static void saveData(std::ostream &os, UT_StringHolder s)
745  { UT_StringWrap(s).saveBinary(os); }
746  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
748  UT_OStringStream ostr;
749  if (s) s->save(ostr);
750  result = ostr.str();
751  saveData(os, result);
752  }
753  static void saveData(std::ostream &os, PRM_DataItemHandle s)
755  UT_OStringStream ostr;
756  if (s)
757  {
758  ostr << s->getDataTypeToken();
759  ostr << ":";
760  s->saveBinary(ostr);
761  }
762  result = ostr.str();
763  saveData(os, result);
764  }
765 
766 
767  void save(std::ostream &os) const
768  {
769  int32 v = version();
770  UTwrite(os, &v);
771  saveData(os, myGroup);
772  saveData(os, myGrouptype);
773  saveData(os, myKeeporiginal);
774  saveData(os, myCreateBoundingGeo);
775  saveData(os, myCreateempty);
776  saveData(os, myBoundType);
777  saveData(os, myOrientedbbox);
778  saveData(os, myRefinementIterations);
779  saveData(os, myDodivs);
780  saveData(os, myDivs);
781  saveData(os, myRebar);
782  saveData(os, myMinsize);
783  saveData(os, myOrient);
784  saveData(os, myAccurate);
785  saveData(os, myMinradius);
786  saveData(os, myOrientedBRect);
787  saveData(os, myOrigin);
788  saveData(os, myDistance);
789  saveData(os, myDirection);
790  saveData(os, myMinpad);
791  saveData(os, myMaxpad);
792  saveData(os, myAddBoundsGroup);
793  saveData(os, myBoundsGroup);
794  saveData(os, myAddXformAttrib);
795  saveData(os, myXformAttrib);
796  saveData(os, myAddRadiiAttrib);
797  saveData(os, myRadiiAttrib);
798 
799  }
800 
801  bool load(UT_IStream &is)
802  {
803  int32 v;
804  is.bread(&v, 1);
805  if (version() != v)
806  {
807  // Fail incompatible versions
808  return false;
809  }
810  loadData(is, myGroup);
811  loadData(is, myGrouptype);
812  loadData(is, myKeeporiginal);
813  loadData(is, myCreateBoundingGeo);
814  loadData(is, myCreateempty);
815  loadData(is, myBoundType);
816  loadData(is, myOrientedbbox);
817  loadData(is, myRefinementIterations);
818  loadData(is, myDodivs);
819  loadData(is, myDivs);
820  loadData(is, myRebar);
821  loadData(is, myMinsize);
822  loadData(is, myOrient);
823  loadData(is, myAccurate);
824  loadData(is, myMinradius);
825  loadData(is, myOrientedBRect);
826  loadData(is, myOrigin);
827  loadData(is, myDistance);
828  loadData(is, myDirection);
829  loadData(is, myMinpad);
830  loadData(is, myMaxpad);
831  loadData(is, myAddBoundsGroup);
832  loadData(is, myBoundsGroup);
833  loadData(is, myAddXformAttrib);
834  loadData(is, myXformAttrib);
835  loadData(is, myAddRadiiAttrib);
836  loadData(is, myRadiiAttrib);
837 
838  return true;
839  }
840 
841  const UT_StringHolder & getGroup() const { return myGroup; }
842  void setGroup(const UT_StringHolder & val) { myGroup = val; }
844  {
845  SOP_Node *thissop = cookparms.getNode();
846  if (!thissop) return getGroup();
848  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
849  return result;
850  }
851  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
852  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
854  {
855  SOP_Node *thissop = cookparms.getNode();
856  if (!thissop) return getGrouptype();
857  int64 result;
858  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
859  return Grouptype(result);
860  }
861  bool getKeeporiginal() const { return myKeeporiginal; }
862  void setKeeporiginal(bool val) { myKeeporiginal = val; }
863  bool opKeeporiginal(const SOP_NodeVerb::CookParms &cookparms) const
864  {
865  SOP_Node *thissop = cookparms.getNode();
866  if (!thissop) return getKeeporiginal();
867  bool result;
868  OP_Utils::evalOpParm(result, thissop, "keepOriginal", cookparms.getCookTime(), 0);
869  return result;
870  }
871  bool getCreateBoundingGeo() const { return myCreateBoundingGeo; }
872  void setCreateBoundingGeo(bool val) { myCreateBoundingGeo = val; }
873  bool opCreateBoundingGeo(const SOP_NodeVerb::CookParms &cookparms) const
874  {
875  SOP_Node *thissop = cookparms.getNode();
876  if (!thissop) return getCreateBoundingGeo();
877  bool result;
878  OP_Utils::evalOpParm(result, thissop, "createboundinggeo", cookparms.getCookTime(), 0);
879  return result;
880  }
881  bool getCreateempty() const { return myCreateempty; }
882  void setCreateempty(bool val) { myCreateempty = val; }
883  bool opCreateempty(const SOP_NodeVerb::CookParms &cookparms) const
884  {
885  SOP_Node *thissop = cookparms.getNode();
886  if (!thissop) return getCreateempty();
887  bool result;
888  OP_Utils::evalOpParm(result, thissop, "createempty", cookparms.getCookTime(), 0);
889  return result;
890  }
891  BoundType getBoundType() const { return BoundType(myBoundType); }
892  void setBoundType(BoundType val) { myBoundType = int64(val); }
894  {
895  SOP_Node *thissop = cookparms.getNode();
896  if (!thissop) return getBoundType();
897  int64 result;
898  OP_Utils::evalOpParm(result, thissop, "boundtype", cookparms.getCookTime(), 0);
899  return BoundType(result);
900  }
901  bool getOrientedbbox() const { return myOrientedbbox; }
902  void setOrientedbbox(bool val) { myOrientedbbox = val; }
903  bool opOrientedbbox(const SOP_NodeVerb::CookParms &cookparms) const
904  {
905  SOP_Node *thissop = cookparms.getNode();
906  if (!thissop) return getOrientedbbox();
907  bool result;
908  OP_Utils::evalOpParm(result, thissop, "orientedbbox", cookparms.getCookTime(), 0);
909  return result;
910  }
911  int64 getRefinementIterations() const { return myRefinementIterations; }
912  void setRefinementIterations(int64 val) { myRefinementIterations = val; }
914  {
915  SOP_Node *thissop = cookparms.getNode();
916  if (!thissop) return getRefinementIterations();
917  int64 result;
918  OP_Utils::evalOpParm(result, thissop, "refinementiterations", cookparms.getCookTime(), 0);
919  return result;
920  }
921  bool getDodivs() const { return myDodivs; }
922  void setDodivs(bool val) { myDodivs = val; }
923  bool opDodivs(const SOP_NodeVerb::CookParms &cookparms) const
924  {
925  SOP_Node *thissop = cookparms.getNode();
926  if (!thissop) return getDodivs();
927  bool result;
928  OP_Utils::evalOpParm(result, thissop, "dodivs", cookparms.getCookTime(), 0);
929  return result;
930  }
931  UT_Vector3I getDivs() const { return myDivs; }
932  void setDivs(UT_Vector3I val) { myDivs = val; }
934  {
935  SOP_Node *thissop = cookparms.getNode();
936  if (!thissop) return getDivs();
938  OP_Utils::evalOpParm(result, thissop, "divs", cookparms.getCookTime(), 0);
939  return result;
940  }
941  bool getRebar() const { return myRebar; }
942  void setRebar(bool val) { myRebar = val; }
943  bool opRebar(const SOP_NodeVerb::CookParms &cookparms) const
944  {
945  SOP_Node *thissop = cookparms.getNode();
946  if (!thissop) return getRebar();
947  bool result;
948  OP_Utils::evalOpParm(result, thissop, "rebar", cookparms.getCookTime(), 0);
949  return result;
950  }
951  UT_Vector3D getMinsize() const { return myMinsize; }
952  void setMinsize(UT_Vector3D val) { myMinsize = val; }
954  {
955  SOP_Node *thissop = cookparms.getNode();
956  if (!thissop) return getMinsize();
958  OP_Utils::evalOpParm(result, thissop, "minsize", cookparms.getCookTime(), 0);
959  return result;
960  }
961  Orient getOrient() const { return Orient(myOrient); }
962  void setOrient(Orient val) { myOrient = int64(val); }
963  Orient opOrient(const SOP_NodeVerb::CookParms &cookparms) const
964  {
965  SOP_Node *thissop = cookparms.getNode();
966  if (!thissop) return getOrient();
967  int64 result;
968  OP_Utils::evalOpParm(result, thissop, "orient", cookparms.getCookTime(), 0);
969  return Orient(result);
970  }
971  bool getAccurate() const { return myAccurate; }
972  void setAccurate(bool val) { myAccurate = val; }
973  bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
974  {
975  SOP_Node *thissop = cookparms.getNode();
976  if (!thissop) return getAccurate();
977  bool result;
978  OP_Utils::evalOpParm(result, thissop, "accurate", cookparms.getCookTime(), 0);
979  return result;
980  }
981  fpreal64 getMinradius() const { return myMinradius; }
982  void setMinradius(fpreal64 val) { myMinradius = val; }
984  {
985  SOP_Node *thissop = cookparms.getNode();
986  if (!thissop) return getMinradius();
988  OP_Utils::evalOpParm(result, thissop, "minradius", cookparms.getCookTime(), 0);
989  return result;
990  }
991  bool getOrientedBRect() const { return myOrientedBRect; }
992  void setOrientedBRect(bool val) { myOrientedBRect = val; }
993  bool opOrientedBRect(const SOP_NodeVerb::CookParms &cookparms) const
994  {
995  SOP_Node *thissop = cookparms.getNode();
996  if (!thissop) return getOrientedBRect();
997  bool result;
998  OP_Utils::evalOpParm(result, thissop, "orientedbrect", cookparms.getCookTime(), 0);
999  return result;
1000  }
1001  UT_Vector3D getOrigin() const { return myOrigin; }
1002  void setOrigin(UT_Vector3D val) { myOrigin = val; }
1004  {
1005  SOP_Node *thissop = cookparms.getNode();
1006  if (!thissop) return getOrigin();
1008  OP_Utils::evalOpParm(result, thissop, "origin", cookparms.getCookTime(), 0);
1009  return result;
1010  }
1011  fpreal64 getDistance() const { return myDistance; }
1012  void setDistance(fpreal64 val) { myDistance = val; }
1014  {
1015  SOP_Node *thissop = cookparms.getNode();
1016  if (!thissop) return getDistance();
1017  fpreal64 result;
1018  OP_Utils::evalOpParm(result, thissop, "dist", cookparms.getCookTime(), 0);
1019  return result;
1020  }
1021  UT_Vector3D getDirection() const { return myDirection; }
1022  void setDirection(UT_Vector3D val) { myDirection = val; }
1024  {
1025  SOP_Node *thissop = cookparms.getNode();
1026  if (!thissop) return getDirection();
1028  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
1029  return result;
1030  }
1031  UT_Vector3D getMinpad() const { return myMinpad; }
1032  void setMinpad(UT_Vector3D val) { myMinpad = val; }
1034  {
1035  SOP_Node *thissop = cookparms.getNode();
1036  if (!thissop) return getMinpad();
1038  OP_Utils::evalOpParm(result, thissop, "minpad", cookparms.getCookTime(), 0);
1039  return result;
1040  }
1041  UT_Vector3D getMaxpad() const { return myMaxpad; }
1042  void setMaxpad(UT_Vector3D val) { myMaxpad = val; }
1044  {
1045  SOP_Node *thissop = cookparms.getNode();
1046  if (!thissop) return getMaxpad();
1048  OP_Utils::evalOpParm(result, thissop, "maxpad", cookparms.getCookTime(), 0);
1049  return result;
1050  }
1051  bool getAddBoundsGroup() const { return myAddBoundsGroup; }
1052  void setAddBoundsGroup(bool val) { myAddBoundsGroup = val; }
1053  bool opAddBoundsGroup(const SOP_NodeVerb::CookParms &cookparms) const
1054  {
1055  SOP_Node *thissop = cookparms.getNode();
1056  if (!thissop) return getAddBoundsGroup();
1057  bool result;
1058  OP_Utils::evalOpParm(result, thissop, "addboundsgroup", cookparms.getCookTime(), 0);
1059  return result;
1060  }
1061  const UT_StringHolder & getBoundsGroup() const { return myBoundsGroup; }
1062  void setBoundsGroup(const UT_StringHolder & val) { myBoundsGroup = val; }
1064  {
1065  SOP_Node *thissop = cookparms.getNode();
1066  if (!thissop) return getBoundsGroup();
1068  OP_Utils::evalOpParm(result, thissop, "boundsgroup", cookparms.getCookTime(), 0);
1069  return result;
1070  }
1071  bool getAddXformAttrib() const { return myAddXformAttrib; }
1072  void setAddXformAttrib(bool val) { myAddXformAttrib = val; }
1073  bool opAddXformAttrib(const SOP_NodeVerb::CookParms &cookparms) const
1074  {
1075  SOP_Node *thissop = cookparms.getNode();
1076  if (!thissop) return getAddXformAttrib();
1077  bool result;
1078  OP_Utils::evalOpParm(result, thissop, "addxformattrib", cookparms.getCookTime(), 0);
1079  return result;
1080  }
1081  const UT_StringHolder & getXformAttrib() const { return myXformAttrib; }
1082  void setXformAttrib(const UT_StringHolder & val) { myXformAttrib = val; }
1084  {
1085  SOP_Node *thissop = cookparms.getNode();
1086  if (!thissop) return getXformAttrib();
1088  OP_Utils::evalOpParm(result, thissop, "xformattrib", cookparms.getCookTime(), 0);
1089  return result;
1090  }
1091  bool getAddRadiiAttrib() const { return myAddRadiiAttrib; }
1092  void setAddRadiiAttrib(bool val) { myAddRadiiAttrib = val; }
1093  bool opAddRadiiAttrib(const SOP_NodeVerb::CookParms &cookparms) const
1094  {
1095  SOP_Node *thissop = cookparms.getNode();
1096  if (!thissop) return getAddRadiiAttrib();
1097  bool result;
1098  OP_Utils::evalOpParm(result, thissop, "addradiiattrib", cookparms.getCookTime(), 0);
1099  return result;
1100  }
1101  const UT_StringHolder & getRadiiAttrib() const { return myRadiiAttrib; }
1102  void setRadiiAttrib(const UT_StringHolder & val) { myRadiiAttrib = val; }
1104  {
1105  SOP_Node *thissop = cookparms.getNode();
1106  if (!thissop) return getRadiiAttrib();
1108  OP_Utils::evalOpParm(result, thissop, "radiiattrib", cookparms.getCookTime(), 0);
1109  return result;
1110  }
1111 
1112 private:
1113  UT_StringHolder myGroup;
1114  int64 myGrouptype;
1115  bool myKeeporiginal;
1116  bool myCreateBoundingGeo;
1117  bool myCreateempty;
1118  int64 myBoundType;
1119  bool myOrientedbbox;
1120  int64 myRefinementIterations;
1121  bool myDodivs;
1122  UT_Vector3I myDivs;
1123  bool myRebar;
1124  UT_Vector3D myMinsize;
1125  int64 myOrient;
1126  bool myAccurate;
1127  fpreal64 myMinradius;
1128  bool myOrientedBRect;
1129  UT_Vector3D myOrigin;
1130  fpreal64 myDistance;
1131  UT_Vector3D myDirection;
1132  UT_Vector3D myMinpad;
1133  UT_Vector3D myMaxpad;
1134  bool myAddBoundsGroup;
1135  UT_StringHolder myBoundsGroup;
1136  bool myAddXformAttrib;
1137  UT_StringHolder myXformAttrib;
1138  bool myAddRadiiAttrib;
1139  UT_StringHolder myRadiiAttrib;
1140 
1141 };
bool getKeeporiginal() const
bool getAddXformAttrib() const
static void saveData(std::ostream &os, bool v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setMaxpad(UT_Vector3D val)
bool load(UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static int version()
Orient getOrient() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool opCreateempty(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_StringHolder opXformAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getOrientedbbox() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool opDodivs(const SOP_NodeVerb::CookParms &cookparms) const
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
Orient opOrient(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
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
static void loadData(UT_IStream &is, UT_Vector4I &v)
UT_Vector3D getOrigin() const
bool isParmColorRamp(exint idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool getAddRadiiAttrib() const
static void saveData(std::ostream &os, UT_Vector3D v)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
UT_Vector3D getMinsize() const
const UT_StringHolder & getGroup() const
SYS_FORCE_INLINE const char * buffer() const
UT_Vector3D opDirection(const SOP_NodeVerb::CookParms &cookparms) const
GLdouble s
Definition: glad.h:3009
static void saveData(std::ostream &os, UT_StringHolder s)
void setXformAttrib(const UT_StringHolder &val)
bool opCreateBoundingGeo(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool opAddXformAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getCreateBoundingGeo() const
static void loadData(UT_IStream &is, UT_Vector4D &v)
**But if you need a result
Definition: thread.h:613
void setGroup(const UT_StringHolder &val)
UT_Vector3T< int64 > UT_Vector3I
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
bool opKeeporiginal(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, PRM_DataItemHandle s)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void setOrientedbbox(bool val)
bool getDodivs() const
static void saveData(std::ostream &os, UT_Matrix3D v)
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setCreateBoundingGeo(bool val)
bool getRebar() const
void loadFromOpSubclass(const LoadParms &loadparms) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
int64 opRefinementIterations(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
UT_Vector3D opMaxpad(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
void setAddRadiiAttrib(bool val)
exint length() const
void setRefinementIterations(int64 val)
void copyFrom(const OP_NodeParms *src) 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
bool opAddRadiiAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setDistance(fpreal64 val)
UT_Vector3I opDivs(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
UT_Vector3D opOrigin(const SOP_NodeVerb::CookParms &cookparms) const
void setAddXformAttrib(bool val)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setMinradius(fpreal64 val)
void setAddBoundsGroup(bool val)
UT_Vector3D opMinsize(const SOP_NodeVerb::CookParms &cookparms) const
BoundType opBoundType(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3I getDivs() const
long long int64
Definition: SYS_Types.h:116
void setKeeporiginal(bool val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool opOrientedBRect(const SOP_NodeVerb::CookParms &cookparms) const
void setMinsize(UT_Vector3D val)
void setCreateempty(bool val)
void setBoundType(BoundType val)
UT_Vector3T< fpreal64 > UT_Vector3D
static void loadData(UT_IStream &is, int64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opOrientedbbox(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setDivs(UT_Vector3I val)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setRadiiAttrib(const UT_StringHolder &val)
bool operator!=(const SOP_BoundParms &src) const
static void saveData(std::ostream &os, int64 v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void setOrigin(UT_Vector3D val)
UT_Vector3D getMinpad() const
GT_API const UT_StringHolder version
Grouptype getGrouptype() const
int64 getRefinementIterations() const
void setAccurate(bool val)
bool opRebar(const SOP_NodeVerb::CookParms &cookparms) const
void setOrient(Orient val)
bool getAddBoundsGroup() const
UT_StringHolder opBoundsGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setDirection(UT_Vector3D val)
UT_StringHolder opRadiiAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 getMinradius() const
fpreal64 fpreal
Definition: SYS_Types.h:277
static void loadData(UT_IStream &is, bool &v)
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
UT_Vector3D opMinpad(const SOP_NodeVerb::CookParms &cookparms) const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
SYS_FORCE_INLINE UT_StringHolder getToken(Grouptype enum_value)
void setRebar(bool val)
static void saveData(std::ostream &os, fpreal64 v)
const char * getNestParmName(TempIndex fieldnum) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
bool getCreateempty() const
void setBoundsGroup(const UT_StringHolder &val)
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setOrientedBRect(bool val)
#define SOP_API
Definition: SOP_API.h:10
const UT_StringHolder & getRadiiAttrib() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
fpreal64 opMinradius(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
BoundType getBoundType() const
bool getAccurate() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
const UT_StringHolder & getBoundsGroup() const
Definition: core.h:1131
UT_Vector3D getMaxpad() const
fpreal64 getDistance() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
GLboolean r
Definition: glcorearb.h:1222
bool getOrientedBRect() const
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opDistance(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
UT_Vector3D getDirection() const
const UT_StringHolder & getXformAttrib() const
type
Definition: core.h:1059
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
exint getNestNumParms(TempIndex idx) const override
void setDodivs(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
bool operator==(const SOP_BoundParms &src) const
static void saveData(std::ostream &os, UT_Matrix4D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
void setGrouptype(Grouptype val)
SYS_FORCE_INLINE bool isstring() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setMinpad(UT_Vector3D val)
bool opAddBoundsGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
static void saveData(std::ostream &os, UT_Vector4D v)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)