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