HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Revolve.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_RevolveEnums
24 {
25  enum class Surftype
26  {
27  ROWS = 0,
28  COLS,
29  ROWCOL,
30  TRIANGLES,
31  QUADS,
34  };
35 
37  getToken(Surftype enum_value)
38  {
39  using namespace UT::Literal;
40  switch (enum_value) {
41  case Surftype::ROWS: return "rows"_sh;
42  case Surftype::COLS: return "cols"_sh;
43  case Surftype::ROWCOL: return "rowcol"_sh;
44  case Surftype::TRIANGLES: return "triangles"_sh;
45  case Surftype::QUADS: return "quads"_sh;
46  case Surftype::ALTTRIANGLES: return "alttriangles"_sh;
47  case Surftype::REVTRIANGLES: return "revtriangles"_sh;
48  default: UT_ASSERT(false); return ""_sh;
49  }
50  }
51 
52  enum class Type
53  {
54  CLOSED = 0,
55  OPENARC,
56  CLOSEDARC
57  };
58 
60  getToken(Type enum_value)
61  {
62  using namespace UT::Literal;
63  switch (enum_value) {
64  case Type::CLOSED: return "closed"_sh;
65  case Type::OPENARC: return "openarc"_sh;
66  case Type::CLOSEDARC: return "closedarc"_sh;
67  default: UT_ASSERT(false); return ""_sh;
68  }
69  }
70 
71 }
72 
73 
75 {
76 public:
77  static int version() { return 1; }
78 
80  {
81  myGroup = ""_UTsh;
82  mySurftype = 4;
83  myOrigin = UT_Vector3D(0,0,0);
84  myDir = UT_Vector3D(0,1,0);
85  myPolys = true;
86  myImperfect = true;
87  myType = 0;
88  myAngle = UT_Vector2D(0,360);
89  myDivs = 10;
90  myOrder = 4;
91  myCap = false;
92 
93  }
94 
95  explicit SOP_RevolveParms(const SOP_RevolveParms &) = default;
96  SOP_RevolveParms &operator=(const SOP_RevolveParms &) = default;
97  SOP_RevolveParms(SOP_RevolveParms &&) noexcept = default;
98  SOP_RevolveParms &operator=(SOP_RevolveParms &&) noexcept = default;
99 
100  ~SOP_RevolveParms() override {}
101 
102  bool operator==(const SOP_RevolveParms &src) const
103  {
104  if (myGroup != src.myGroup) return false;
105  if (mySurftype != src.mySurftype) return false;
106  if (myOrigin != src.myOrigin) return false;
107  if (myDir != src.myDir) return false;
108  if (myPolys != src.myPolys) return false;
109  if (myImperfect != src.myImperfect) return false;
110  if (myType != src.myType) return false;
111  if (myAngle != src.myAngle) return false;
112  if (myDivs != src.myDivs) return false;
113  if (myOrder != src.myOrder) return false;
114  if (myCap != src.myCap) return false;
115 
116  return true;
117  }
118  bool operator!=(const SOP_RevolveParms &src) const
119  {
120  return !operator==(src);
121  }
124 
125 
126 
127  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
128  {
129  myGroup = ""_UTsh;
130  if (true)
131  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
132  mySurftype = 4;
133  if (true)
134  graph->evalOpParm(mySurftype, nodeidx, "surftype", time, 0);
135  myOrigin = UT_Vector3D(0,0,0);
136  if (true)
137  graph->evalOpParm(myOrigin, nodeidx, "origin", time, 0);
138  myDir = UT_Vector3D(0,1,0);
139  if (true)
140  graph->evalOpParm(myDir, nodeidx, "dir", time, 0);
141  myPolys = true;
142  if (true)
143  graph->evalOpParm(myPolys, nodeidx, "polys", time, 0);
144  myImperfect = true;
145  if (true)
146  graph->evalOpParm(myImperfect, nodeidx, "imperfect", time, 0);
147  myType = 0;
148  if (true)
149  graph->evalOpParm(myType, nodeidx, "type", time, 0);
150  myAngle = UT_Vector2D(0,360);
151  if (true)
152  graph->evalOpParm(myAngle, nodeidx, "angle", time, 0);
153  myDivs = 10;
154  if (true)
155  graph->evalOpParm(myDivs, nodeidx, "divs", time, 0);
156  myOrder = 4;
157  if (true)
158  graph->evalOpParm(myOrder, nodeidx, "order", time, 0);
159  myCap = false;
160  if (true)
161  graph->evalOpParm(myCap, nodeidx, "cap", time, 0);
162 
163  }
164 
165 
166  void loadFromOpSubclass(const LoadParms &loadparms) override
167  {
168  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
169  }
170 
171 
172  void copyFrom(const OP_NodeParms *src) override
173  {
174  *this = *((const SOP_RevolveParms *)src);
175  }
176 
177  template <typename T>
178  void
179  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
180  {
181  if (idx.size() < 1)
182  return;
183  UT_ASSERT(idx.size() == instance.size()+1);
184  if (idx.size() != instance.size()+1)
185  return;
186  switch (idx[0])
187  {
188  case 0:
189  coerceValue(value, myGroup);
190  break;
191  case 1:
192  coerceValue(value, mySurftype);
193  break;
194  case 2:
195  coerceValue(value, myOrigin);
196  break;
197  case 3:
198  coerceValue(value, myDir);
199  break;
200  case 4:
201  coerceValue(value, myPolys);
202  break;
203  case 5:
204  coerceValue(value, myImperfect);
205  break;
206  case 6:
207  coerceValue(value, myType);
208  break;
209  case 7:
210  coerceValue(value, myAngle);
211  break;
212  case 8:
213  coerceValue(value, myDivs);
214  break;
215  case 9:
216  coerceValue(value, myOrder);
217  break;
218  case 10:
219  coerceValue(value, myCap);
220  break;
221 
222  }
223  }
224 
225  bool isParmColorRamp(exint idx) const override
226  {
227  switch (idx)
228  {
229 
230  }
231  return false;
232  }
233 
234  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
235  { doGetParmValue(idx, instance, value); }
236  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
237  { doGetParmValue(idx, instance, value); }
238  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
239  { doGetParmValue(idx, instance, value); }
240  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
241  { doGetParmValue(idx, instance, value); }
242  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
243  { doGetParmValue(idx, instance, value); }
244  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
245  { doGetParmValue(idx, instance, value); }
246  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
247  { doGetParmValue(idx, instance, value); }
248  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
249  { doGetParmValue(idx, instance, value); }
250  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
251  { doGetParmValue(idx, instance, value); }
252  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
253  { doGetParmValue(idx, instance, value); }
254  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
255  { doGetParmValue(idx, instance, value); }
256 
257  template <typename T>
258  void
259  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
260  {
261  if (idx.size() < 1)
262  return;
263  UT_ASSERT(idx.size() == instance.size()+1);
264  if (idx.size() != instance.size()+1)
265  return;
266  switch (idx[0])
267  {
268  case 0:
269  coerceValue(myGroup, ( ( value ) ));
270  break;
271  case 1:
272  coerceValue(mySurftype, clampMinValue(0, clampMaxValue(6, value ) ));
273  break;
274  case 2:
275  coerceValue(myOrigin, ( ( value ) ));
276  break;
277  case 3:
278  coerceValue(myDir, ( ( value ) ));
279  break;
280  case 4:
281  coerceValue(myPolys, ( ( value ) ));
282  break;
283  case 5:
284  coerceValue(myImperfect, ( ( value ) ));
285  break;
286  case 6:
287  coerceValue(myType, clampMinValue(0, clampMaxValue(2, value ) ));
288  break;
289  case 7:
290  coerceValue(myAngle, ( ( value ) ));
291  break;
292  case 8:
293  coerceValue(myDivs, clampMinValue(1, ( value ) ));
294  break;
295  case 9:
296  coerceValue(myOrder, clampMinValue(2, clampMaxValue(11, value ) ));
297  break;
298  case 10:
299  coerceValue(myCap, ( ( value ) ));
300  break;
301 
302  }
303  }
304 
305  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
306  { doSetParmValue(idx, instance, value); }
307  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
308  { doSetParmValue(idx, instance, value); }
309  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
310  { doSetParmValue(idx, instance, value); }
311  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
312  { doSetParmValue(idx, instance, value); }
313  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
314  { doSetParmValue(idx, instance, value); }
315  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
316  { doSetParmValue(idx, instance, value); }
317  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
318  { doSetParmValue(idx, instance, value); }
319  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
320  { doSetParmValue(idx, instance, value); }
321  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
322  { doSetParmValue(idx, instance, value); }
323  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
324  { doSetParmValue(idx, instance, value); }
325  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
326  { doSetParmValue(idx, instance, value); }
327 
328  exint getNestNumParms(TempIndex idx) const override
329  {
330  if (idx.size() == 0)
331  return 11;
332  switch (idx[0])
333  {
334 
335  }
336  // Invalid
337  return 0;
338  }
339 
340  const char *getNestParmName(TempIndex fieldnum) const override
341  {
342  if (fieldnum.size() < 1)
343  return 0;
344  switch (fieldnum[0])
345  {
346  case 0:
347  return "group";
348  case 1:
349  return "surftype";
350  case 2:
351  return "origin";
352  case 3:
353  return "dir";
354  case 4:
355  return "polys";
356  case 5:
357  return "imperfect";
358  case 6:
359  return "type";
360  case 7:
361  return "angle";
362  case 8:
363  return "divs";
364  case 9:
365  return "order";
366  case 10:
367  return "cap";
368 
369  }
370  return 0;
371  }
372 
373  ParmType getNestParmType(TempIndex fieldnum) const override
374  {
375  if (fieldnum.size() < 1)
376  return PARM_UNSUPPORTED;
377  switch (fieldnum[0])
378  {
379  case 0:
380  return PARM_STRING;
381  case 1:
382  return PARM_INTEGER;
383  case 2:
384  return PARM_VECTOR3;
385  case 3:
386  return PARM_VECTOR3;
387  case 4:
388  return PARM_INTEGER;
389  case 5:
390  return PARM_INTEGER;
391  case 6:
392  return PARM_INTEGER;
393  case 7:
394  return PARM_VECTOR2;
395  case 8:
396  return PARM_INTEGER;
397  case 9:
398  return PARM_INTEGER;
399  case 10:
400  return PARM_INTEGER;
401 
402  }
403  return PARM_UNSUPPORTED;
404  }
405 
406  // Boiler plate to load individual types.
407  static void loadData(UT_IStream &is, int64 &v)
408  { is.bread(&v, 1); }
409  static void loadData(UT_IStream &is, bool &v)
410  { int64 iv; is.bread(&iv, 1); v = iv; }
411  static void loadData(UT_IStream &is, fpreal64 &v)
412  { is.bread<fpreal64>(&v, 1); }
413  static void loadData(UT_IStream &is, UT_Vector2D &v)
414  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
415  static void loadData(UT_IStream &is, UT_Vector3D &v)
416  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
417  is.bread<fpreal64>(&v.z(), 1); }
418  static void loadData(UT_IStream &is, UT_Vector4D &v)
419  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
420  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
421  static void loadData(UT_IStream &is, UT_Matrix2D &v)
422  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
423  static void loadData(UT_IStream &is, UT_Matrix3D &v)
424  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
425  static void loadData(UT_IStream &is, UT_Matrix4D &v)
426  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
427  static void loadData(UT_IStream &is, UT_Vector2I &v)
428  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
429  static void loadData(UT_IStream &is, UT_Vector3I &v)
430  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
431  is.bread<int64>(&v.z(), 1); }
432  static void loadData(UT_IStream &is, UT_Vector4I &v)
433  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
434  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
436  { is.bread(v); }
438  { UT_StringHolder rampdata;
439  loadData(is, rampdata);
440  if (rampdata.isstring())
441  {
442  v.reset(new UT_Ramp());
443  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
444  v->load(istr);
445  }
446  else v.reset();
447  }
450  loadData(is, data);
451  if (data.isstring())
452  {
453  // Find the data type.
454  const char *colon = UT_StringWrap(data).findChar(':');
455  if (colon)
456  {
457  int typelen = colon - data.buffer();
459  type.strncpy(data.buffer(), typelen);
460  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
461 
462  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
463  }
464  }
465  else v.reset();
466  }
467 
468  static void saveData(std::ostream &os, int64 v)
469  { UTwrite(os, &v); }
470  static void saveData(std::ostream &os, bool v)
471  { int64 iv = v; UTwrite(os, &iv); }
472  static void saveData(std::ostream &os, fpreal64 v)
473  { UTwrite<fpreal64>(os, &v); }
474  static void saveData(std::ostream &os, UT_Vector2D v)
475  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
476  static void saveData(std::ostream &os, UT_Vector3D v)
477  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
478  UTwrite<fpreal64>(os, &v.z()); }
479  static void saveData(std::ostream &os, UT_Vector4D v)
480  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
481  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
482  static void saveData(std::ostream &os, UT_Matrix2D v)
484  static void saveData(std::ostream &os, UT_Matrix3D v)
486  static void saveData(std::ostream &os, UT_Matrix4D v)
488  static void saveData(std::ostream &os, UT_StringHolder s)
489  { UT_StringWrap(s).saveBinary(os); }
490  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
492  UT_OStringStream ostr;
493  if (s) s->save(ostr);
494  result = ostr.str();
495  saveData(os, result);
496  }
497  static void saveData(std::ostream &os, PRM_DataItemHandle s)
499  UT_OStringStream ostr;
500  if (s)
501  {
502  ostr << s->getDataTypeToken();
503  ostr << ":";
504  s->saveBinary(ostr);
505  }
506  result = ostr.str();
507  saveData(os, result);
508  }
509 
510 
511  void save(std::ostream &os) const
512  {
513  int32 v = version();
514  UTwrite(os, &v);
515  saveData(os, myGroup);
516  saveData(os, mySurftype);
517  saveData(os, myOrigin);
518  saveData(os, myDir);
519  saveData(os, myPolys);
520  saveData(os, myImperfect);
521  saveData(os, myType);
522  saveData(os, myAngle);
523  saveData(os, myDivs);
524  saveData(os, myOrder);
525  saveData(os, myCap);
526 
527  }
528 
529  bool load(UT_IStream &is)
530  {
531  int32 v;
532  is.bread(&v, 1);
533  if (version() != v)
534  {
535  // Fail incompatible versions
536  return false;
537  }
538  loadData(is, myGroup);
539  loadData(is, mySurftype);
540  loadData(is, myOrigin);
541  loadData(is, myDir);
542  loadData(is, myPolys);
543  loadData(is, myImperfect);
544  loadData(is, myType);
545  loadData(is, myAngle);
546  loadData(is, myDivs);
547  loadData(is, myOrder);
548  loadData(is, myCap);
549 
550  return true;
551  }
552 
553  const UT_StringHolder & getGroup() const { return myGroup; }
554  void setGroup(const UT_StringHolder & val) { myGroup = val; }
556  {
557  SOP_Node *thissop = cookparms.getNode();
558  if (!thissop) return getGroup();
560  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
561  return result;
562  }
563  Surftype getSurftype() const { return Surftype(mySurftype); }
564  void setSurftype(Surftype val) { mySurftype = int64(val); }
566  {
567  SOP_Node *thissop = cookparms.getNode();
568  if (!thissop) return getSurftype();
569  int64 result;
570  OP_Utils::evalOpParm(result, thissop, "surftype", cookparms.getCookTime(), 0);
571  return Surftype(result);
572  }
573  UT_Vector3D getOrigin() const { return myOrigin; }
574  void setOrigin(UT_Vector3D val) { myOrigin = val; }
576  {
577  SOP_Node *thissop = cookparms.getNode();
578  if (!thissop) return getOrigin();
580  OP_Utils::evalOpParm(result, thissop, "origin", cookparms.getCookTime(), 0);
581  return result;
582  }
583  UT_Vector3D getDir() const { return myDir; }
584  void setDir(UT_Vector3D val) { myDir = val; }
585  UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
586  {
587  SOP_Node *thissop = cookparms.getNode();
588  if (!thissop) return getDir();
590  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
591  return result;
592  }
593  bool getPolys() const { return myPolys; }
594  void setPolys(bool val) { myPolys = val; }
595  bool opPolys(const SOP_NodeVerb::CookParms &cookparms) const
596  {
597  SOP_Node *thissop = cookparms.getNode();
598  if (!thissop) return getPolys();
599  bool result;
600  OP_Utils::evalOpParm(result, thissop, "polys", cookparms.getCookTime(), 0);
601  return result;
602  }
603  bool getImperfect() const { return myImperfect; }
604  void setImperfect(bool val) { myImperfect = val; }
605  bool opImperfect(const SOP_NodeVerb::CookParms &cookparms) const
606  {
607  SOP_Node *thissop = cookparms.getNode();
608  if (!thissop) return getImperfect();
609  bool result;
610  OP_Utils::evalOpParm(result, thissop, "imperfect", cookparms.getCookTime(), 0);
611  return result;
612  }
613  Type getType() const { return Type(myType); }
614  void setType(Type val) { myType = int64(val); }
615  Type opType(const SOP_NodeVerb::CookParms &cookparms) const
616  {
617  SOP_Node *thissop = cookparms.getNode();
618  if (!thissop) return getType();
619  int64 result;
620  OP_Utils::evalOpParm(result, thissop, "type", cookparms.getCookTime(), 0);
621  return Type(result);
622  }
623  UT_Vector2D getAngle() const { return myAngle; }
624  void setAngle(UT_Vector2D val) { myAngle = val; }
626  {
627  SOP_Node *thissop = cookparms.getNode();
628  if (!thissop) return getAngle();
630  OP_Utils::evalOpParm(result, thissop, "angle", cookparms.getCookTime(), 0);
631  return result;
632  }
633  int64 getDivs() const { return myDivs; }
634  void setDivs(int64 val) { myDivs = val; }
635  int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
636  {
637  SOP_Node *thissop = cookparms.getNode();
638  if (!thissop) return getDivs();
639  int64 result;
640  OP_Utils::evalOpParm(result, thissop, "divs", cookparms.getCookTime(), 0);
641  return result;
642  }
643  int64 getOrder() const { return myOrder; }
644  void setOrder(int64 val) { myOrder = val; }
645  int64 opOrder(const SOP_NodeVerb::CookParms &cookparms) const
646  {
647  SOP_Node *thissop = cookparms.getNode();
648  if (!thissop) return getOrder();
649  int64 result;
650  OP_Utils::evalOpParm(result, thissop, "order", cookparms.getCookTime(), 0);
651  return result;
652  }
653  bool getCap() const { return myCap; }
654  void setCap(bool val) { myCap = val; }
655  bool opCap(const SOP_NodeVerb::CookParms &cookparms) const
656  {
657  SOP_Node *thissop = cookparms.getNode();
658  if (!thissop) return getCap();
659  bool result;
660  OP_Utils::evalOpParm(result, thissop, "cap", cookparms.getCookTime(), 0);
661  return result;
662  }
663 
664 private:
665  UT_StringHolder myGroup;
666  int64 mySurftype;
667  UT_Vector3D myOrigin;
668  UT_Vector3D myDir;
669  bool myPolys;
670  bool myImperfect;
671  int64 myType;
672  UT_Vector2D myAngle;
673  int64 myDivs;
674  int64 myOrder;
675  bool myCap;
676 
677 };
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
bool operator!=(const SOP_RevolveParms &src) const
bool load(UT_IStream &is)
UT_Vector3D getOrigin() const
bool opPolys(const SOP_NodeVerb::CookParms &cookparms) const
int64 opOrder(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, fpreal64 &v)
void setAngle(UT_Vector2D val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
int myOrder
Definition: GT_CurveEval.h:263
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
bool opCap(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getTime() const
Definition: OP_Context.h:62
UT_Vector2D opAngle(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_Vector2T< fpreal64 > UT_Vector2D
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const OP_Context & context() const
Definition: OP_NodeParms.h:97
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
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
GLdouble s
Definition: glad.h:3009
bool operator==(const SOP_RevolveParms &src) const
An output stream object that owns its own string buffer storage.
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Vector4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
**But if you need a result
Definition: thread.h:613
void setDir(UT_Vector3D val)
UT_Vector3D opOrigin(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
Type getType() const
bool getImperfect() const
void setDivs(int64 val)
static void loadData(UT_IStream &is, bool &v)
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, PRM_DataItemHandle &v)
exint length() const
SYS_FORCE_INLINE const char * buffer() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
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 getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static int version()
static void loadData(UT_IStream &is, UT_Vector3I &v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void setOrder(int64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setPolys(bool val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
void copyFrom(const OP_NodeParms *src) override
static void saveData(std::ostream &os, UT_Matrix4D v)
Surftype opSurftype(const SOP_NodeVerb::CookParms &cookparms) const
int64 getDivs() const
long long int64
Definition: SYS_Types.h:116
bool isParmColorRamp(exint idx) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_Vector3T< fpreal64 > UT_Vector3D
UT_Vector3D getDir() const
const char * getNestParmName(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
exint getNestNumParms(TempIndex idx) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &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
int64 getOrder() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool getPolys() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setOrigin(UT_Vector3D val)
fpreal64 fpreal
Definition: SYS_Types.h:277
static void loadData(UT_IStream &is, UT_Vector3D &v)
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void saveData(std::ostream &os, bool v)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
void setSurftype(Surftype val)
void loadFromOpSubclass(const LoadParms &loadparms) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setType(Type val)
#define SOP_API
Definition: SOP_API.h:10
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool getCap() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
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
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
Definition: core.h:1131
void setGroup(const UT_StringHolder &val)
Surftype getSurftype() const
Type opType(const SOP_NodeVerb::CookParms &cookparms) const
bool opImperfect(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
GLboolean r
Definition: glcorearb.h:1222
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setImperfect(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
UT_Vector2D getAngle() const
static void saveData(std::ostream &os, UT_Vector3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
type
Definition: core.h:1059
void save(std::ostream &os) const
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
const UT_StringHolder & getGroup() const
void setCap(bool val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void saveData(std::ostream &os, UT_Matrix2D v)
SYS_FORCE_INLINE UT_StringHolder getToken(Surftype enum_value)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void loadData(UT_IStream &is, int64 &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663