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