HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Basis.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_BasisEnums
24 {
25  enum class UParmType
26  {
27  NOCHANGE = 0,
28  UNIFORM,
29  CHORD,
31  MANUALONE,
32  MANUALALL,
33  SLIDE,
34  APPROXARC
35  };
36 
38  getToken(UParmType enum_value)
39  {
40  using namespace UT::Literal;
41  switch (enum_value) {
42  case UParmType::NOCHANGE: return "nochange"_sh;
43  case UParmType::UNIFORM: return "uniform"_sh;
44  case UParmType::CHORD: return "chord"_sh;
45  case UParmType::CENTRIPETAL: return "centripetal"_sh;
46  case UParmType::MANUALONE: return "manualone"_sh;
47  case UParmType::MANUALALL: return "manualall"_sh;
48  case UParmType::SLIDE: return "slide"_sh;
49  case UParmType::APPROXARC: return "approxarc"_sh;
50  default: UT_ASSERT(false); return ""_sh;
51  }
52  }
53 
54  enum class VParmType
55  {
56  NOCHANGE = 0,
57  UNIFORM,
58  CHORD,
60  MANUALONE,
61  MANUALALL,
62  SLIDE,
63  APPROXARC
64  };
65 
67  getToken(VParmType enum_value)
68  {
69  using namespace UT::Literal;
70  switch (enum_value) {
71  case VParmType::NOCHANGE: return "nochange"_sh;
72  case VParmType::UNIFORM: return "uniform"_sh;
73  case VParmType::CHORD: return "chord"_sh;
74  case VParmType::CENTRIPETAL: return "centripetal"_sh;
75  case VParmType::MANUALONE: return "manualone"_sh;
76  case VParmType::MANUALALL: return "manualall"_sh;
77  case VParmType::SLIDE: return "slide"_sh;
78  case VParmType::APPROXARC: return "approxarc"_sh;
79  default: UT_ASSERT(false); return ""_sh;
80  }
81  }
82 
83 }
84 
85 
87 {
88 public:
89  static int version() { return 1; }
90 
92  {
93  myGroup = ""_UTsh;
94  myUBasis = true;
95  myUParmType = 0;
96  myUKnots = ""_UTsh;
97  myURange = UT_Vector2D(0.1,0.9);
98  myUBias = 0.5;
99  myUConcat = false;
100  myUDoOrigin = false;
101  myUOrigin = 0;
102  myUDoLength = false;
103  myULength = 1;
104  myUDoScale = false;
105  myUScale = 1;
106  myURaise = false;
107  myOrderU = 4;
108  myVBasis = false;
109  myVParmType = 0;
110  myVKnots = ""_UTsh;
111  myVRange = UT_Vector2D(0.1,0.9);
112  myVBias = 0.5;
113  myVConcat = false;
114  myVDoOrigin = false;
115  myVOrigin = 0;
116  myVDoLength = false;
117  myVLength = 1;
118  myVDoScale = false;
119  myVScale = 1;
120  myVRaise = false;
121  myOrderV = 4;
122 
123  }
124 
125  explicit SOP_BasisParms(const SOP_BasisParms &) = default;
126  SOP_BasisParms &operator=(const SOP_BasisParms &) = default;
127  SOP_BasisParms(SOP_BasisParms &&) noexcept = default;
128  SOP_BasisParms &operator=(SOP_BasisParms &&) noexcept = default;
129 
130  ~SOP_BasisParms() override {}
131 
132  bool operator==(const SOP_BasisParms &src) const
133  {
134  if (myGroup != src.myGroup) return false;
135  if (myUBasis != src.myUBasis) return false;
136  if (myUParmType != src.myUParmType) return false;
137  if (myUKnots != src.myUKnots) return false;
138  if (myURange != src.myURange) return false;
139  if (myUBias != src.myUBias) return false;
140  if (myUConcat != src.myUConcat) return false;
141  if (myUDoOrigin != src.myUDoOrigin) return false;
142  if (myUOrigin != src.myUOrigin) return false;
143  if (myUDoLength != src.myUDoLength) return false;
144  if (myULength != src.myULength) return false;
145  if (myUDoScale != src.myUDoScale) return false;
146  if (myUScale != src.myUScale) return false;
147  if (myURaise != src.myURaise) return false;
148  if (myOrderU != src.myOrderU) return false;
149  if (myVBasis != src.myVBasis) return false;
150  if (myVParmType != src.myVParmType) return false;
151  if (myVKnots != src.myVKnots) return false;
152  if (myVRange != src.myVRange) return false;
153  if (myVBias != src.myVBias) return false;
154  if (myVConcat != src.myVConcat) return false;
155  if (myVDoOrigin != src.myVDoOrigin) return false;
156  if (myVOrigin != src.myVOrigin) return false;
157  if (myVDoLength != src.myVDoLength) return false;
158  if (myVLength != src.myVLength) return false;
159  if (myVDoScale != src.myVDoScale) return false;
160  if (myVScale != src.myVScale) return false;
161  if (myVRaise != src.myVRaise) return false;
162  if (myOrderV != src.myOrderV) return false;
163 
164  return true;
165  }
166  bool operator!=(const SOP_BasisParms &src) const
167  {
168  return !operator==(src);
169  }
172 
173 
174 
175  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
176  {
177  myGroup = ""_UTsh;
178  if (true)
179  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
180  myUBasis = true;
181  if (true)
182  graph->evalOpParm(myUBasis, nodeidx, "ubasis", time, 0);
183  myUParmType = 0;
184  if (true && ( (true&&!(((getUBasis()==0)))) ) )
185  graph->evalOpParm(myUParmType, nodeidx, "uparmtype", time, 0);
186  myUKnots = ""_UTsh;
187  if (true && ( (true&&!(((int64(getUParmType())!=4)&&(int64(getUParmType())!=5))||((getUBasis()==0)))) ) )
188  graph->evalOpParm(myUKnots, nodeidx, "uknots", time, 0);
189  myURange = UT_Vector2D(0.1,0.9);
190  if (true && ( (true&&!(((int64(getUParmType())!=6))||((getUBasis()==0)))) ) )
191  graph->evalOpParm(myURange, nodeidx, "urange", time, 0);
192  myUBias = 0.5;
193  if (true && ( (true&&!(((int64(getUParmType())!=6))||((getUBasis()==0)))) ) )
194  graph->evalOpParm(myUBias, nodeidx, "ubias", time, 0);
195  myUConcat = false;
196  if (true && ( (true&&!(((getUBasis()==0)))) ) )
197  graph->evalOpParm(myUConcat, nodeidx, "uconcat", time, 0);
198  myUDoOrigin = false;
199  if (true && ( (true&&!(((getUBasis()==0)))) ) )
200  graph->evalOpParm(myUDoOrigin, nodeidx, "udoorigin", time, 0);
201  myUOrigin = 0;
202  if (true && ( (true&&!(((getUDoOrigin()==0))||((getUBasis()==0)))) ) )
203  graph->evalOpParm(myUOrigin, nodeidx, "uorigin", time, 0);
204  myUDoLength = false;
205  if (true && ( (true&&!(((getUBasis()==0)))) ) )
206  graph->evalOpParm(myUDoLength, nodeidx, "udolength", time, 0);
207  myULength = 1;
208  if (true && ( (true&&!(((getUDoLength()==0))||((getUBasis()==0)))) ) )
209  graph->evalOpParm(myULength, nodeidx, "ulength", time, 0);
210  myUDoScale = false;
211  if (true && ( (true&&!(((getUBasis()==0)))) ) )
212  graph->evalOpParm(myUDoScale, nodeidx, "udoscale", time, 0);
213  myUScale = 1;
214  if (true && ( (true&&!(((getUDoScale()==0))||((getUBasis()==0)))) ) )
215  graph->evalOpParm(myUScale, nodeidx, "uscale", time, 0);
216  myURaise = false;
217  if (true && ( (true&&!(((getUBasis()==0)))) ) )
218  graph->evalOpParm(myURaise, nodeidx, "uraise", time, 0);
219  myOrderU = 4;
220  if (true && ( (true&&!(((getURaise()==0))||((getUBasis()==0)))) ) )
221  graph->evalOpParm(myOrderU, nodeidx, "orderu", time, 0);
222  myVBasis = false;
223  if (true)
224  graph->evalOpParm(myVBasis, nodeidx, "vbasis", time, 0);
225  myVParmType = 0;
226  if (true && ( (true&&!(((getVBasis()==0)))) ) )
227  graph->evalOpParm(myVParmType, nodeidx, "vparmtype", time, 0);
228  myVKnots = ""_UTsh;
229  if (true && ( (true&&!(((int64(getVParmType())!=4)&&(int64(getVParmType())!=5))||((getVBasis()==0)))) ) )
230  graph->evalOpParm(myVKnots, nodeidx, "vknots", time, 0);
231  myVRange = UT_Vector2D(0.1,0.9);
232  if (true && ( (true&&!(((int64(getVParmType())!=6))||((getVBasis()==0)))) ) )
233  graph->evalOpParm(myVRange, nodeidx, "vrange", time, 0);
234  myVBias = 0.5;
235  if (true && ( (true&&!(((int64(getVParmType())!=6))||((getVBasis()==0)))) ) )
236  graph->evalOpParm(myVBias, nodeidx, "vbias", time, 0);
237  myVConcat = false;
238  if (true && ( (true&&!(((getVBasis()==0)))) ) )
239  graph->evalOpParm(myVConcat, nodeidx, "vconcat", time, 0);
240  myVDoOrigin = false;
241  if (true && ( (true&&!(((getVBasis()==0)))) ) )
242  graph->evalOpParm(myVDoOrigin, nodeidx, "vdoorigin", time, 0);
243  myVOrigin = 0;
244  if (true && ( (true&&!(((getVDoOrigin()==0))||((getVBasis()==0)))) ) )
245  graph->evalOpParm(myVOrigin, nodeidx, "vorigin", time, 0);
246  myVDoLength = false;
247  if (true && ( (true&&!(((getVBasis()==0)))) ) )
248  graph->evalOpParm(myVDoLength, nodeidx, "vdolength", time, 0);
249  myVLength = 1;
250  if (true && ( (true&&!(((getVDoLength()==0))||((getVBasis()==0)))) ) )
251  graph->evalOpParm(myVLength, nodeidx, "vlength", time, 0);
252  myVDoScale = false;
253  if (true && ( (true&&!(((getVBasis()==0)))) ) )
254  graph->evalOpParm(myVDoScale, nodeidx, "vdoscale", time, 0);
255  myVScale = 1;
256  if (true && ( (true&&!(((getVDoScale()==0))||((getVBasis()==0)))) ) )
257  graph->evalOpParm(myVScale, nodeidx, "vscale", time, 0);
258  myVRaise = false;
259  if (true && ( (true&&!(((getVBasis()==0)))) ) )
260  graph->evalOpParm(myVRaise, nodeidx, "vraise", time, 0);
261  myOrderV = 4;
262  if (true && ( (true&&!(((getVRaise()==0))||((getVBasis()==0)))) ) )
263  graph->evalOpParm(myOrderV, nodeidx, "orderv", time, 0);
264 
265  }
266 
267 
268  void loadFromOpSubclass(const LoadParms &loadparms) override
269  {
270  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
271  }
272 
273 
274  void copyFrom(const OP_NodeParms *src) override
275  {
276  *this = *((const SOP_BasisParms *)src);
277  }
278 
279  template <typename T>
280  void
281  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
282  {
283  if (idx.size() < 1)
284  return;
285  UT_ASSERT(idx.size() == instance.size()+1);
286  if (idx.size() != instance.size()+1)
287  return;
288  switch (idx[0])
289  {
290  case 0:
291  coerceValue(value, myGroup);
292  break;
293  case 1:
294  coerceValue(value, myUBasis);
295  break;
296  case 2:
297  coerceValue(value, myUParmType);
298  break;
299  case 3:
300  coerceValue(value, myUKnots);
301  break;
302  case 4:
303  coerceValue(value, myURange);
304  break;
305  case 5:
306  coerceValue(value, myUBias);
307  break;
308  case 6:
309  coerceValue(value, myUConcat);
310  break;
311  case 7:
312  coerceValue(value, myUDoOrigin);
313  break;
314  case 8:
315  coerceValue(value, myUOrigin);
316  break;
317  case 9:
318  coerceValue(value, myUDoLength);
319  break;
320  case 10:
321  coerceValue(value, myULength);
322  break;
323  case 11:
324  coerceValue(value, myUDoScale);
325  break;
326  case 12:
327  coerceValue(value, myUScale);
328  break;
329  case 13:
330  coerceValue(value, myURaise);
331  break;
332  case 14:
333  coerceValue(value, myOrderU);
334  break;
335  case 15:
336  coerceValue(value, myVBasis);
337  break;
338  case 16:
339  coerceValue(value, myVParmType);
340  break;
341  case 17:
342  coerceValue(value, myVKnots);
343  break;
344  case 18:
345  coerceValue(value, myVRange);
346  break;
347  case 19:
348  coerceValue(value, myVBias);
349  break;
350  case 20:
351  coerceValue(value, myVConcat);
352  break;
353  case 21:
354  coerceValue(value, myVDoOrigin);
355  break;
356  case 22:
357  coerceValue(value, myVOrigin);
358  break;
359  case 23:
360  coerceValue(value, myVDoLength);
361  break;
362  case 24:
363  coerceValue(value, myVLength);
364  break;
365  case 25:
366  coerceValue(value, myVDoScale);
367  break;
368  case 26:
369  coerceValue(value, myVScale);
370  break;
371  case 27:
372  coerceValue(value, myVRaise);
373  break;
374  case 28:
375  coerceValue(value, myOrderV);
376  break;
377 
378  }
379  }
380 
381  bool isParmColorRamp(exint idx) const override
382  {
383  switch (idx)
384  {
385 
386  }
387  return false;
388  }
389 
390  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
391  { doGetParmValue(idx, instance, value); }
392  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
393  { doGetParmValue(idx, instance, value); }
394  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
395  { doGetParmValue(idx, instance, value); }
396  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
397  { doGetParmValue(idx, instance, value); }
398  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
399  { doGetParmValue(idx, instance, value); }
400  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
401  { doGetParmValue(idx, instance, value); }
402  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
403  { doGetParmValue(idx, instance, value); }
404  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
405  { doGetParmValue(idx, instance, value); }
406  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
407  { doGetParmValue(idx, instance, value); }
408  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
409  { doGetParmValue(idx, instance, value); }
410  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
411  { doGetParmValue(idx, instance, value); }
412 
413  template <typename T>
414  void
415  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
416  {
417  if (idx.size() < 1)
418  return;
419  UT_ASSERT(idx.size() == instance.size()+1);
420  if (idx.size() != instance.size()+1)
421  return;
422  switch (idx[0])
423  {
424  case 0:
425  coerceValue(myGroup, ( ( value ) ));
426  break;
427  case 1:
428  coerceValue(myUBasis, ( ( value ) ));
429  break;
430  case 2:
431  coerceValue(myUParmType, clampMinValue(0, clampMaxValue(7, value ) ));
432  break;
433  case 3:
434  coerceValue(myUKnots, ( ( value ) ));
435  break;
436  case 4:
437  coerceValue(myURange, ( ( value ) ));
438  break;
439  case 5:
440  coerceValue(myUBias, clampMinValue(0, clampMaxValue(1, value ) ));
441  break;
442  case 6:
443  coerceValue(myUConcat, ( ( value ) ));
444  break;
445  case 7:
446  coerceValue(myUDoOrigin, ( ( value ) ));
447  break;
448  case 8:
449  coerceValue(myUOrigin, ( ( value ) ));
450  break;
451  case 9:
452  coerceValue(myUDoLength, ( ( value ) ));
453  break;
454  case 10:
455  coerceValue(myULength, clampMinValue(0.0001, ( value ) ));
456  break;
457  case 11:
458  coerceValue(myUDoScale, ( ( value ) ));
459  break;
460  case 12:
461  coerceValue(myUScale, clampMinValue(0.0001, ( value ) ));
462  break;
463  case 13:
464  coerceValue(myURaise, ( ( value ) ));
465  break;
466  case 14:
467  coerceValue(myOrderU, clampMinValue(2, clampMaxValue(11, value ) ));
468  break;
469  case 15:
470  coerceValue(myVBasis, ( ( value ) ));
471  break;
472  case 16:
473  coerceValue(myVParmType, clampMinValue(0, clampMaxValue(7, value ) ));
474  break;
475  case 17:
476  coerceValue(myVKnots, ( ( value ) ));
477  break;
478  case 18:
479  coerceValue(myVRange, ( ( value ) ));
480  break;
481  case 19:
482  coerceValue(myVBias, clampMinValue(0, clampMaxValue(1, value ) ));
483  break;
484  case 20:
485  coerceValue(myVConcat, ( ( value ) ));
486  break;
487  case 21:
488  coerceValue(myVDoOrigin, ( ( value ) ));
489  break;
490  case 22:
491  coerceValue(myVOrigin, ( ( value ) ));
492  break;
493  case 23:
494  coerceValue(myVDoLength, ( ( value ) ));
495  break;
496  case 24:
497  coerceValue(myVLength, clampMinValue(0.0001, ( value ) ));
498  break;
499  case 25:
500  coerceValue(myVDoScale, ( ( value ) ));
501  break;
502  case 26:
503  coerceValue(myVScale, clampMinValue(0.0001, ( value ) ));
504  break;
505  case 27:
506  coerceValue(myVRaise, ( ( value ) ));
507  break;
508  case 28:
509  coerceValue(myOrderV, clampMinValue(2, clampMaxValue(11, value ) ));
510  break;
511 
512  }
513  }
514 
515  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
516  { doSetParmValue(idx, instance, value); }
517  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
518  { doSetParmValue(idx, instance, value); }
519  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
520  { doSetParmValue(idx, instance, value); }
521  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
522  { doSetParmValue(idx, instance, value); }
523  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
524  { doSetParmValue(idx, instance, value); }
525  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
526  { doSetParmValue(idx, instance, value); }
527  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
528  { doSetParmValue(idx, instance, value); }
529  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
530  { doSetParmValue(idx, instance, value); }
531  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
532  { doSetParmValue(idx, instance, value); }
533  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
534  { doSetParmValue(idx, instance, value); }
535  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
536  { doSetParmValue(idx, instance, value); }
537 
538  exint getNestNumParms(TempIndex idx) const override
539  {
540  if (idx.size() == 0)
541  return 29;
542  switch (idx[0])
543  {
544 
545  }
546  // Invalid
547  return 0;
548  }
549 
550  const char *getNestParmName(TempIndex fieldnum) const override
551  {
552  if (fieldnum.size() < 1)
553  return 0;
554  switch (fieldnum[0])
555  {
556  case 0:
557  return "group";
558  case 1:
559  return "ubasis";
560  case 2:
561  return "uparmtype";
562  case 3:
563  return "uknots";
564  case 4:
565  return "urange";
566  case 5:
567  return "ubias";
568  case 6:
569  return "uconcat";
570  case 7:
571  return "udoorigin";
572  case 8:
573  return "uorigin";
574  case 9:
575  return "udolength";
576  case 10:
577  return "ulength";
578  case 11:
579  return "udoscale";
580  case 12:
581  return "uscale";
582  case 13:
583  return "uraise";
584  case 14:
585  return "orderu";
586  case 15:
587  return "vbasis";
588  case 16:
589  return "vparmtype";
590  case 17:
591  return "vknots";
592  case 18:
593  return "vrange";
594  case 19:
595  return "vbias";
596  case 20:
597  return "vconcat";
598  case 21:
599  return "vdoorigin";
600  case 22:
601  return "vorigin";
602  case 23:
603  return "vdolength";
604  case 24:
605  return "vlength";
606  case 25:
607  return "vdoscale";
608  case 26:
609  return "vscale";
610  case 27:
611  return "vraise";
612  case 28:
613  return "orderv";
614 
615  }
616  return 0;
617  }
618 
619  ParmType getNestParmType(TempIndex fieldnum) const override
620  {
621  if (fieldnum.size() < 1)
622  return PARM_UNSUPPORTED;
623  switch (fieldnum[0])
624  {
625  case 0:
626  return PARM_STRING;
627  case 1:
628  return PARM_INTEGER;
629  case 2:
630  return PARM_INTEGER;
631  case 3:
632  return PARM_STRING;
633  case 4:
634  return PARM_VECTOR2;
635  case 5:
636  return PARM_FLOAT;
637  case 6:
638  return PARM_INTEGER;
639  case 7:
640  return PARM_INTEGER;
641  case 8:
642  return PARM_FLOAT;
643  case 9:
644  return PARM_INTEGER;
645  case 10:
646  return PARM_FLOAT;
647  case 11:
648  return PARM_INTEGER;
649  case 12:
650  return PARM_FLOAT;
651  case 13:
652  return PARM_INTEGER;
653  case 14:
654  return PARM_INTEGER;
655  case 15:
656  return PARM_INTEGER;
657  case 16:
658  return PARM_INTEGER;
659  case 17:
660  return PARM_STRING;
661  case 18:
662  return PARM_VECTOR2;
663  case 19:
664  return PARM_FLOAT;
665  case 20:
666  return PARM_INTEGER;
667  case 21:
668  return PARM_INTEGER;
669  case 22:
670  return PARM_FLOAT;
671  case 23:
672  return PARM_INTEGER;
673  case 24:
674  return PARM_FLOAT;
675  case 25:
676  return PARM_INTEGER;
677  case 26:
678  return PARM_FLOAT;
679  case 27:
680  return PARM_INTEGER;
681  case 28:
682  return PARM_INTEGER;
683 
684  }
685  return PARM_UNSUPPORTED;
686  }
687 
688  // Boiler plate to load individual types.
689  static void loadData(UT_IStream &is, int64 &v)
690  { is.bread(&v, 1); }
691  static void loadData(UT_IStream &is, bool &v)
692  { int64 iv; is.bread(&iv, 1); v = iv; }
693  static void loadData(UT_IStream &is, fpreal64 &v)
694  { is.bread<fpreal64>(&v, 1); }
695  static void loadData(UT_IStream &is, UT_Vector2D &v)
696  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
697  static void loadData(UT_IStream &is, UT_Vector3D &v)
698  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
699  is.bread<fpreal64>(&v.z(), 1); }
700  static void loadData(UT_IStream &is, UT_Vector4D &v)
701  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
702  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
703  static void loadData(UT_IStream &is, UT_Matrix2D &v)
704  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
705  static void loadData(UT_IStream &is, UT_Matrix3D &v)
706  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
707  static void loadData(UT_IStream &is, UT_Matrix4D &v)
708  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
709  static void loadData(UT_IStream &is, UT_Vector2I &v)
710  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
711  static void loadData(UT_IStream &is, UT_Vector3I &v)
712  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
713  is.bread<int64>(&v.z(), 1); }
714  static void loadData(UT_IStream &is, UT_Vector4I &v)
715  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
716  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
718  { is.bread(v); }
720  { UT_StringHolder rampdata;
721  loadData(is, rampdata);
722  if (rampdata.isstring())
723  {
724  v.reset(new UT_Ramp());
725  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
726  v->load(istr);
727  }
728  else v.reset();
729  }
732  loadData(is, data);
733  if (data.isstring())
734  {
735  // Find the data type.
736  const char *colon = UT_StringWrap(data).findChar(':');
737  if (colon)
738  {
739  int typelen = colon - data.buffer();
741  type.strncpy(data.buffer(), typelen);
742  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
743 
744  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
745  }
746  }
747  else v.reset();
748  }
749 
750  static void saveData(std::ostream &os, int64 v)
751  { UTwrite(os, &v); }
752  static void saveData(std::ostream &os, bool v)
753  { int64 iv = v; UTwrite(os, &iv); }
754  static void saveData(std::ostream &os, fpreal64 v)
755  { UTwrite<fpreal64>(os, &v); }
756  static void saveData(std::ostream &os, UT_Vector2D v)
757  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
758  static void saveData(std::ostream &os, UT_Vector3D v)
759  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
760  UTwrite<fpreal64>(os, &v.z()); }
761  static void saveData(std::ostream &os, UT_Vector4D v)
762  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
763  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
764  static void saveData(std::ostream &os, UT_Matrix2D v)
766  static void saveData(std::ostream &os, UT_Matrix3D v)
768  static void saveData(std::ostream &os, UT_Matrix4D v)
770  static void saveData(std::ostream &os, UT_StringHolder s)
771  { UT_StringWrap(s).saveBinary(os); }
772  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
774  UT_OStringStream ostr;
775  if (s) s->save(ostr);
776  result = ostr.str();
777  saveData(os, result);
778  }
779  static void saveData(std::ostream &os, PRM_DataItemHandle s)
781  UT_OStringStream ostr;
782  if (s)
783  {
784  ostr << s->getDataTypeToken();
785  ostr << ":";
786  s->saveBinary(ostr);
787  }
788  result = ostr.str();
789  saveData(os, result);
790  }
791 
792 
793  void save(std::ostream &os) const
794  {
795  int32 v = version();
796  UTwrite(os, &v);
797  saveData(os, myGroup);
798  saveData(os, myUBasis);
799  saveData(os, myUParmType);
800  saveData(os, myUKnots);
801  saveData(os, myURange);
802  saveData(os, myUBias);
803  saveData(os, myUConcat);
804  saveData(os, myUDoOrigin);
805  saveData(os, myUOrigin);
806  saveData(os, myUDoLength);
807  saveData(os, myULength);
808  saveData(os, myUDoScale);
809  saveData(os, myUScale);
810  saveData(os, myURaise);
811  saveData(os, myOrderU);
812  saveData(os, myVBasis);
813  saveData(os, myVParmType);
814  saveData(os, myVKnots);
815  saveData(os, myVRange);
816  saveData(os, myVBias);
817  saveData(os, myVConcat);
818  saveData(os, myVDoOrigin);
819  saveData(os, myVOrigin);
820  saveData(os, myVDoLength);
821  saveData(os, myVLength);
822  saveData(os, myVDoScale);
823  saveData(os, myVScale);
824  saveData(os, myVRaise);
825  saveData(os, myOrderV);
826 
827  }
828 
829  bool load(UT_IStream &is)
830  {
831  int32 v;
832  is.bread(&v, 1);
833  if (version() != v)
834  {
835  // Fail incompatible versions
836  return false;
837  }
838  loadData(is, myGroup);
839  loadData(is, myUBasis);
840  loadData(is, myUParmType);
841  loadData(is, myUKnots);
842  loadData(is, myURange);
843  loadData(is, myUBias);
844  loadData(is, myUConcat);
845  loadData(is, myUDoOrigin);
846  loadData(is, myUOrigin);
847  loadData(is, myUDoLength);
848  loadData(is, myULength);
849  loadData(is, myUDoScale);
850  loadData(is, myUScale);
851  loadData(is, myURaise);
852  loadData(is, myOrderU);
853  loadData(is, myVBasis);
854  loadData(is, myVParmType);
855  loadData(is, myVKnots);
856  loadData(is, myVRange);
857  loadData(is, myVBias);
858  loadData(is, myVConcat);
859  loadData(is, myVDoOrigin);
860  loadData(is, myVOrigin);
861  loadData(is, myVDoLength);
862  loadData(is, myVLength);
863  loadData(is, myVDoScale);
864  loadData(is, myVScale);
865  loadData(is, myVRaise);
866  loadData(is, myOrderV);
867 
868  return true;
869  }
870 
871  const UT_StringHolder & getGroup() const { return myGroup; }
872  void setGroup(const UT_StringHolder & val) { myGroup = val; }
874  {
875  SOP_Node *thissop = cookparms.getNode();
876  if (!thissop) return getGroup();
878  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
879  return result;
880  }
881  bool getUBasis() const { return myUBasis; }
882  void setUBasis(bool val) { myUBasis = val; }
883  bool opUBasis(const SOP_NodeVerb::CookParms &cookparms) const
884  {
885  SOP_Node *thissop = cookparms.getNode();
886  if (!thissop) return getUBasis();
887  bool result;
888  OP_Utils::evalOpParm(result, thissop, "ubasis", cookparms.getCookTime(), 0);
889  return result;
890  }
891  UParmType getUParmType() const { return UParmType(myUParmType); }
892  void setUParmType(UParmType val) { myUParmType = int64(val); }
894  {
895  SOP_Node *thissop = cookparms.getNode();
896  if (!thissop) return getUParmType();
897  int64 result;
898  OP_Utils::evalOpParm(result, thissop, "uparmtype", cookparms.getCookTime(), 0);
899  return UParmType(result);
900  }
901  const UT_StringHolder & getUKnots() const { return myUKnots; }
902  void setUKnots(const UT_StringHolder & val) { myUKnots = val; }
904  {
905  SOP_Node *thissop = cookparms.getNode();
906  if (!thissop) return getUKnots();
908  OP_Utils::evalOpParm(result, thissop, "uknots", cookparms.getCookTime(), 0);
909  return result;
910  }
911  UT_Vector2D getURange() const { return myURange; }
912  void setURange(UT_Vector2D val) { myURange = val; }
914  {
915  SOP_Node *thissop = cookparms.getNode();
916  if (!thissop) return getURange();
918  OP_Utils::evalOpParm(result, thissop, "urange", cookparms.getCookTime(), 0);
919  return result;
920  }
921  fpreal64 getUBias() const { return myUBias; }
922  void setUBias(fpreal64 val) { myUBias = val; }
923  fpreal64 opUBias(const SOP_NodeVerb::CookParms &cookparms) const
924  {
925  SOP_Node *thissop = cookparms.getNode();
926  if (!thissop) return getUBias();
928  OP_Utils::evalOpParm(result, thissop, "ubias", cookparms.getCookTime(), 0);
929  return result;
930  }
931  bool getUConcat() const { return myUConcat; }
932  void setUConcat(bool val) { myUConcat = val; }
933  bool opUConcat(const SOP_NodeVerb::CookParms &cookparms) const
934  {
935  SOP_Node *thissop = cookparms.getNode();
936  if (!thissop) return getUConcat();
937  bool result;
938  OP_Utils::evalOpParm(result, thissop, "uconcat", cookparms.getCookTime(), 0);
939  return result;
940  }
941  bool getUDoOrigin() const { return myUDoOrigin; }
942  void setUDoOrigin(bool val) { myUDoOrigin = val; }
943  bool opUDoOrigin(const SOP_NodeVerb::CookParms &cookparms) const
944  {
945  SOP_Node *thissop = cookparms.getNode();
946  if (!thissop) return getUDoOrigin();
947  bool result;
948  OP_Utils::evalOpParm(result, thissop, "udoorigin", cookparms.getCookTime(), 0);
949  return result;
950  }
951  fpreal64 getUOrigin() const { return myUOrigin; }
952  void setUOrigin(fpreal64 val) { myUOrigin = val; }
954  {
955  SOP_Node *thissop = cookparms.getNode();
956  if (!thissop) return getUOrigin();
958  OP_Utils::evalOpParm(result, thissop, "uorigin", cookparms.getCookTime(), 0);
959  return result;
960  }
961  bool getUDoLength() const { return myUDoLength; }
962  void setUDoLength(bool val) { myUDoLength = val; }
963  bool opUDoLength(const SOP_NodeVerb::CookParms &cookparms) const
964  {
965  SOP_Node *thissop = cookparms.getNode();
966  if (!thissop) return getUDoLength();
967  bool result;
968  OP_Utils::evalOpParm(result, thissop, "udolength", cookparms.getCookTime(), 0);
969  return result;
970  }
971  fpreal64 getULength() const { return myULength; }
972  void setULength(fpreal64 val) { myULength = val; }
974  {
975  SOP_Node *thissop = cookparms.getNode();
976  if (!thissop) return getULength();
978  OP_Utils::evalOpParm(result, thissop, "ulength", cookparms.getCookTime(), 0);
979  return result;
980  }
981  bool getUDoScale() const { return myUDoScale; }
982  void setUDoScale(bool val) { myUDoScale = val; }
983  bool opUDoScale(const SOP_NodeVerb::CookParms &cookparms) const
984  {
985  SOP_Node *thissop = cookparms.getNode();
986  if (!thissop) return getUDoScale();
987  bool result;
988  OP_Utils::evalOpParm(result, thissop, "udoscale", cookparms.getCookTime(), 0);
989  return result;
990  }
991  fpreal64 getUScale() const { return myUScale; }
992  void setUScale(fpreal64 val) { myUScale = val; }
993  fpreal64 opUScale(const SOP_NodeVerb::CookParms &cookparms) const
994  {
995  SOP_Node *thissop = cookparms.getNode();
996  if (!thissop) return getUScale();
998  OP_Utils::evalOpParm(result, thissop, "uscale", cookparms.getCookTime(), 0);
999  return result;
1000  }
1001  bool getURaise() const { return myURaise; }
1002  void setURaise(bool val) { myURaise = val; }
1003  bool opURaise(const SOP_NodeVerb::CookParms &cookparms) const
1004  {
1005  SOP_Node *thissop = cookparms.getNode();
1006  if (!thissop) return getURaise();
1007  bool result;
1008  OP_Utils::evalOpParm(result, thissop, "uraise", cookparms.getCookTime(), 0);
1009  return result;
1010  }
1011  int64 getOrderU() const { return myOrderU; }
1012  void setOrderU(int64 val) { myOrderU = val; }
1013  int64 opOrderU(const SOP_NodeVerb::CookParms &cookparms) const
1014  {
1015  SOP_Node *thissop = cookparms.getNode();
1016  if (!thissop) return getOrderU();
1017  int64 result;
1018  OP_Utils::evalOpParm(result, thissop, "orderu", cookparms.getCookTime(), 0);
1019  return result;
1020  }
1021  bool getVBasis() const { return myVBasis; }
1022  void setVBasis(bool val) { myVBasis = val; }
1023  bool opVBasis(const SOP_NodeVerb::CookParms &cookparms) const
1024  {
1025  SOP_Node *thissop = cookparms.getNode();
1026  if (!thissop) return getVBasis();
1027  bool result;
1028  OP_Utils::evalOpParm(result, thissop, "vbasis", cookparms.getCookTime(), 0);
1029  return result;
1030  }
1031  VParmType getVParmType() const { return VParmType(myVParmType); }
1032  void setVParmType(VParmType val) { myVParmType = int64(val); }
1034  {
1035  SOP_Node *thissop = cookparms.getNode();
1036  if (!thissop) return getVParmType();
1037  int64 result;
1038  OP_Utils::evalOpParm(result, thissop, "vparmtype", cookparms.getCookTime(), 0);
1039  return VParmType(result);
1040  }
1041  const UT_StringHolder & getVKnots() const { return myVKnots; }
1042  void setVKnots(const UT_StringHolder & val) { myVKnots = val; }
1044  {
1045  SOP_Node *thissop = cookparms.getNode();
1046  if (!thissop) return getVKnots();
1048  OP_Utils::evalOpParm(result, thissop, "vknots", cookparms.getCookTime(), 0);
1049  return result;
1050  }
1051  UT_Vector2D getVRange() const { return myVRange; }
1052  void setVRange(UT_Vector2D val) { myVRange = val; }
1054  {
1055  SOP_Node *thissop = cookparms.getNode();
1056  if (!thissop) return getVRange();
1058  OP_Utils::evalOpParm(result, thissop, "vrange", cookparms.getCookTime(), 0);
1059  return result;
1060  }
1061  fpreal64 getVBias() const { return myVBias; }
1062  void setVBias(fpreal64 val) { myVBias = val; }
1063  fpreal64 opVBias(const SOP_NodeVerb::CookParms &cookparms) const
1064  {
1065  SOP_Node *thissop = cookparms.getNode();
1066  if (!thissop) return getVBias();
1067  fpreal64 result;
1068  OP_Utils::evalOpParm(result, thissop, "vbias", cookparms.getCookTime(), 0);
1069  return result;
1070  }
1071  bool getVConcat() const { return myVConcat; }
1072  void setVConcat(bool val) { myVConcat = val; }
1073  bool opVConcat(const SOP_NodeVerb::CookParms &cookparms) const
1074  {
1075  SOP_Node *thissop = cookparms.getNode();
1076  if (!thissop) return getVConcat();
1077  bool result;
1078  OP_Utils::evalOpParm(result, thissop, "vconcat", cookparms.getCookTime(), 0);
1079  return result;
1080  }
1081  bool getVDoOrigin() const { return myVDoOrigin; }
1082  void setVDoOrigin(bool val) { myVDoOrigin = val; }
1083  bool opVDoOrigin(const SOP_NodeVerb::CookParms &cookparms) const
1084  {
1085  SOP_Node *thissop = cookparms.getNode();
1086  if (!thissop) return getVDoOrigin();
1087  bool result;
1088  OP_Utils::evalOpParm(result, thissop, "vdoorigin", cookparms.getCookTime(), 0);
1089  return result;
1090  }
1091  fpreal64 getVOrigin() const { return myVOrigin; }
1092  void setVOrigin(fpreal64 val) { myVOrigin = val; }
1094  {
1095  SOP_Node *thissop = cookparms.getNode();
1096  if (!thissop) return getVOrigin();
1097  fpreal64 result;
1098  OP_Utils::evalOpParm(result, thissop, "vorigin", cookparms.getCookTime(), 0);
1099  return result;
1100  }
1101  bool getVDoLength() const { return myVDoLength; }
1102  void setVDoLength(bool val) { myVDoLength = val; }
1103  bool opVDoLength(const SOP_NodeVerb::CookParms &cookparms) const
1104  {
1105  SOP_Node *thissop = cookparms.getNode();
1106  if (!thissop) return getVDoLength();
1107  bool result;
1108  OP_Utils::evalOpParm(result, thissop, "vdolength", cookparms.getCookTime(), 0);
1109  return result;
1110  }
1111  fpreal64 getVLength() const { return myVLength; }
1112  void setVLength(fpreal64 val) { myVLength = val; }
1114  {
1115  SOP_Node *thissop = cookparms.getNode();
1116  if (!thissop) return getVLength();
1117  fpreal64 result;
1118  OP_Utils::evalOpParm(result, thissop, "vlength", cookparms.getCookTime(), 0);
1119  return result;
1120  }
1121  bool getVDoScale() const { return myVDoScale; }
1122  void setVDoScale(bool val) { myVDoScale = val; }
1123  bool opVDoScale(const SOP_NodeVerb::CookParms &cookparms) const
1124  {
1125  SOP_Node *thissop = cookparms.getNode();
1126  if (!thissop) return getVDoScale();
1127  bool result;
1128  OP_Utils::evalOpParm(result, thissop, "vdoscale", cookparms.getCookTime(), 0);
1129  return result;
1130  }
1131  fpreal64 getVScale() const { return myVScale; }
1132  void setVScale(fpreal64 val) { myVScale = val; }
1134  {
1135  SOP_Node *thissop = cookparms.getNode();
1136  if (!thissop) return getVScale();
1137  fpreal64 result;
1138  OP_Utils::evalOpParm(result, thissop, "vscale", cookparms.getCookTime(), 0);
1139  return result;
1140  }
1141  bool getVRaise() const { return myVRaise; }
1142  void setVRaise(bool val) { myVRaise = val; }
1143  bool opVRaise(const SOP_NodeVerb::CookParms &cookparms) const
1144  {
1145  SOP_Node *thissop = cookparms.getNode();
1146  if (!thissop) return getVRaise();
1147  bool result;
1148  OP_Utils::evalOpParm(result, thissop, "vraise", cookparms.getCookTime(), 0);
1149  return result;
1150  }
1151  int64 getOrderV() const { return myOrderV; }
1152  void setOrderV(int64 val) { myOrderV = val; }
1153  int64 opOrderV(const SOP_NodeVerb::CookParms &cookparms) const
1154  {
1155  SOP_Node *thissop = cookparms.getNode();
1156  if (!thissop) return getOrderV();
1157  int64 result;
1158  OP_Utils::evalOpParm(result, thissop, "orderv", cookparms.getCookTime(), 0);
1159  return result;
1160  }
1161 
1162 private:
1163  UT_StringHolder myGroup;
1164  bool myUBasis;
1165  int64 myUParmType;
1166  UT_StringHolder myUKnots;
1167  UT_Vector2D myURange;
1168  fpreal64 myUBias;
1169  bool myUConcat;
1170  bool myUDoOrigin;
1171  fpreal64 myUOrigin;
1172  bool myUDoLength;
1173  fpreal64 myULength;
1174  bool myUDoScale;
1175  fpreal64 myUScale;
1176  bool myURaise;
1177  int64 myOrderU;
1178  bool myVBasis;
1179  int64 myVParmType;
1180  UT_StringHolder myVKnots;
1181  UT_Vector2D myVRange;
1182  fpreal64 myVBias;
1183  bool myVConcat;
1184  bool myVDoOrigin;
1185  fpreal64 myVOrigin;
1186  bool myVDoLength;
1187  fpreal64 myVLength;
1188  bool myVDoScale;
1189  fpreal64 myVScale;
1190  bool myVRaise;
1191  int64 myOrderV;
1192 
1193 };
void setVRaise(bool val)
static void saveData(std::ostream &os, UT_StringHolder s)
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
int64 getOrderV() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
fpreal64 getUOrigin() const
bool opVConcat(const SOP_NodeVerb::CookParms &cookparms) const
bool opUDoScale(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setURange(UT_Vector2D val)
void loadFromOpSubclass(const LoadParms &loadparms) override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void saveData(std::ostream &os, fpreal64 v)
void setUConcat(bool val)
fpreal64 opVOrigin(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
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
fpreal64 getUScale() const
fpreal getTime() const
Definition: OP_Context.h:62
UT_Vector2T< fpreal64 > UT_Vector2D
static void saveData(std::ostream &os, UT_Matrix4D v)
bool getUDoLength() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool getUConcat() const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void setVBasis(bool val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setUScale(fpreal64 val)
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
fpreal64 getVScale() const
fpreal64 getVBias() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const UT_StringHolder & getVKnots() const
An output stream object that owns its own string buffer storage.
bool opUDoOrigin(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opUOrigin(const SOP_NodeVerb::CookParms &cookparms) const
void setVLength(fpreal64 val)
**But if you need a result
Definition: thread.h:613
UT_Vector2D opVRange(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
bool getURaise() const
UParmType getUParmType() const
fpreal64 opUScale(const SOP_NodeVerb::CookParms &cookparms) const
bool getUBasis() const
void setUParmType(UParmType val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 opULength(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
fpreal64 opUBias(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setUOrigin(fpreal64 val)
void setUDoLength(bool val)
UT_StringHolder opUKnots(const SOP_NodeVerb::CookParms &cookparms) const
static int version()
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
double fpreal64
Definition: SYS_Types.h:201
bool opUConcat(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
void setVDoLength(bool val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setVParmType(VParmType val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
fpreal64 getVOrigin() const
bool getVConcat() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const UT_StringHolder & getUKnots() const
void setUBasis(bool val)
VParmType getVParmType() const
static void saveData(std::ostream &os, UT_Matrix2D v)
static void loadData(UT_IStream &is, int64 &v)
void setVDoOrigin(bool val)
bool opVBasis(const SOP_NodeVerb::CookParms &cookparms) const
void setURaise(bool val)
exint length() const
const char * getNestParmName(TempIndex fieldnum) const override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
UParmType opUParmType(const SOP_NodeVerb::CookParms &cookparms) const
bool getVBasis() const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
int64 getOrderU() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, bool &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 getULength() const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
static void saveData(std::ostream &os, int64 v)
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
UT_StringHolder opVKnots(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE UT_StringHolder getToken(UParmType enum_value)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setVKnots(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setUDoOrigin(bool val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
long long int64
Definition: SYS_Types.h:116
bool operator!=(const SOP_BasisParms &src) const
static void saveData(std::ostream &os, UT_Vector4D v)
void setVRange(UT_Vector2D val)
fpreal64 getVLength() const
bool opVDoOrigin(const SOP_NodeVerb::CookParms &cookparms) const
bool opURaise(const SOP_NodeVerb::CookParms &cookparms) const
bool getUDoScale() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
bool opUDoLength(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
fpreal64 opVBias(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D getURange() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_Vector2D getVRange() const
bool opVDoLength(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setUBias(fpreal64 val)
GT_API const UT_StringHolder version
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setULength(fpreal64 val)
bool getUDoOrigin() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
fpreal64 opVScale(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getUBias() const
void copyFrom(const OP_NodeParms *src) override
bool getVRaise() const
int64 opOrderV(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setGroup(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
bool getVDoOrigin() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_Vector2D &v)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
static void saveData(std::ostream &os, bool v)
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
#define SOP_API
Definition: SOP_API.h:10
exint getNestNumParms(TempIndex idx) const override
void setOrderU(int64 val)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
UT_Vector2D opURange(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_BasisParms &src) const
bool opVDoScale(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
const UT_StringHolder & getGroup() const
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
bool opUBasis(const SOP_NodeVerb::CookParms &cookparms) const
void setVBias(fpreal64 val)
bool getVDoScale() const
fpreal64 opVLength(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1222
void setVConcat(bool val)
void setVDoScale(bool val)
void setVOrigin(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector2D v)
bool getVDoLength() const
static void loadData(UT_IStream &is, fpreal64 &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void saveData(std::ostream &os, UT_Vector3D v)
type
Definition: core.h:1059
bool opVRaise(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setUKnots(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setUDoScale(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
void setVScale(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
int64 opOrderU(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
VParmType opVParmType(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void setOrderV(int64 val)