HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_TextureFeature.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_TextureFeatureEnums
24 {
25  enum class Method
26  {
27  CORNER = 0,
28  MINEIG
29  };
30  enum class Output
31  {
32  GEOMETRY = 0,
33  VOLUME
34  };
35 }
36 
37 
39 {
40 public:
41  static int version() { return 1; }
42 
44  {
45  myGroup = ""_UTsh;
46  myMaximumFeatureSize = 200;
47  myMinimumSpacing = 32;
48  myQualityTolerance = .01;
49  myBlurringWindowRadius = 10;
50  myGradientWindowRadius = 1;
51  myMethod = 0;
52  myCornerWeight = .04;
53  myOutput = 0;
54  myOutputName = "features"_UTsh;
55 
56  }
57 
58  explicit SOP_TextureFeatureParms(const SOP_TextureFeatureParms &) = default;
60  SOP_TextureFeatureParms(SOP_TextureFeatureParms &&) noexcept = default;
61  SOP_TextureFeatureParms &operator=(SOP_TextureFeatureParms &&) noexcept = default;
62 
63  ~SOP_TextureFeatureParms() override {}
64 
66  {
67  if (myGroup != src.myGroup) return false;
68  if (myMaximumFeatureSize != src.myMaximumFeatureSize) return false;
69  if (myMinimumSpacing != src.myMinimumSpacing) return false;
70  if (myQualityTolerance != src.myQualityTolerance) return false;
71  if (myBlurringWindowRadius != src.myBlurringWindowRadius) return false;
72  if (myGradientWindowRadius != src.myGradientWindowRadius) return false;
73  if (myMethod != src.myMethod) return false;
74  if (myCornerWeight != src.myCornerWeight) return false;
75  if (myOutput != src.myOutput) return false;
76  if (myOutputName != src.myOutputName) return false;
77 
78  return true;
79  }
81  {
82  return !operator==(src);
83  }
86 
87 
88 
89  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
90  {
91  myGroup = ""_UTsh;
92  if (true)
93  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
94  myMaximumFeatureSize = 200;
95  if (true)
96  graph->evalOpParm(myMaximumFeatureSize, nodeidx, "maxfeaturesize", time, 0);
97  myMinimumSpacing = 32;
98  if (true)
99  graph->evalOpParm(myMinimumSpacing, nodeidx, "minimumspacing", time, 0);
100  myQualityTolerance = .01;
101  if (true)
102  graph->evalOpParm(myQualityTolerance, nodeidx, "qualitytolerance", time, 0);
103  myBlurringWindowRadius = 10;
104  if (true)
105  graph->evalOpParm(myBlurringWindowRadius, nodeidx, "blurringwindowradius", time, 0);
106  myGradientWindowRadius = 1;
107  if (true)
108  graph->evalOpParm(myGradientWindowRadius, nodeidx, "gradientwindowradius", time, 0);
109  myMethod = 0;
110  if (true)
111  graph->evalOpParm(myMethod, nodeidx, "method", time, 0);
112  myCornerWeight = .04;
113  if (true && ( (true&&!(((int64(getMethod())!=0)))) ) )
114  graph->evalOpParm(myCornerWeight, nodeidx, "cornerweight", time, 0);
115  myOutput = 0;
116  if (true)
117  graph->evalOpParm(myOutput, nodeidx, "output", time, 0);
118  myOutputName = "features"_UTsh;
119  if (true && ( (true&&!(((int64(getOutput())!=1)))) ) )
120  graph->evalOpParm(myOutputName, nodeidx, "outputname", time, 0);
121 
122  }
123 
124 
125  void loadFromOpSubclass(const LoadParms &loadparms) override
126  {
127  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
128  }
129 
130 
131  void copyFrom(const OP_NodeParms *src) override
132  {
133  *this = *((const SOP_TextureFeatureParms *)src);
134  }
135 
136  template <typename T>
137  void
138  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
139  {
140  if (idx.size() < 1)
141  return;
142  UT_ASSERT(idx.size() == instance.size()+1);
143  if (idx.size() != instance.size()+1)
144  return;
145  switch (idx[0])
146  {
147  case 0:
148  coerceValue(value, myGroup);
149  break;
150  case 1:
151  coerceValue(value, myMaximumFeatureSize);
152  break;
153  case 2:
154  coerceValue(value, myMinimumSpacing);
155  break;
156  case 3:
157  coerceValue(value, myQualityTolerance);
158  break;
159  case 4:
160  coerceValue(value, myBlurringWindowRadius);
161  break;
162  case 5:
163  coerceValue(value, myGradientWindowRadius);
164  break;
165  case 6:
166  coerceValue(value, myMethod);
167  break;
168  case 7:
169  coerceValue(value, myCornerWeight);
170  break;
171  case 8:
172  coerceValue(value, myOutput);
173  break;
174  case 9:
175  coerceValue(value, myOutputName);
176  break;
177 
178  }
179  }
180 
181  bool isParmColorRamp(exint idx) const override
182  {
183  switch (idx)
184  {
185 
186  }
187  return false;
188  }
189 
190  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
191  { doGetParmValue(idx, instance, value); }
192  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
193  { doGetParmValue(idx, instance, value); }
194  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
195  { doGetParmValue(idx, instance, value); }
196  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
197  { doGetParmValue(idx, instance, value); }
198  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
199  { doGetParmValue(idx, instance, value); }
200  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
201  { doGetParmValue(idx, instance, value); }
202  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
203  { doGetParmValue(idx, instance, value); }
204  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
205  { doGetParmValue(idx, instance, value); }
206  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
207  { doGetParmValue(idx, instance, value); }
208  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
209  { doGetParmValue(idx, instance, value); }
210  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
211  { doGetParmValue(idx, instance, value); }
212 
213  template <typename T>
214  void
215  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
216  {
217  if (idx.size() < 1)
218  return;
219  UT_ASSERT(idx.size() == instance.size()+1);
220  if (idx.size() != instance.size()+1)
221  return;
222  switch (idx[0])
223  {
224  case 0:
225  coerceValue(myGroup, ( ( value ) ));
226  break;
227  case 1:
228  coerceValue(myMaximumFeatureSize, clampMinValue(0, ( value ) ));
229  break;
230  case 2:
231  coerceValue(myMinimumSpacing, clampMinValue(0, ( value ) ));
232  break;
233  case 3:
234  coerceValue(myQualityTolerance, ( clampMaxValue(-12, value ) ));
235  break;
236  case 4:
237  coerceValue(myBlurringWindowRadius, clampMinValue(1, ( value ) ));
238  break;
239  case 5:
240  coerceValue(myGradientWindowRadius, clampMinValue(0, clampMaxValue(15, value ) ));
241  break;
242  case 6:
243  coerceValue(myMethod, clampMinValue(0, clampMaxValue(1, value ) ));
244  break;
245  case 7:
246  coerceValue(myCornerWeight, clampMinValue(0, clampMaxValue(1., value ) ));
247  break;
248  case 8:
249  coerceValue(myOutput, clampMinValue(0, clampMaxValue(1, value ) ));
250  break;
251  case 9:
252  coerceValue(myOutputName, ( ( value ) ));
253  break;
254 
255  }
256  }
257 
258  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
259  { doSetParmValue(idx, instance, value); }
260  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
261  { doSetParmValue(idx, instance, value); }
262  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
263  { doSetParmValue(idx, instance, value); }
264  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
265  { doSetParmValue(idx, instance, value); }
266  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
267  { doSetParmValue(idx, instance, value); }
268  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
269  { doSetParmValue(idx, instance, value); }
270  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
271  { doSetParmValue(idx, instance, value); }
272  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
273  { doSetParmValue(idx, instance, value); }
274  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
275  { doSetParmValue(idx, instance, value); }
276  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
277  { doSetParmValue(idx, instance, value); }
278  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
279  { doSetParmValue(idx, instance, value); }
280 
281  exint getNestNumParms(TempIndex idx) const override
282  {
283  if (idx.size() == 0)
284  return 10;
285  switch (idx[0])
286  {
287 
288  }
289  // Invalid
290  return 0;
291  }
292 
293  const char *getNestParmName(TempIndex fieldnum) const override
294  {
295  if (fieldnum.size() < 1)
296  return 0;
297  switch (fieldnum[0])
298  {
299  case 0:
300  return "group";
301  case 1:
302  return "maxfeaturesize";
303  case 2:
304  return "minimumspacing";
305  case 3:
306  return "qualitytolerance";
307  case 4:
308  return "blurringwindowradius";
309  case 5:
310  return "gradientwindowradius";
311  case 6:
312  return "method";
313  case 7:
314  return "cornerweight";
315  case 8:
316  return "output";
317  case 9:
318  return "outputname";
319 
320  }
321  return 0;
322  }
323 
324  ParmType getNestParmType(TempIndex fieldnum) const override
325  {
326  if (fieldnum.size() < 1)
327  return PARM_UNSUPPORTED;
328  switch (fieldnum[0])
329  {
330  case 0:
331  return PARM_STRING;
332  case 1:
333  return PARM_INTEGER;
334  case 2:
335  return PARM_INTEGER;
336  case 3:
337  return PARM_FLOAT;
338  case 4:
339  return PARM_INTEGER;
340  case 5:
341  return PARM_INTEGER;
342  case 6:
343  return PARM_INTEGER;
344  case 7:
345  return PARM_FLOAT;
346  case 8:
347  return PARM_INTEGER;
348  case 9:
349  return PARM_STRING;
350 
351  }
352  return PARM_UNSUPPORTED;
353  }
354 
355  // Boiler plate to load individual types.
356  static void loadData(UT_IStream &is, int64 &v)
357  { is.bread(&v, 1); }
358  static void loadData(UT_IStream &is, bool &v)
359  { int64 iv; is.bread(&iv, 1); v = iv; }
360  static void loadData(UT_IStream &is, fpreal64 &v)
361  { is.bread<fpreal64>(&v, 1); }
362  static void loadData(UT_IStream &is, UT_Vector2D &v)
363  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
364  static void loadData(UT_IStream &is, UT_Vector3D &v)
365  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
366  is.bread<fpreal64>(&v.z(), 1); }
367  static void loadData(UT_IStream &is, UT_Vector4D &v)
368  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
369  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
370  static void loadData(UT_IStream &is, UT_Matrix2D &v)
371  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
372  static void loadData(UT_IStream &is, UT_Matrix3D &v)
373  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
374  static void loadData(UT_IStream &is, UT_Matrix4D &v)
375  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
376  static void loadData(UT_IStream &is, UT_Vector2I &v)
377  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
378  static void loadData(UT_IStream &is, UT_Vector3I &v)
379  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
380  is.bread<int64>(&v.z(), 1); }
381  static void loadData(UT_IStream &is, UT_Vector4I &v)
382  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
383  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
385  { is.bread(v); }
387  { UT_StringHolder rampdata;
388  loadData(is, rampdata);
389  if (rampdata.isstring())
390  {
391  v.reset(new UT_Ramp());
392  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
393  v->load(istr);
394  }
395  else v.reset();
396  }
399  loadData(is, data);
400  if (data.isstring())
401  {
402  // Find the data type.
403  const char *colon = UT_StringWrap(data).findChar(':');
404  if (colon)
405  {
406  int typelen = colon - data.buffer();
408  type.strncpy(data.buffer(), typelen);
409  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
410 
411  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
412  }
413  }
414  else v.reset();
415  }
416 
417  static void saveData(std::ostream &os, int64 v)
418  { UTwrite(os, &v); }
419  static void saveData(std::ostream &os, bool v)
420  { int64 iv = v; UTwrite(os, &iv); }
421  static void saveData(std::ostream &os, fpreal64 v)
422  { UTwrite<fpreal64>(os, &v); }
423  static void saveData(std::ostream &os, UT_Vector2D v)
424  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
425  static void saveData(std::ostream &os, UT_Vector3D v)
426  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
427  UTwrite<fpreal64>(os, &v.z()); }
428  static void saveData(std::ostream &os, UT_Vector4D v)
429  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
430  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
431  static void saveData(std::ostream &os, UT_Matrix2D v)
433  static void saveData(std::ostream &os, UT_Matrix3D v)
435  static void saveData(std::ostream &os, UT_Matrix4D v)
437  static void saveData(std::ostream &os, UT_StringHolder s)
438  { UT_StringWrap(s).saveBinary(os); }
439  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
441  UT_OStringStream ostr;
442  if (s) s->save(ostr);
443  result = ostr.str();
444  saveData(os, result);
445  }
446  static void saveData(std::ostream &os, PRM_DataItemHandle s)
448  UT_OStringStream ostr;
449  if (s)
450  {
451  ostr << s->getDataTypeToken();
452  ostr << ":";
453  s->saveBinary(ostr);
454  }
455  result = ostr.str();
456  saveData(os, result);
457  }
458 
459 
460  void save(std::ostream &os) const
461  {
462  int32 v = version();
463  UTwrite(os, &v);
464  saveData(os, myGroup);
465  saveData(os, myMaximumFeatureSize);
466  saveData(os, myMinimumSpacing);
467  saveData(os, myQualityTolerance);
468  saveData(os, myBlurringWindowRadius);
469  saveData(os, myGradientWindowRadius);
470  saveData(os, myMethod);
471  saveData(os, myCornerWeight);
472  saveData(os, myOutput);
473  saveData(os, myOutputName);
474 
475  }
476 
477  bool load(UT_IStream &is)
478  {
479  int32 v;
480  is.bread(&v, 1);
481  if (version() != v)
482  {
483  // Fail incompatible versions
484  return false;
485  }
486  loadData(is, myGroup);
487  loadData(is, myMaximumFeatureSize);
488  loadData(is, myMinimumSpacing);
489  loadData(is, myQualityTolerance);
490  loadData(is, myBlurringWindowRadius);
491  loadData(is, myGradientWindowRadius);
492  loadData(is, myMethod);
493  loadData(is, myCornerWeight);
494  loadData(is, myOutput);
495  loadData(is, myOutputName);
496 
497  return true;
498  }
499 
500  const UT_StringHolder & getGroup() const { return myGroup; }
501  void setGroup(const UT_StringHolder & val) { myGroup = val; }
503  {
504  SOP_Node *thissop = cookparms.getNode();
505  if (!thissop) return getGroup();
507  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
508  return result;
509  }
510  int64 getMaximumFeatureSize() const { return myMaximumFeatureSize; }
511  void setMaximumFeatureSize(int64 val) { myMaximumFeatureSize = val; }
513  {
514  SOP_Node *thissop = cookparms.getNode();
515  if (!thissop) return getMaximumFeatureSize();
516  int64 result;
517  OP_Utils::evalOpParm(result, thissop, "maxfeaturesize", cookparms.getCookTime(), 0);
518  return result;
519  }
520  int64 getMinimumSpacing() const { return myMinimumSpacing; }
521  void setMinimumSpacing(int64 val) { myMinimumSpacing = val; }
523  {
524  SOP_Node *thissop = cookparms.getNode();
525  if (!thissop) return getMinimumSpacing();
526  int64 result;
527  OP_Utils::evalOpParm(result, thissop, "minimumspacing", cookparms.getCookTime(), 0);
528  return result;
529  }
530  fpreal64 getQualityTolerance() const { return myQualityTolerance; }
531  void setQualityTolerance(fpreal64 val) { myQualityTolerance = val; }
533  {
534  SOP_Node *thissop = cookparms.getNode();
535  if (!thissop) return getQualityTolerance();
537  OP_Utils::evalOpParm(result, thissop, "qualitytolerance", cookparms.getCookTime(), 0);
538  return result;
539  }
540  int64 getBlurringWindowRadius() const { return myBlurringWindowRadius; }
541  void setBlurringWindowRadius(int64 val) { myBlurringWindowRadius = val; }
543  {
544  SOP_Node *thissop = cookparms.getNode();
545  if (!thissop) return getBlurringWindowRadius();
546  int64 result;
547  OP_Utils::evalOpParm(result, thissop, "blurringwindowradius", cookparms.getCookTime(), 0);
548  return result;
549  }
550  int64 getGradientWindowRadius() const { return myGradientWindowRadius; }
551  void setGradientWindowRadius(int64 val) { myGradientWindowRadius = val; }
553  {
554  SOP_Node *thissop = cookparms.getNode();
555  if (!thissop) return getGradientWindowRadius();
556  int64 result;
557  OP_Utils::evalOpParm(result, thissop, "gradientwindowradius", cookparms.getCookTime(), 0);
558  return result;
559  }
560  Method getMethod() const { return Method(myMethod); }
561  void setMethod(Method val) { myMethod = int64(val); }
562  Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
563  {
564  SOP_Node *thissop = cookparms.getNode();
565  if (!thissop) return getMethod();
566  int64 result;
567  OP_Utils::evalOpParm(result, thissop, "method", cookparms.getCookTime(), 0);
568  return Method(result);
569  }
570  fpreal64 getCornerWeight() const { return myCornerWeight; }
571  void setCornerWeight(fpreal64 val) { myCornerWeight = val; }
573  {
574  SOP_Node *thissop = cookparms.getNode();
575  if (!thissop) return getCornerWeight();
577  OP_Utils::evalOpParm(result, thissop, "cornerweight", cookparms.getCookTime(), 0);
578  return result;
579  }
580  Output getOutput() const { return Output(myOutput); }
581  void setOutput(Output val) { myOutput = int64(val); }
582  Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
583  {
584  SOP_Node *thissop = cookparms.getNode();
585  if (!thissop) return getOutput();
586  int64 result;
587  OP_Utils::evalOpParm(result, thissop, "output", cookparms.getCookTime(), 0);
588  return Output(result);
589  }
590  const UT_StringHolder & getOutputName() const { return myOutputName; }
591  void setOutputName(const UT_StringHolder & val) { myOutputName = val; }
593  {
594  SOP_Node *thissop = cookparms.getNode();
595  if (!thissop) return getOutputName();
597  OP_Utils::evalOpParm(result, thissop, "outputname", cookparms.getCookTime(), 0);
598  return result;
599  }
600 
601 private:
602  UT_StringHolder myGroup;
603  int64 myMaximumFeatureSize;
604  int64 myMinimumSpacing;
605  fpreal64 myQualityTolerance;
606  int64 myBlurringWindowRadius;
607  int64 myGradientWindowRadius;
608  int64 myMethod;
609  fpreal64 myCornerWeight;
610  int64 myOutput;
611  UT_StringHolder myOutputName;
612 
613 };
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator==(const SOP_TextureFeatureParms &src) const
bool isParmColorRamp(exint idx) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
static void saveData(std::ostream &os, UT_StringHolder s)
static void saveData(std::ostream &os, bool v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 opCornerWeight(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
ParmType getNestParmType(TempIndex fieldnum) const override
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
static void loadData(UT_IStream &is, bool &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
static void loadData(UT_IStream &is, UT_StringHolder &v)
int64 opMaximumFeatureSize(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void copyFrom(const OP_NodeParms *src) override
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void saveData(std::ostream &os, UT_Matrix4D v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
SYS_FORCE_INLINE const char * buffer() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
GLdouble s
Definition: glad.h:3009
static void saveData(std::ostream &os, UT_Vector2D v)
An output stream object that owns its own string buffer storage.
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
**But if you need a result
Definition: thread.h:613
T clampMinValue(fpreal minvalue, const T &src) const
Definition: OP_NodeParms.h:308
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.
UT_StringHolder opOutputName(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
static void loadData(UT_IStream &is, int64 &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
double fpreal64
Definition: SYS_Types.h:201
void setOutputName(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
int64 opGradientWindowRadius(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void save(std::ostream &os) const
exint length() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
int64 opBlurringWindowRadius(const SOP_NodeVerb::CookParms &cookparms) const
void loadFromOpSubclass(const LoadParms &loadparms) override
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void saveData(std::ostream &os, UT_Vector4D v)
fpreal64 opQualityTolerance(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, fpreal64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setGroup(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void saveData(std::ostream &os, fpreal64 v)
const UT_StringHolder & getOutputName() const
const char * getNestParmName(TempIndex fieldnum) const override
const UT_StringHolder & getGroup() const
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
static void saveData(std::ostream &os, int64 v)
void setQualityTolerance(fpreal64 val)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
static void loadData(UT_IStream &is, UT_Vector4D &v)
GLuint GLfloat * val
Definition: glcorearb.h:1608
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
#define SOP_API
Definition: SOP_API.h:10
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
int64 opMinimumSpacing(const SOP_NodeVerb::CookParms &cookparms) const
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
bool operator!=(const SOP_TextureFeatureParms &src) const
GLboolean r
Definition: glcorearb.h:1222
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
type
Definition: core.h:1059
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override