HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_CarveParms.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 
25 {
26 public:
27  static int version() { return 1; }
28 
30  {
31  myGroup = ""_UTsh;
32  myArcLen = false;
33  myFirstU = true;
34  myDomainU1 = 0.25;
35  myUseDomainU1Attrib = 0;
36  myDomainU1Attrib = ""_UTsh;
37  mySecondU = false;
38  myDomainU2 = 0.75;
39  myUseDomainU2Attrib = 0;
40  myDomainU2Attrib = ""_UTsh;
41  myFirstV = false;
42  myDomainV1 = 0.25;
43  myUseDomainV1Attrib = 0;
44  myDomainV1Attrib = ""_UTsh;
45  mySecondV = false;
46  myDomainV2 = 0.75;
47  myUseDomainV2Attrib = 0;
48  myDomainV2Attrib = ""_UTsh;
49  myOnlyBreakpoints = 0;
50  myDivsU = 2;
51  myDivsV = 2;
52  myAllUBreakpoints = false;
53  myAllVBreakpoints = false;
54  myFunction = 0;
55  myKeepIn = true;
56  myKeepOut = false;
57  myExtractOp = 0;
58  myKeepOriginal = false;
59 
60  }
61 
62  explicit SOP_CarveParms(const SOP_CarveParms &) = default;
63  SOP_CarveParms &operator=(const SOP_CarveParms &) = default;
64  SOP_CarveParms(SOP_CarveParms &&) noexcept = default;
65  SOP_CarveParms &operator=(SOP_CarveParms &&) noexcept = default;
66 
67  ~SOP_CarveParms() override {}
68 
69  bool operator==(const SOP_CarveParms &src) const
70  {
71  if (myGroup != src.myGroup) return false;
72  if (myArcLen != src.myArcLen) return false;
73  if (myFirstU != src.myFirstU) return false;
74  if (myDomainU1 != src.myDomainU1) return false;
75  if (myUseDomainU1Attrib != src.myUseDomainU1Attrib) return false;
76  if (myDomainU1Attrib != src.myDomainU1Attrib) return false;
77  if (mySecondU != src.mySecondU) return false;
78  if (myDomainU2 != src.myDomainU2) return false;
79  if (myUseDomainU2Attrib != src.myUseDomainU2Attrib) return false;
80  if (myDomainU2Attrib != src.myDomainU2Attrib) return false;
81  if (myFirstV != src.myFirstV) return false;
82  if (myDomainV1 != src.myDomainV1) return false;
83  if (myUseDomainV1Attrib != src.myUseDomainV1Attrib) return false;
84  if (myDomainV1Attrib != src.myDomainV1Attrib) return false;
85  if (mySecondV != src.mySecondV) return false;
86  if (myDomainV2 != src.myDomainV2) return false;
87  if (myUseDomainV2Attrib != src.myUseDomainV2Attrib) return false;
88  if (myDomainV2Attrib != src.myDomainV2Attrib) return false;
89  if (myOnlyBreakpoints != src.myOnlyBreakpoints) return false;
90  if (myDivsU != src.myDivsU) return false;
91  if (myDivsV != src.myDivsV) return false;
92  if (myAllUBreakpoints != src.myAllUBreakpoints) return false;
93  if (myAllVBreakpoints != src.myAllVBreakpoints) return false;
94  if (myFunction != src.myFunction) return false;
95  if (myKeepIn != src.myKeepIn) return false;
96  if (myKeepOut != src.myKeepOut) return false;
97  if (myExtractOp != src.myExtractOp) return false;
98  if (myKeepOriginal != src.myKeepOriginal) return false;
99 
100  return true;
101  }
102  bool operator!=(const SOP_CarveParms &src) const
103  {
104  return !operator==(src);
105  }
106 
107 
108 
109  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
110  {
111  myGroup = ""_UTsh;
112  if (true)
113  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
114  myArcLen = false;
115  if (true)
116  graph->evalOpParm(myArcLen, nodeidx, "arclen", time, 0);
117  myFirstU = true;
118  if (true)
119  graph->evalOpParm(myFirstU, nodeidx, "firstu", time, 0);
120  myDomainU1 = 0.25;
121  if (true)
122  graph->evalOpParm(myDomainU1, nodeidx, "domainu1", time, 0);
123  myUseDomainU1Attrib = 0;
124  if (true)
125  graph->evalOpParm(myUseDomainU1Attrib, nodeidx, "usedomainu1attrib", time, 0);
126  myDomainU1Attrib = ""_UTsh;
127  if (true)
128  graph->evalOpParm(myDomainU1Attrib, nodeidx, "domainu1attrib", time, 0);
129  mySecondU = false;
130  if (true)
131  graph->evalOpParm(mySecondU, nodeidx, "secondu", time, 0);
132  myDomainU2 = 0.75;
133  if (true)
134  graph->evalOpParm(myDomainU2, nodeidx, "domainu2", time, 0);
135  myUseDomainU2Attrib = 0;
136  if (true)
137  graph->evalOpParm(myUseDomainU2Attrib, nodeidx, "usedomainu2attrib", time, 0);
138  myDomainU2Attrib = ""_UTsh;
139  if (true)
140  graph->evalOpParm(myDomainU2Attrib, nodeidx, "domainu2attrib", time, 0);
141  myFirstV = false;
142  if (true)
143  graph->evalOpParm(myFirstV, nodeidx, "firstv", time, 0);
144  myDomainV1 = 0.25;
145  if (true)
146  graph->evalOpParm(myDomainV1, nodeidx, "domainv1", time, 0);
147  myUseDomainV1Attrib = 0;
148  if (true)
149  graph->evalOpParm(myUseDomainV1Attrib, nodeidx, "usedomainv1attrib", time, 0);
150  myDomainV1Attrib = ""_UTsh;
151  if (true)
152  graph->evalOpParm(myDomainV1Attrib, nodeidx, "domainv1attrib", time, 0);
153  mySecondV = false;
154  if (true)
155  graph->evalOpParm(mySecondV, nodeidx, "secondv", time, 0);
156  myDomainV2 = 0.75;
157  if (true)
158  graph->evalOpParm(myDomainV2, nodeidx, "domainv2", time, 0);
159  myUseDomainV2Attrib = 0;
160  if (true)
161  graph->evalOpParm(myUseDomainV2Attrib, nodeidx, "usedomainv2attrib", time, 0);
162  myDomainV2Attrib = ""_UTsh;
163  if (true)
164  graph->evalOpParm(myDomainV2Attrib, nodeidx, "domainv2attrib", time, 0);
165  myOnlyBreakpoints = 0;
166  if (true)
167  graph->evalOpParm(myOnlyBreakpoints, nodeidx, "onlybreakpoints", time, 0);
168  myDivsU = 2;
169  if (true && ( (getOnlyBreakpoints()==0) ) )
170  graph->evalOpParm(myDivsU, nodeidx, "divsu", time, 0);
171  myDivsV = 2;
172  if (true && ( (getOnlyBreakpoints()==0) ) )
173  graph->evalOpParm(myDivsV, nodeidx, "divsv", time, 0);
174  myAllUBreakpoints = false;
175  if (true && ( (getOnlyBreakpoints()==1) ) )
176  graph->evalOpParm(myAllUBreakpoints, nodeidx, "allubreakpoints", time, 0);
177  myAllVBreakpoints = false;
178  if (true && ( (getOnlyBreakpoints()==1) ) )
179  graph->evalOpParm(myAllVBreakpoints, nodeidx, "allvbreakpoints", time, 0);
180  myFunction = 0;
181  if (true)
182  graph->evalOpParm(myFunction, nodeidx, "stdswitcher", time, 0);
183  myKeepIn = true;
184  if (true && ( (getFunction()==0) ) )
185  graph->evalOpParm(myKeepIn, nodeidx, "keepin", time, 0);
186  myKeepOut = false;
187  if (true && ( (getFunction()==0) ) )
188  graph->evalOpParm(myKeepOut, nodeidx, "keepout", time, 0);
189  myExtractOp = 0;
190  if (true && ( (getFunction()==1) ) )
191  graph->evalOpParm(myExtractOp, nodeidx, "extractop", time, 0);
192  myKeepOriginal = false;
193  if (true && ( (getFunction()==1) ) )
194  graph->evalOpParm(myKeepOriginal, nodeidx, "keepOriginal", time, 0);
195 
196  }
197 
198 
199  void loadFromOpSubclass(const LoadParms &loadparms) override
200  {
201  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
202  }
203 
204 
205  void copyFrom(const OP_NodeParms *src) override
206  {
207  *this = *((const SOP_CarveParms *)src);
208  }
209 
210  template <typename T>
211  void
212  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
213  {
214  if (idx.size() < 1)
215  return;
216  UT_ASSERT(idx.size() == instance.size()+1);
217  if (idx.size() != instance.size()+1)
218  return;
219  switch (idx[0])
220  {
221  case 0:
222  coerceValue(value, myGroup);
223  break;
224  case 1:
225  coerceValue(value, myArcLen);
226  break;
227  case 2:
228  coerceValue(value, myFirstU);
229  break;
230  case 3:
231  coerceValue(value, myDomainU1);
232  break;
233  case 4:
234  coerceValue(value, myUseDomainU1Attrib);
235  break;
236  case 5:
237  coerceValue(value, myDomainU1Attrib);
238  break;
239  case 6:
240  coerceValue(value, mySecondU);
241  break;
242  case 7:
243  coerceValue(value, myDomainU2);
244  break;
245  case 8:
246  coerceValue(value, myUseDomainU2Attrib);
247  break;
248  case 9:
249  coerceValue(value, myDomainU2Attrib);
250  break;
251  case 10:
252  coerceValue(value, myFirstV);
253  break;
254  case 11:
255  coerceValue(value, myDomainV1);
256  break;
257  case 12:
258  coerceValue(value, myUseDomainV1Attrib);
259  break;
260  case 13:
261  coerceValue(value, myDomainV1Attrib);
262  break;
263  case 14:
264  coerceValue(value, mySecondV);
265  break;
266  case 15:
267  coerceValue(value, myDomainV2);
268  break;
269  case 16:
270  coerceValue(value, myUseDomainV2Attrib);
271  break;
272  case 17:
273  coerceValue(value, myDomainV2Attrib);
274  break;
275  case 18:
276  coerceValue(value, myOnlyBreakpoints);
277  break;
278  case 19:
279  coerceValue(value, myDivsU);
280  break;
281  case 20:
282  coerceValue(value, myDivsV);
283  break;
284  case 21:
285  coerceValue(value, myAllUBreakpoints);
286  break;
287  case 22:
288  coerceValue(value, myAllVBreakpoints);
289  break;
290  case 23:
291  coerceValue(value, myFunction);
292  break;
293  case 24:
294  coerceValue(value, myKeepIn);
295  break;
296  case 25:
297  coerceValue(value, myKeepOut);
298  break;
299  case 26:
300  coerceValue(value, myExtractOp);
301  break;
302  case 27:
303  coerceValue(value, myKeepOriginal);
304  break;
305 
306  }
307  }
308 
309  bool isParmColorRamp(exint idx) const override
310  {
311  switch (idx)
312  {
313 
314  }
315  return false;
316  }
317 
318  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
319  { doGetParmValue(idx, instance, value); }
320  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
321  { doGetParmValue(idx, instance, value); }
322  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
323  { doGetParmValue(idx, instance, value); }
324  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
325  { doGetParmValue(idx, instance, value); }
326  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
327  { doGetParmValue(idx, instance, value); }
328  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
329  { doGetParmValue(idx, instance, value); }
330  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
331  { doGetParmValue(idx, instance, value); }
332  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
333  { doGetParmValue(idx, instance, value); }
334  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
335  { doGetParmValue(idx, instance, value); }
336  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
337  { doGetParmValue(idx, instance, value); }
338  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
339  { doGetParmValue(idx, instance, value); }
340 
341  template <typename T>
342  void
343  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
344  {
345  if (idx.size() < 1)
346  return;
347  UT_ASSERT(idx.size() == instance.size()+1);
348  if (idx.size() != instance.size()+1)
349  return;
350  switch (idx[0])
351  {
352  case 0:
353  coerceValue(myGroup, ( ( value ) ));
354  break;
355  case 1:
356  coerceValue(myArcLen, ( ( value ) ));
357  break;
358  case 2:
359  coerceValue(myFirstU, ( ( value ) ));
360  break;
361  case 3:
362  coerceValue(myDomainU1, ( ( value ) ));
363  break;
364  case 4:
365  coerceValue(myUseDomainU1Attrib, ( ( value ) ));
366  break;
367  case 5:
368  coerceValue(myDomainU1Attrib, ( ( value ) ));
369  break;
370  case 6:
371  coerceValue(mySecondU, ( ( value ) ));
372  break;
373  case 7:
374  coerceValue(myDomainU2, ( ( value ) ));
375  break;
376  case 8:
377  coerceValue(myUseDomainU2Attrib, ( ( value ) ));
378  break;
379  case 9:
380  coerceValue(myDomainU2Attrib, ( ( value ) ));
381  break;
382  case 10:
383  coerceValue(myFirstV, ( ( value ) ));
384  break;
385  case 11:
386  coerceValue(myDomainV1, ( ( value ) ));
387  break;
388  case 12:
389  coerceValue(myUseDomainV1Attrib, ( ( value ) ));
390  break;
391  case 13:
392  coerceValue(myDomainV1Attrib, ( ( value ) ));
393  break;
394  case 14:
395  coerceValue(mySecondV, ( ( value ) ));
396  break;
397  case 15:
398  coerceValue(myDomainV2, ( ( value ) ));
399  break;
400  case 16:
401  coerceValue(myUseDomainV2Attrib, ( ( value ) ));
402  break;
403  case 17:
404  coerceValue(myDomainV2Attrib, ( ( value ) ));
405  break;
406  case 18:
407  coerceValue(myOnlyBreakpoints, ( ( value ) ));
408  break;
409  case 19:
410  coerceValue(myDivsU, ( ( value ) ));
411  break;
412  case 20:
413  coerceValue(myDivsV, ( ( value ) ));
414  break;
415  case 21:
416  coerceValue(myAllUBreakpoints, ( ( value ) ));
417  break;
418  case 22:
419  coerceValue(myAllVBreakpoints, ( ( value ) ));
420  break;
421  case 23:
422  coerceValue(myFunction, ( ( value ) ));
423  break;
424  case 24:
425  coerceValue(myKeepIn, ( ( value ) ));
426  break;
427  case 25:
428  coerceValue(myKeepOut, ( ( value ) ));
429  break;
430  case 26:
431  coerceValue(myExtractOp, ( ( value ) ));
432  break;
433  case 27:
434  coerceValue(myKeepOriginal, ( ( value ) ));
435  break;
436 
437  }
438  }
439 
440  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
441  { doSetParmValue(idx, instance, value); }
442  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
443  { doSetParmValue(idx, instance, value); }
444  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
445  { doSetParmValue(idx, instance, value); }
446  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
447  { doSetParmValue(idx, instance, value); }
448  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
449  { doSetParmValue(idx, instance, value); }
450  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
451  { doSetParmValue(idx, instance, value); }
452  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
453  { doSetParmValue(idx, instance, value); }
454  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
455  { doSetParmValue(idx, instance, value); }
456  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
457  { doSetParmValue(idx, instance, value); }
458  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
459  { doSetParmValue(idx, instance, value); }
460  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
461  { doSetParmValue(idx, instance, value); }
462 
463  exint getNestNumParms(TempIndex idx) const override
464  {
465  if (idx.size() == 0)
466  return 28;
467  switch (idx[0])
468  {
469 
470  }
471  // Invalid
472  return 0;
473  }
474 
475  const char *getNestParmName(TempIndex fieldnum) const override
476  {
477  if (fieldnum.size() < 1)
478  return 0;
479  switch (fieldnum[0])
480  {
481  case 0:
482  return "group";
483  case 1:
484  return "arclen";
485  case 2:
486  return "firstu";
487  case 3:
488  return "domainu1";
489  case 4:
490  return "usedomainu1attrib";
491  case 5:
492  return "domainu1attrib";
493  case 6:
494  return "secondu";
495  case 7:
496  return "domainu2";
497  case 8:
498  return "usedomainu2attrib";
499  case 9:
500  return "domainu2attrib";
501  case 10:
502  return "firstv";
503  case 11:
504  return "domainv1";
505  case 12:
506  return "usedomainv1attrib";
507  case 13:
508  return "domainv1attrib";
509  case 14:
510  return "secondv";
511  case 15:
512  return "domainv2";
513  case 16:
514  return "usedomainv2attrib";
515  case 17:
516  return "domainv2attrib";
517  case 18:
518  return "onlybreakpoints";
519  case 19:
520  return "divsu";
521  case 20:
522  return "divsv";
523  case 21:
524  return "allubreakpoints";
525  case 22:
526  return "allvbreakpoints";
527  case 23:
528  return "stdswitcher";
529  case 24:
530  return "keepin";
531  case 25:
532  return "keepout";
533  case 26:
534  return "extractop";
535  case 27:
536  return "keepOriginal";
537 
538  }
539  return 0;
540  }
541 
542  ParmType getNestParmType(TempIndex fieldnum) const override
543  {
544  if (fieldnum.size() < 1)
545  return PARM_UNSUPPORTED;
546  switch (fieldnum[0])
547  {
548  case 0:
549  return PARM_STRING;
550  case 1:
551  return PARM_INTEGER;
552  case 2:
553  return PARM_INTEGER;
554  case 3:
555  return PARM_FLOAT;
556  case 4:
557  return PARM_INTEGER;
558  case 5:
559  return PARM_STRING;
560  case 6:
561  return PARM_INTEGER;
562  case 7:
563  return PARM_FLOAT;
564  case 8:
565  return PARM_INTEGER;
566  case 9:
567  return PARM_STRING;
568  case 10:
569  return PARM_INTEGER;
570  case 11:
571  return PARM_FLOAT;
572  case 12:
573  return PARM_INTEGER;
574  case 13:
575  return PARM_STRING;
576  case 14:
577  return PARM_INTEGER;
578  case 15:
579  return PARM_FLOAT;
580  case 16:
581  return PARM_INTEGER;
582  case 17:
583  return PARM_STRING;
584  case 18:
585  return PARM_INTEGER;
586  case 19:
587  return PARM_INTEGER;
588  case 20:
589  return PARM_INTEGER;
590  case 21:
591  return PARM_INTEGER;
592  case 22:
593  return PARM_INTEGER;
594  case 23:
595  return PARM_INTEGER;
596  case 24:
597  return PARM_INTEGER;
598  case 25:
599  return PARM_INTEGER;
600  case 26:
601  return PARM_INTEGER;
602  case 27:
603  return PARM_INTEGER;
604 
605  }
606  return PARM_UNSUPPORTED;
607  }
608 
609  // Boiler plate to load individual types.
610  static void loadData(UT_IStream &is, int64 &v)
611  { is.bread(&v, 1); }
612  static void loadData(UT_IStream &is, bool &v)
613  { int64 iv; is.bread(&iv, 1); v = iv; }
614  static void loadData(UT_IStream &is, fpreal64 &v)
615  { is.bread<fpreal64>(&v, 1); }
616  static void loadData(UT_IStream &is, UT_Vector2D &v)
617  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
618  static void loadData(UT_IStream &is, UT_Vector3D &v)
619  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
620  is.bread<fpreal64>(&v.z(), 1); }
621  static void loadData(UT_IStream &is, UT_Vector4D &v)
622  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
623  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
624  static void loadData(UT_IStream &is, UT_Matrix2D &v)
625  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
626  static void loadData(UT_IStream &is, UT_Matrix3D &v)
627  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
628  static void loadData(UT_IStream &is, UT_Matrix4D &v)
629  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
630  static void loadData(UT_IStream &is, UT_Vector2I &v)
631  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
632  static void loadData(UT_IStream &is, UT_Vector3I &v)
633  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
634  is.bread<int64>(&v.z(), 1); }
635  static void loadData(UT_IStream &is, UT_Vector4I &v)
636  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
637  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
639  { is.bread(v); }
641  { UT_StringHolder rampdata;
642  loadData(is, rampdata);
643  if (rampdata.isstring())
644  {
645  v.reset(new UT_Ramp());
646  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
647  v->load(istr);
648  }
649  else v.reset();
650  }
653  loadData(is, data);
654  if (data.isstring())
655  {
656  // Find the data type.
657  const char *colon = UT_StringWrap(data).findChar(':');
658  if (colon)
659  {
660  int typelen = colon - data.buffer();
662  type.strncpy(data.buffer(), typelen);
663  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
664 
665  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
666  }
667  }
668  else v.reset();
669  }
670 
671  static void saveData(std::ostream &os, int64 v)
672  { UTwrite(os, &v); }
673  static void saveData(std::ostream &os, bool v)
674  { int64 iv = v; UTwrite(os, &iv); }
675  static void saveData(std::ostream &os, fpreal64 v)
676  { UTwrite<fpreal64>(os, &v); }
677  static void saveData(std::ostream &os, UT_Vector2D v)
678  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
679  static void saveData(std::ostream &os, UT_Vector3D v)
680  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
681  UTwrite<fpreal64>(os, &v.z()); }
682  static void saveData(std::ostream &os, UT_Vector4D v)
683  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
684  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
685  static void saveData(std::ostream &os, UT_Matrix2D v)
687  static void saveData(std::ostream &os, UT_Matrix3D v)
689  static void saveData(std::ostream &os, UT_Matrix4D v)
691  static void saveData(std::ostream &os, UT_StringHolder s)
692  { UT_StringWrap(s).saveBinary(os); }
693  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
695  UT_OStringStream ostr;
696  if (s) s->save(ostr);
697  result = ostr.str();
698  saveData(os, result);
699  }
700  static void saveData(std::ostream &os, PRM_DataItemHandle s)
702  UT_OStringStream ostr;
703  if (s)
704  {
705  ostr << s->getDataTypeToken();
706  ostr << ":";
707  s->saveBinary(ostr);
708  }
709  result = ostr.str();
710  saveData(os, result);
711  }
712 
713 
714  void save(std::ostream &os) const
715  {
716  int32 v = version();
717  UTwrite(os, &v);
718  saveData(os, myGroup);
719  saveData(os, myArcLen);
720  saveData(os, myFirstU);
721  saveData(os, myDomainU1);
722  saveData(os, myUseDomainU1Attrib);
723  saveData(os, myDomainU1Attrib);
724  saveData(os, mySecondU);
725  saveData(os, myDomainU2);
726  saveData(os, myUseDomainU2Attrib);
727  saveData(os, myDomainU2Attrib);
728  saveData(os, myFirstV);
729  saveData(os, myDomainV1);
730  saveData(os, myUseDomainV1Attrib);
731  saveData(os, myDomainV1Attrib);
732  saveData(os, mySecondV);
733  saveData(os, myDomainV2);
734  saveData(os, myUseDomainV2Attrib);
735  saveData(os, myDomainV2Attrib);
736  saveData(os, myOnlyBreakpoints);
737  saveData(os, myDivsU);
738  saveData(os, myDivsV);
739  saveData(os, myAllUBreakpoints);
740  saveData(os, myAllVBreakpoints);
741  saveData(os, myFunction);
742  saveData(os, myKeepIn);
743  saveData(os, myKeepOut);
744  saveData(os, myExtractOp);
745  saveData(os, myKeepOriginal);
746 
747  }
748 
749  bool load(UT_IStream &is)
750  {
751  int32 v;
752  is.bread(&v, 1);
753  if (version() != v)
754  {
755  // Fail incompatible versions
756  return false;
757  }
758  loadData(is, myGroup);
759  loadData(is, myArcLen);
760  loadData(is, myFirstU);
761  loadData(is, myDomainU1);
762  loadData(is, myUseDomainU1Attrib);
763  loadData(is, myDomainU1Attrib);
764  loadData(is, mySecondU);
765  loadData(is, myDomainU2);
766  loadData(is, myUseDomainU2Attrib);
767  loadData(is, myDomainU2Attrib);
768  loadData(is, myFirstV);
769  loadData(is, myDomainV1);
770  loadData(is, myUseDomainV1Attrib);
771  loadData(is, myDomainV1Attrib);
772  loadData(is, mySecondV);
773  loadData(is, myDomainV2);
774  loadData(is, myUseDomainV2Attrib);
775  loadData(is, myDomainV2Attrib);
776  loadData(is, myOnlyBreakpoints);
777  loadData(is, myDivsU);
778  loadData(is, myDivsV);
779  loadData(is, myAllUBreakpoints);
780  loadData(is, myAllVBreakpoints);
781  loadData(is, myFunction);
782  loadData(is, myKeepIn);
783  loadData(is, myKeepOut);
784  loadData(is, myExtractOp);
785  loadData(is, myKeepOriginal);
786 
787  return true;
788  }
789 
790  const UT_StringHolder & getGroup() const { return myGroup; }
791  void setGroup(const UT_StringHolder & val) { myGroup = val; }
793  {
794  SOP_Node *thissop = cookparms.getNode();
795  if (!thissop) return getGroup();
797  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
798  return result;
799  }
800  bool getArcLen() const { return myArcLen; }
801  void setArcLen(bool val) { myArcLen = val; }
802  bool opArcLen(const SOP_NodeVerb::CookParms &cookparms) const
803  {
804  SOP_Node *thissop = cookparms.getNode();
805  if (!thissop) return getArcLen();
806  bool result;
807  OP_Utils::evalOpParm(result, thissop, "arclen", cookparms.getCookTime(), 0);
808  return result;
809  }
810  bool getFirstU() const { return myFirstU; }
811  void setFirstU(bool val) { myFirstU = val; }
812  bool opFirstU(const SOP_NodeVerb::CookParms &cookparms) const
813  {
814  SOP_Node *thissop = cookparms.getNode();
815  if (!thissop) return getFirstU();
816  bool result;
817  OP_Utils::evalOpParm(result, thissop, "firstu", cookparms.getCookTime(), 0);
818  return result;
819  }
820  fpreal64 getDomainU1() const { return myDomainU1; }
821  void setDomainU1(fpreal64 val) { myDomainU1 = val; }
823  {
824  SOP_Node *thissop = cookparms.getNode();
825  if (!thissop) return getDomainU1();
827  OP_Utils::evalOpParm(result, thissop, "domainu1", cookparms.getCookTime(), 0);
828  return result;
829  }
830  int64 getUseDomainU1Attrib() const { return myUseDomainU1Attrib; }
831  void setUseDomainU1Attrib(int64 val) { myUseDomainU1Attrib = val; }
833  {
834  SOP_Node *thissop = cookparms.getNode();
835  if (!thissop) return getUseDomainU1Attrib();
836  int64 result;
837  OP_Utils::evalOpParm(result, thissop, "usedomainu1attrib", cookparms.getCookTime(), 0);
838  return result;
839  }
840  const UT_StringHolder & getDomainU1Attrib() const { return myDomainU1Attrib; }
841  void setDomainU1Attrib(const UT_StringHolder & val) { myDomainU1Attrib = val; }
843  {
844  SOP_Node *thissop = cookparms.getNode();
845  if (!thissop) return getDomainU1Attrib();
847  OP_Utils::evalOpParm(result, thissop, "domainu1attrib", cookparms.getCookTime(), 0);
848  return result;
849  }
850  bool getSecondU() const { return mySecondU; }
851  void setSecondU(bool val) { mySecondU = val; }
852  bool opSecondU(const SOP_NodeVerb::CookParms &cookparms) const
853  {
854  SOP_Node *thissop = cookparms.getNode();
855  if (!thissop) return getSecondU();
856  bool result;
857  OP_Utils::evalOpParm(result, thissop, "secondu", cookparms.getCookTime(), 0);
858  return result;
859  }
860  fpreal64 getDomainU2() const { return myDomainU2; }
861  void setDomainU2(fpreal64 val) { myDomainU2 = val; }
863  {
864  SOP_Node *thissop = cookparms.getNode();
865  if (!thissop) return getDomainU2();
867  OP_Utils::evalOpParm(result, thissop, "domainu2", cookparms.getCookTime(), 0);
868  return result;
869  }
870  int64 getUseDomainU2Attrib() const { return myUseDomainU2Attrib; }
871  void setUseDomainU2Attrib(int64 val) { myUseDomainU2Attrib = val; }
873  {
874  SOP_Node *thissop = cookparms.getNode();
875  if (!thissop) return getUseDomainU2Attrib();
876  int64 result;
877  OP_Utils::evalOpParm(result, thissop, "usedomainu2attrib", cookparms.getCookTime(), 0);
878  return result;
879  }
880  const UT_StringHolder & getDomainU2Attrib() const { return myDomainU2Attrib; }
881  void setDomainU2Attrib(const UT_StringHolder & val) { myDomainU2Attrib = val; }
883  {
884  SOP_Node *thissop = cookparms.getNode();
885  if (!thissop) return getDomainU2Attrib();
887  OP_Utils::evalOpParm(result, thissop, "domainu2attrib", cookparms.getCookTime(), 0);
888  return result;
889  }
890  bool getFirstV() const { return myFirstV; }
891  void setFirstV(bool val) { myFirstV = val; }
892  bool opFirstV(const SOP_NodeVerb::CookParms &cookparms) const
893  {
894  SOP_Node *thissop = cookparms.getNode();
895  if (!thissop) return getFirstV();
896  bool result;
897  OP_Utils::evalOpParm(result, thissop, "firstv", cookparms.getCookTime(), 0);
898  return result;
899  }
900  fpreal64 getDomainV1() const { return myDomainV1; }
901  void setDomainV1(fpreal64 val) { myDomainV1 = val; }
903  {
904  SOP_Node *thissop = cookparms.getNode();
905  if (!thissop) return getDomainV1();
907  OP_Utils::evalOpParm(result, thissop, "domainv1", cookparms.getCookTime(), 0);
908  return result;
909  }
910  int64 getUseDomainV1Attrib() const { return myUseDomainV1Attrib; }
911  void setUseDomainV1Attrib(int64 val) { myUseDomainV1Attrib = val; }
913  {
914  SOP_Node *thissop = cookparms.getNode();
915  if (!thissop) return getUseDomainV1Attrib();
916  int64 result;
917  OP_Utils::evalOpParm(result, thissop, "usedomainv1attrib", cookparms.getCookTime(), 0);
918  return result;
919  }
920  const UT_StringHolder & getDomainV1Attrib() const { return myDomainV1Attrib; }
921  void setDomainV1Attrib(const UT_StringHolder & val) { myDomainV1Attrib = val; }
923  {
924  SOP_Node *thissop = cookparms.getNode();
925  if (!thissop) return getDomainV1Attrib();
927  OP_Utils::evalOpParm(result, thissop, "domainv1attrib", cookparms.getCookTime(), 0);
928  return result;
929  }
930  bool getSecondV() const { return mySecondV; }
931  void setSecondV(bool val) { mySecondV = val; }
932  bool opSecondV(const SOP_NodeVerb::CookParms &cookparms) const
933  {
934  SOP_Node *thissop = cookparms.getNode();
935  if (!thissop) return getSecondV();
936  bool result;
937  OP_Utils::evalOpParm(result, thissop, "secondv", cookparms.getCookTime(), 0);
938  return result;
939  }
940  fpreal64 getDomainV2() const { return myDomainV2; }
941  void setDomainV2(fpreal64 val) { myDomainV2 = val; }
943  {
944  SOP_Node *thissop = cookparms.getNode();
945  if (!thissop) return getDomainV2();
947  OP_Utils::evalOpParm(result, thissop, "domainv2", cookparms.getCookTime(), 0);
948  return result;
949  }
950  int64 getUseDomainV2Attrib() const { return myUseDomainV2Attrib; }
951  void setUseDomainV2Attrib(int64 val) { myUseDomainV2Attrib = val; }
953  {
954  SOP_Node *thissop = cookparms.getNode();
955  if (!thissop) return getUseDomainV2Attrib();
956  int64 result;
957  OP_Utils::evalOpParm(result, thissop, "usedomainv2attrib", cookparms.getCookTime(), 0);
958  return result;
959  }
960  const UT_StringHolder & getDomainV2Attrib() const { return myDomainV2Attrib; }
961  void setDomainV2Attrib(const UT_StringHolder & val) { myDomainV2Attrib = val; }
963  {
964  SOP_Node *thissop = cookparms.getNode();
965  if (!thissop) return getDomainV2Attrib();
967  OP_Utils::evalOpParm(result, thissop, "domainv2attrib", cookparms.getCookTime(), 0);
968  return result;
969  }
970  int64 getOnlyBreakpoints() const { return myOnlyBreakpoints; }
971  void setOnlyBreakpoints(int64 val) { myOnlyBreakpoints = val; }
973  {
974  SOP_Node *thissop = cookparms.getNode();
975  if (!thissop) return getOnlyBreakpoints();
976  int64 result;
977  OP_Utils::evalOpParm(result, thissop, "onlybreakpoints", cookparms.getCookTime(), 0);
978  return result;
979  }
980  int64 getDivsU() const { return myDivsU; }
981  void setDivsU(int64 val) { myDivsU = val; }
982  int64 opDivsU(const SOP_NodeVerb::CookParms &cookparms) const
983  {
984  SOP_Node *thissop = cookparms.getNode();
985  if (!thissop) return getDivsU();
986  int64 result;
987  OP_Utils::evalOpParm(result, thissop, "divsu", cookparms.getCookTime(), 0);
988  return result;
989  }
990  int64 getDivsV() const { return myDivsV; }
991  void setDivsV(int64 val) { myDivsV = val; }
992  int64 opDivsV(const SOP_NodeVerb::CookParms &cookparms) const
993  {
994  SOP_Node *thissop = cookparms.getNode();
995  if (!thissop) return getDivsV();
996  int64 result;
997  OP_Utils::evalOpParm(result, thissop, "divsv", cookparms.getCookTime(), 0);
998  return result;
999  }
1000  bool getAllUBreakpoints() const { return myAllUBreakpoints; }
1001  void setAllUBreakpoints(bool val) { myAllUBreakpoints = val; }
1002  bool opAllUBreakpoints(const SOP_NodeVerb::CookParms &cookparms) const
1003  {
1004  SOP_Node *thissop = cookparms.getNode();
1005  if (!thissop) return getAllUBreakpoints();
1006  bool result;
1007  OP_Utils::evalOpParm(result, thissop, "allubreakpoints", cookparms.getCookTime(), 0);
1008  return result;
1009  }
1010  bool getAllVBreakpoints() const { return myAllVBreakpoints; }
1011  void setAllVBreakpoints(bool val) { myAllVBreakpoints = val; }
1012  bool opAllVBreakpoints(const SOP_NodeVerb::CookParms &cookparms) const
1013  {
1014  SOP_Node *thissop = cookparms.getNode();
1015  if (!thissop) return getAllVBreakpoints();
1016  bool result;
1017  OP_Utils::evalOpParm(result, thissop, "allvbreakpoints", cookparms.getCookTime(), 0);
1018  return result;
1019  }
1020  int64 getFunction() const { return myFunction; }
1021  void setFunction(int64 val) { myFunction = val; }
1022  int64 opFunction(const SOP_NodeVerb::CookParms &cookparms) const
1023  {
1024  SOP_Node *thissop = cookparms.getNode();
1025  if (!thissop) return getFunction();
1026  int64 result;
1027  OP_Utils::evalOpParm(result, thissop, "stdswitcher", cookparms.getCookTime(), 0);
1028  return result;
1029  }
1030  bool getKeepIn() const { return myKeepIn; }
1031  void setKeepIn(bool val) { myKeepIn = val; }
1032  bool opKeepIn(const SOP_NodeVerb::CookParms &cookparms) const
1033  {
1034  SOP_Node *thissop = cookparms.getNode();
1035  if (!thissop) return getKeepIn();
1036  bool result;
1037  OP_Utils::evalOpParm(result, thissop, "keepin", cookparms.getCookTime(), 0);
1038  return result;
1039  }
1040  bool getKeepOut() const { return myKeepOut; }
1041  void setKeepOut(bool val) { myKeepOut = val; }
1042  bool opKeepOut(const SOP_NodeVerb::CookParms &cookparms) const
1043  {
1044  SOP_Node *thissop = cookparms.getNode();
1045  if (!thissop) return getKeepOut();
1046  bool result;
1047  OP_Utils::evalOpParm(result, thissop, "keepout", cookparms.getCookTime(), 0);
1048  return result;
1049  }
1050  int64 getExtractOp() const { return myExtractOp; }
1051  void setExtractOp(int64 val) { myExtractOp = val; }
1053  {
1054  SOP_Node *thissop = cookparms.getNode();
1055  if (!thissop) return getExtractOp();
1056  int64 result;
1057  OP_Utils::evalOpParm(result, thissop, "extractop", cookparms.getCookTime(), 0);
1058  return result;
1059  }
1060  bool getKeepOriginal() const { return myKeepOriginal; }
1061  void setKeepOriginal(bool val) { myKeepOriginal = val; }
1062  bool opKeepOriginal(const SOP_NodeVerb::CookParms &cookparms) const
1063  {
1064  SOP_Node *thissop = cookparms.getNode();
1065  if (!thissop) return getKeepOriginal();
1066  bool result;
1067  OP_Utils::evalOpParm(result, thissop, "keepOriginal", cookparms.getCookTime(), 0);
1068  return result;
1069  }
1070 
1071 private:
1072  UT_StringHolder myGroup;
1073  bool myArcLen;
1074  bool myFirstU;
1075  fpreal64 myDomainU1;
1076  int64 myUseDomainU1Attrib;
1077  UT_StringHolder myDomainU1Attrib;
1078  bool mySecondU;
1079  fpreal64 myDomainU2;
1080  int64 myUseDomainU2Attrib;
1081  UT_StringHolder myDomainU2Attrib;
1082  bool myFirstV;
1083  fpreal64 myDomainV1;
1084  int64 myUseDomainV1Attrib;
1085  UT_StringHolder myDomainV1Attrib;
1086  bool mySecondV;
1087  fpreal64 myDomainV2;
1088  int64 myUseDomainV2Attrib;
1089  UT_StringHolder myDomainV2Attrib;
1090  int64 myOnlyBreakpoints;
1091  int64 myDivsU;
1092  int64 myDivsV;
1093  bool myAllUBreakpoints;
1094  bool myAllVBreakpoints;
1095  int64 myFunction;
1096  bool myKeepIn;
1097  bool myKeepOut;
1098  int64 myExtractOp;
1099  bool myKeepOriginal;
1100 
1101 };
fpreal64 getDomainU1() const
void setFirstV(bool val)
void copyFrom(const OP_NodeParms *src) override
bool opKeepOriginal(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
int64 opDivsV(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setFunction(int64 val)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
bool operator==(const SOP_CarveParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setDivsU(int64 val)
int64 opUseDomainV2Attrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool operator!=(const SOP_CarveParms &src) const
bool getSecondU() const
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
int64 getExtractOp() const
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
fpreal getTime() const
Definition: OP_Context.h:62
void setDomainU1Attrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opKeepOut(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
int64 opFunction(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void saveData(std::ostream &os, UT_Vector2D v)
SYS_FORCE_INLINE const char * buffer() const
void setUseDomainV1Attrib(int64 val)
void setUseDomainV2Attrib(int64 val)
GLdouble s
Definition: glad.h:3009
void setDomainV2Attrib(const UT_StringHolder &val)
void setExtractOp(int64 val)
void setKeepOriginal(bool val)
static int version()
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
An output stream object that owns its own string buffer storage.
int64 opExtractOp(const SOP_NodeVerb::CookParms &cookparms) const
void setDomainV1Attrib(const UT_StringHolder &val)
**But if you need a result
Definition: thread.h:613
int64 getUseDomainV1Attrib() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
fpreal64 getDomainV1() const
int64 opUseDomainV1Attrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getDomainV1Attrib() const
bool getFirstU() const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
int64 getDivsU() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, bool &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
int64 getUseDomainV2Attrib() const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
bool opSecondV(const SOP_NodeVerb::CookParms &cookparms) const
bool getSecondV() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool load(UT_IStream &is)
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setDomainU1(fpreal64 val)
void setGroup(const UT_StringHolder &val)
void setKeepIn(bool val)
void setOnlyBreakpoints(int64 val)
int64 getDivsV() const
bool getKeepOriginal() const
bool opFirstU(const SOP_NodeVerb::CookParms &cookparms) const
void setDivsV(int64 val)
static void saveData(std::ostream &os, UT_Matrix3D v)
exint length() const
UT_StringHolder opDomainV1Attrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 getDomainU2() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
int64 getUseDomainU2Attrib() const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
void loadFromOpSubclass(const LoadParms &loadparms) override
exint getNestNumParms(TempIndex idx) const override
bool opSecondU(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void setSecondV(bool val)
int64 getFunction() const
UT_StringHolder opDomainU1Attrib(const SOP_NodeVerb::CookParms &cookparms) const
void setAllUBreakpoints(bool val)
bool opAllVBreakpoints(const SOP_NodeVerb::CookParms &cookparms) const
void setDomainU2Attrib(const UT_StringHolder &val)
long long int64
Definition: SYS_Types.h:116
const char * getNestParmName(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_StringHolder & getDomainU1Attrib() const
void setSecondU(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
int64 opUseDomainU1Attrib(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setDomainV2(fpreal64 val)
bool opAllUBreakpoints(const SOP_NodeVerb::CookParms &cookparms) const
int64 getOnlyBreakpoints() const
void setKeepOut(bool val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
const UT_StringHolder & getDomainV2Attrib() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
GT_API const UT_StringHolder version
void setDomainV1(fpreal64 val)
fpreal64 getDomainV2() const
bool getKeepIn() const
const UT_StringHolder & getDomainU2Attrib() const
int64 getUseDomainU1Attrib() const
bool getFirstV() const
ParmType getNestParmType(TempIndex fieldnum) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setArcLen(bool val)
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
void setAllVBreakpoints(bool val)
static void saveData(std::ostream &os, bool v)
static void saveData(std::ostream &os, UT_Matrix4D v)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
bool getKeepOut() const
int64 opDivsU(const SOP_NodeVerb::CookParms &cookparms) const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
fpreal64 opDomainV2(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
static void loadData(UT_IStream &is, UT_Matrix4D &v)
GLuint GLfloat * val
Definition: glcorearb.h:1608
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
#define SOP_API
Definition: SOP_API.h:10
static void loadData(UT_IStream &is, int64 &v)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool getAllVBreakpoints() const
int64 opOnlyBreakpoints(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
fpreal64 opDomainV1(const SOP_NodeVerb::CookParms &cookparms) const
bool getAllUBreakpoints() const
void setUseDomainU1Attrib(int64 val)
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
void setFirstU(bool val)
Definition: core.h:1131
bool opFirstV(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
GLboolean r
Definition: glcorearb.h:1222
fpreal64 opDomainU2(const SOP_NodeVerb::CookParms &cookparms) const
int64 opUseDomainU2Attrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
UT_StringHolder opDomainV2Attrib(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opArcLen(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void setUseDomainU2Attrib(int64 val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
type
Definition: core.h:1059
bool getArcLen() const
void setDomainU2(fpreal64 val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
static void saveData(std::ostream &os, UT_Vector3D v)
fpreal64 opDomainU1(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
SYS_FORCE_INLINE bool isstring() const
bool opKeepIn(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opDomainU2Attrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void save(std::ostream &os) const