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