HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_ExtractTransform.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_ExtractTransformEnums
24 {
25  enum class PieceAttribClass
26  {
27  PRIMITIVE = 0,
28  POINT
29  };
30 
33  {
34  using namespace UT::Literal;
35  switch (enum_value) {
36  case PieceAttribClass::PRIMITIVE: return "primitive"_sh;
37  case PieceAttribClass::POINT: return "point"_sh;
38  default: UT_ASSERT(false); return ""_sh;
39  }
40  }
41 
42  enum class ExtractionMethod
43  {
44  RIGID = 0,
47  FULL
48  };
49 
52  {
53  using namespace UT::Literal;
54  switch (enum_value) {
55  case ExtractionMethod::RIGID: return "rigid"_sh;
56  case ExtractionMethod::UNIFORMSCALE: return "uniformscale"_sh;
57  case ExtractionMethod::NONUNIFORMSCALE: return "nonuniformscale"_sh;
58  case ExtractionMethod::FULL: return "full"_sh;
59  default: UT_ASSERT(false); return ""_sh;
60  }
61  }
62 
63  enum class OutputAttribs
64  {
65  INSTANCEATTRS = 0,
66  MATRIX3,
67  MATRIX4
68  };
69 
71  getToken(OutputAttribs enum_value)
72  {
73  using namespace UT::Literal;
74  switch (enum_value) {
75  case OutputAttribs::INSTANCEATTRS: return "instanceattrs"_sh;
76  case OutputAttribs::MATRIX3: return "matrix3"_sh;
77  case OutputAttribs::MATRIX4: return "matrix4"_sh;
78  default: UT_ASSERT(false); return ""_sh;
79  }
80  }
81 
82 }
83 
84 
86 {
87 public:
88  static int version() { return 1; }
89 
91  {
92  myUsePieceAttrib = false;
93  myPieceAttrib = "name"_UTsh;
94  myPieceAttribClass = 0;
95  myExtractionMethod = 0;
96  myOutputAttribs = 0;
97  myComputeDistortion = false;
98  myDistortionAttrib = "distortion"_UTsh;
99 
100  }
101 
102  explicit SOP_ExtractTransformParms(const SOP_ExtractTransformParms &) = default;
105  SOP_ExtractTransformParms &operator=(SOP_ExtractTransformParms &&) noexcept = default;
106 
108 
110  {
111  if (myUsePieceAttrib != src.myUsePieceAttrib) return false;
112  if (myPieceAttrib != src.myPieceAttrib) return false;
113  if (myPieceAttribClass != src.myPieceAttribClass) return false;
114  if (myExtractionMethod != src.myExtractionMethod) return false;
115  if (myOutputAttribs != src.myOutputAttribs) return false;
116  if (myComputeDistortion != src.myComputeDistortion) return false;
117  if (myDistortionAttrib != src.myDistortionAttrib) return false;
118 
119  return true;
120  }
122  {
123  return !operator==(src);
124  }
128 
129 
130 
131  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
132  {
133  myUsePieceAttrib = false;
134  if (true)
135  graph->evalOpParm(myUsePieceAttrib, nodeidx, "usepieceattrib", time, 0);
136  myPieceAttrib = "name"_UTsh;
137  if (true && ( (true&&!(((getUsePieceAttrib()==0)))) ) )
138  graph->evalOpParm(myPieceAttrib, nodeidx, "pieceattrib", time, 0);
139  myPieceAttribClass = 0;
140  if (true && ( (true&&!(((getUsePieceAttrib()==0)))) ) )
141  graph->evalOpParm(myPieceAttribClass, nodeidx, "pieceattribclass", time, 0);
142  myExtractionMethod = 0;
143  if (true)
144  graph->evalOpParm(myExtractionMethod, nodeidx, "extractionmethod", time, 0);
145  myOutputAttribs = 0;
146  if (true)
147  graph->evalOpParm(myOutputAttribs, nodeidx, "outputattribs", time, 0);
148  myComputeDistortion = false;
149  if (true)
150  graph->evalOpParm(myComputeDistortion, nodeidx, "computedistortion", time, 0);
151  myDistortionAttrib = "distortion"_UTsh;
152  if (true && ( (true&&!(((getComputeDistortion()==0)))) ) )
153  graph->evalOpParm(myDistortionAttrib, nodeidx, "distortionattrib", time, 0);
154 
155  }
156 
157 
158  void loadFromOpSubclass(const LoadParms &loadparms) override
159  {
160  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
161  }
162 
163 
164  void copyFrom(const OP_NodeParms *src) override
165  {
166  *this = *((const SOP_ExtractTransformParms *)src);
167  }
168 
169  template <typename T>
170  void
171  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
172  {
173  if (idx.size() < 1)
174  return;
175  UT_ASSERT(idx.size() == instance.size()+1);
176  if (idx.size() != instance.size()+1)
177  return;
178  switch (idx[0])
179  {
180  case 0:
181  coerceValue(value, myUsePieceAttrib);
182  break;
183  case 1:
184  coerceValue(value, myPieceAttrib);
185  break;
186  case 2:
187  coerceValue(value, myPieceAttribClass);
188  break;
189  case 3:
190  coerceValue(value, myExtractionMethod);
191  break;
192  case 4:
193  coerceValue(value, myOutputAttribs);
194  break;
195  case 5:
196  coerceValue(value, myComputeDistortion);
197  break;
198  case 6:
199  coerceValue(value, myDistortionAttrib);
200  break;
201 
202  }
203  }
204 
205  bool isParmColorRamp(exint idx) const override
206  {
207  switch (idx)
208  {
209 
210  }
211  return false;
212  }
213 
214  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
215  { doGetParmValue(idx, instance, value); }
216  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
217  { doGetParmValue(idx, instance, value); }
218  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
219  { doGetParmValue(idx, instance, value); }
220  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
221  { doGetParmValue(idx, instance, value); }
222  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
223  { doGetParmValue(idx, instance, value); }
224  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
225  { doGetParmValue(idx, instance, value); }
226  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
227  { doGetParmValue(idx, instance, value); }
228  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
229  { doGetParmValue(idx, instance, value); }
230  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
231  { doGetParmValue(idx, instance, value); }
232  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
233  { doGetParmValue(idx, instance, value); }
234  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
235  { doGetParmValue(idx, instance, value); }
236 
237  template <typename T>
238  void
239  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
240  {
241  if (idx.size() < 1)
242  return;
243  UT_ASSERT(idx.size() == instance.size()+1);
244  if (idx.size() != instance.size()+1)
245  return;
246  switch (idx[0])
247  {
248  case 0:
249  coerceValue(myUsePieceAttrib, ( ( value ) ));
250  break;
251  case 1:
252  coerceValue(myPieceAttrib, ( ( value ) ));
253  break;
254  case 2:
255  coerceValue(myPieceAttribClass, clampMinValue(0, clampMaxValue(1, value ) ));
256  break;
257  case 3:
258  coerceValue(myExtractionMethod, clampMinValue(0, clampMaxValue(3, value ) ));
259  break;
260  case 4:
261  coerceValue(myOutputAttribs, clampMinValue(0, clampMaxValue(2, value ) ));
262  break;
263  case 5:
264  coerceValue(myComputeDistortion, ( ( value ) ));
265  break;
266  case 6:
267  coerceValue(myDistortionAttrib, ( ( value ) ));
268  break;
269 
270  }
271  }
272 
273  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
274  { doSetParmValue(idx, instance, value); }
275  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
276  { doSetParmValue(idx, instance, value); }
277  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
278  { doSetParmValue(idx, instance, value); }
279  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
280  { doSetParmValue(idx, instance, value); }
281  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
282  { doSetParmValue(idx, instance, value); }
283  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
284  { doSetParmValue(idx, instance, value); }
285  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
286  { doSetParmValue(idx, instance, value); }
287  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
288  { doSetParmValue(idx, instance, value); }
289  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
290  { doSetParmValue(idx, instance, value); }
291  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
292  { doSetParmValue(idx, instance, value); }
293  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
294  { doSetParmValue(idx, instance, value); }
295 
296  exint getNestNumParms(TempIndex idx) const override
297  {
298  if (idx.size() == 0)
299  return 7;
300  switch (idx[0])
301  {
302 
303  }
304  // Invalid
305  return 0;
306  }
307 
308  const char *getNestParmName(TempIndex fieldnum) const override
309  {
310  if (fieldnum.size() < 1)
311  return 0;
312  switch (fieldnum[0])
313  {
314  case 0:
315  return "usepieceattrib";
316  case 1:
317  return "pieceattrib";
318  case 2:
319  return "pieceattribclass";
320  case 3:
321  return "extractionmethod";
322  case 4:
323  return "outputattribs";
324  case 5:
325  return "computedistortion";
326  case 6:
327  return "distortionattrib";
328 
329  }
330  return 0;
331  }
332 
333  ParmType getNestParmType(TempIndex fieldnum) const override
334  {
335  if (fieldnum.size() < 1)
336  return PARM_UNSUPPORTED;
337  switch (fieldnum[0])
338  {
339  case 0:
340  return PARM_INTEGER;
341  case 1:
342  return PARM_STRING;
343  case 2:
344  return PARM_INTEGER;
345  case 3:
346  return PARM_INTEGER;
347  case 4:
348  return PARM_INTEGER;
349  case 5:
350  return PARM_INTEGER;
351  case 6:
352  return PARM_STRING;
353 
354  }
355  return PARM_UNSUPPORTED;
356  }
357 
358  // Boiler plate to load individual types.
359  static void loadData(UT_IStream &is, int64 &v)
360  { is.bread(&v, 1); }
361  static void loadData(UT_IStream &is, bool &v)
362  { int64 iv; is.bread(&iv, 1); v = iv; }
363  static void loadData(UT_IStream &is, fpreal64 &v)
364  { is.bread<fpreal64>(&v, 1); }
365  static void loadData(UT_IStream &is, UT_Vector2D &v)
366  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
367  static void loadData(UT_IStream &is, UT_Vector3D &v)
368  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
369  is.bread<fpreal64>(&v.z(), 1); }
370  static void loadData(UT_IStream &is, UT_Vector4D &v)
371  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
372  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
373  static void loadData(UT_IStream &is, UT_Matrix2D &v)
374  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
375  static void loadData(UT_IStream &is, UT_Matrix3D &v)
376  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
377  static void loadData(UT_IStream &is, UT_Matrix4D &v)
378  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
379  static void loadData(UT_IStream &is, UT_Vector2I &v)
380  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
381  static void loadData(UT_IStream &is, UT_Vector3I &v)
382  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
383  is.bread<int64>(&v.z(), 1); }
384  static void loadData(UT_IStream &is, UT_Vector4I &v)
385  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
386  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
388  { is.bread(v); }
390  { UT_StringHolder rampdata;
391  loadData(is, rampdata);
392  if (rampdata.isstring())
393  {
394  v.reset(new UT_Ramp());
395  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
396  v->load(istr);
397  }
398  else v.reset();
399  }
402  loadData(is, data);
403  if (data.isstring())
404  {
405  // Find the data type.
406  const char *colon = UT_StringWrap(data).findChar(':');
407  if (colon)
408  {
409  int typelen = colon - data.buffer();
411  type.strncpy(data.buffer(), typelen);
412  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
413 
414  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
415  }
416  }
417  else v.reset();
418  }
419 
420  static void saveData(std::ostream &os, int64 v)
421  { UTwrite(os, &v); }
422  static void saveData(std::ostream &os, bool v)
423  { int64 iv = v; UTwrite(os, &iv); }
424  static void saveData(std::ostream &os, fpreal64 v)
425  { UTwrite<fpreal64>(os, &v); }
426  static void saveData(std::ostream &os, UT_Vector2D v)
427  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
428  static void saveData(std::ostream &os, UT_Vector3D v)
429  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
430  UTwrite<fpreal64>(os, &v.z()); }
431  static void saveData(std::ostream &os, UT_Vector4D v)
432  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
433  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
434  static void saveData(std::ostream &os, UT_Matrix2D v)
436  static void saveData(std::ostream &os, UT_Matrix3D v)
438  static void saveData(std::ostream &os, UT_Matrix4D v)
440  static void saveData(std::ostream &os, UT_StringHolder s)
441  { UT_StringWrap(s).saveBinary(os); }
442  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
444  UT_OStringStream ostr;
445  if (s) s->save(ostr);
446  result = ostr.str();
447  saveData(os, result);
448  }
449  static void saveData(std::ostream &os, PRM_DataItemHandle s)
451  UT_OStringStream ostr;
452  if (s)
453  {
454  ostr << s->getDataTypeToken();
455  ostr << ":";
456  s->saveBinary(ostr);
457  }
458  result = ostr.str();
459  saveData(os, result);
460  }
461 
462 
463  void save(std::ostream &os) const
464  {
465  int32 v = version();
466  UTwrite(os, &v);
467  saveData(os, myUsePieceAttrib);
468  saveData(os, myPieceAttrib);
469  saveData(os, myPieceAttribClass);
470  saveData(os, myExtractionMethod);
471  saveData(os, myOutputAttribs);
472  saveData(os, myComputeDistortion);
473  saveData(os, myDistortionAttrib);
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, myUsePieceAttrib);
487  loadData(is, myPieceAttrib);
488  loadData(is, myPieceAttribClass);
489  loadData(is, myExtractionMethod);
490  loadData(is, myOutputAttribs);
491  loadData(is, myComputeDistortion);
492  loadData(is, myDistortionAttrib);
493 
494  return true;
495  }
496 
497  bool getUsePieceAttrib() const { return myUsePieceAttrib; }
498  void setUsePieceAttrib(bool val) { myUsePieceAttrib = val; }
499  bool opUsePieceAttrib(const SOP_NodeVerb::CookParms &cookparms) const
500  {
501  SOP_Node *thissop = cookparms.getNode();
502  if (!thissop) return getUsePieceAttrib();
503  bool result;
504  OP_Utils::evalOpParm(result, thissop, "usepieceattrib", cookparms.getCookTime(), 0);
505  return result;
506  }
507  const UT_StringHolder & getPieceAttrib() const { return myPieceAttrib; }
508  void setPieceAttrib(const UT_StringHolder & val) { myPieceAttrib = val; }
510  {
511  SOP_Node *thissop = cookparms.getNode();
512  if (!thissop) return getPieceAttrib();
514  OP_Utils::evalOpParm(result, thissop, "pieceattrib", cookparms.getCookTime(), 0);
515  return result;
516  }
517  PieceAttribClass getPieceAttribClass() const { return PieceAttribClass(myPieceAttribClass); }
518  void setPieceAttribClass(PieceAttribClass val) { myPieceAttribClass = int64(val); }
520  {
521  SOP_Node *thissop = cookparms.getNode();
522  if (!thissop) return getPieceAttribClass();
523  int64 result;
524  OP_Utils::evalOpParm(result, thissop, "pieceattribclass", cookparms.getCookTime(), 0);
525  return PieceAttribClass(result);
526  }
527  ExtractionMethod getExtractionMethod() const { return ExtractionMethod(myExtractionMethod); }
528  void setExtractionMethod(ExtractionMethod val) { myExtractionMethod = int64(val); }
530  {
531  SOP_Node *thissop = cookparms.getNode();
532  if (!thissop) return getExtractionMethod();
533  int64 result;
534  OP_Utils::evalOpParm(result, thissop, "extractionmethod", cookparms.getCookTime(), 0);
535  return ExtractionMethod(result);
536  }
537  OutputAttribs getOutputAttribs() const { return OutputAttribs(myOutputAttribs); }
538  void setOutputAttribs(OutputAttribs val) { myOutputAttribs = int64(val); }
540  {
541  SOP_Node *thissop = cookparms.getNode();
542  if (!thissop) return getOutputAttribs();
543  int64 result;
544  OP_Utils::evalOpParm(result, thissop, "outputattribs", cookparms.getCookTime(), 0);
545  return OutputAttribs(result);
546  }
547  bool getComputeDistortion() const { return myComputeDistortion; }
548  void setComputeDistortion(bool val) { myComputeDistortion = val; }
549  bool opComputeDistortion(const SOP_NodeVerb::CookParms &cookparms) const
550  {
551  SOP_Node *thissop = cookparms.getNode();
552  if (!thissop) return getComputeDistortion();
553  bool result;
554  OP_Utils::evalOpParm(result, thissop, "computedistortion", cookparms.getCookTime(), 0);
555  return result;
556  }
557  const UT_StringHolder & getDistortionAttrib() const { return myDistortionAttrib; }
558  void setDistortionAttrib(const UT_StringHolder & val) { myDistortionAttrib = val; }
560  {
561  SOP_Node *thissop = cookparms.getNode();
562  if (!thissop) return getDistortionAttrib();
564  OP_Utils::evalOpParm(result, thissop, "distortionattrib", cookparms.getCookTime(), 0);
565  return result;
566  }
567 
568 private:
569  bool myUsePieceAttrib;
570  UT_StringHolder myPieceAttrib;
571  int64 myPieceAttribClass;
572  int64 myExtractionMethod;
573  int64 myOutputAttribs;
574  bool myComputeDistortion;
575  UT_StringHolder myDistortionAttrib;
576 
577 };
bool operator==(const SOP_ExtractTransformParms &src) const
void setExtractionMethod(ExtractionMethod val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void save(std::ostream &os) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, UT_Vector4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &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
ExtractionMethod opExtractionMethod(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
const OP_Context & context() const
Definition: OP_NodeParms.h:97
PieceAttribClass getPieceAttribClass() const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
**But if you need a result
Definition: thread.h:613
static void saveData(std::ostream &os, UT_Matrix4D v)
PieceAttribClass opPieceAttribClass(const SOP_NodeVerb::CookParms &cookparms) const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static void loadData(UT_IStream &is, UT_Vector4D &v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, bool &v)
OutputAttribs getOutputAttribs() const
UT_StringHolder opDistortionAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setPieceAttrib(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
OutputAttribs opOutputAttribs(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getDistortionAttrib() const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setOutputAttribs(OutputAttribs val)
static void saveData(std::ostream &os, int64 v)
void setPieceAttribClass(PieceAttribClass val)
exint length() 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
static void loadData(UT_IStream &is, UT_Vector3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void copyFrom(const OP_NodeParms *src) override
bool opUsePieceAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void saveData(std::ostream &os, UT_Vector3D v)
long long int64
Definition: SYS_Types.h:116
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool opComputeDistortion(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void saveData(std::ostream &os, UT_StringHolder s)
UT_StringHolder opPieceAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
GT_API const UT_StringHolder version
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, UT_Vector2D v)
SYS_FORCE_INLINE UT_StringHolder getToken(PieceAttribClass enum_value)
void loadFromOpSubclass(const LoadParms &loadparms) override
bool operator!=(const SOP_ExtractTransformParms &src) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, fpreal64 &v)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
static void loadData(UT_IStream &is, UT_Vector2D &v)
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
#define SOP_API
Definition: SOP_API.h:10
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
GLboolean r
Definition: glcorearb.h:1222
ExtractionMethod getExtractionMethod() const
exint getNestNumParms(TempIndex idx) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
const UT_StringHolder & getPieceAttrib() const
type
Definition: core.h:1059
void setDistortionAttrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool isParmColorRamp(exint idx) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const char * getNestParmName(TempIndex fieldnum) const override
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663