HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_UVUnwrap.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_UVUnwrapEnums
24 {
25  enum class Planes
26  {
27  PLANES4 = 0,
28  PLANES5,
29  PLANES6,
30  PLANES8
31  };
32 
34  getToken(Planes enum_value)
35  {
36  using namespace UT::Literal;
37  switch (enum_value) {
38  case Planes::PLANES4: return "planes4"_sh;
39  case Planes::PLANES5: return "planes5"_sh;
40  case Planes::PLANES6: return "planes6"_sh;
41  case Planes::PLANES8: return "planes8"_sh;
42  default: UT_ASSERT(false); return ""_sh;
43  }
44  }
45 
46  enum class LayoutType
47  {
48  STRIP = 0,
49  SQUARE
50  };
51 
53  getToken(LayoutType enum_value)
54  {
55  using namespace UT::Literal;
56  switch (enum_value) {
57  case LayoutType::STRIP: return "strip"_sh;
58  case LayoutType::SQUARE: return "square"_sh;
59  default: UT_ASSERT(false); return ""_sh;
60  }
61  }
62 
63  enum class ScaleType
64  {
65  NONE = 0,
66  UNIFORM,
67  STRETCH
68  };
69 
71  getToken(ScaleType enum_value)
72  {
73  using namespace UT::Literal;
74  switch (enum_value) {
75  case ScaleType::NONE: return "none"_sh;
76  case ScaleType::UNIFORM: return "uniform"_sh;
77  case ScaleType::STRETCH: return "stretch"_sh;
78  default: UT_ASSERT(false); return ""_sh;
79  }
80  }
81 
82  enum class RotateOrder
83  {
84  XYZ = 0,
85  XZY,
86  YXZ,
87  YZX,
88  ZXY,
89  ZYX
90  };
91 
93  getToken(RotateOrder enum_value)
94  {
95  using namespace UT::Literal;
96  switch (enum_value) {
97  case RotateOrder::XYZ: return "xyz"_sh;
98  case RotateOrder::XZY: return "xzy"_sh;
99  case RotateOrder::YXZ: return "yxz"_sh;
100  case RotateOrder::YZX: return "yzx"_sh;
101  case RotateOrder::ZXY: return "zxy"_sh;
102  case RotateOrder::ZYX: return "zyx"_sh;
103  default: UT_ASSERT(false); return ""_sh;
104  }
105  }
106 
107 }
108 
109 
111 {
112 public:
113  static int version() { return 1; }
114 
116  {
117  myUVAttrib = "uv"_UTsh;
118  myGroup = ""_UTsh;
119  myPlaneGroup = ""_UTsh;
120  myPlanes = 2;
121  myLayoutType = 1;
122  myScaleType = 1;
123  mySpacing = 2;
124  myRotateOrder = 0;
125  myRotate = UT_Vector3D(0,0,0);
126 
127  }
128 
129  explicit SOP_UVUnwrapParms(const SOP_UVUnwrapParms &) = default;
130  SOP_UVUnwrapParms &operator=(const SOP_UVUnwrapParms &) = default;
131  SOP_UVUnwrapParms(SOP_UVUnwrapParms &&) noexcept = default;
132  SOP_UVUnwrapParms &operator=(SOP_UVUnwrapParms &&) noexcept = default;
133 
134  ~SOP_UVUnwrapParms() override {}
135 
136  bool operator==(const SOP_UVUnwrapParms &src) const
137  {
138  if (myUVAttrib != src.myUVAttrib) return false;
139  if (myGroup != src.myGroup) return false;
140  if (myPlaneGroup != src.myPlaneGroup) return false;
141  if (myPlanes != src.myPlanes) return false;
142  if (myLayoutType != src.myLayoutType) return false;
143  if (myScaleType != src.myScaleType) return false;
144  if (mySpacing != src.mySpacing) return false;
145  if (myRotateOrder != src.myRotateOrder) return false;
146  if (myRotate != src.myRotate) return false;
147 
148 
149  if (baseGetSignature() != src.baseGetSignature()) return false;
150 
151  return true;
152  }
153  bool operator!=(const SOP_UVUnwrapParms &src) const
154  {
155  return !operator==(src);
156  }
161 
162 
163 
164  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
165  {
166  myUVAttrib = "uv"_UTsh;
167  if (true)
168  graph->evalOpParm(myUVAttrib, nodeidx, "uvattrib", time, graph->isDirect()?nullptr:depnode);
169  myGroup = ""_UTsh;
170  if (true)
171  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
172  myPlaneGroup = ""_UTsh;
173  if (true && ( (true&&!((((graph->getInput(nodeidx,1)>=0)==0)))) ) )
174  graph->evalOpParm(myPlaneGroup, nodeidx, "planegroup", time, graph->isDirect()?nullptr:depnode);
175  myPlanes = 2;
176  if (true && ( (true&&!((((graph->getInput(nodeidx,1)>=0)!=0)))) ) )
177  graph->evalOpParm(myPlanes, nodeidx, "nplanes", time, graph->isDirect()?nullptr:depnode);
178  myLayoutType = 1;
179  if (true)
180  graph->evalOpParm(myLayoutType, nodeidx, "layout", time, graph->isDirect()?nullptr:depnode);
181  myScaleType = 1;
182  if (true)
183  graph->evalOpParm(myScaleType, nodeidx, "scale", time, graph->isDirect()?nullptr:depnode);
184  mySpacing = 2;
185  if (true)
186  graph->evalOpParm(mySpacing, nodeidx, "spacing", time, graph->isDirect()?nullptr:depnode);
187  myRotateOrder = 0;
188  if (true)
189  graph->evalOpParm(myRotateOrder, nodeidx, "rOrd", time, graph->isDirect()?nullptr:depnode);
190  myRotate = UT_Vector3D(0,0,0);
191  if (true)
192  graph->evalOpParm(myRotate, nodeidx, "r", time, graph->isDirect()?nullptr:depnode);
193 
194  }
195 
196 
197  void loadFromOpSubclass(const LoadParms &loadparms) override
198  {
199  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
200  }
201 
202 
203  void copyFrom(const OP_NodeParms *src) override
204  {
205  *this = *((const SOP_UVUnwrapParms *)src);
206  }
207 
208  template <typename T>
209  void
210  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
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(value, myUVAttrib);
221  break;
222  case 1:
223  coerceValue(value, myGroup);
224  break;
225  case 2:
226  coerceValue(value, myPlaneGroup);
227  break;
228  case 3:
229  coerceValue(value, myPlanes);
230  break;
231  case 4:
232  coerceValue(value, myLayoutType);
233  break;
234  case 5:
235  coerceValue(value, myScaleType);
236  break;
237  case 6:
238  coerceValue(value, mySpacing);
239  break;
240  case 7:
241  coerceValue(value, myRotateOrder);
242  break;
243  case 8:
244  coerceValue(value, myRotate);
245  break;
246 
247  }
248  }
249 
250  bool isParmColorRamp(exint idx) const override
251  {
252  switch (idx)
253  {
254 
255  }
256  return false;
257  }
258 
259  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
260  { doGetParmValue(idx, instance, value); }
261  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
262  { doGetParmValue(idx, instance, value); }
263  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
264  { doGetParmValue(idx, instance, value); }
265  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
266  { doGetParmValue(idx, instance, value); }
267  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
268  { doGetParmValue(idx, instance, value); }
269  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
270  { doGetParmValue(idx, instance, value); }
271  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
272  { doGetParmValue(idx, instance, value); }
273  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
274  { doGetParmValue(idx, instance, value); }
275  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
276  { doGetParmValue(idx, instance, value); }
277  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
278  { doGetParmValue(idx, instance, value); }
279  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
280  { doGetParmValue(idx, instance, value); }
281 
282  template <typename T>
283  void
284  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
285  {
286  if (idx.size() < 1)
287  return;
288  UT_ASSERT(idx.size() == instance.size()+1);
289  if (idx.size() != instance.size()+1)
290  return;
291  switch (idx[0])
292  {
293  case 0:
294  coerceValue(myUVAttrib, ( ( value ) ));
295  break;
296  case 1:
297  coerceValue(myGroup, ( ( value ) ));
298  break;
299  case 2:
300  coerceValue(myPlaneGroup, ( ( value ) ));
301  break;
302  case 3:
303  coerceValue(myPlanes, clampMinValue(0, clampMaxValue(3, value ) ));
304  break;
305  case 4:
306  coerceValue(myLayoutType, clampMinValue(0, clampMaxValue(1, value ) ));
307  break;
308  case 5:
309  coerceValue(myScaleType, clampMinValue(0, clampMaxValue(2, value ) ));
310  break;
311  case 6:
312  coerceValue(mySpacing, clampMinValue(0, ( value ) ));
313  break;
314  case 7:
315  coerceValue(myRotateOrder, clampMinValue(0, clampMaxValue(5, value ) ));
316  break;
317  case 8:
318  coerceValue(myRotate, ( ( value ) ));
319  break;
320 
321  }
322  }
323 
324  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
325  { doSetParmValue(idx, instance, value); }
326  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
327  { doSetParmValue(idx, instance, value); }
328  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
329  { doSetParmValue(idx, instance, value); }
330  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
331  { doSetParmValue(idx, instance, value); }
332  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
333  { doSetParmValue(idx, instance, value); }
334  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
335  { doSetParmValue(idx, instance, value); }
336  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
337  { doSetParmValue(idx, instance, value); }
338  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
339  { doSetParmValue(idx, instance, value); }
340  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
341  { doSetParmValue(idx, instance, value); }
342  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
343  { doSetParmValue(idx, instance, value); }
344  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
345  { doSetParmValue(idx, instance, value); }
346 
347  exint getNestNumParms(TempIndex idx) const override
348  {
349  if (idx.size() == 0)
350  return 9;
351  switch (idx[0])
352  {
353 
354  }
355  // Invalid
356  return 0;
357  }
358 
359  const char *getNestParmName(TempIndex fieldnum) const override
360  {
361  if (fieldnum.size() < 1)
362  return 0;
363  switch (fieldnum[0])
364  {
365  case 0:
366  return "uvattrib";
367  case 1:
368  return "group";
369  case 2:
370  return "planegroup";
371  case 3:
372  return "nplanes";
373  case 4:
374  return "layout";
375  case 5:
376  return "scale";
377  case 6:
378  return "spacing";
379  case 7:
380  return "rOrd";
381  case 8:
382  return "r";
383 
384  }
385  return 0;
386  }
387 
388  ParmType getNestParmType(TempIndex fieldnum) const override
389  {
390  if (fieldnum.size() < 1)
391  return PARM_UNSUPPORTED;
392  switch (fieldnum[0])
393  {
394  case 0:
395  return PARM_STRING;
396  case 1:
397  return PARM_STRING;
398  case 2:
399  return PARM_STRING;
400  case 3:
401  return PARM_INTEGER;
402  case 4:
403  return PARM_INTEGER;
404  case 5:
405  return PARM_INTEGER;
406  case 6:
407  return PARM_FLOAT;
408  case 7:
409  return PARM_INTEGER;
410  case 8:
411  return PARM_VECTOR3;
412 
413  }
414  return PARM_UNSUPPORTED;
415  }
416 
417  // Boiler plate to load individual types.
418  static void loadData(UT_IStream &is, int64 &v)
419  { is.bread(&v, 1); }
420  static void loadData(UT_IStream &is, bool &v)
421  { int64 iv; is.bread(&iv, 1); v = iv; }
422  static void loadData(UT_IStream &is, fpreal64 &v)
423  { is.bread<fpreal64>(&v, 1); }
424  static void loadData(UT_IStream &is, UT_Vector2D &v)
425  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
426  static void loadData(UT_IStream &is, UT_Vector3D &v)
427  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
428  is.bread<fpreal64>(&v.z(), 1); }
429  static void loadData(UT_IStream &is, UT_Vector4D &v)
430  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
431  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
432  static void loadData(UT_IStream &is, UT_Matrix2D &v)
433  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
434  static void loadData(UT_IStream &is, UT_Matrix3D &v)
435  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
436  static void loadData(UT_IStream &is, UT_Matrix4D &v)
437  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
438  static void loadData(UT_IStream &is, UT_Vector2I &v)
439  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
440  static void loadData(UT_IStream &is, UT_Vector3I &v)
441  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
442  is.bread<int64>(&v.z(), 1); }
443  static void loadData(UT_IStream &is, UT_Vector4I &v)
444  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
445  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
447  { is.bread(v); }
449  { UT_StringHolder rampdata;
450  loadData(is, rampdata);
451  if (rampdata.isstring())
452  {
453  v.reset(new UT_Ramp());
454  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
455  v->load(istr);
456  }
457  else v.reset();
458  }
461  loadData(is, data);
462  if (data.isstring())
463  {
464  // Find the data type.
465  const char *colon = UT_StringWrap(data).findChar(':');
466  if (colon)
467  {
468  int typelen = colon - data.buffer();
470  type.strncpy(data.buffer(), typelen);
471  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
472 
473  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
474  }
475  }
476  else v.reset();
477  }
478 
479  static void saveData(std::ostream &os, int64 v)
480  { UTwrite(os, &v); }
481  static void saveData(std::ostream &os, bool v)
482  { int64 iv = v; UTwrite(os, &iv); }
483  static void saveData(std::ostream &os, fpreal64 v)
484  { UTwrite<fpreal64>(os, &v); }
485  static void saveData(std::ostream &os, UT_Vector2D v)
486  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
487  static void saveData(std::ostream &os, UT_Vector3D v)
488  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
489  UTwrite<fpreal64>(os, &v.z()); }
490  static void saveData(std::ostream &os, UT_Vector4D v)
491  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
492  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
493  static void saveData(std::ostream &os, UT_Matrix2D v)
495  static void saveData(std::ostream &os, UT_Matrix3D v)
497  static void saveData(std::ostream &os, UT_Matrix4D v)
499  static void saveData(std::ostream &os, UT_StringHolder s)
500  { UT_StringWrap(s).saveBinary(os); }
501  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
503  UT_OStringStream ostr;
504  if (s) s->save(ostr);
505  result = ostr.str();
506  saveData(os, result);
507  }
508  static void saveData(std::ostream &os, PRM_DataItemHandle s)
510  UT_OStringStream ostr;
511  if (s)
512  {
513  ostr << s->getDataTypeToken();
514  ostr << ":";
515  s->saveBinary(ostr);
516  }
517  result = ostr.str();
518  saveData(os, result);
519  }
520 
521 
522  void save(std::ostream &os) const
523  {
524  int32 v = version();
525  UTwrite(os, &v);
526  saveData(os, myUVAttrib);
527  saveData(os, myGroup);
528  saveData(os, myPlaneGroup);
529  saveData(os, myPlanes);
530  saveData(os, myLayoutType);
531  saveData(os, myScaleType);
532  saveData(os, mySpacing);
533  saveData(os, myRotateOrder);
534  saveData(os, myRotate);
535 
536  }
537 
538  bool load(UT_IStream &is)
539  {
540  int32 v;
541  is.bread(&v, 1);
542  if (version() != v)
543  {
544  // Fail incompatible versions
545  return false;
546  }
547  loadData(is, myUVAttrib);
548  loadData(is, myGroup);
549  loadData(is, myPlaneGroup);
550  loadData(is, myPlanes);
551  loadData(is, myLayoutType);
552  loadData(is, myScaleType);
553  loadData(is, mySpacing);
554  loadData(is, myRotateOrder);
555  loadData(is, myRotate);
556 
557  return true;
558  }
559 
560  const UT_StringHolder & getUVAttrib() const { return myUVAttrib; }
561  void setUVAttrib(const UT_StringHolder & val) { myUVAttrib = val; }
563  {
564  SOP_Node *thissop = cookparms.getNode();
565  if (!thissop) return getUVAttrib();
567  OP_Utils::evalOpParm(result, thissop, "uvattrib", cookparms.getCookTime(), 0);
568  return result;
569  }
570  const UT_StringHolder & getGroup() const { return myGroup; }
571  void setGroup(const UT_StringHolder & val) { myGroup = val; }
573  {
574  SOP_Node *thissop = cookparms.getNode();
575  if (!thissop) return getGroup();
577  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
578  return result;
579  }
580  const UT_StringHolder & getPlaneGroup() const { return myPlaneGroup; }
581  void setPlaneGroup(const UT_StringHolder & val) { myPlaneGroup = val; }
583  {
584  SOP_Node *thissop = cookparms.getNode();
585  if (!thissop) return getPlaneGroup();
587  OP_Utils::evalOpParm(result, thissop, "planegroup", cookparms.getCookTime(), 0);
588  return result;
589  }
590  Planes getPlanes() const { return Planes(myPlanes); }
591  void setPlanes(Planes val) { myPlanes = int64(val); }
592  Planes opPlanes(const SOP_NodeVerb::CookParms &cookparms) const
593  {
594  SOP_Node *thissop = cookparms.getNode();
595  if (!thissop) return getPlanes();
596  int64 result;
597  OP_Utils::evalOpParm(result, thissop, "nplanes", cookparms.getCookTime(), 0);
598  return Planes(result);
599  }
600  LayoutType getLayoutType() const { return LayoutType(myLayoutType); }
601  void setLayoutType(LayoutType val) { myLayoutType = int64(val); }
603  {
604  SOP_Node *thissop = cookparms.getNode();
605  if (!thissop) return getLayoutType();
606  int64 result;
607  OP_Utils::evalOpParm(result, thissop, "layout", cookparms.getCookTime(), 0);
608  return LayoutType(result);
609  }
610  ScaleType getScaleType() const { return ScaleType(myScaleType); }
611  void setScaleType(ScaleType val) { myScaleType = int64(val); }
613  {
614  SOP_Node *thissop = cookparms.getNode();
615  if (!thissop) return getScaleType();
616  int64 result;
617  OP_Utils::evalOpParm(result, thissop, "scale", cookparms.getCookTime(), 0);
618  return ScaleType(result);
619  }
620  fpreal64 getSpacing() const { return mySpacing; }
621  void setSpacing(fpreal64 val) { mySpacing = val; }
623  {
624  SOP_Node *thissop = cookparms.getNode();
625  if (!thissop) return getSpacing();
627  OP_Utils::evalOpParm(result, thissop, "spacing", cookparms.getCookTime(), 0);
628  return result;
629  }
630  RotateOrder getRotateOrder() const { return RotateOrder(myRotateOrder); }
631  void setRotateOrder(RotateOrder val) { myRotateOrder = int64(val); }
633  {
634  SOP_Node *thissop = cookparms.getNode();
635  if (!thissop) return getRotateOrder();
636  int64 result;
637  OP_Utils::evalOpParm(result, thissop, "rOrd", cookparms.getCookTime(), 0);
638  return RotateOrder(result);
639  }
640  UT_Vector3D getRotate() const { return myRotate; }
641  void setRotate(UT_Vector3D val) { myRotate = val; }
643  {
644  SOP_Node *thissop = cookparms.getNode();
645  if (!thissop) return getRotate();
647  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
648  return result;
649  }
650 
651 private:
652  UT_StringHolder myUVAttrib;
653  UT_StringHolder myGroup;
654  UT_StringHolder myPlaneGroup;
655  int64 myPlanes;
656  int64 myLayoutType;
657  int64 myScaleType;
658  fpreal64 mySpacing;
659  int64 myRotateOrder;
660  UT_Vector3D myRotate;
661 
662 };
virtual NodeIdx getInput(NodeIdx idx, OP_InputIdx input, bool markused=false) const =0
SYS_FORCE_INLINE UT_StringHolder getToken(Planes enum_value)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
type
Definition: core.h:556
void setRotate(UT_Vector3D val)
static void saveData(std::ostream &os, bool v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
bool isParmColorRamp(exint idx) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder opPlaneGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, int64 &v)
UT_Vector3D getRotate() const
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 setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
GLsizei const GLfloat * value
Definition: glcorearb.h:824
void setPlaneGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
UT_Vector3D opRotate(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector3D v)
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
GLdouble s
Definition: glad.h:3009
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator==(const SOP_UVUnwrapParms &src) const
void loadFromOpSubclass(const LoadParms &loadparms) override
const UT_StringHolder & getPlaneGroup() const
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
**But if you need a result
Definition: thread.h:622
static void loadData(UT_IStream &is, UT_Vector3I &v)
void save(std::ostream &os) const
static void loadData(UT_IStream &is, fpreal64 &v)
bool load(UT_IStream &is)
void setPlanes(Planes val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
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.
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
LayoutType opLayoutType(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, bool &v)
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
Planes getPlanes() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
RotateOrder getRotateOrder() const
static void saveData(std::ostream &os, fpreal64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_StringHolder opUVAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
const UT_StringHolder & getUVAttrib() const
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
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
long long int64
Definition: SYS_Types.h:116
void setRotateOrder(RotateOrder val)
LayoutType getLayoutType() const
UT_Vector3T< fpreal64 > UT_Vector3D
const UT_StringHolder & getGroup() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
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
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
exint getNestNumParms(TempIndex idx) const override
GT_API const UT_StringHolder version
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setSpacing(fpreal64 val)
bool operator!=(const SOP_UVUnwrapParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setScaleType(ScaleType val)
ScaleType getScaleType() const
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
fpreal64 fpreal
Definition: SYS_Types.h:278
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
fpreal64 getSpacing() const
fpreal64 opSpacing(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
Planes opPlanes(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
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
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, UT_Vector2D v)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
static void saveData(std::ostream &os, PRM_DataItemHandle s)
ScaleType opScaleType(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1222
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setUVAttrib(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
RotateOrder opRotateOrder(const SOP_NodeVerb::CookParms &cookparms) const
void setGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_StringHolder s)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
const char * getNestParmName(TempIndex fieldnum) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setLayoutType(LayoutType val)
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663