HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Resample.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_ResampleEnums
24 {
25  enum class Method
26  {
27  DIST = 0,
28  X,
29  Y,
30  Z
31  };
32  enum class Measure
33  {
34  ARC = 0,
35  CHORD
36  };
37  enum class Treatpolysas
38  {
39  STRAIGHT = 0,
40  SUBD,
41  INTERP
42  };
43 }
44 
45 
47 {
48 public:
49  static int version() { return 1; }
50 
52  {
53  myGroup = ""_UTsh;
54  myMaintainprimorder = false;
55  myLod = 1;
56  myEdge = false;
57  myMethod = 0;
58  myMeasure = 0;
59  myDolength = true;
60  myLength = 0.1;
61  myDosegs = false;
62  mySegs = 10;
63  myUseattribs = true;
64  myAllequal = true;
65  myLast = false;
66  myRandomshift = false;
67  myOnlypoints = false;
68  myTreatpolysas = 0;
69  myOutputsubdpoly = false;
70  myDoptdistattr = false;
71  myPtdistattr = "ptdist"_UTsh;
72  myDotangentattr = false;
73  myTangentattr = "tangentu"_UTsh;
74  myDocurveuattr = false;
75  myCurveuattr = "curveu"_UTsh;
76  myDocurvenumattr = false;
77  myCurvenumattr = "curvenum"_UTsh;
78 
79  }
80 
81  explicit SOP_ResampleParms(const SOP_ResampleParms &) = default;
82  SOP_ResampleParms &operator=(const SOP_ResampleParms &) = default;
83  SOP_ResampleParms(SOP_ResampleParms &&) noexcept = default;
84  SOP_ResampleParms &operator=(SOP_ResampleParms &&) noexcept = default;
85 
86  ~SOP_ResampleParms() override {}
87 
88  bool operator==(const SOP_ResampleParms &src) const
89  {
90  if (myGroup != src.myGroup) return false;
91  if (myMaintainprimorder != src.myMaintainprimorder) return false;
92  if (myLod != src.myLod) return false;
93  if (myEdge != src.myEdge) return false;
94  if (myMethod != src.myMethod) return false;
95  if (myMeasure != src.myMeasure) return false;
96  if (myDolength != src.myDolength) return false;
97  if (myLength != src.myLength) return false;
98  if (myDosegs != src.myDosegs) return false;
99  if (mySegs != src.mySegs) return false;
100  if (myUseattribs != src.myUseattribs) return false;
101  if (myAllequal != src.myAllequal) return false;
102  if (myLast != src.myLast) return false;
103  if (myRandomshift != src.myRandomshift) return false;
104  if (myOnlypoints != src.myOnlypoints) return false;
105  if (myTreatpolysas != src.myTreatpolysas) return false;
106  if (myOutputsubdpoly != src.myOutputsubdpoly) return false;
107  if (myDoptdistattr != src.myDoptdistattr) return false;
108  if (myPtdistattr != src.myPtdistattr) return false;
109  if (myDotangentattr != src.myDotangentattr) return false;
110  if (myTangentattr != src.myTangentattr) return false;
111  if (myDocurveuattr != src.myDocurveuattr) return false;
112  if (myCurveuattr != src.myCurveuattr) return false;
113  if (myDocurvenumattr != src.myDocurvenumattr) return false;
114  if (myCurvenumattr != src.myCurvenumattr) return false;
115 
116  return true;
117  }
118  bool operator!=(const SOP_ResampleParms &src) const
119  {
120  return !operator==(src);
121  }
125 
126 
127 
128  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
129  {
130  myGroup = ""_UTsh;
131  if (true)
132  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
133  myMaintainprimorder = false;
134  if (true)
135  graph->evalOpParm(myMaintainprimorder, nodeidx, "maintainprimorder", time, 0);
136  myLod = 1;
137  if (true)
138  graph->evalOpParm(myLod, nodeidx, "lod", time, 0);
139  myEdge = false;
140  if (true)
141  graph->evalOpParm(myEdge, nodeidx, "edge", time, 0);
142  myMethod = 0;
143  if (true)
144  graph->evalOpParm(myMethod, nodeidx, "method", time, 0);
145  myMeasure = 0;
146  if (true)
147  graph->evalOpParm(myMeasure, nodeidx, "measure", time, 0);
148  myDolength = true;
149  if (true)
150  graph->evalOpParm(myDolength, nodeidx, "dolength", time, 0);
151  myLength = 0.1;
152  if (true && ( (true&&!(((getDolength()==0)))) ) )
153  graph->evalOpParm(myLength, nodeidx, "length", time, 0);
154  myDosegs = false;
155  if (true)
156  graph->evalOpParm(myDosegs, nodeidx, "dosegs", time, 0);
157  mySegs = 10;
158  if (true && ( (true&&!(((getDosegs()==0)))) ) )
159  graph->evalOpParm(mySegs, nodeidx, "segs", time, 0);
160  myUseattribs = true;
161  if (true)
162  graph->evalOpParm(myUseattribs, nodeidx, "useattribs", time, 0);
163  myAllequal = true;
164  if (true && ( (true&&!(((getDolength()==0))||((getEdge()==1))||((int64(getMeasure())!=0))||((int64(getMethod())!=0)))) ) )
165  graph->evalOpParm(myAllequal, nodeidx, "allequal", time, 0);
166  myLast = false;
167  if (true && ( (true&&!(((getDolength()==0))||((getEdge()==1))||((getDolength()==1)&&(getEdge()==0)&&(int64(getMeasure())==0)&&(int64(getMethod())==0)&&(getAllequal()==1)))) ) )
168  graph->evalOpParm(myLast, nodeidx, "last", time, 0);
169  myRandomshift = false;
170  if (true && ( (true&&!(((getDolength()==0))||((getEdge()==1))||((getDolength()==1)&&(getEdge()==0)&&(int64(getMeasure())==0)&&(int64(getMethod())==0)&&(getAllequal()==1)))) ) )
171  graph->evalOpParm(myRandomshift, nodeidx, "randomshift", time, 0);
172  myOnlypoints = false;
173  if (true)
174  graph->evalOpParm(myOnlypoints, nodeidx, "onlypoints", time, 0);
175  myTreatpolysas = 0;
176  if (true)
177  graph->evalOpParm(myTreatpolysas, nodeidx, "treatpolysas", time, 0);
178  myOutputsubdpoly = false;
179  if (true)
180  graph->evalOpParm(myOutputsubdpoly, nodeidx, "outputsubdpoly", time, 0);
181  myDoptdistattr = false;
182  if (true)
183  graph->evalOpParm(myDoptdistattr, nodeidx, "doptdistattr", time, 0);
184  myPtdistattr = "ptdist"_UTsh;
185  if (true && ( (true&&!(((getDoptdistattr()==0)))) ) )
186  graph->evalOpParm(myPtdistattr, nodeidx, "ptdistattr", time, 0);
187  myDotangentattr = false;
188  if (true)
189  graph->evalOpParm(myDotangentattr, nodeidx, "dotangentattr", time, 0);
190  myTangentattr = "tangentu"_UTsh;
191  if (true && ( (true&&!(((getDotangentattr()==0)))) ) )
192  graph->evalOpParm(myTangentattr, nodeidx, "tangentattr", time, 0);
193  myDocurveuattr = false;
194  if (true)
195  graph->evalOpParm(myDocurveuattr, nodeidx, "docurveuattr", time, 0);
196  myCurveuattr = "curveu"_UTsh;
197  if (true && ( (true&&!(((getDocurveuattr()==0)))) ) )
198  graph->evalOpParm(myCurveuattr, nodeidx, "curveuattr", time, 0);
199  myDocurvenumattr = false;
200  if (true)
201  graph->evalOpParm(myDocurvenumattr, nodeidx, "docurvenumattr", time, 0);
202  myCurvenumattr = "curvenum"_UTsh;
203  if (true && ( (true&&!(((getDocurvenumattr()==0)))) ) )
204  graph->evalOpParm(myCurvenumattr, nodeidx, "curvenumattr", time, 0);
205 
206  }
207 
208 
209  void loadFromOpSubclass(const LoadParms &loadparms) override
210  {
211  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
212  }
213 
214 
215  void copyFrom(const OP_NodeParms *src) override
216  {
217  *this = *((const SOP_ResampleParms *)src);
218  }
219 
220  template <typename T>
221  void
222  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
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(value, myGroup);
233  break;
234  case 1:
235  coerceValue(value, myMaintainprimorder);
236  break;
237  case 2:
238  coerceValue(value, myLod);
239  break;
240  case 3:
241  coerceValue(value, myEdge);
242  break;
243  case 4:
244  coerceValue(value, myMethod);
245  break;
246  case 5:
247  coerceValue(value, myMeasure);
248  break;
249  case 6:
250  coerceValue(value, myDolength);
251  break;
252  case 7:
253  coerceValue(value, myLength);
254  break;
255  case 8:
256  coerceValue(value, myDosegs);
257  break;
258  case 9:
259  coerceValue(value, mySegs);
260  break;
261  case 10:
262  coerceValue(value, myUseattribs);
263  break;
264  case 11:
265  coerceValue(value, myAllequal);
266  break;
267  case 12:
268  coerceValue(value, myLast);
269  break;
270  case 13:
271  coerceValue(value, myRandomshift);
272  break;
273  case 14:
274  coerceValue(value, myOnlypoints);
275  break;
276  case 15:
277  coerceValue(value, myTreatpolysas);
278  break;
279  case 16:
280  coerceValue(value, myOutputsubdpoly);
281  break;
282  case 17:
283  coerceValue(value, myDoptdistattr);
284  break;
285  case 18:
286  coerceValue(value, myPtdistattr);
287  break;
288  case 19:
289  coerceValue(value, myDotangentattr);
290  break;
291  case 20:
292  coerceValue(value, myTangentattr);
293  break;
294  case 21:
295  coerceValue(value, myDocurveuattr);
296  break;
297  case 22:
298  coerceValue(value, myCurveuattr);
299  break;
300  case 23:
301  coerceValue(value, myDocurvenumattr);
302  break;
303  case 24:
304  coerceValue(value, myCurvenumattr);
305  break;
306 
307  }
308  }
309 
310  bool isParmColorRamp(exint idx) const override
311  {
312  switch (idx)
313  {
314 
315  }
316  return false;
317  }
318 
319  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
320  { doGetParmValue(idx, instance, value); }
321  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
322  { doGetParmValue(idx, instance, value); }
323  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
324  { doGetParmValue(idx, instance, value); }
325  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
326  { doGetParmValue(idx, instance, value); }
327  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
328  { doGetParmValue(idx, instance, value); }
329  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
330  { doGetParmValue(idx, instance, value); }
331  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
332  { doGetParmValue(idx, instance, value); }
333  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
334  { doGetParmValue(idx, instance, value); }
335  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
336  { doGetParmValue(idx, instance, value); }
337  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
338  { doGetParmValue(idx, instance, value); }
339  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
340  { doGetParmValue(idx, instance, value); }
341 
342  template <typename T>
343  void
344  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
345  {
346  if (idx.size() < 1)
347  return;
348  UT_ASSERT(idx.size() == instance.size()+1);
349  if (idx.size() != instance.size()+1)
350  return;
351  switch (idx[0])
352  {
353  case 0:
354  coerceValue(myGroup, ( ( value ) ));
355  break;
356  case 1:
357  coerceValue(myMaintainprimorder, ( ( value ) ));
358  break;
359  case 2:
360  coerceValue(myLod, clampMinValue(0.001, ( value ) ));
361  break;
362  case 3:
363  coerceValue(myEdge, ( ( value ) ));
364  break;
365  case 4:
366  coerceValue(myMethod, clampMinValue(0, clampMaxValue(3, value ) ));
367  break;
368  case 5:
369  coerceValue(myMeasure, clampMinValue(0, clampMaxValue(1, value ) ));
370  break;
371  case 6:
372  coerceValue(myDolength, ( ( value ) ));
373  break;
374  case 7:
375  coerceValue(myLength, clampMinValue(0, ( value ) ));
376  break;
377  case 8:
378  coerceValue(myDosegs, ( ( value ) ));
379  break;
380  case 9:
381  coerceValue(mySegs, clampMinValue(1, ( value ) ));
382  break;
383  case 10:
384  coerceValue(myUseattribs, ( ( value ) ));
385  break;
386  case 11:
387  coerceValue(myAllequal, ( ( value ) ));
388  break;
389  case 12:
390  coerceValue(myLast, ( ( value ) ));
391  break;
392  case 13:
393  coerceValue(myRandomshift, ( ( value ) ));
394  break;
395  case 14:
396  coerceValue(myOnlypoints, ( ( value ) ));
397  break;
398  case 15:
399  coerceValue(myTreatpolysas, clampMinValue(0, clampMaxValue(2, value ) ));
400  break;
401  case 16:
402  coerceValue(myOutputsubdpoly, ( ( value ) ));
403  break;
404  case 17:
405  coerceValue(myDoptdistattr, ( ( value ) ));
406  break;
407  case 18:
408  coerceValue(myPtdistattr, ( ( value ) ));
409  break;
410  case 19:
411  coerceValue(myDotangentattr, ( ( value ) ));
412  break;
413  case 20:
414  coerceValue(myTangentattr, ( ( value ) ));
415  break;
416  case 21:
417  coerceValue(myDocurveuattr, ( ( value ) ));
418  break;
419  case 22:
420  coerceValue(myCurveuattr, ( ( value ) ));
421  break;
422  case 23:
423  coerceValue(myDocurvenumattr, ( ( value ) ));
424  break;
425  case 24:
426  coerceValue(myCurvenumattr, ( ( value ) ));
427  break;
428 
429  }
430  }
431 
432  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
433  { doSetParmValue(idx, instance, value); }
434  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
435  { doSetParmValue(idx, instance, value); }
436  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
437  { doSetParmValue(idx, instance, value); }
438  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
439  { doSetParmValue(idx, instance, value); }
440  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
441  { doSetParmValue(idx, instance, value); }
442  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
443  { doSetParmValue(idx, instance, value); }
444  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
445  { doSetParmValue(idx, instance, value); }
446  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
447  { doSetParmValue(idx, instance, value); }
448  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
449  { doSetParmValue(idx, instance, value); }
450  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
451  { doSetParmValue(idx, instance, value); }
452  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
453  { doSetParmValue(idx, instance, value); }
454 
455  exint getNestNumParms(TempIndex idx) const override
456  {
457  if (idx.size() == 0)
458  return 25;
459  switch (idx[0])
460  {
461 
462  }
463  // Invalid
464  return 0;
465  }
466 
467  const char *getNestParmName(TempIndex fieldnum) const override
468  {
469  if (fieldnum.size() < 1)
470  return 0;
471  switch (fieldnum[0])
472  {
473  case 0:
474  return "group";
475  case 1:
476  return "maintainprimorder";
477  case 2:
478  return "lod";
479  case 3:
480  return "edge";
481  case 4:
482  return "method";
483  case 5:
484  return "measure";
485  case 6:
486  return "dolength";
487  case 7:
488  return "length";
489  case 8:
490  return "dosegs";
491  case 9:
492  return "segs";
493  case 10:
494  return "useattribs";
495  case 11:
496  return "allequal";
497  case 12:
498  return "last";
499  case 13:
500  return "randomshift";
501  case 14:
502  return "onlypoints";
503  case 15:
504  return "treatpolysas";
505  case 16:
506  return "outputsubdpoly";
507  case 17:
508  return "doptdistattr";
509  case 18:
510  return "ptdistattr";
511  case 19:
512  return "dotangentattr";
513  case 20:
514  return "tangentattr";
515  case 21:
516  return "docurveuattr";
517  case 22:
518  return "curveuattr";
519  case 23:
520  return "docurvenumattr";
521  case 24:
522  return "curvenumattr";
523 
524  }
525  return 0;
526  }
527 
528  ParmType getNestParmType(TempIndex fieldnum) const override
529  {
530  if (fieldnum.size() < 1)
531  return PARM_UNSUPPORTED;
532  switch (fieldnum[0])
533  {
534  case 0:
535  return PARM_STRING;
536  case 1:
537  return PARM_INTEGER;
538  case 2:
539  return PARM_FLOAT;
540  case 3:
541  return PARM_INTEGER;
542  case 4:
543  return PARM_INTEGER;
544  case 5:
545  return PARM_INTEGER;
546  case 6:
547  return PARM_INTEGER;
548  case 7:
549  return PARM_FLOAT;
550  case 8:
551  return PARM_INTEGER;
552  case 9:
553  return PARM_INTEGER;
554  case 10:
555  return PARM_INTEGER;
556  case 11:
557  return PARM_INTEGER;
558  case 12:
559  return PARM_INTEGER;
560  case 13:
561  return PARM_INTEGER;
562  case 14:
563  return PARM_INTEGER;
564  case 15:
565  return PARM_INTEGER;
566  case 16:
567  return PARM_INTEGER;
568  case 17:
569  return PARM_INTEGER;
570  case 18:
571  return PARM_STRING;
572  case 19:
573  return PARM_INTEGER;
574  case 20:
575  return PARM_STRING;
576  case 21:
577  return PARM_INTEGER;
578  case 22:
579  return PARM_STRING;
580  case 23:
581  return PARM_INTEGER;
582  case 24:
583  return PARM_STRING;
584 
585  }
586  return PARM_UNSUPPORTED;
587  }
588 
589  // Boiler plate to load individual types.
590  static void loadData(UT_IStream &is, int64 &v)
591  { is.bread(&v, 1); }
592  static void loadData(UT_IStream &is, bool &v)
593  { int64 iv; is.bread(&iv, 1); v = iv; }
594  static void loadData(UT_IStream &is, fpreal64 &v)
595  { is.bread<fpreal64>(&v, 1); }
596  static void loadData(UT_IStream &is, UT_Vector2D &v)
597  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
598  static void loadData(UT_IStream &is, UT_Vector3D &v)
599  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
600  is.bread<fpreal64>(&v.z(), 1); }
601  static void loadData(UT_IStream &is, UT_Vector4D &v)
602  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
603  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
604  static void loadData(UT_IStream &is, UT_Matrix2D &v)
605  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
606  static void loadData(UT_IStream &is, UT_Matrix3D &v)
607  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
608  static void loadData(UT_IStream &is, UT_Matrix4D &v)
609  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
610  static void loadData(UT_IStream &is, UT_Vector2I &v)
611  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
612  static void loadData(UT_IStream &is, UT_Vector3I &v)
613  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
614  is.bread<int64>(&v.z(), 1); }
615  static void loadData(UT_IStream &is, UT_Vector4I &v)
616  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
617  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
619  { is.bread(v); }
621  { UT_StringHolder rampdata;
622  loadData(is, rampdata);
623  if (rampdata.isstring())
624  {
625  v.reset(new UT_Ramp());
626  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
627  v->load(istr);
628  }
629  else v.reset();
630  }
633  loadData(is, data);
634  if (data.isstring())
635  {
636  // Find the data type.
637  const char *colon = UT_StringWrap(data).findChar(':');
638  if (colon)
639  {
640  int typelen = colon - data.buffer();
642  type.strncpy(data.buffer(), typelen);
643  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
644 
645  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
646  }
647  }
648  else v.reset();
649  }
650 
651  static void saveData(std::ostream &os, int64 v)
652  { UTwrite(os, &v); }
653  static void saveData(std::ostream &os, bool v)
654  { int64 iv = v; UTwrite(os, &iv); }
655  static void saveData(std::ostream &os, fpreal64 v)
656  { UTwrite<fpreal64>(os, &v); }
657  static void saveData(std::ostream &os, UT_Vector2D v)
658  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
659  static void saveData(std::ostream &os, UT_Vector3D v)
660  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
661  UTwrite<fpreal64>(os, &v.z()); }
662  static void saveData(std::ostream &os, UT_Vector4D v)
663  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
664  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
665  static void saveData(std::ostream &os, UT_Matrix2D v)
667  static void saveData(std::ostream &os, UT_Matrix3D v)
669  static void saveData(std::ostream &os, UT_Matrix4D v)
671  static void saveData(std::ostream &os, UT_StringHolder s)
672  { UT_StringWrap(s).saveBinary(os); }
673  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
675  UT_OStringStream ostr;
676  if (s) s->save(ostr);
677  result = ostr.str();
678  saveData(os, result);
679  }
680  static void saveData(std::ostream &os, PRM_DataItemHandle s)
682  UT_OStringStream ostr;
683  if (s)
684  {
685  ostr << s->getDataTypeToken();
686  ostr << ":";
687  s->saveBinary(ostr);
688  }
689  result = ostr.str();
690  saveData(os, result);
691  }
692 
693 
694  void save(std::ostream &os) const
695  {
696  int32 v = version();
697  UTwrite(os, &v);
698  saveData(os, myGroup);
699  saveData(os, myMaintainprimorder);
700  saveData(os, myLod);
701  saveData(os, myEdge);
702  saveData(os, myMethod);
703  saveData(os, myMeasure);
704  saveData(os, myDolength);
705  saveData(os, myLength);
706  saveData(os, myDosegs);
707  saveData(os, mySegs);
708  saveData(os, myUseattribs);
709  saveData(os, myAllequal);
710  saveData(os, myLast);
711  saveData(os, myRandomshift);
712  saveData(os, myOnlypoints);
713  saveData(os, myTreatpolysas);
714  saveData(os, myOutputsubdpoly);
715  saveData(os, myDoptdistattr);
716  saveData(os, myPtdistattr);
717  saveData(os, myDotangentattr);
718  saveData(os, myTangentattr);
719  saveData(os, myDocurveuattr);
720  saveData(os, myCurveuattr);
721  saveData(os, myDocurvenumattr);
722  saveData(os, myCurvenumattr);
723 
724  }
725 
726  bool load(UT_IStream &is)
727  {
728  int32 v;
729  is.bread(&v, 1);
730  if (version() != v)
731  {
732  // Fail incompatible versions
733  return false;
734  }
735  loadData(is, myGroup);
736  loadData(is, myMaintainprimorder);
737  loadData(is, myLod);
738  loadData(is, myEdge);
739  loadData(is, myMethod);
740  loadData(is, myMeasure);
741  loadData(is, myDolength);
742  loadData(is, myLength);
743  loadData(is, myDosegs);
744  loadData(is, mySegs);
745  loadData(is, myUseattribs);
746  loadData(is, myAllequal);
747  loadData(is, myLast);
748  loadData(is, myRandomshift);
749  loadData(is, myOnlypoints);
750  loadData(is, myTreatpolysas);
751  loadData(is, myOutputsubdpoly);
752  loadData(is, myDoptdistattr);
753  loadData(is, myPtdistattr);
754  loadData(is, myDotangentattr);
755  loadData(is, myTangentattr);
756  loadData(is, myDocurveuattr);
757  loadData(is, myCurveuattr);
758  loadData(is, myDocurvenumattr);
759  loadData(is, myCurvenumattr);
760 
761  return true;
762  }
763 
764  const UT_StringHolder & getGroup() const { return myGroup; }
765  void setGroup(const UT_StringHolder & val) { myGroup = val; }
767  {
768  SOP_Node *thissop = cookparms.getNode();
769  if (!thissop) return getGroup();
771  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
772  return result;
773  }
774  bool getMaintainprimorder() const { return myMaintainprimorder; }
775  void setMaintainprimorder(bool val) { myMaintainprimorder = val; }
776  bool opMaintainprimorder(const SOP_NodeVerb::CookParms &cookparms) const
777  {
778  SOP_Node *thissop = cookparms.getNode();
779  if (!thissop) return getMaintainprimorder();
780  bool result;
781  OP_Utils::evalOpParm(result, thissop, "maintainprimorder", cookparms.getCookTime(), 0);
782  return result;
783  }
784  fpreal64 getLod() const { return myLod; }
785  void setLod(fpreal64 val) { myLod = val; }
786  fpreal64 opLod(const SOP_NodeVerb::CookParms &cookparms) const
787  {
788  SOP_Node *thissop = cookparms.getNode();
789  if (!thissop) return getLod();
791  OP_Utils::evalOpParm(result, thissop, "lod", cookparms.getCookTime(), 0);
792  return result;
793  }
794  bool getEdge() const { return myEdge; }
795  void setEdge(bool val) { myEdge = val; }
796  bool opEdge(const SOP_NodeVerb::CookParms &cookparms) const
797  {
798  SOP_Node *thissop = cookparms.getNode();
799  if (!thissop) return getEdge();
800  bool result;
801  OP_Utils::evalOpParm(result, thissop, "edge", cookparms.getCookTime(), 0);
802  return result;
803  }
804  Method getMethod() const { return Method(myMethod); }
805  void setMethod(Method val) { myMethod = int64(val); }
806  Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
807  {
808  SOP_Node *thissop = cookparms.getNode();
809  if (!thissop) return getMethod();
810  int64 result;
811  OP_Utils::evalOpParm(result, thissop, "method", cookparms.getCookTime(), 0);
812  return Method(result);
813  }
814  Measure getMeasure() const { return Measure(myMeasure); }
815  void setMeasure(Measure val) { myMeasure = int64(val); }
816  Measure opMeasure(const SOP_NodeVerb::CookParms &cookparms) const
817  {
818  SOP_Node *thissop = cookparms.getNode();
819  if (!thissop) return getMeasure();
820  int64 result;
821  OP_Utils::evalOpParm(result, thissop, "measure", cookparms.getCookTime(), 0);
822  return Measure(result);
823  }
824  bool getDolength() const { return myDolength; }
825  void setDolength(bool val) { myDolength = val; }
826  bool opDolength(const SOP_NodeVerb::CookParms &cookparms) const
827  {
828  SOP_Node *thissop = cookparms.getNode();
829  if (!thissop) return getDolength();
830  bool result;
831  OP_Utils::evalOpParm(result, thissop, "dolength", cookparms.getCookTime(), 0);
832  return result;
833  }
834  fpreal64 getLength() const { return myLength; }
835  void setLength(fpreal64 val) { myLength = val; }
836  fpreal64 opLength(const SOP_NodeVerb::CookParms &cookparms) const
837  {
838  SOP_Node *thissop = cookparms.getNode();
839  if (!thissop) return getLength();
841  OP_Utils::evalOpParm(result, thissop, "length", cookparms.getCookTime(), 0);
842  return result;
843  }
844  bool getDosegs() const { return myDosegs; }
845  void setDosegs(bool val) { myDosegs = val; }
846  bool opDosegs(const SOP_NodeVerb::CookParms &cookparms) const
847  {
848  SOP_Node *thissop = cookparms.getNode();
849  if (!thissop) return getDosegs();
850  bool result;
851  OP_Utils::evalOpParm(result, thissop, "dosegs", cookparms.getCookTime(), 0);
852  return result;
853  }
854  int64 getSegs() const { return mySegs; }
855  void setSegs(int64 val) { mySegs = val; }
856  int64 opSegs(const SOP_NodeVerb::CookParms &cookparms) const
857  {
858  SOP_Node *thissop = cookparms.getNode();
859  if (!thissop) return getSegs();
860  int64 result;
861  OP_Utils::evalOpParm(result, thissop, "segs", cookparms.getCookTime(), 0);
862  return result;
863  }
864  bool getUseattribs() const { return myUseattribs; }
865  void setUseattribs(bool val) { myUseattribs = val; }
866  bool opUseattribs(const SOP_NodeVerb::CookParms &cookparms) const
867  {
868  SOP_Node *thissop = cookparms.getNode();
869  if (!thissop) return getUseattribs();
870  bool result;
871  OP_Utils::evalOpParm(result, thissop, "useattribs", cookparms.getCookTime(), 0);
872  return result;
873  }
874  bool getAllequal() const { return myAllequal; }
875  void setAllequal(bool val) { myAllequal = val; }
876  bool opAllequal(const SOP_NodeVerb::CookParms &cookparms) const
877  {
878  SOP_Node *thissop = cookparms.getNode();
879  if (!thissop) return getAllequal();
880  bool result;
881  OP_Utils::evalOpParm(result, thissop, "allequal", cookparms.getCookTime(), 0);
882  return result;
883  }
884  bool getLast() const { return myLast; }
885  void setLast(bool val) { myLast = val; }
886  bool opLast(const SOP_NodeVerb::CookParms &cookparms) const
887  {
888  SOP_Node *thissop = cookparms.getNode();
889  if (!thissop) return getLast();
890  bool result;
891  OP_Utils::evalOpParm(result, thissop, "last", cookparms.getCookTime(), 0);
892  return result;
893  }
894  bool getRandomshift() const { return myRandomshift; }
895  void setRandomshift(bool val) { myRandomshift = val; }
896  bool opRandomshift(const SOP_NodeVerb::CookParms &cookparms) const
897  {
898  SOP_Node *thissop = cookparms.getNode();
899  if (!thissop) return getRandomshift();
900  bool result;
901  OP_Utils::evalOpParm(result, thissop, "randomshift", cookparms.getCookTime(), 0);
902  return result;
903  }
904  bool getOnlypoints() const { return myOnlypoints; }
905  void setOnlypoints(bool val) { myOnlypoints = val; }
906  bool opOnlypoints(const SOP_NodeVerb::CookParms &cookparms) const
907  {
908  SOP_Node *thissop = cookparms.getNode();
909  if (!thissop) return getOnlypoints();
910  bool result;
911  OP_Utils::evalOpParm(result, thissop, "onlypoints", cookparms.getCookTime(), 0);
912  return result;
913  }
914  Treatpolysas getTreatpolysas() const { return Treatpolysas(myTreatpolysas); }
915  void setTreatpolysas(Treatpolysas val) { myTreatpolysas = int64(val); }
917  {
918  SOP_Node *thissop = cookparms.getNode();
919  if (!thissop) return getTreatpolysas();
920  int64 result;
921  OP_Utils::evalOpParm(result, thissop, "treatpolysas", cookparms.getCookTime(), 0);
922  return Treatpolysas(result);
923  }
924  bool getOutputsubdpoly() const { return myOutputsubdpoly; }
925  void setOutputsubdpoly(bool val) { myOutputsubdpoly = val; }
926  bool opOutputsubdpoly(const SOP_NodeVerb::CookParms &cookparms) const
927  {
928  SOP_Node *thissop = cookparms.getNode();
929  if (!thissop) return getOutputsubdpoly();
930  bool result;
931  OP_Utils::evalOpParm(result, thissop, "outputsubdpoly", cookparms.getCookTime(), 0);
932  return result;
933  }
934  bool getDoptdistattr() const { return myDoptdistattr; }
935  void setDoptdistattr(bool val) { myDoptdistattr = val; }
936  bool opDoptdistattr(const SOP_NodeVerb::CookParms &cookparms) const
937  {
938  SOP_Node *thissop = cookparms.getNode();
939  if (!thissop) return getDoptdistattr();
940  bool result;
941  OP_Utils::evalOpParm(result, thissop, "doptdistattr", cookparms.getCookTime(), 0);
942  return result;
943  }
944  const UT_StringHolder & getPtdistattr() const { return myPtdistattr; }
945  void setPtdistattr(const UT_StringHolder & val) { myPtdistattr = val; }
947  {
948  SOP_Node *thissop = cookparms.getNode();
949  if (!thissop) return getPtdistattr();
951  OP_Utils::evalOpParm(result, thissop, "ptdistattr", cookparms.getCookTime(), 0);
952  return result;
953  }
954  bool getDotangentattr() const { return myDotangentattr; }
955  void setDotangentattr(bool val) { myDotangentattr = val; }
956  bool opDotangentattr(const SOP_NodeVerb::CookParms &cookparms) const
957  {
958  SOP_Node *thissop = cookparms.getNode();
959  if (!thissop) return getDotangentattr();
960  bool result;
961  OP_Utils::evalOpParm(result, thissop, "dotangentattr", cookparms.getCookTime(), 0);
962  return result;
963  }
964  const UT_StringHolder & getTangentattr() const { return myTangentattr; }
965  void setTangentattr(const UT_StringHolder & val) { myTangentattr = val; }
967  {
968  SOP_Node *thissop = cookparms.getNode();
969  if (!thissop) return getTangentattr();
971  OP_Utils::evalOpParm(result, thissop, "tangentattr", cookparms.getCookTime(), 0);
972  return result;
973  }
974  bool getDocurveuattr() const { return myDocurveuattr; }
975  void setDocurveuattr(bool val) { myDocurveuattr = val; }
976  bool opDocurveuattr(const SOP_NodeVerb::CookParms &cookparms) const
977  {
978  SOP_Node *thissop = cookparms.getNode();
979  if (!thissop) return getDocurveuattr();
980  bool result;
981  OP_Utils::evalOpParm(result, thissop, "docurveuattr", cookparms.getCookTime(), 0);
982  return result;
983  }
984  const UT_StringHolder & getCurveuattr() const { return myCurveuattr; }
985  void setCurveuattr(const UT_StringHolder & val) { myCurveuattr = val; }
987  {
988  SOP_Node *thissop = cookparms.getNode();
989  if (!thissop) return getCurveuattr();
991  OP_Utils::evalOpParm(result, thissop, "curveuattr", cookparms.getCookTime(), 0);
992  return result;
993  }
994  bool getDocurvenumattr() const { return myDocurvenumattr; }
995  void setDocurvenumattr(bool val) { myDocurvenumattr = val; }
996  bool opDocurvenumattr(const SOP_NodeVerb::CookParms &cookparms) const
997  {
998  SOP_Node *thissop = cookparms.getNode();
999  if (!thissop) return getDocurvenumattr();
1000  bool result;
1001  OP_Utils::evalOpParm(result, thissop, "docurvenumattr", cookparms.getCookTime(), 0);
1002  return result;
1003  }
1004  const UT_StringHolder & getCurvenumattr() const { return myCurvenumattr; }
1005  void setCurvenumattr(const UT_StringHolder & val) { myCurvenumattr = val; }
1007  {
1008  SOP_Node *thissop = cookparms.getNode();
1009  if (!thissop) return getCurvenumattr();
1011  OP_Utils::evalOpParm(result, thissop, "curvenumattr", cookparms.getCookTime(), 0);
1012  return result;
1013  }
1014 
1015 private:
1016  UT_StringHolder myGroup;
1017  bool myMaintainprimorder;
1018  fpreal64 myLod;
1019  bool myEdge;
1020  int64 myMethod;
1021  int64 myMeasure;
1022  bool myDolength;
1023  fpreal64 myLength;
1024  bool myDosegs;
1025  int64 mySegs;
1026  bool myUseattribs;
1027  bool myAllequal;
1028  bool myLast;
1029  bool myRandomshift;
1030  bool myOnlypoints;
1031  int64 myTreatpolysas;
1032  bool myOutputsubdpoly;
1033  bool myDoptdistattr;
1034  UT_StringHolder myPtdistattr;
1035  bool myDotangentattr;
1036  UT_StringHolder myTangentattr;
1037  bool myDocurveuattr;
1038  UT_StringHolder myCurveuattr;
1039  bool myDocurvenumattr;
1040  UT_StringHolder myCurvenumattr;
1041 
1042 };
static void saveData(std::ostream &os, int64 v)
bool opDosegs(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opTangentattr(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
exint getNestNumParms(TempIndex idx) const override
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, UT_Vector2I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
const UT_StringHolder & getCurveuattr() const
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool getOutputsubdpoly() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool opDoptdistattr(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
static void loadData(UT_IStream &is, UT_Vector3I &v)
GT_API const UT_StringHolder time
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
static void saveData(std::ostream &os, UT_Vector3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
bool getDolength() const
fpreal getTime() const
Definition: OP_Context.h:62
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
Measure getMeasure() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
Treatpolysas getTreatpolysas() const
bool getMaintainprimorder() const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
bool opOutputsubdpoly(const SOP_NodeVerb::CookParms &cookparms) const
bool opOnlypoints(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
fpreal64 opLod(const SOP_NodeVerb::CookParms &cookparms) const
bool opDolength(const SOP_NodeVerb::CookParms &cookparms) const
Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
Treatpolysas opTreatpolysas(const SOP_NodeVerb::CookParms &cookparms) const
GLdouble s
Definition: glad.h:3009
bool getDotangentattr() const
void setMeasure(Measure val)
An output stream object that owns its own string buffer storage.
void setDoptdistattr(bool val)
void setCurveuattr(const UT_StringHolder &val)
fpreal64 getLength() const
void setLod(fpreal64 val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
**But if you need a result
Definition: thread.h:613
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
T clampMinValue(fpreal minvalue, const T &src) const
Definition: OP_NodeParms.h:308
bool opDocurvenumattr(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
const UT_StringHolder & getPtdistattr() const
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.
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
bool opDocurveuattr(const SOP_NodeVerb::CookParms &cookparms) const
void setRandomshift(bool val)
void setMaintainprimorder(bool val)
static void loadData(UT_IStream &is, fpreal64 &v)
bool opUseattribs(const SOP_NodeVerb::CookParms &cookparms) const
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
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
const UT_StringHolder & getCurvenumattr() const
void save(std::ostream &os) const
bool operator==(const SOP_ResampleParms &src) const
void setLength(fpreal64 val)
bool opAllequal(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
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 setDolength(bool val)
Measure opMeasure(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void saveData(std::ostream &os, UT_Matrix2D v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool getAllequal() const
long long int64
Definition: SYS_Types.h:116
void setTreatpolysas(Treatpolysas val)
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, bool &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool getDocurveuattr() const
fpreal64 opLength(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
bool getDocurvenumattr() const
void setTangentattr(const UT_StringHolder &val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setDocurveuattr(bool val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
bool opDotangentattr(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
GT_API const UT_StringHolder version
bool getOnlypoints() const
void setDosegs(bool val)
void setPtdistattr(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool getDosegs() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setLast(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void saveData(std::ostream &os, UT_Vector4D v)
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
void setMethod(Method val)
const char * getNestParmName(TempIndex fieldnum) const override
bool opEdge(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
void setCurvenumattr(const UT_StringHolder &val)
int64 getSegs() const
UT_StringHolder opCurvenumattr(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
static void saveData(std::ostream &os, fpreal64 v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
void setUseattribs(bool val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
bool opMaintainprimorder(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
GLuint GLfloat * val
Definition: glcorearb.h:1608
bool load(UT_IStream &is)
#define SOP_API
Definition: SOP_API.h:10
void setOutputsubdpoly(bool val)
const UT_StringHolder & getTangentattr() const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool getDoptdistattr() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
Method getMethod() const
void setSegs(int64 val)
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
int64 opSegs(const SOP_NodeVerb::CookParms &cookparms) const
Definition: core.h:1131
static void saveData(std::ostream &os, UT_Matrix4D v)
bool getUseattribs() const
bool getRandomshift() const
void loadFromOpSubclass(const LoadParms &loadparms) override
GLboolean r
Definition: glcorearb.h:1222
bool isParmColorRamp(exint idx) const override
void setGroup(const UT_StringHolder &val)
void setDotangentattr(bool val)
UT_StringHolder opCurveuattr(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_ResampleParms &src) const
void setDocurvenumattr(bool val)
bool opLast(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void saveData(std::ostream &os, UT_Matrix3D v)
fpreal64 getLod() const
type
Definition: core.h:1059
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void loadData(UT_IStream &is, int64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setOnlypoints(bool val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setAllequal(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
UT_StringHolder opPtdistattr(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE bool isstring() const
void setEdge(bool val)
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool opRandomshift(const SOP_NodeVerb::CookParms &cookparms) const