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 <OP/OP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_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 
168  if (baseGetSignature() != src.baseGetSignature()) return false;
169 
170  return true;
171  }
172  bool operator!=(const SOP_TraceParms &src) const
173  {
174  return !operator==(src);
175  }
179 
180 
181 
182  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
183  {
184  myTraceLayer = ""_UTsh;
185  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==0)))) ) )
186  graph->evalOpParm(myTraceLayer, nodeidx, "tracelayer", time, graph->isDirect()?nullptr:depnode);
187  myT = UT_Vector3D(0,0,0);
188  if (true)
189  graph->evalOpParm(myT, nodeidx, "t", time, graph->isDirect()?nullptr:depnode);
190  myR = UT_Vector3D(0,0,0);
191  if (true)
192  graph->evalOpParm(myR, nodeidx, "r", time, graph->isDirect()?nullptr:depnode);
193  myS = UT_Vector2D(1,1);
194  if (true)
195  graph->evalOpParm(myS, nodeidx, "s", time, graph->isDirect()?nullptr:depnode);
196  myThresh = 0.5;
197  if (true)
198  graph->evalOpParm(myThresh, nodeidx, "thresh", time, graph->isDirect()?nullptr:depnode);
199  myAddtexture = false;
200  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
201  graph->evalOpParm(myAddtexture, nodeidx, "addtexture", time, graph->isDirect()?nullptr:depnode);
202  myChannel = 0;
203  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
204  graph->evalOpParm(myChannel, nodeidx, "channel", time, graph->isDirect()?nullptr:depnode);
205  myFile = "circle.pic"_UTsh;
206  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
207  graph->evalOpParm(myFile, nodeidx, "file", time, graph->isDirect()?nullptr:depnode);
208  myOverridesize = false;
209  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
210  graph->evalOpParm(myOverridesize, nodeidx, "overridesize", time, graph->isDirect()?nullptr:depnode);
211  myImagesize = UT_Vector2I(100,100);
212  if (true && ( (true&&!(((getOverridesize()==0))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
213  graph->evalOpParm(myImagesize, nodeidx, "imagesize", time, graph->isDirect()?nullptr:depnode);
214  myUsecop = 0;
215  if (true)
216  graph->evalOpParm(myUsecop, nodeidx, "usecop", time, graph->isDirect()?nullptr:depnode);
217  myCoppath = ""_UTsh;
218  if (true && ( (true&&!((((graph->getInput(nodeidx,0)>=0)==1)))) ) )
219  graph->evalOpParm(myCoppath, nodeidx, "coppath", time, graph->isDirect()?nullptr:depnode);
220  myCopframe = 0;
221  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
222  graph->evalOpParm(myCopframe, nodeidx, "copframe", time, graph->isDirect()?nullptr:depnode);
223  myCopcolor = "(Default Color)"_UTsh;
224  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
225  graph->evalOpParm(myCopcolor, nodeidx, "copcolor", time, graph->isDirect()?nullptr:depnode);
226  myCopalpha = "(Default Alpha)"_UTsh;
227  if (true && ( (true&&!(((getCoppath()==""))||(((graph->getInput(nodeidx,0)>=0)==1)))) ) )
228  graph->evalOpParm(myCopalpha, nodeidx, "copalpha", time, graph->isDirect()?nullptr:depnode);
229  myDelborder = false;
230  if (true)
231  graph->evalOpParm(myDelborder, nodeidx, "delborder", time, graph->isDirect()?nullptr:depnode);
232  myBordwidth = 2;
233  if (true && ( (true&&!(((getDelborder()==0)))) ) )
234  graph->evalOpParm(myBordwidth, nodeidx, "bordwidth", time, graph->isDirect()?nullptr:depnode);
235  myDoresample = false;
236  if (true)
237  graph->evalOpParm(myDoresample, nodeidx, "doresample", time, graph->isDirect()?nullptr:depnode);
238  myStep = 1;
239  if (true && ( (true&&!(((getDoresample()==0)))) ) )
240  graph->evalOpParm(myStep, nodeidx, "step", time, graph->isDirect()?nullptr:depnode);
241  myDosmooth = false;
242  if (true)
243  graph->evalOpParm(myDosmooth, nodeidx, "dosmooth", time, graph->isDirect()?nullptr:depnode);
244  myCorner = 1;
245  if (true && ( (true&&!(((getDosmooth()==0)))) ) )
246  graph->evalOpParm(myCorner, nodeidx, "corner", time, graph->isDirect()?nullptr:depnode);
247  myFitcurve = false;
248  if (true)
249  graph->evalOpParm(myFitcurve, nodeidx, "fitcurve", time, graph->isDirect()?nullptr:depnode);
250  myError = 2;
251  if (true && ( (true&&!(((getFitcurve()==0)))) ) )
252  graph->evalOpParm(myError, nodeidx, "error", time, graph->isDirect()?nullptr:depnode);
253  myConvpoly = false;
254  if (true && ( (true&&!(((getFitcurve()==0)))) ) )
255  graph->evalOpParm(myConvpoly, nodeidx, "convpoly", time, graph->isDirect()?nullptr:depnode);
256  myLod = 1;
257  if (true && ( (true&&!(((getFitcurve()==0))||((getConvpoly()==0)))) ) )
258  graph->evalOpParm(myLod, nodeidx, "lod", time, graph->isDirect()?nullptr:depnode);
259  myHole = false;
260  if (true)
261  graph->evalOpParm(myHole, nodeidx, "hole", time, graph->isDirect()?nullptr:depnode);
262  myBoundary = 0;
263  if (true)
264  graph->evalOpParm(myBoundary, nodeidx, "boundary", time, graph->isDirect()?nullptr:depnode);
265  myBoundaryvalue = 0;
266  if (true && ( (true&&!(((int64(getBoundary())!=3)))) ) )
267  graph->evalOpParm(myBoundaryvalue, nodeidx, "boundaryvalue", time, graph->isDirect()?nullptr:depnode);
268  myMissingFrame = 0;
269  if (true)
270  graph->evalOpParm(myMissingFrame, nodeidx, "missingframe", time, graph->isDirect()?nullptr:depnode);
271 
272  }
273 
274 
275  void loadFromOpSubclass(const LoadParms &loadparms) override
276  {
277  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
278  }
279 
280 
281  void copyFrom(const OP_NodeParms *src) override
282  {
283  *this = *((const SOP_TraceParms *)src);
284  }
285 
286  template <typename T>
287  void
288  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
289  {
290  if (idx.size() < 1)
291  return;
292  UT_ASSERT(idx.size() == instance.size()+1);
293  if (idx.size() != instance.size()+1)
294  return;
295  switch (idx[0])
296  {
297  case 0:
298  coerceValue(value, myTraceLayer);
299  break;
300  case 1:
301  coerceValue(value, myT);
302  break;
303  case 2:
304  coerceValue(value, myR);
305  break;
306  case 3:
307  coerceValue(value, myS);
308  break;
309  case 4:
310  coerceValue(value, myThresh);
311  break;
312  case 5:
313  coerceValue(value, myAddtexture);
314  break;
315  case 6:
316  coerceValue(value, myChannel);
317  break;
318  case 7:
319  coerceValue(value, myFile);
320  break;
321  case 8:
322  coerceValue(value, myOverridesize);
323  break;
324  case 9:
325  coerceValue(value, myImagesize);
326  break;
327  case 10:
328  coerceValue(value, myUsecop);
329  break;
330  case 11:
331  coerceValue(value, myCoppath);
332  break;
333  case 12:
334  coerceValue(value, myCopframe);
335  break;
336  case 13:
337  coerceValue(value, myCopcolor);
338  break;
339  case 14:
340  coerceValue(value, myCopalpha);
341  break;
342  case 15:
343  coerceValue(value, myDelborder);
344  break;
345  case 16:
346  coerceValue(value, myBordwidth);
347  break;
348  case 17:
349  coerceValue(value, myDoresample);
350  break;
351  case 18:
352  coerceValue(value, myStep);
353  break;
354  case 19:
355  coerceValue(value, myDosmooth);
356  break;
357  case 20:
358  coerceValue(value, myCorner);
359  break;
360  case 21:
361  coerceValue(value, myFitcurve);
362  break;
363  case 22:
364  coerceValue(value, myError);
365  break;
366  case 23:
367  coerceValue(value, myConvpoly);
368  break;
369  case 24:
370  coerceValue(value, myLod);
371  break;
372  case 25:
373  coerceValue(value, myHole);
374  break;
375  case 26:
376  coerceValue(value, myBoundary);
377  break;
378  case 27:
379  coerceValue(value, myBoundaryvalue);
380  break;
381  case 28:
382  coerceValue(value, myMissingFrame);
383  break;
384 
385  }
386  }
387 
388  bool isParmColorRamp(exint idx) const override
389  {
390  switch (idx)
391  {
392 
393  }
394  return false;
395  }
396 
397  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
398  { doGetParmValue(idx, instance, value); }
399  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
400  { doGetParmValue(idx, instance, value); }
401  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
402  { doGetParmValue(idx, instance, value); }
403  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
404  { doGetParmValue(idx, instance, value); }
405  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
406  { doGetParmValue(idx, instance, value); }
407  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
408  { doGetParmValue(idx, instance, value); }
409  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
410  { doGetParmValue(idx, instance, value); }
411  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
412  { doGetParmValue(idx, instance, value); }
413  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
414  { doGetParmValue(idx, instance, value); }
415  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
416  { doGetParmValue(idx, instance, value); }
417  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
418  { doGetParmValue(idx, instance, value); }
419 
420  template <typename T>
421  void
422  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
423  {
424  if (idx.size() < 1)
425  return;
426  UT_ASSERT(idx.size() == instance.size()+1);
427  if (idx.size() != instance.size()+1)
428  return;
429  switch (idx[0])
430  {
431  case 0:
432  coerceValue(myTraceLayer, ( ( value ) ));
433  break;
434  case 1:
435  coerceValue(myT, ( ( value ) ));
436  break;
437  case 2:
438  coerceValue(myR, ( ( value ) ));
439  break;
440  case 3:
441  coerceValue(myS, ( ( value ) ));
442  break;
443  case 4:
444  coerceValue(myThresh, ( ( value ) ));
445  break;
446  case 5:
447  coerceValue(myAddtexture, ( ( value ) ));
448  break;
449  case 6:
450  coerceValue(myChannel, clampMinValue(0, clampMaxValue(4, value ) ));
451  break;
452  case 7:
453  coerceValue(myFile, ( ( value ) ));
454  break;
455  case 8:
456  coerceValue(myOverridesize, ( ( value ) ));
457  break;
458  case 9:
459  coerceValue(myImagesize, ( ( value ) ));
460  break;
461  case 10:
462  coerceValue(myUsecop, ( ( value ) ));
463  break;
464  case 11:
465  coerceValue(myCoppath, ( ( value ) ));
466  break;
467  case 12:
468  coerceValue(myCopframe, ( ( value ) ));
469  break;
470  case 13:
471  coerceValue(myCopcolor, ( ( value ) ));
472  break;
473  case 14:
474  coerceValue(myCopalpha, ( ( value ) ));
475  break;
476  case 15:
477  coerceValue(myDelborder, ( ( value ) ));
478  break;
479  case 16:
480  coerceValue(myBordwidth, clampMinValue(0.001, ( value ) ));
481  break;
482  case 17:
483  coerceValue(myDoresample, ( ( value ) ));
484  break;
485  case 18:
486  coerceValue(myStep, clampMinValue(0.001, ( value ) ));
487  break;
488  case 19:
489  coerceValue(myDosmooth, ( ( value ) ));
490  break;
491  case 20:
492  coerceValue(myCorner, clampMinValue(0, ( value ) ));
493  break;
494  case 21:
495  coerceValue(myFitcurve, ( ( value ) ));
496  break;
497  case 22:
498  coerceValue(myError, ( ( value ) ));
499  break;
500  case 23:
501  coerceValue(myConvpoly, ( ( value ) ));
502  break;
503  case 24:
504  coerceValue(myLod, clampMinValue(0.001, ( value ) ));
505  break;
506  case 25:
507  coerceValue(myHole, ( ( value ) ));
508  break;
509  case 26:
510  coerceValue(myBoundary, clampMinValue(0, clampMaxValue(3, value ) ));
511  break;
512  case 27:
513  coerceValue(myBoundaryvalue, ( ( value ) ));
514  break;
515  case 28:
516  coerceValue(myMissingFrame, clampMinValue(0, clampMaxValue(1, value ) ));
517  break;
518 
519  }
520  }
521 
522  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
523  { doSetParmValue(idx, instance, value); }
524  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
525  { doSetParmValue(idx, instance, value); }
526  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
527  { doSetParmValue(idx, instance, value); }
528  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
529  { doSetParmValue(idx, instance, value); }
530  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
531  { doSetParmValue(idx, instance, value); }
532  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
533  { doSetParmValue(idx, instance, value); }
534  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
535  { doSetParmValue(idx, instance, value); }
536  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
537  { doSetParmValue(idx, instance, value); }
538  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
539  { doSetParmValue(idx, instance, value); }
540  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
541  { doSetParmValue(idx, instance, value); }
542  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
543  { doSetParmValue(idx, instance, value); }
544 
545  exint getNestNumParms(TempIndex idx) const override
546  {
547  if (idx.size() == 0)
548  return 29;
549  switch (idx[0])
550  {
551 
552  }
553  // Invalid
554  return 0;
555  }
556 
557  const char *getNestParmName(TempIndex fieldnum) const override
558  {
559  if (fieldnum.size() < 1)
560  return 0;
561  switch (fieldnum[0])
562  {
563  case 0:
564  return "tracelayer";
565  case 1:
566  return "t";
567  case 2:
568  return "r";
569  case 3:
570  return "s";
571  case 4:
572  return "thresh";
573  case 5:
574  return "addtexture";
575  case 6:
576  return "channel";
577  case 7:
578  return "file";
579  case 8:
580  return "overridesize";
581  case 9:
582  return "imagesize";
583  case 10:
584  return "usecop";
585  case 11:
586  return "coppath";
587  case 12:
588  return "copframe";
589  case 13:
590  return "copcolor";
591  case 14:
592  return "copalpha";
593  case 15:
594  return "delborder";
595  case 16:
596  return "bordwidth";
597  case 17:
598  return "doresample";
599  case 18:
600  return "step";
601  case 19:
602  return "dosmooth";
603  case 20:
604  return "corner";
605  case 21:
606  return "fitcurve";
607  case 22:
608  return "error";
609  case 23:
610  return "convpoly";
611  case 24:
612  return "lod";
613  case 25:
614  return "hole";
615  case 26:
616  return "boundary";
617  case 27:
618  return "boundaryvalue";
619  case 28:
620  return "missingframe";
621 
622  }
623  return 0;
624  }
625 
626  ParmType getNestParmType(TempIndex fieldnum) const override
627  {
628  if (fieldnum.size() < 1)
629  return PARM_UNSUPPORTED;
630  switch (fieldnum[0])
631  {
632  case 0:
633  return PARM_STRING;
634  case 1:
635  return PARM_VECTOR3;
636  case 2:
637  return PARM_VECTOR3;
638  case 3:
639  return PARM_VECTOR2;
640  case 4:
641  return PARM_FLOAT;
642  case 5:
643  return PARM_INTEGER;
644  case 6:
645  return PARM_INTEGER;
646  case 7:
647  return PARM_STRING;
648  case 8:
649  return PARM_INTEGER;
650  case 9:
651  return PARM_VECTOR2;
652  case 10:
653  return PARM_INTEGER;
654  case 11:
655  return PARM_STRING;
656  case 12:
657  return PARM_FLOAT;
658  case 13:
659  return PARM_STRING;
660  case 14:
661  return PARM_STRING;
662  case 15:
663  return PARM_INTEGER;
664  case 16:
665  return PARM_INTEGER;
666  case 17:
667  return PARM_INTEGER;
668  case 18:
669  return PARM_FLOAT;
670  case 19:
671  return PARM_INTEGER;
672  case 20:
673  return PARM_FLOAT;
674  case 21:
675  return PARM_INTEGER;
676  case 22:
677  return PARM_FLOAT;
678  case 23:
679  return PARM_INTEGER;
680  case 24:
681  return PARM_FLOAT;
682  case 25:
683  return PARM_INTEGER;
684  case 26:
685  return PARM_INTEGER;
686  case 27:
687  return PARM_FLOAT;
688  case 28:
689  return PARM_INTEGER;
690 
691  }
692  return PARM_UNSUPPORTED;
693  }
694 
695  // Boiler plate to load individual types.
696  static void loadData(UT_IStream &is, int64 &v)
697  { is.bread(&v, 1); }
698  static void loadData(UT_IStream &is, bool &v)
699  { int64 iv; is.bread(&iv, 1); v = iv; }
700  static void loadData(UT_IStream &is, fpreal64 &v)
701  { is.bread<fpreal64>(&v, 1); }
702  static void loadData(UT_IStream &is, UT_Vector2D &v)
703  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
704  static void loadData(UT_IStream &is, UT_Vector3D &v)
705  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
706  is.bread<fpreal64>(&v.z(), 1); }
707  static void loadData(UT_IStream &is, UT_Vector4D &v)
708  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
709  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
710  static void loadData(UT_IStream &is, UT_Matrix2D &v)
711  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
712  static void loadData(UT_IStream &is, UT_Matrix3D &v)
713  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
714  static void loadData(UT_IStream &is, UT_Matrix4D &v)
715  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
716  static void loadData(UT_IStream &is, UT_Vector2I &v)
717  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
718  static void loadData(UT_IStream &is, UT_Vector3I &v)
719  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
720  is.bread<int64>(&v.z(), 1); }
721  static void loadData(UT_IStream &is, UT_Vector4I &v)
722  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
723  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
725  { is.bread(v); }
727  { UT_StringHolder rampdata;
728  loadData(is, rampdata);
729  if (rampdata.isstring())
730  {
731  v.reset(new UT_Ramp());
732  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
733  v->load(istr);
734  }
735  else v.reset();
736  }
739  loadData(is, data);
740  if (data.isstring())
741  {
742  // Find the data type.
743  const char *colon = UT_StringWrap(data).findChar(':');
744  if (colon)
745  {
746  int typelen = colon - data.buffer();
748  type.strncpy(data.buffer(), typelen);
749  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
750 
751  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
752  }
753  }
754  else v.reset();
755  }
756 
757  static void saveData(std::ostream &os, int64 v)
758  { UTwrite(os, &v); }
759  static void saveData(std::ostream &os, bool v)
760  { int64 iv = v; UTwrite(os, &iv); }
761  static void saveData(std::ostream &os, fpreal64 v)
762  { UTwrite<fpreal64>(os, &v); }
763  static void saveData(std::ostream &os, UT_Vector2D v)
764  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
765  static void saveData(std::ostream &os, UT_Vector3D v)
766  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
767  UTwrite<fpreal64>(os, &v.z()); }
768  static void saveData(std::ostream &os, UT_Vector4D v)
769  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
770  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
771  static void saveData(std::ostream &os, UT_Matrix2D v)
773  static void saveData(std::ostream &os, UT_Matrix3D v)
775  static void saveData(std::ostream &os, UT_Matrix4D v)
777  static void saveData(std::ostream &os, UT_StringHolder s)
778  { UT_StringWrap(s).saveBinary(os); }
779  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
781  UT_OStringStream ostr;
782  if (s) s->save(ostr);
783  result = ostr.str();
784  saveData(os, result);
785  }
786  static void saveData(std::ostream &os, PRM_DataItemHandle s)
788  UT_OStringStream ostr;
789  if (s)
790  {
791  ostr << s->getDataTypeToken();
792  ostr << ":";
793  s->saveBinary(ostr);
794  }
795  result = ostr.str();
796  saveData(os, result);
797  }
798 
799 
800  void save(std::ostream &os) const
801  {
802  int32 v = version();
803  UTwrite(os, &v);
804  saveData(os, myTraceLayer);
805  saveData(os, myT);
806  saveData(os, myR);
807  saveData(os, myS);
808  saveData(os, myThresh);
809  saveData(os, myAddtexture);
810  saveData(os, myChannel);
811  saveData(os, myFile);
812  saveData(os, myOverridesize);
813  saveData(os, myImagesize);
814  saveData(os, myUsecop);
815  saveData(os, myCoppath);
816  saveData(os, myCopframe);
817  saveData(os, myCopcolor);
818  saveData(os, myCopalpha);
819  saveData(os, myDelborder);
820  saveData(os, myBordwidth);
821  saveData(os, myDoresample);
822  saveData(os, myStep);
823  saveData(os, myDosmooth);
824  saveData(os, myCorner);
825  saveData(os, myFitcurve);
826  saveData(os, myError);
827  saveData(os, myConvpoly);
828  saveData(os, myLod);
829  saveData(os, myHole);
830  saveData(os, myBoundary);
831  saveData(os, myBoundaryvalue);
832  saveData(os, myMissingFrame);
833 
834  }
835 
836  bool load(UT_IStream &is)
837  {
838  int32 v;
839  is.bread(&v, 1);
840  if (version() != v)
841  {
842  // Fail incompatible versions
843  return false;
844  }
845  loadData(is, myTraceLayer);
846  loadData(is, myT);
847  loadData(is, myR);
848  loadData(is, myS);
849  loadData(is, myThresh);
850  loadData(is, myAddtexture);
851  loadData(is, myChannel);
852  loadData(is, myFile);
853  loadData(is, myOverridesize);
854  loadData(is, myImagesize);
855  loadData(is, myUsecop);
856  loadData(is, myCoppath);
857  loadData(is, myCopframe);
858  loadData(is, myCopcolor);
859  loadData(is, myCopalpha);
860  loadData(is, myDelborder);
861  loadData(is, myBordwidth);
862  loadData(is, myDoresample);
863  loadData(is, myStep);
864  loadData(is, myDosmooth);
865  loadData(is, myCorner);
866  loadData(is, myFitcurve);
867  loadData(is, myError);
868  loadData(is, myConvpoly);
869  loadData(is, myLod);
870  loadData(is, myHole);
871  loadData(is, myBoundary);
872  loadData(is, myBoundaryvalue);
873  loadData(is, myMissingFrame);
874 
875  return true;
876  }
877 
878  const UT_StringHolder & getTraceLayer() const { return myTraceLayer; }
879  void setTraceLayer(const UT_StringHolder & val) { myTraceLayer = val; }
881  {
882  SOP_Node *thissop = cookparms.getNode();
883  if (!thissop) return getTraceLayer();
885  OP_Utils::evalOpParm(result, thissop, "tracelayer", cookparms.getCookTime(), 0);
886  return result;
887  }
888  UT_Vector3D getT() const { return myT; }
889  void setT(UT_Vector3D val) { myT = val; }
890  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
891  {
892  SOP_Node *thissop = cookparms.getNode();
893  if (!thissop) return getT();
895  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
896  return result;
897  }
898  UT_Vector3D getR() const { return myR; }
899  void setR(UT_Vector3D val) { myR = val; }
900  UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
901  {
902  SOP_Node *thissop = cookparms.getNode();
903  if (!thissop) return getR();
905  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
906  return result;
907  }
908  UT_Vector2D getS() const { return myS; }
909  void setS(UT_Vector2D val) { myS = val; }
910  UT_Vector2D opS(const SOP_NodeVerb::CookParms &cookparms) const
911  {
912  SOP_Node *thissop = cookparms.getNode();
913  if (!thissop) return getS();
915  OP_Utils::evalOpParm(result, thissop, "s", cookparms.getCookTime(), 0);
916  return result;
917  }
918  fpreal64 getThresh() const { return myThresh; }
919  void setThresh(fpreal64 val) { myThresh = val; }
920  fpreal64 opThresh(const SOP_NodeVerb::CookParms &cookparms) const
921  {
922  SOP_Node *thissop = cookparms.getNode();
923  if (!thissop) return getThresh();
925  OP_Utils::evalOpParm(result, thissop, "thresh", cookparms.getCookTime(), 0);
926  return result;
927  }
928  bool getAddtexture() const { return myAddtexture; }
929  void setAddtexture(bool val) { myAddtexture = val; }
930  bool opAddtexture(const SOP_NodeVerb::CookParms &cookparms) const
931  {
932  SOP_Node *thissop = cookparms.getNode();
933  if (!thissop) return getAddtexture();
934  bool result;
935  OP_Utils::evalOpParm(result, thissop, "addtexture", cookparms.getCookTime(), 0);
936  return result;
937  }
938  Channel getChannel() const { return Channel(myChannel); }
939  void setChannel(Channel val) { myChannel = int64(val); }
940  Channel opChannel(const SOP_NodeVerb::CookParms &cookparms) const
941  {
942  SOP_Node *thissop = cookparms.getNode();
943  if (!thissop) return getChannel();
944  int64 result;
945  OP_Utils::evalOpParm(result, thissop, "channel", cookparms.getCookTime(), 0);
946  return Channel(result);
947  }
948  const UT_StringHolder & getFile() const { return myFile; }
949  void setFile(const UT_StringHolder & val) { myFile = val; }
951  {
952  SOP_Node *thissop = cookparms.getNode();
953  if (!thissop) return getFile();
955  OP_Utils::evalOpParm(result, thissop, "file", cookparms.getCookTime(), 0);
956  return result;
957  }
958  bool getOverridesize() const { return myOverridesize; }
959  void setOverridesize(bool val) { myOverridesize = val; }
960  bool opOverridesize(const SOP_NodeVerb::CookParms &cookparms) const
961  {
962  SOP_Node *thissop = cookparms.getNode();
963  if (!thissop) return getOverridesize();
964  bool result;
965  OP_Utils::evalOpParm(result, thissop, "overridesize", cookparms.getCookTime(), 0);
966  return result;
967  }
968  UT_Vector2I getImagesize() const { return myImagesize; }
969  void setImagesize(UT_Vector2I val) { myImagesize = val; }
971  {
972  SOP_Node *thissop = cookparms.getNode();
973  if (!thissop) return getImagesize();
975  OP_Utils::evalOpParm(result, thissop, "imagesize", cookparms.getCookTime(), 0);
976  return result;
977  }
978  int64 getUsecop() const { return myUsecop; }
979  void setUsecop(int64 val) { myUsecop = val; }
980  int64 opUsecop(const SOP_NodeVerb::CookParms &cookparms) const
981  {
982  SOP_Node *thissop = cookparms.getNode();
983  if (!thissop) return getUsecop();
984  int64 result;
985  OP_Utils::evalOpParm(result, thissop, "usecop", cookparms.getCookTime(), 0);
986  return result;
987  }
988  const UT_StringHolder & getCoppath() const { return myCoppath; }
989  void setCoppath(const UT_StringHolder & val) { myCoppath = val; }
991  {
992  SOP_Node *thissop = cookparms.getNode();
993  if (!thissop) return getCoppath();
995  OP_Utils::evalOpParm(result, thissop, "coppath", cookparms.getCookTime(), 0);
996  return result;
997  }
998  fpreal64 getCopframe() const { return myCopframe; }
999  void setCopframe(fpreal64 val) { myCopframe = val; }
1001  {
1002  SOP_Node *thissop = cookparms.getNode();
1003  if (!thissop) return getCopframe();
1004  fpreal64 result;
1005  OP_Utils::evalOpParm(result, thissop, "copframe", cookparms.getCookTime(), 0);
1006  return result;
1007  }
1008  const UT_StringHolder & getCopcolor() const { return myCopcolor; }
1009  void setCopcolor(const UT_StringHolder & val) { myCopcolor = val; }
1011  {
1012  SOP_Node *thissop = cookparms.getNode();
1013  if (!thissop) return getCopcolor();
1015  OP_Utils::evalOpParm(result, thissop, "copcolor", cookparms.getCookTime(), 0);
1016  return result;
1017  }
1018  const UT_StringHolder & getCopalpha() const { return myCopalpha; }
1019  void setCopalpha(const UT_StringHolder & val) { myCopalpha = val; }
1021  {
1022  SOP_Node *thissop = cookparms.getNode();
1023  if (!thissop) return getCopalpha();
1025  OP_Utils::evalOpParm(result, thissop, "copalpha", cookparms.getCookTime(), 0);
1026  return result;
1027  }
1028  bool getDelborder() const { return myDelborder; }
1029  void setDelborder(bool val) { myDelborder = val; }
1030  bool opDelborder(const SOP_NodeVerb::CookParms &cookparms) const
1031  {
1032  SOP_Node *thissop = cookparms.getNode();
1033  if (!thissop) return getDelborder();
1034  bool result;
1035  OP_Utils::evalOpParm(result, thissop, "delborder", cookparms.getCookTime(), 0);
1036  return result;
1037  }
1038  int64 getBordwidth() const { return myBordwidth; }
1039  void setBordwidth(int64 val) { myBordwidth = val; }
1041  {
1042  SOP_Node *thissop = cookparms.getNode();
1043  if (!thissop) return getBordwidth();
1044  int64 result;
1045  OP_Utils::evalOpParm(result, thissop, "bordwidth", cookparms.getCookTime(), 0);
1046  return result;
1047  }
1048  bool getDoresample() const { return myDoresample; }
1049  void setDoresample(bool val) { myDoresample = val; }
1050  bool opDoresample(const SOP_NodeVerb::CookParms &cookparms) const
1051  {
1052  SOP_Node *thissop = cookparms.getNode();
1053  if (!thissop) return getDoresample();
1054  bool result;
1055  OP_Utils::evalOpParm(result, thissop, "doresample", cookparms.getCookTime(), 0);
1056  return result;
1057  }
1058  fpreal64 getStep() const { return myStep; }
1060  fpreal64 opStep(const SOP_NodeVerb::CookParms &cookparms) const
1061  {
1062  SOP_Node *thissop = cookparms.getNode();
1063  if (!thissop) return getStep();
1064  fpreal64 result;
1065  OP_Utils::evalOpParm(result, thissop, "step", cookparms.getCookTime(), 0);
1066  return result;
1067  }
1068  bool getDosmooth() const { return myDosmooth; }
1069  void setDosmooth(bool val) { myDosmooth = val; }
1070  bool opDosmooth(const SOP_NodeVerb::CookParms &cookparms) const
1071  {
1072  SOP_Node *thissop = cookparms.getNode();
1073  if (!thissop) return getDosmooth();
1074  bool result;
1075  OP_Utils::evalOpParm(result, thissop, "dosmooth", cookparms.getCookTime(), 0);
1076  return result;
1077  }
1078  fpreal64 getCorner() const { return myCorner; }
1079  void setCorner(fpreal64 val) { myCorner = val; }
1081  {
1082  SOP_Node *thissop = cookparms.getNode();
1083  if (!thissop) return getCorner();
1084  fpreal64 result;
1085  OP_Utils::evalOpParm(result, thissop, "corner", cookparms.getCookTime(), 0);
1086  return result;
1087  }
1088  bool getFitcurve() const { return myFitcurve; }
1089  void setFitcurve(bool val) { myFitcurve = val; }
1090  bool opFitcurve(const SOP_NodeVerb::CookParms &cookparms) const
1091  {
1092  SOP_Node *thissop = cookparms.getNode();
1093  if (!thissop) return getFitcurve();
1094  bool result;
1095  OP_Utils::evalOpParm(result, thissop, "fitcurve", cookparms.getCookTime(), 0);
1096  return result;
1097  }
1098  fpreal64 getError() const { return myError; }
1099  void setError(fpreal64 val) { myError = val; }
1100  fpreal64 opError(const SOP_NodeVerb::CookParms &cookparms) const
1101  {
1102  SOP_Node *thissop = cookparms.getNode();
1103  if (!thissop) return getError();
1104  fpreal64 result;
1105  OP_Utils::evalOpParm(result, thissop, "error", cookparms.getCookTime(), 0);
1106  return result;
1107  }
1108  bool getConvpoly() const { return myConvpoly; }
1109  void setConvpoly(bool val) { myConvpoly = val; }
1110  bool opConvpoly(const SOP_NodeVerb::CookParms &cookparms) const
1111  {
1112  SOP_Node *thissop = cookparms.getNode();
1113  if (!thissop) return getConvpoly();
1114  bool result;
1115  OP_Utils::evalOpParm(result, thissop, "convpoly", cookparms.getCookTime(), 0);
1116  return result;
1117  }
1118  fpreal64 getLod() const { return myLod; }
1119  void setLod(fpreal64 val) { myLod = val; }
1120  fpreal64 opLod(const SOP_NodeVerb::CookParms &cookparms) const
1121  {
1122  SOP_Node *thissop = cookparms.getNode();
1123  if (!thissop) return getLod();
1124  fpreal64 result;
1125  OP_Utils::evalOpParm(result, thissop, "lod", cookparms.getCookTime(), 0);
1126  return result;
1127  }
1128  bool getHole() const { return myHole; }
1129  void setHole(bool val) { myHole = val; }
1130  bool opHole(const SOP_NodeVerb::CookParms &cookparms) const
1131  {
1132  SOP_Node *thissop = cookparms.getNode();
1133  if (!thissop) return getHole();
1134  bool result;
1135  OP_Utils::evalOpParm(result, thissop, "hole", cookparms.getCookTime(), 0);
1136  return result;
1137  }
1138  Boundary getBoundary() const { return Boundary(myBoundary); }
1139  void setBoundary(Boundary val) { myBoundary = int64(val); }
1141  {
1142  SOP_Node *thissop = cookparms.getNode();
1143  if (!thissop) return getBoundary();
1144  int64 result;
1145  OP_Utils::evalOpParm(result, thissop, "boundary", cookparms.getCookTime(), 0);
1146  return Boundary(result);
1147  }
1148  fpreal64 getBoundaryvalue() const { return myBoundaryvalue; }
1149  void setBoundaryvalue(fpreal64 val) { myBoundaryvalue = val; }
1151  {
1152  SOP_Node *thissop = cookparms.getNode();
1153  if (!thissop) return getBoundaryvalue();
1154  fpreal64 result;
1155  OP_Utils::evalOpParm(result, thissop, "boundaryvalue", cookparms.getCookTime(), 0);
1156  return result;
1157  }
1158  MissingFrame getMissingFrame() const { return MissingFrame(myMissingFrame); }
1159  void setMissingFrame(MissingFrame val) { myMissingFrame = int64(val); }
1161  {
1162  SOP_Node *thissop = cookparms.getNode();
1163  if (!thissop) return getMissingFrame();
1164  int64 result;
1165  OP_Utils::evalOpParm(result, thissop, "missingframe", cookparms.getCookTime(), 0);
1166  return MissingFrame(result);
1167  }
1168 
1169 private:
1170  UT_StringHolder myTraceLayer;
1171  UT_Vector3D myT;
1172  UT_Vector3D myR;
1173  UT_Vector2D myS;
1174  fpreal64 myThresh;
1175  bool myAddtexture;
1176  int64 myChannel;
1177  UT_StringHolder myFile;
1178  bool myOverridesize;
1179  UT_Vector2I myImagesize;
1180  int64 myUsecop;
1181  UT_StringHolder myCoppath;
1182  fpreal64 myCopframe;
1183  UT_StringHolder myCopcolor;
1184  UT_StringHolder myCopalpha;
1185  bool myDelborder;
1186  int64 myBordwidth;
1187  bool myDoresample;
1188  fpreal64 myStep;
1189  bool myDosmooth;
1190  fpreal64 myCorner;
1191  bool myFitcurve;
1192  fpreal64 myError;
1193  bool myConvpoly;
1194  fpreal64 myLod;
1195  bool myHole;
1196  int64 myBoundary;
1197  fpreal64 myBoundaryvalue;
1198  int64 myMissingFrame;
1199 
1200 };
virtual NodeIdx getInput(NodeIdx idx, OP_InputIdx input, bool markused=false) const =0
type
Definition: core.h:556
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:63
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)
GLsizei const GLfloat * value
Definition: glcorearb.h:824
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:622
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
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
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:303
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:278
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:96
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
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
#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:372
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:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
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)
int64 getBordwidth() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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
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