HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Circle.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_NodeVerb.h>
7 #include <SOP/SOP_GraphProxy.h>
8 
9 #include <OP/OP_Utils.h>
10 #include <PRM/PRM_Parm.h>
11 #include <UT/UT_IStream.h>
12 #include <UT/UT_NTStreamUtil.h>
13 #include <UT/UT_Ramp.h>
14 #include <UT/UT_SharedPtr.h>
15 #include <UT/UT_StringHolder.h>
16 #include <UT/UT_StringStream.h>
17 #include <UT/UT_VectorTypes.h>
18 #include <SYS/SYS_Types.h>
19 
20 using namespace UT::Literal;
21 
22 class DEP_MicroNode;
23 namespace SOP_CircleEnums
24 {
25  enum class Type
26  {
27  PRIM = 0,
28  POLY,
29  NURBS,
30  BEZIER
31  };
32  enum class Orient
33  {
34  XY = 0,
35  YZ,
36  ZX
37  };
38  enum class Arc
39  {
40  CLOSED = 0,
41  OPENARC,
42  CLOSEDARC,
43  SLICEDARC
44  };
45 }
46 
47 
49 {
50 public:
51  static int version() { return 1; }
52 
54  {
55  myType = 0;
56  myOrient = 0;
57  myRad = UT_Vector2D(1,1);
58  myT = UT_Vector3D(0,0,0);
59  myR = UT_Vector3D(0,0,0);
60  myScale = 1;
61  myOrder = 4;
62  myImperfect = true;
63  myDivs = 12;
64  myArc = 0;
65  myAngle = UT_Vector2D(0,360);
66 
67  }
68 
69  explicit SOP_CircleParms(const SOP_CircleParms &) = default;
70 
71  ~SOP_CircleParms() override {}
72 
73  bool operator==(const SOP_CircleParms &src) const
74  {
75  if (myType != src.myType) return false;
76  if (myOrient != src.myOrient) return false;
77  if (myRad != src.myRad) return false;
78  if (myT != src.myT) return false;
79  if (myR != src.myR) return false;
80  if (myScale != src.myScale) return false;
81  if (myOrder != src.myOrder) return false;
82  if (myImperfect != src.myImperfect) return false;
83  if (myDivs != src.myDivs) return false;
84  if (myArc != src.myArc) return false;
85  if (myAngle != src.myAngle) return false;
86 
87  return true;
88  }
89  bool operator!=(const SOP_CircleParms &src) const
90  {
91  return !operator==(src);
92  }
96 
97 
98 
99  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
100  {
101  myType = 0;
102  if (true)
103  graph->evalOpParm(myType, nodeidx, "type", time, 0);
104  myOrient = 0;
105  if (true)
106  graph->evalOpParm(myOrient, nodeidx, "orient", time, 0);
107  myRad = UT_Vector2D(1,1);
108  if (true)
109  graph->evalOpParm(myRad, nodeidx, "rad", time, 0);
110  myT = UT_Vector3D(0,0,0);
111  if (true)
112  graph->evalOpParm(myT, nodeidx, "t", time, 0);
113  myR = UT_Vector3D(0,0,0);
114  if (true)
115  graph->evalOpParm(myR, nodeidx, "r", time, 0);
116  myScale = 1;
117  if (true)
118  graph->evalOpParm(myScale, nodeidx, "scale", time, 0);
119  myOrder = 4;
120  if (true && ( (!(((int64(getType())==0))||((int64(getType())==1)))) ) )
121  graph->evalOpParm(myOrder, nodeidx, "order", time, 0);
122  myImperfect = true;
123  if (true && ( (!(((int64(getType())!=2)&&(int64(getType())!=3)))) ) )
124  graph->evalOpParm(myImperfect, nodeidx, "imperfect", time, 0);
125  myDivs = 12;
126  if (true && ( (!(((int64(getType())==0))||((int64(getType())==2)&&(getImperfect()==0))||((int64(getType())==3)&&(getImperfect()==0)))) ) )
127  graph->evalOpParm(myDivs, nodeidx, "divs", time, 0);
128  myArc = 0;
129  if (true && ( (!(((int64(getType())==0))||((int64(getType())==2)&&(getImperfect()==0))||((int64(getType())==3)&&(getImperfect()==0)))) ) )
130  graph->evalOpParm(myArc, nodeidx, "arc", time, 0);
131  myAngle = UT_Vector2D(0,360);
132  if (true && ( (!(((int64(getType())==0))||((int64(getType())==2)&&(getImperfect()==0))||((int64(getType())==3)&&(getImperfect()==0)))) ) )
133  graph->evalOpParm(myAngle, nodeidx, "angle", time, 0);
134 
135  }
136 
137 
138  void loadFromOpSubclass(const LoadParms &loadparms) override
139  {
140  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
141  }
142 
143 
144  void copyFrom(const SOP_NodeParms *src) override
145  {
146  *this = *((const SOP_CircleParms *)src);
147  }
148 
149  template <typename T>
150  void
151  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
152  {
153  if (idx.size() < 1)
154  return;
155  UT_ASSERT(idx.size() == instance.size()+1);
156  if (idx.size() != instance.size()+1)
157  return;
158  switch (idx[0])
159  {
160  case 0:
161  coerceValue(value, myType);
162  break;
163  case 1:
164  coerceValue(value, myOrient);
165  break;
166  case 2:
167  coerceValue(value, myRad);
168  break;
169  case 3:
170  coerceValue(value, myT);
171  break;
172  case 4:
173  coerceValue(value, myR);
174  break;
175  case 5:
176  coerceValue(value, myScale);
177  break;
178  case 6:
179  coerceValue(value, myOrder);
180  break;
181  case 7:
182  coerceValue(value, myImperfect);
183  break;
184  case 8:
185  coerceValue(value, myDivs);
186  break;
187  case 9:
188  coerceValue(value, myArc);
189  break;
190  case 10:
191  coerceValue(value, myAngle);
192  break;
193 
194  }
195  }
196 
197  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
198  { doGetParmValue(idx, instance, value); }
199  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
200  { doGetParmValue(idx, instance, value); }
201  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
202  { doGetParmValue(idx, instance, value); }
203  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
204  { doGetParmValue(idx, instance, value); }
205  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
206  { doGetParmValue(idx, instance, value); }
207  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
208  { doGetParmValue(idx, instance, value); }
209  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
210  { doGetParmValue(idx, instance, value); }
211  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
212  { doGetParmValue(idx, instance, value); }
213  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
214  { doGetParmValue(idx, instance, value); }
215  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
216  { doGetParmValue(idx, instance, value); }
217  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
218  { doGetParmValue(idx, instance, value); }
219 
220  template <typename T>
221  void
222  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
223  {
224  if (idx.size() < 1)
225  return;
226  UT_ASSERT(idx.size() == instance.size()+1);
227  if (idx.size() != instance.size()+1)
228  return;
229  switch (idx[0])
230  {
231  case 0:
232  coerceValue(myType, value);
233  break;
234  case 1:
235  coerceValue(myOrient, value);
236  break;
237  case 2:
238  coerceValue(myRad, value);
239  break;
240  case 3:
241  coerceValue(myT, value);
242  break;
243  case 4:
244  coerceValue(myR, value);
245  break;
246  case 5:
247  coerceValue(myScale, value);
248  break;
249  case 6:
250  coerceValue(myOrder, value);
251  break;
252  case 7:
253  coerceValue(myImperfect, value);
254  break;
255  case 8:
256  coerceValue(myDivs, value);
257  break;
258  case 9:
259  coerceValue(myArc, value);
260  break;
261  case 10:
262  coerceValue(myAngle, value);
263  break;
264 
265  }
266  }
267 
268  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
269  { doSetParmValue(idx, instance, value); }
270  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
271  { doSetParmValue(idx, instance, value); }
272  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
273  { doSetParmValue(idx, instance, value); }
274  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
275  { doSetParmValue(idx, instance, value); }
276  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
277  { doSetParmValue(idx, instance, value); }
278  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
279  { doSetParmValue(idx, instance, value); }
280  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
281  { doSetParmValue(idx, instance, value); }
282  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
283  { doSetParmValue(idx, instance, value); }
284  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
285  { doSetParmValue(idx, instance, value); }
286  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
287  { doSetParmValue(idx, instance, value); }
288  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
289  { doSetParmValue(idx, instance, value); }
290 
291  exint getNestNumParms(TempIndex idx) const override
292  {
293  if (idx.size() == 0)
294  return 11;
295  switch (idx[0])
296  {
297 
298  }
299  // Invalid
300  return 0;
301  }
302 
303  const char *getNestParmName(TempIndex fieldnum) const override
304  {
305  if (fieldnum.size() < 1)
306  return 0;
307  switch (fieldnum[0])
308  {
309  case 0:
310  return "type";
311  case 1:
312  return "orient";
313  case 2:
314  return "rad";
315  case 3:
316  return "t";
317  case 4:
318  return "r";
319  case 5:
320  return "scale";
321  case 6:
322  return "order";
323  case 7:
324  return "imperfect";
325  case 8:
326  return "divs";
327  case 9:
328  return "arc";
329  case 10:
330  return "angle";
331 
332  }
333  return 0;
334  }
335 
336  ParmType getNestParmType(TempIndex fieldnum) const override
337  {
338  if (fieldnum.size() < 1)
339  return PARM_UNSUPPORTED;
340  switch (fieldnum[0])
341  {
342  case 0:
343  return PARM_INTEGER;
344  case 1:
345  return PARM_INTEGER;
346  case 2:
347  return PARM_VECTOR2;
348  case 3:
349  return PARM_VECTOR3;
350  case 4:
351  return PARM_VECTOR3;
352  case 5:
353  return PARM_FLOAT;
354  case 6:
355  return PARM_INTEGER;
356  case 7:
357  return PARM_INTEGER;
358  case 8:
359  return PARM_INTEGER;
360  case 9:
361  return PARM_INTEGER;
362  case 10:
363  return PARM_VECTOR2;
364 
365  }
366  return PARM_UNSUPPORTED;
367  }
368 
369  // Boiler plate to load individual types.
370  static void loadData(UT_IStream &is, int64 &v)
371  { is.bread(&v, 1); }
372  static void loadData(UT_IStream &is, bool &v)
373  { int64 iv; is.bread(&iv, 1); v = iv; }
374  static void loadData(UT_IStream &is, fpreal64 &v)
375  { is.bread<fpreal64>(&v, 1); }
376  static void loadData(UT_IStream &is, UT_Vector2D &v)
377  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
378  static void loadData(UT_IStream &is, UT_Vector3D &v)
379  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
380  is.bread<fpreal64>(&v.z(), 1); }
381  static void loadData(UT_IStream &is, UT_Vector4D &v)
382  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
383  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
384  static void loadData(UT_IStream &is, UT_Matrix2D &v)
385  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
386  static void loadData(UT_IStream &is, UT_Matrix3D &v)
387  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
388  static void loadData(UT_IStream &is, UT_Matrix4D &v)
389  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
390  static void loadData(UT_IStream &is, UT_Vector2I &v)
391  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
392  static void loadData(UT_IStream &is, UT_Vector3I &v)
393  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
394  is.bread<int64>(&v.z(), 1); }
395  static void loadData(UT_IStream &is, UT_Vector4I &v)
396  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
397  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
399  { is.bread(v); }
401  { UT_StringHolder rampdata;
402  loadData(is, rampdata);
403  if (rampdata.isstring())
404  {
405  v.reset(new UT_Ramp());
406  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
407  v->load(istr);
408  }
409  else v.reset();
410  }
413  loadData(is, data);
414  if (data.isstring())
415  {
416  // Find the data type.
417  const char *colon = UT_StringWrap(data).findChar(':');
418  if (colon)
419  {
420  int typelen = colon - data.buffer();
422  type.strncpy(data.buffer(), typelen);
423  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
424 
425  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
426  }
427  }
428  else v.reset();
429  }
430 
431  static void saveData(std::ostream &os, int64 v)
432  { UTwrite(os, &v); }
433  static void saveData(std::ostream &os, bool v)
434  { int64 iv = v; UTwrite(os, &iv); }
435  static void saveData(std::ostream &os, fpreal64 v)
436  { UTwrite<fpreal64>(os, &v); }
437  static void saveData(std::ostream &os, UT_Vector2D v)
438  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
439  static void saveData(std::ostream &os, UT_Vector3D v)
440  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
441  UTwrite<fpreal64>(os, &v.z()); }
442  static void saveData(std::ostream &os, UT_Vector4D v)
443  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
444  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
445  static void saveData(std::ostream &os, UT_Matrix2D v)
447  static void saveData(std::ostream &os, UT_Matrix3D v)
449  static void saveData(std::ostream &os, UT_Matrix4D v)
451  static void saveData(std::ostream &os, UT_StringHolder s)
452  { UT_StringWrap(s).saveBinary(os); }
453  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
455  UT_OStringStream ostr;
456  if (s) s->save(ostr);
457  result = ostr.str();
458  saveData(os, result);
459  }
460  static void saveData(std::ostream &os, PRM_DataItemHandle s)
462  UT_OStringStream ostr;
463  if (s)
464  {
465  ostr << s->getDataTypeToken();
466  ostr << ":";
467  s->saveBinary(ostr);
468  }
469  result = ostr.str();
470  saveData(os, result);
471  }
472 
473 
474  void save(std::ostream &os) const
475  {
476  int32 v = version();
477  UTwrite(os, &v);
478  saveData(os, myType);
479  saveData(os, myOrient);
480  saveData(os, myRad);
481  saveData(os, myT);
482  saveData(os, myR);
483  saveData(os, myScale);
484  saveData(os, myOrder);
485  saveData(os, myImperfect);
486  saveData(os, myDivs);
487  saveData(os, myArc);
488  saveData(os, myAngle);
489 
490  }
491 
492  bool load(UT_IStream &is)
493  {
494  int32 v;
495  is.bread(&v, 1);
496  if (version() != v)
497  {
498  // Fail incompatible versions
499  return false;
500  }
501  loadData(is, myType);
502  loadData(is, myOrient);
503  loadData(is, myRad);
504  loadData(is, myT);
505  loadData(is, myR);
506  loadData(is, myScale);
507  loadData(is, myOrder);
508  loadData(is, myImperfect);
509  loadData(is, myDivs);
510  loadData(is, myArc);
511  loadData(is, myAngle);
512 
513  return true;
514  }
515 
516  Type getType() const { return Type(myType); }
517  void setType(Type val) { myType = int64(val); }
518  Type opType(const SOP_NodeVerb::CookParms &cookparms) const
519  {
520  SOP_Node *thissop = cookparms.getNode();
521  if (!thissop) return getType();
522  int64 result;
523  OP_Utils::evalOpParm(result, thissop, "type", cookparms.getCookTime(), 0);
524  return Type(result);
525  }
526  Orient getOrient() const { return Orient(myOrient); }
527  void setOrient(Orient val) { myOrient = int64(val); }
528  Orient opOrient(const SOP_NodeVerb::CookParms &cookparms) const
529  {
530  SOP_Node *thissop = cookparms.getNode();
531  if (!thissop) return getOrient();
532  int64 result;
533  OP_Utils::evalOpParm(result, thissop, "orient", cookparms.getCookTime(), 0);
534  return Orient(result);
535  }
536  UT_Vector2D getRad() const { return myRad; }
537  void setRad(UT_Vector2D val) { myRad = val; }
538  UT_Vector2D opRad(const SOP_NodeVerb::CookParms &cookparms) const
539  {
540  SOP_Node *thissop = cookparms.getNode();
541  if (!thissop) return getRad();
543  OP_Utils::evalOpParm(result, thissop, "rad", cookparms.getCookTime(), 0);
544  return result;
545  }
546  UT_Vector3D getT() const { return myT; }
547  void setT(UT_Vector3D val) { myT = val; }
548  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
549  {
550  SOP_Node *thissop = cookparms.getNode();
551  if (!thissop) return getT();
553  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
554  return result;
555  }
556  UT_Vector3D getR() const { return myR; }
557  void setR(UT_Vector3D val) { myR = val; }
558  UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
559  {
560  SOP_Node *thissop = cookparms.getNode();
561  if (!thissop) return getR();
563  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
564  return result;
565  }
566  fpreal64 getScale() const { return myScale; }
567  void setScale(fpreal64 val) { myScale = val; }
568  fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
569  {
570  SOP_Node *thissop = cookparms.getNode();
571  if (!thissop) return getScale();
573  OP_Utils::evalOpParm(result, thissop, "scale", cookparms.getCookTime(), 0);
574  return result;
575  }
576  int64 getOrder() const { return myOrder; }
577  void setOrder(int64 val) { myOrder = val; }
578  int64 opOrder(const SOP_NodeVerb::CookParms &cookparms) const
579  {
580  SOP_Node *thissop = cookparms.getNode();
581  if (!thissop) return getOrder();
582  int64 result;
583  OP_Utils::evalOpParm(result, thissop, "order", cookparms.getCookTime(), 0);
584  return result;
585  }
586  bool getImperfect() const { return myImperfect; }
587  void setImperfect(bool val) { myImperfect = val; }
588  bool opImperfect(const SOP_NodeVerb::CookParms &cookparms) const
589  {
590  SOP_Node *thissop = cookparms.getNode();
591  if (!thissop) return getImperfect();
592  bool result;
593  OP_Utils::evalOpParm(result, thissop, "imperfect", cookparms.getCookTime(), 0);
594  return result;
595  }
596  int64 getDivs() const { return myDivs; }
597  void setDivs(int64 val) { myDivs = val; }
598  int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
599  {
600  SOP_Node *thissop = cookparms.getNode();
601  if (!thissop) return getDivs();
602  int64 result;
603  OP_Utils::evalOpParm(result, thissop, "divs", cookparms.getCookTime(), 0);
604  return result;
605  }
606  Arc getArc() const { return Arc(myArc); }
607  void setArc(Arc val) { myArc = int64(val); }
608  Arc opArc(const SOP_NodeVerb::CookParms &cookparms) const
609  {
610  SOP_Node *thissop = cookparms.getNode();
611  if (!thissop) return getArc();
612  int64 result;
613  OP_Utils::evalOpParm(result, thissop, "arc", cookparms.getCookTime(), 0);
614  return Arc(result);
615  }
616  UT_Vector2D getAngle() const { return myAngle; }
617  void setAngle(UT_Vector2D val) { myAngle = val; }
619  {
620  SOP_Node *thissop = cookparms.getNode();
621  if (!thissop) return getAngle();
623  OP_Utils::evalOpParm(result, thissop, "angle", cookparms.getCookTime(), 0);
624  return result;
625  }
626 
627 private:
628  int64 myType;
629  int64 myOrient;
630  UT_Vector2D myRad;
631  UT_Vector3D myT;
632  UT_Vector3D myR;
633  fpreal64 myScale;
634  int64 myOrder;
635  bool myImperfect;
636  int64 myDivs;
637  int64 myArc;
638  UT_Vector2D myAngle;
639 
640 };
GLdouble s
Definition: glew.h:1390
static void saveData(std::ostream &os, UT_Matrix3D v)
UT_Vector2D opRad(const SOP_NodeVerb::CookParms &cookparms) const
Orient getOrient() const
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
static void loadData(UT_IStream &is, UT_Vector2D &v)
UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
const char * getNestParmName(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
fpreal64 getScale() const
void copyFrom(const SOP_NodeParms *src) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setOrder(int64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
int myOrder
Definition: GT_CurveEval.h:263
exint bread(int32 *buffer, exint asize=1)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setT(UT_Vector3D val)
GT_API const UT_StringHolder time
fpreal getTime() const
Definition: OP_Context.h:60
UT_Vector2T< fpreal64 > UT_Vector2D
GLuint const GLfloat * val
Definition: glew.h:2794
bool getImperfect() const
Type opType(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
int64 exint
Definition: SYS_Types.h:125
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_Vector3D getR() const
SYS_FORCE_INLINE const char * buffer() const
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
Orient opOrient(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
UT_Vector2D getRad() const
const GLdouble * v
Definition: glew.h:1391
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
Arc opArc(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void saveData(std::ostream &os, UT_StringHolder s)
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void setType(Type val)
static void saveData(std::ostream &os, int64 v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
double fpreal64
Definition: SYS_Types.h:201
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
UT_Vector2D getAngle() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void saveData(std::ostream &os, UT_Vector2D v)
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
static void loadData(UT_IStream &is, UT_Vector4I &v)
exint length() const
UT_Vector3D getT() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
static void saveData(std::ostream &os, fpreal64 v)
GLint GLenum GLsizei GLint GLsizei const void * data
Definition: glew.h:1379
void setAngle(UT_Vector2D val)
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
static void saveData(std::ostream &os, bool v)
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
const GLfloat * c
Definition: glew.h:16296
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
Type getType() const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, int64 &v)
bool opImperfect(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
UT_Vector3T< fpreal64 > UT_Vector3D
static void loadData(UT_IStream &is, UT_Vector3D &v)
void save(std::ostream &os) const
void setRad(UT_Vector2D val)
UT_Vector2D opAngle(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
int64 getDivs() const
static void loadData(UT_IStream &is, fpreal64 &v)
int64 opOrder(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
~SOP_CircleParms() override
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
bool operator!=(const SOP_CircleParms &src) const
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void loadData(UT_IStream &is, UT_StringHolder &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void loadData(UT_IStream &is, bool &v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setR(UT_Vector3D val)
static void saveData(std::ostream &os, UT_Matrix4D v)
fpreal64 fpreal
Definition: SYS_Types.h:277
static void loadData(UT_IStream &is, UT_Vector3I &v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
Definition: Mat.h:648
bool load(UT_IStream &is)
#define SOP_API
Definition: SOP_API.h:10
void setImperfect(bool val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void loadData(UT_IStream &is, UT_Vector4D &v)
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
int64 opDivs(const SOP_NodeVerb::CookParms &cookparms) const
Arc getArc() const
GLuint64EXT * result
Definition: glew.h:14007
int64 getOrder() const
static int version()
const char * findChar(int c) const
Definition: UT_String.h:1367
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setScale(fpreal64 val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool operator==(const SOP_CircleParms &src) const
void setArc(Arc val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setOrient(Orient val)
GLsizei const GLfloat * value
Definition: glew.h:1849
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
void setDivs(int64 val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Vector4D v)
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector3D v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
type
Definition: core.h:528
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override