HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Trace.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_TraceEnums
24 {
25  enum class Channel
26  {
27  MONO = 0,
28  RED,
29  GREEN,
30  BLUE,
31  ALPHA
32  };
33 
35  getToken(Channel enum_value)
36  {
37  using namespace UT::Literal;
38  switch (enum_value) {
39  case Channel::MONO: return "mono"_sh;
40  case Channel::RED: return "red"_sh;
41  case Channel::GREEN: return "green"_sh;
42  case Channel::BLUE: return "blue"_sh;
43  case Channel::ALPHA: return "alpha"_sh;
44  default: UT_ASSERT(false); return ""_sh;
45  }
46  }
47 
48  enum class Boundary
49  {
50  BLACK = 0,
51  WHITE,
52  FIRST,
53  CUSTOM
54  };
55 
57  getToken(Boundary enum_value)
58  {
59  using namespace UT::Literal;
60  switch (enum_value) {
61  case Boundary::BLACK: return "black"_sh;
62  case Boundary::WHITE: return "white"_sh;
63  case Boundary::FIRST: return "first"_sh;
64  case Boundary::CUSTOM: return "custom"_sh;
65  default: UT_ASSERT(false); return ""_sh;
66  }
67  }
68 
69  enum class MissingFrame
70  {
71  ERROR = 0,
72  EMPTY
73  };
74 
76  getToken(MissingFrame enum_value)
77  {
78  using namespace UT::Literal;
79  switch (enum_value) {
80  case MissingFrame::ERROR: return "error"_sh;
81  case MissingFrame::EMPTY: return "empty"_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  myTraceLayer = ""_UTsh;
97  myT = UT_Vector3D(0,0,0);
98  myR = UT_Vector3D(0,0,0);
99  myS = UT_Vector2D(1,1);
100  myThresh = 0.5;
101  myAddtexture = false;
102  myChannel = 0;
103  myFile = "circle.pic"_UTsh;
104  myOverridesize = false;
105  myImagesize = UT_Vector2I(100,100);
106  myUsecop = 0;
107  myCoppath = ""_UTsh;
108  myCopframe = 0;
109  myCopcolor = "(Default Color)"_UTsh;
110  myCopalpha = "(Default Alpha)"_UTsh;
111  myDelborder = false;
112  myBordwidth = 2;
113  myDoresample = false;
114  myStep = 1;
115  myDosmooth = false;
116  myCorner = 1;
117  myFitcurve = false;
118  myError = 2;
119  myConvpoly = false;
120  myLod = 1;
121  myHole = false;
122  myBoundary = 0;
123  myBoundaryvalue = 0;
124  myMissingFrame = 0;
125 
126  }
127 
128  explicit SOP_TraceParms(const SOP_TraceParms &) = default;
129  SOP_TraceParms &operator=(const SOP_TraceParms &) = default;
130  SOP_TraceParms(SOP_TraceParms &&) noexcept = default;
131  SOP_TraceParms &operator=(SOP_TraceParms &&) noexcept = default;
132 
133  ~SOP_TraceParms() override {}
134 
135  bool operator==(const SOP_TraceParms &src) const
136  {
137  if (myTraceLayer != src.myTraceLayer) return false;
138  if (myT != src.myT) return false;
139  if (myR != src.myR) return false;
140  if (myS != src.myS) return false;
141  if (myThresh != src.myThresh) return false;
142  if (myAddtexture != src.myAddtexture) return false;
143  if (myChannel != src.myChannel) return false;
144  if (myFile != src.myFile) return false;
145  if (myOverridesize != src.myOverridesize) return false;
146  if (myImagesize != src.myImagesize) return false;
147  if (myUsecop != src.myUsecop) return false;
148  if (myCoppath != src.myCoppath) return false;
149  if (myCopframe != src.myCopframe) return false;
150  if (myCopcolor != src.myCopcolor) return false;
151  if (myCopalpha != src.myCopalpha) return false;
152  if (myDelborder != src.myDelborder) return false;
153  if (myBordwidth != src.myBordwidth) return false;
154  if (myDoresample != src.myDoresample) return false;
155  if (myStep != src.myStep) return false;
156  if (myDosmooth != src.myDosmooth) return false;
157  if (myCorner != src.myCorner) return false;
158  if (myFitcurve != src.myFitcurve) return false;
159  if (myError != src.myError) return false;
160  if (myConvpoly != src.myConvpoly) return false;
161  if (myLod != src.myLod) return false;
162  if (myHole != src.myHole) return false;
163  if (myBoundary != src.myBoundary) return false;
164  if (myBoundaryvalue != src.myBoundaryvalue) return false;
165  if (myMissingFrame != src.myMissingFrame) return false;
166 
167  return true;
168  }
169  bool operator!=(const SOP_TraceParms &src) const
170  {
171  return !operator==(src);
172  }
176 
177 
178 
179  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
180  {
181  myTraceLayer = ""_UTsh;
182  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==0)))) ) )
183  graph->evalOpParm(myTraceLayer, nodeidx, "tracelayer", time, 0);
184  myT = UT_Vector3D(0,0,0);
185  if (true)
186  graph->evalOpParm(myT, nodeidx, "t", time, 0);
187  myR = UT_Vector3D(0,0,0);
188  if (true)
189  graph->evalOpParm(myR, nodeidx, "r", time, 0);
190  myS = UT_Vector2D(1,1);
191  if (true)
192  graph->evalOpParm(myS, nodeidx, "s", time, 0);
193  myThresh = 0.5;
194  if (true)
195  graph->evalOpParm(myThresh, nodeidx, "thresh", time, 0);
196  myAddtexture = false;
197  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
198  graph->evalOpParm(myAddtexture, nodeidx, "addtexture", time, 0);
199  myChannel = 0;
200  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
201  graph->evalOpParm(myChannel, nodeidx, "channel", time, 0);
202  myFile = "circle.pic"_UTsh;
203  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
204  graph->evalOpParm(myFile, nodeidx, "file", time, 0);
205  myOverridesize = false;
206  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
207  graph->evalOpParm(myOverridesize, nodeidx, "overridesize", time, 0);
208  myImagesize = UT_Vector2I(100,100);
209  if (true && ( (true&&!(((getOverridesize()==0))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
210  graph->evalOpParm(myImagesize, nodeidx, "imagesize", time, 0);
211  myUsecop = 0;
212  if (true)
213  graph->evalOpParm(myUsecop, nodeidx, "usecop", time, 0);
214  myCoppath = ""_UTsh;
215  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
216  graph->evalOpParm(myCoppath, nodeidx, "coppath", time, 0);
217  myCopframe = 0;
218  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
219  graph->evalOpParm(myCopframe, nodeidx, "copframe", time, 0);
220  myCopcolor = "(Default Color)"_UTsh;
221  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
222  graph->evalOpParm(myCopcolor, nodeidx, "copcolor", time, 0);
223  myCopalpha = "(Default Alpha)"_UTsh;
224  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
225  graph->evalOpParm(myCopalpha, nodeidx, "copalpha", time, 0);
226  myDelborder = false;
227  if (true)
228  graph->evalOpParm(myDelborder, nodeidx, "delborder", time, 0);
229  myBordwidth = 2;
230  if (true && ( (true&&!(((getDelborder()==0)))) ) )
231  graph->evalOpParm(myBordwidth, nodeidx, "bordwidth", time, 0);
232  myDoresample = false;
233  if (true)
234  graph->evalOpParm(myDoresample, nodeidx, "doresample", time, 0);
235  myStep = 1;
236  if (true && ( (true&&!(((getDoresample()==0)))) ) )
237  graph->evalOpParm(myStep, nodeidx, "step", time, 0);
238  myDosmooth = false;
239  if (true)
240  graph->evalOpParm(myDosmooth, nodeidx, "dosmooth", time, 0);
241  myCorner = 1;
242  if (true && ( (true&&!(((getDosmooth()==0)))) ) )
243  graph->evalOpParm(myCorner, nodeidx, "corner", time, 0);
244  myFitcurve = false;
245  if (true)
246  graph->evalOpParm(myFitcurve, nodeidx, "fitcurve", time, 0);
247  myError = 2;
248  if (true && ( (true&&!(((getFitcurve()==0)))) ) )
249  graph->evalOpParm(myError, nodeidx, "error", time, 0);
250  myConvpoly = false;
251  if (true && ( (true&&!(((getFitcurve()==0)))) ) )
252  graph->evalOpParm(myConvpoly, nodeidx, "convpoly", time, 0);
253  myLod = 1;
254  if (true && ( (true&&!(((getFitcurve()==0))||((getConvpoly()==0)))) ) )
255  graph->evalOpParm(myLod, nodeidx, "lod", time, 0);
256  myHole = false;
257  if (true)
258  graph->evalOpParm(myHole, nodeidx, "hole", time, 0);
259  myBoundary = 0;
260  if (true)
261  graph->evalOpParm(myBoundary, nodeidx, "boundary", time, 0);
262  myBoundaryvalue = 0;
263  if (true && ( (true&&!(((int64(getBoundary())!=3)))) ) )
264  graph->evalOpParm(myBoundaryvalue, nodeidx, "boundaryvalue", time, 0);
265  myMissingFrame = 0;
266  if (true)
267  graph->evalOpParm(myMissingFrame, nodeidx, "missingframe", time, 0);
268 
269  }
270 
271 
272  void loadFromOpSubclass(const LoadParms &loadparms) override
273  {
274  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
275  }
276 
277 
278  void copyFrom(const OP_NodeParms *src) override
279  {
280  *this = *((const SOP_TraceParms *)src);
281  }
282 
283  template <typename T>
284  void
285  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
286  {
287  if (idx.size() < 1)
288  return;
289  UT_ASSERT(idx.size() == instance.size()+1);
290  if (idx.size() != instance.size()+1)
291  return;
292  switch (idx[0])
293  {
294  case 0:
295  coerceValue(value, myTraceLayer);
296  break;
297  case 1:
298  coerceValue(value, myT);
299  break;
300  case 2:
301  coerceValue(value, myR);
302  break;
303  case 3:
304  coerceValue(value, myS);
305  break;
306  case 4:
307  coerceValue(value, myThresh);
308  break;
309  case 5:
310  coerceValue(value, myAddtexture);
311  break;
312  case 6:
313  coerceValue(value, myChannel);
314  break;
315  case 7:
316  coerceValue(value, myFile);
317  break;
318  case 8:
319  coerceValue(value, myOverridesize);
320  break;
321  case 9:
322  coerceValue(value, myImagesize);
323  break;
324  case 10:
325  coerceValue(value, myUsecop);
326  break;
327  case 11:
328  coerceValue(value, myCoppath);
329  break;
330  case 12:
331  coerceValue(value, myCopframe);
332  break;
333  case 13:
334  coerceValue(value, myCopcolor);
335  break;
336  case 14:
337  coerceValue(value, myCopalpha);
338  break;
339  case 15:
340  coerceValue(value, myDelborder);
341  break;
342  case 16:
343  coerceValue(value, myBordwidth);
344  break;
345  case 17:
346  coerceValue(value, myDoresample);
347  break;
348  case 18:
349  coerceValue(value, myStep);
350  break;
351  case 19:
352  coerceValue(value, myDosmooth);
353  break;
354  case 20:
355  coerceValue(value, myCorner);
356  break;
357  case 21:
358  coerceValue(value, myFitcurve);
359  break;
360  case 22:
361  coerceValue(value, myError);
362  break;
363  case 23:
364  coerceValue(value, myConvpoly);
365  break;
366  case 24:
367  coerceValue(value, myLod);
368  break;
369  case 25:
370  coerceValue(value, myHole);
371  break;
372  case 26:
373  coerceValue(value, myBoundary);
374  break;
375  case 27:
376  coerceValue(value, myBoundaryvalue);
377  break;
378  case 28:
379  coerceValue(value, myMissingFrame);
380  break;
381 
382  }
383  }
384 
385  bool isParmColorRamp(exint idx) const override
386  {
387  switch (idx)
388  {
389 
390  }
391  return false;
392  }
393 
394  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
395  { doGetParmValue(idx, instance, value); }
396  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
397  { doGetParmValue(idx, instance, value); }
398  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
399  { doGetParmValue(idx, instance, value); }
400  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
401  { doGetParmValue(idx, instance, value); }
402  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
403  { doGetParmValue(idx, instance, value); }
404  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
405  { doGetParmValue(idx, instance, value); }
406  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
407  { doGetParmValue(idx, instance, value); }
408  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
409  { doGetParmValue(idx, instance, value); }
410  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
411  { doGetParmValue(idx, instance, value); }
412  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
413  { doGetParmValue(idx, instance, value); }
414  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
415  { doGetParmValue(idx, instance, value); }
416 
417  template <typename T>
418  void
419  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
420  {
421  if (idx.size() < 1)
422  return;
423  UT_ASSERT(idx.size() == instance.size()+1);
424  if (idx.size() != instance.size()+1)
425  return;
426  switch (idx[0])
427  {
428  case 0:
429  coerceValue(myTraceLayer, ( ( value ) ));
430  break;
431  case 1:
432  coerceValue(myT, ( ( value ) ));
433  break;
434  case 2:
435  coerceValue(myR, ( ( value ) ));
436  break;
437  case 3:
438  coerceValue(myS, ( ( value ) ));
439  break;
440  case 4:
441  coerceValue(myThresh, ( ( value ) ));
442  break;
443  case 5:
444  coerceValue(myAddtexture, ( ( value ) ));
445  break;
446  case 6:
447  coerceValue(myChannel, clampMinValue(0, clampMaxValue(4, value ) ));
448  break;
449  case 7:
450  coerceValue(myFile, ( ( value ) ));
451  break;
452  case 8:
453  coerceValue(myOverridesize, ( ( value ) ));
454  break;
455  case 9:
456  coerceValue(myImagesize, ( ( value ) ));
457  break;
458  case 10:
459  coerceValue(myUsecop, ( ( value ) ));
460  break;
461  case 11:
462  coerceValue(myCoppath, ( ( value ) ));
463  break;
464  case 12:
465  coerceValue(myCopframe, ( ( value ) ));
466  break;
467  case 13:
468  coerceValue(myCopcolor, ( ( value ) ));
469  break;
470  case 14:
471  coerceValue(myCopalpha, ( ( value ) ));
472  break;
473  case 15:
474  coerceValue(myDelborder, ( ( value ) ));
475  break;
476  case 16:
477  coerceValue(myBordwidth, clampMinValue(0.001, ( value ) ));
478  break;
479  case 17:
480  coerceValue(myDoresample, ( ( value ) ));
481  break;
482  case 18:
483  coerceValue(myStep, clampMinValue(0.001, ( value ) ));
484  break;
485  case 19:
486  coerceValue(myDosmooth, ( ( value ) ));
487  break;
488  case 20:
489  coerceValue(myCorner, clampMinValue(0, ( value ) ));
490  break;
491  case 21:
492  coerceValue(myFitcurve, ( ( value ) ));
493  break;
494  case 22:
495  coerceValue(myError, ( ( value ) ));
496  break;
497  case 23:
498  coerceValue(myConvpoly, ( ( value ) ));
499  break;
500  case 24:
501  coerceValue(myLod, clampMinValue(0.001, ( value ) ));
502  break;
503  case 25:
504  coerceValue(myHole, ( ( value ) ));
505  break;
506  case 26:
507  coerceValue(myBoundary, clampMinValue(0, clampMaxValue(3, value ) ));
508  break;
509  case 27:
510  coerceValue(myBoundaryvalue, ( ( value ) ));
511  break;
512  case 28:
513  coerceValue(myMissingFrame, clampMinValue(0, clampMaxValue(1, value ) ));
514  break;
515 
516  }
517  }
518 
519  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
520  { doSetParmValue(idx, instance, value); }
521  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
522  { doSetParmValue(idx, instance, value); }
523  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
524  { doSetParmValue(idx, instance, value); }
525  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
526  { doSetParmValue(idx, instance, value); }
527  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
528  { doSetParmValue(idx, instance, value); }
529  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
530  { doSetParmValue(idx, instance, value); }
531  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
532  { doSetParmValue(idx, instance, value); }
533  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
534  { doSetParmValue(idx, instance, value); }
535  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
536  { doSetParmValue(idx, instance, value); }
537  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
538  { doSetParmValue(idx, instance, value); }
539  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
540  { doSetParmValue(idx, instance, value); }
541 
542  exint getNestNumParms(TempIndex idx) const override
543  {
544  if (idx.size() == 0)
545  return 29;
546  switch (idx[0])
547  {
548 
549  }
550  // Invalid
551  return 0;
552  }
553 
554  const char *getNestParmName(TempIndex fieldnum) const override
555  {
556  if (fieldnum.size() < 1)
557  return 0;
558  switch (fieldnum[0])
559  {
560  case 0:
561  return "tracelayer";
562  case 1:
563  return "t";
564  case 2:
565  return "r";
566  case 3:
567  return "s";
568  case 4:
569  return "thresh";
570  case 5:
571  return "addtexture";
572  case 6:
573  return "channel";
574  case 7:
575  return "file";
576  case 8:
577  return "overridesize";
578  case 9:
579  return "imagesize";
580  case 10:
581  return "usecop";
582  case 11:
583  return "coppath";
584  case 12:
585  return "copframe";
586  case 13:
587  return "copcolor";
588  case 14:
589  return "copalpha";
590  case 15:
591  return "delborder";
592  case 16:
593  return "bordwidth";
594  case 17:
595  return "doresample";
596  case 18:
597  return "step";
598  case 19:
599  return "dosmooth";
600  case 20:
601  return "corner";
602  case 21:
603  return "fitcurve";
604  case 22:
605  return "error";
606  case 23:
607  return "convpoly";
608  case 24:
609  return "lod";
610  case 25:
611  return "hole";
612  case 26:
613  return "boundary";
614  case 27:
615  return "boundaryvalue";
616  case 28:
617  return "missingframe";
618 
619  }
620  return 0;
621  }
622 
623  ParmType getNestParmType(TempIndex fieldnum) const override
624  {
625  if (fieldnum.size() < 1)
626  return PARM_UNSUPPORTED;
627  switch (fieldnum[0])
628  {
629  case 0:
630  return PARM_STRING;
631  case 1:
632  return PARM_VECTOR3;
633  case 2:
634  return PARM_VECTOR3;
635  case 3:
636  return PARM_VECTOR2;
637  case 4:
638  return PARM_FLOAT;
639  case 5:
640  return PARM_INTEGER;
641  case 6:
642  return PARM_INTEGER;
643  case 7:
644  return PARM_STRING;
645  case 8:
646  return PARM_INTEGER;
647  case 9:
648  return PARM_VECTOR2;
649  case 10:
650  return PARM_INTEGER;
651  case 11:
652  return PARM_STRING;
653  case 12:
654  return PARM_FLOAT;
655  case 13:
656  return PARM_STRING;
657  case 14:
658  return PARM_STRING;
659  case 15:
660  return PARM_INTEGER;
661  case 16:
662  return PARM_INTEGER;
663  case 17:
664  return PARM_INTEGER;
665  case 18:
666  return PARM_FLOAT;
667  case 19:
668  return PARM_INTEGER;
669  case 20:
670  return PARM_FLOAT;
671  case 21:
672  return PARM_INTEGER;
673  case 22:
674  return PARM_FLOAT;
675  case 23:
676  return PARM_INTEGER;
677  case 24:
678  return PARM_FLOAT;
679  case 25:
680  return PARM_INTEGER;
681  case 26:
682  return PARM_INTEGER;
683  case 27:
684  return PARM_FLOAT;
685  case 28:
686  return PARM_INTEGER;
687 
688  }
689  return PARM_UNSUPPORTED;
690  }
691 
692  // Boiler plate to load individual types.
693  static void loadData(UT_IStream &is, int64 &v)
694  { is.bread(&v, 1); }
695  static void loadData(UT_IStream &is, bool &v)
696  { int64 iv; is.bread(&iv, 1); v = iv; }
697  static void loadData(UT_IStream &is, fpreal64 &v)
698  { is.bread<fpreal64>(&v, 1); }
699  static void loadData(UT_IStream &is, UT_Vector2D &v)
700  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
701  static void loadData(UT_IStream &is, UT_Vector3D &v)
702  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
703  is.bread<fpreal64>(&v.z(), 1); }
704  static void loadData(UT_IStream &is, UT_Vector4D &v)
705  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
706  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
707  static void loadData(UT_IStream &is, UT_Matrix2D &v)
708  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
709  static void loadData(UT_IStream &is, UT_Matrix3D &v)
710  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
711  static void loadData(UT_IStream &is, UT_Matrix4D &v)
712  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
713  static void loadData(UT_IStream &is, UT_Vector2I &v)
714  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
715  static void loadData(UT_IStream &is, UT_Vector3I &v)
716  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
717  is.bread<int64>(&v.z(), 1); }
718  static void loadData(UT_IStream &is, UT_Vector4I &v)
719  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
720  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
722  { is.bread(v); }
724  { UT_StringHolder rampdata;
725  loadData(is, rampdata);
726  if (rampdata.isstring())
727  {
728  v.reset(new UT_Ramp());
729  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
730  v->load(istr);
731  }
732  else v.reset();
733  }
736  loadData(is, data);
737  if (data.isstring())
738  {
739  // Find the data type.
740  const char *colon = UT_StringWrap(data).findChar(':');
741  if (colon)
742  {
743  int typelen = colon - data.buffer();
745  type.strncpy(data.buffer(), typelen);
746  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
747 
748  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
749  }
750  }
751  else v.reset();
752  }
753 
754  static void saveData(std::ostream &os, int64 v)
755  { UTwrite(os, &v); }
756  static void saveData(std::ostream &os, bool v)
757  { int64 iv = v; UTwrite(os, &iv); }
758  static void saveData(std::ostream &os, fpreal64 v)
759  { UTwrite<fpreal64>(os, &v); }
760  static void saveData(std::ostream &os, UT_Vector2D v)
761  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
762  static void saveData(std::ostream &os, UT_Vector3D v)
763  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
764  UTwrite<fpreal64>(os, &v.z()); }
765  static void saveData(std::ostream &os, UT_Vector4D v)
766  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
767  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
768  static void saveData(std::ostream &os, UT_Matrix2D v)
770  static void saveData(std::ostream &os, UT_Matrix3D v)
772  static void saveData(std::ostream &os, UT_Matrix4D v)
774  static void saveData(std::ostream &os, UT_StringHolder s)
775  { UT_StringWrap(s).saveBinary(os); }
776  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
778  UT_OStringStream ostr;
779  if (s) s->save(ostr);
780  result = ostr.str();
781  saveData(os, result);
782  }
783  static void saveData(std::ostream &os, PRM_DataItemHandle s)
785  UT_OStringStream ostr;
786  if (s)
787  {
788  ostr << s->getDataTypeToken();
789  ostr << ":";
790  s->saveBinary(ostr);
791  }
792  result = ostr.str();
793  saveData(os, result);
794  }
795 
796 
797  void save(std::ostream &os) const
798  {
799  int32 v = version();
800  UTwrite(os, &v);
801  saveData(os, myTraceLayer);
802  saveData(os, myT);
803  saveData(os, myR);
804  saveData(os, myS);
805  saveData(os, myThresh);
806  saveData(os, myAddtexture);
807  saveData(os, myChannel);
808  saveData(os, myFile);
809  saveData(os, myOverridesize);
810  saveData(os, myImagesize);
811  saveData(os, myUsecop);
812  saveData(os, myCoppath);
813  saveData(os, myCopframe);
814  saveData(os, myCopcolor);
815  saveData(os, myCopalpha);
816  saveData(os, myDelborder);
817  saveData(os, myBordwidth);
818  saveData(os, myDoresample);
819  saveData(os, myStep);
820  saveData(os, myDosmooth);
821  saveData(os, myCorner);
822  saveData(os, myFitcurve);
823  saveData(os, myError);
824  saveData(os, myConvpoly);
825  saveData(os, myLod);
826  saveData(os, myHole);
827  saveData(os, myBoundary);
828  saveData(os, myBoundaryvalue);
829  saveData(os, myMissingFrame);
830 
831  }
832 
833  bool load(UT_IStream &is)
834  {
835  int32 v;
836  is.bread(&v, 1);
837  if (version() != v)
838  {
839  // Fail incompatible versions
840  return false;
841  }
842  loadData(is, myTraceLayer);
843  loadData(is, myT);
844  loadData(is, myR);
845  loadData(is, myS);
846  loadData(is, myThresh);
847  loadData(is, myAddtexture);
848  loadData(is, myChannel);
849  loadData(is, myFile);
850  loadData(is, myOverridesize);
851  loadData(is, myImagesize);
852  loadData(is, myUsecop);
853  loadData(is, myCoppath);
854  loadData(is, myCopframe);
855  loadData(is, myCopcolor);
856  loadData(is, myCopalpha);
857  loadData(is, myDelborder);
858  loadData(is, myBordwidth);
859  loadData(is, myDoresample);
860  loadData(is, myStep);
861  loadData(is, myDosmooth);
862  loadData(is, myCorner);
863  loadData(is, myFitcurve);
864  loadData(is, myError);
865  loadData(is, myConvpoly);
866  loadData(is, myLod);
867  loadData(is, myHole);
868  loadData(is, myBoundary);
869  loadData(is, myBoundaryvalue);
870  loadData(is, myMissingFrame);
871 
872  return true;
873  }
874 
875  const UT_StringHolder & getTraceLayer() const { return myTraceLayer; }
876  void setTraceLayer(const UT_StringHolder & val) { myTraceLayer = val; }
878  {
879  SOP_Node *thissop = cookparms.getNode();
880  if (!thissop) return getTraceLayer();
882  OP_Utils::evalOpParm(result, thissop, "tracelayer", cookparms.getCookTime(), 0);
883  return result;
884  }
885  UT_Vector3D getT() const { return myT; }
886  void setT(UT_Vector3D val) { myT = val; }
887  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
888  {
889  SOP_Node *thissop = cookparms.getNode();
890  if (!thissop) return getT();
892  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
893  return result;
894  }
895  UT_Vector3D getR() const { return myR; }
896  void setR(UT_Vector3D val) { myR = val; }
897  UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
898  {
899  SOP_Node *thissop = cookparms.getNode();
900  if (!thissop) return getR();
902  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
903  return result;
904  }
905  UT_Vector2D getS() const { return myS; }
906  void setS(UT_Vector2D val) { myS = val; }
907  UT_Vector2D opS(const SOP_NodeVerb::CookParms &cookparms) const
908  {
909  SOP_Node *thissop = cookparms.getNode();
910  if (!thissop) return getS();
912  OP_Utils::evalOpParm(result, thissop, "s", cookparms.getCookTime(), 0);
913  return result;
914  }
915  fpreal64 getThresh() const { return myThresh; }
916  void setThresh(fpreal64 val) { myThresh = val; }
917  fpreal64 opThresh(const SOP_NodeVerb::CookParms &cookparms) const
918  {
919  SOP_Node *thissop = cookparms.getNode();
920  if (!thissop) return getThresh();
922  OP_Utils::evalOpParm(result, thissop, "thresh", cookparms.getCookTime(), 0);
923  return result;
924  }
925  bool getAddtexture() const { return myAddtexture; }
926  void setAddtexture(bool val) { myAddtexture = val; }
927  bool opAddtexture(const SOP_NodeVerb::CookParms &cookparms) const
928  {
929  SOP_Node *thissop = cookparms.getNode();
930  if (!thissop) return getAddtexture();
931  bool result;
932  OP_Utils::evalOpParm(result, thissop, "addtexture", cookparms.getCookTime(), 0);
933  return result;
934  }
935  Channel getChannel() const { return Channel(myChannel); }
936  void setChannel(Channel val) { myChannel = int64(val); }
937  Channel opChannel(const SOP_NodeVerb::CookParms &cookparms) const
938  {
939  SOP_Node *thissop = cookparms.getNode();
940  if (!thissop) return getChannel();
941  int64 result;
942  OP_Utils::evalOpParm(result, thissop, "channel", cookparms.getCookTime(), 0);
943  return Channel(result);
944  }
945  const UT_StringHolder & getFile() const { return myFile; }
946  void setFile(const UT_StringHolder & val) { myFile = val; }
948  {
949  SOP_Node *thissop = cookparms.getNode();
950  if (!thissop) return getFile();
952  OP_Utils::evalOpParm(result, thissop, "file", cookparms.getCookTime(), 0);
953  return result;
954  }
955  bool getOverridesize() const { return myOverridesize; }
956  void setOverridesize(bool val) { myOverridesize = val; }
957  bool opOverridesize(const SOP_NodeVerb::CookParms &cookparms) const
958  {
959  SOP_Node *thissop = cookparms.getNode();
960  if (!thissop) return getOverridesize();
961  bool result;
962  OP_Utils::evalOpParm(result, thissop, "overridesize", cookparms.getCookTime(), 0);
963  return result;
964  }
965  UT_Vector2I getImagesize() const { return myImagesize; }
966  void setImagesize(UT_Vector2I val) { myImagesize = val; }
968  {
969  SOP_Node *thissop = cookparms.getNode();
970  if (!thissop) return getImagesize();
972  OP_Utils::evalOpParm(result, thissop, "imagesize", cookparms.getCookTime(), 0);
973  return result;
974  }
975  int64 getUsecop() const { return myUsecop; }
976  void setUsecop(int64 val) { myUsecop = val; }
977  int64 opUsecop(const SOP_NodeVerb::CookParms &cookparms) const
978  {
979  SOP_Node *thissop = cookparms.getNode();
980  if (!thissop) return getUsecop();
981  int64 result;
982  OP_Utils::evalOpParm(result, thissop, "usecop", cookparms.getCookTime(), 0);
983  return result;
984  }
985  const UT_StringHolder & getCoppath() const { return myCoppath; }
986  void setCoppath(const UT_StringHolder & val) { myCoppath = val; }
988  {
989  SOP_Node *thissop = cookparms.getNode();
990  if (!thissop) return getCoppath();
992  OP_Utils::evalOpParm(result, thissop, "coppath", cookparms.getCookTime(), 0);
993  return result;
994  }
995  fpreal64 getCopframe() const { return myCopframe; }
996  void setCopframe(fpreal64 val) { myCopframe = val; }
998  {
999  SOP_Node *thissop = cookparms.getNode();
1000  if (!thissop) return getCopframe();
1001  fpreal64 result;
1002  OP_Utils::evalOpParm(result, thissop, "copframe", cookparms.getCookTime(), 0);
1003  return result;
1004  }
1005  const UT_StringHolder & getCopcolor() const { return myCopcolor; }
1006  void setCopcolor(const UT_StringHolder & val) { myCopcolor = val; }
1008  {
1009  SOP_Node *thissop = cookparms.getNode();
1010  if (!thissop) return getCopcolor();
1012  OP_Utils::evalOpParm(result, thissop, "copcolor", cookparms.getCookTime(), 0);
1013  return result;
1014  }
1015  const UT_StringHolder & getCopalpha() const { return myCopalpha; }
1016  void setCopalpha(const UT_StringHolder & val) { myCopalpha = val; }
1018  {
1019  SOP_Node *thissop = cookparms.getNode();
1020  if (!thissop) return getCopalpha();
1022  OP_Utils::evalOpParm(result, thissop, "copalpha", cookparms.getCookTime(), 0);
1023  return result;
1024  }
1025  bool getDelborder() const { return myDelborder; }
1026  void setDelborder(bool val) { myDelborder = val; }
1027  bool opDelborder(const SOP_NodeVerb::CookParms &cookparms) const
1028  {
1029  SOP_Node *thissop = cookparms.getNode();
1030  if (!thissop) return getDelborder();
1031  bool result;
1032  OP_Utils::evalOpParm(result, thissop, "delborder", cookparms.getCookTime(), 0);
1033  return result;
1034  }
1035  int64 getBordwidth() const { return myBordwidth; }
1036  void setBordwidth(int64 val) { myBordwidth = val; }
1038  {
1039  SOP_Node *thissop = cookparms.getNode();
1040  if (!thissop) return getBordwidth();
1041  int64 result;
1042  OP_Utils::evalOpParm(result, thissop, "bordwidth", cookparms.getCookTime(), 0);
1043  return result;
1044  }
1045  bool getDoresample() const { return myDoresample; }
1046  void setDoresample(bool val) { myDoresample = val; }
1047  bool opDoresample(const SOP_NodeVerb::CookParms &cookparms) const
1048  {
1049  SOP_Node *thissop = cookparms.getNode();
1050  if (!thissop) return getDoresample();
1051  bool result;
1052  OP_Utils::evalOpParm(result, thissop, "doresample", cookparms.getCookTime(), 0);
1053  return result;
1054  }
1055  fpreal64 getStep() const { return myStep; }
1057  fpreal64 opStep(const SOP_NodeVerb::CookParms &cookparms) const
1058  {
1059  SOP_Node *thissop = cookparms.getNode();
1060  if (!thissop) return getStep();
1061  fpreal64 result;
1062  OP_Utils::evalOpParm(result, thissop, "step", cookparms.getCookTime(), 0);
1063  return result;
1064  }
1065  bool getDosmooth() const { return myDosmooth; }
1066  void setDosmooth(bool val) { myDosmooth = val; }
1067  bool opDosmooth(const SOP_NodeVerb::CookParms &cookparms) const
1068  {
1069  SOP_Node *thissop = cookparms.getNode();
1070  if (!thissop) return getDosmooth();
1071  bool result;
1072  OP_Utils::evalOpParm(result, thissop, "dosmooth", cookparms.getCookTime(), 0);
1073  return result;
1074  }
1075  fpreal64 getCorner() const { return myCorner; }
1076  void setCorner(fpreal64 val) { myCorner = val; }
1078  {
1079  SOP_Node *thissop = cookparms.getNode();
1080  if (!thissop) return getCorner();
1081  fpreal64 result;
1082  OP_Utils::evalOpParm(result, thissop, "corner", cookparms.getCookTime(), 0);
1083  return result;
1084  }
1085  bool getFitcurve() const { return myFitcurve; }
1086  void setFitcurve(bool val) { myFitcurve = val; }
1087  bool opFitcurve(const SOP_NodeVerb::CookParms &cookparms) const
1088  {
1089  SOP_Node *thissop = cookparms.getNode();
1090  if (!thissop) return getFitcurve();
1091  bool result;
1092  OP_Utils::evalOpParm(result, thissop, "fitcurve", cookparms.getCookTime(), 0);
1093  return result;
1094  }
1095  fpreal64 getError() const { return myError; }
1096  void setError(fpreal64 val) { myError = val; }
1097  fpreal64 opError(const SOP_NodeVerb::CookParms &cookparms) const
1098  {
1099  SOP_Node *thissop = cookparms.getNode();
1100  if (!thissop) return getError();
1101  fpreal64 result;
1102  OP_Utils::evalOpParm(result, thissop, "error", cookparms.getCookTime(), 0);
1103  return result;
1104  }
1105  bool getConvpoly() const { return myConvpoly; }
1106  void setConvpoly(bool val) { myConvpoly = val; }
1107  bool opConvpoly(const SOP_NodeVerb::CookParms &cookparms) const
1108  {
1109  SOP_Node *thissop = cookparms.getNode();
1110  if (!thissop) return getConvpoly();
1111  bool result;
1112  OP_Utils::evalOpParm(result, thissop, "convpoly", cookparms.getCookTime(), 0);
1113  return result;
1114  }
1115  fpreal64 getLod() const { return myLod; }
1116  void setLod(fpreal64 val) { myLod = val; }
1117  fpreal64 opLod(const SOP_NodeVerb::CookParms &cookparms) const
1118  {
1119  SOP_Node *thissop = cookparms.getNode();
1120  if (!thissop) return getLod();
1121  fpreal64 result;
1122  OP_Utils::evalOpParm(result, thissop, "lod", cookparms.getCookTime(), 0);
1123  return result;
1124  }
1125  bool getHole() const { return myHole; }
1126  void setHole(bool val) { myHole = val; }
1127  bool opHole(const SOP_NodeVerb::CookParms &cookparms) const
1128  {
1129  SOP_Node *thissop = cookparms.getNode();
1130  if (!thissop) return getHole();
1131  bool result;
1132  OP_Utils::evalOpParm(result, thissop, "hole", cookparms.getCookTime(), 0);
1133  return result;
1134  }
1135  Boundary getBoundary() const { return Boundary(myBoundary); }
1136  void setBoundary(Boundary val) { myBoundary = int64(val); }
1138  {
1139  SOP_Node *thissop = cookparms.getNode();
1140  if (!thissop) return getBoundary();
1141  int64 result;
1142  OP_Utils::evalOpParm(result, thissop, "boundary", cookparms.getCookTime(), 0);
1143  return Boundary(result);
1144  }
1145  fpreal64 getBoundaryvalue() const { return myBoundaryvalue; }
1146  void setBoundaryvalue(fpreal64 val) { myBoundaryvalue = val; }
1148  {
1149  SOP_Node *thissop = cookparms.getNode();
1150  if (!thissop) return getBoundaryvalue();
1151  fpreal64 result;
1152  OP_Utils::evalOpParm(result, thissop, "boundaryvalue", cookparms.getCookTime(), 0);
1153  return result;
1154  }
1155  MissingFrame getMissingFrame() const { return MissingFrame(myMissingFrame); }
1156  void setMissingFrame(MissingFrame val) { myMissingFrame = int64(val); }
1158  {
1159  SOP_Node *thissop = cookparms.getNode();
1160  if (!thissop) return getMissingFrame();
1161  int64 result;
1162  OP_Utils::evalOpParm(result, thissop, "missingframe", cookparms.getCookTime(), 0);
1163  return MissingFrame(result);
1164  }
1165 
1166 private:
1167  UT_StringHolder myTraceLayer;
1168  UT_Vector3D myT;
1169  UT_Vector3D myR;
1170  UT_Vector2D myS;
1171  fpreal64 myThresh;
1172  bool myAddtexture;
1173  int64 myChannel;
1174  UT_StringHolder myFile;
1175  bool myOverridesize;
1176  UT_Vector2I myImagesize;
1177  int64 myUsecop;
1178  UT_StringHolder myCoppath;
1179  fpreal64 myCopframe;
1180  UT_StringHolder myCopcolor;
1181  UT_StringHolder myCopalpha;
1182  bool myDelborder;
1183  int64 myBordwidth;
1184  bool myDoresample;
1185  fpreal64 myStep;
1186  bool myDosmooth;
1187  fpreal64 myCorner;
1188  bool myFitcurve;
1189  fpreal64 myError;
1190  bool myConvpoly;
1191  fpreal64 myLod;
1192  bool myHole;
1193  int64 myBoundary;
1194  fpreal64 myBoundaryvalue;
1195  int64 myMissingFrame;
1196 
1197 };
static void loadData(UT_IStream &is, bool &v)
UT_Vector2T< int64 > UT_Vector2I
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setFile(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_StringHolder s)
int64 opBordwidth(const SOP_NodeVerb::CookParms &cookparms) const
void setImagesize(UT_Vector2I val)
void setBoundaryvalue(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
Boundary opBoundary(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_Vector2D getS() const
void setError(fpreal64 val)
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 setUsecop(int64 val)
UT_Vector2T< fpreal64 > UT_Vector2D
bool getFitcurve() const
int64 getUsecop() const
bool opFitcurve(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void saveData(std::ostream &os, UT_Matrix2D v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setDoresample(bool val)
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
int myStep
Definition: GT_CurveEval.h:264
bool isParmColorRamp(exint idx) const override
const OP_Context & context() const
Definition: OP_NodeParms.h:97
UT_Vector3D getR() const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
static void saveData(std::ostream &os, UT_Vector3D v)
GLdouble s
Definition: glad.h:3009
UT_StringHolder opCoppath(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
fpreal64 opError(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setMissingFrame(MissingFrame val)
void setAddtexture(bool val)
**But if you need a result
Definition: thread.h:613
void setFitcurve(bool val)
void setThresh(fpreal64 val)
static void saveData(std::ostream &os, int64 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.
bool opDoresample(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opCopalpha(const SOP_NodeVerb::CookParms &cookparms) const
bool getAddtexture() const
bool opAddtexture(const SOP_NodeVerb::CookParms &cookparms) const
void setStep(fpreal64 val)
fpreal64 opBoundaryvalue(const SOP_NodeVerb::CookParms &cookparms) const
virtual NodeIdx getInput(NodeIdx idx, int input, bool markused=false) const =0
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
const UT_StringHolder & getCopcolor() const
MissingFrame getMissingFrame() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
UT_Vector2D opS(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opStep(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool getHole() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setCopalpha(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
const char * getNestParmName(TempIndex fieldnum) const override
bool opDosmooth(const SOP_NodeVerb::CookParms &cookparms) const
void setChannel(Channel val)
exint length() const
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
void setR(UT_Vector3D val)
void setCoppath(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
Channel opChannel(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opHole(const SOP_NodeVerb::CookParms &cookparms) const
bool getOverridesize() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
UT_StringHolder opTraceLayer(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 getStep() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setBoundary(Boundary val)
bool opConvpoly(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
long long int64
Definition: SYS_Types.h:116
UT_Vector3T< fpreal64 > UT_Vector3D
void setDosmooth(bool val)
void setTraceLayer(const UT_StringHolder &val)
Channel getChannel() const
fpreal64 getCorner() const
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getError() const
UT_StringHolder opCopcolor(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setOverridesize(bool val)
void setLod(fpreal64 val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
UT_Vector2I opImagesize(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getCopframe() const
void setHole(bool val)
void setCopcolor(const UT_StringHolder &val)
static void saveData(std::ostream &os, bool v)
GT_API const UT_StringHolder version
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_Vector3D getT() const
const UT_StringHolder & getTraceLayer() const
Error getError()
Definition: oidn.hpp:823
MissingFrame opMissingFrame(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool getDosmooth() const
void setCorner(fpreal64 val)
fpreal64 getLod() const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
static int version()
LeafData & operator=(const LeafData &)=delete
fpreal64 getBoundaryvalue() const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
bool operator!=(const SOP_TraceParms &src) const
Boundary getBoundary() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setS(UT_Vector2D val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
bool operator==(const SOP_TraceParms &src) const
fpreal64 opCorner(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define SOP_API
Definition: SOP_API.h:10
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
fpreal64 opCopframe(const SOP_NodeVerb::CookParms &cookparms) const
int64 opUsecop(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
void setBordwidth(int64 val)
const UT_StringHolder & getCopalpha() const
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, int64 &v)
GLboolean r
Definition: glcorearb.h:1222
bool opOverridesize(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void setCopframe(fpreal64 val)
type
Definition: core.h:1059
int64 getBordwidth() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
UT_StringHolder opFile(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setConvpoly(bool val)
fpreal64 opThresh(const SOP_NodeVerb::CookParms &cookparms) const
bool getDoresample() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
const UT_StringHolder & getCoppath() const
fpreal64 opLod(const SOP_NodeVerb::CookParms &cookparms) const
void setDelborder(bool val)
void copyFrom(const OP_NodeParms *src) override
bool getDelborder() const
void loadFromOpSubclass(const LoadParms &loadparms) 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, UT_Vector4D &v)
bool load(UT_IStream &is)
fpreal64 getThresh() const
void setT(UT_Vector3D val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
SYS_FORCE_INLINE UT_StringHolder getToken(Channel enum_value)
bool opDelborder(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getFile() const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool getConvpoly() const
UT_Vector2I getImagesize() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override