HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_CopyToPoints.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_API.h>
7 #include <SOP/SOP_NodeVerb.h>
8 #include <SOP/SOP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_CopyToPointsEnums
24 {
25  enum class Pivot
26  {
27  ORIGIN = 0,
28  CENTROID
29  };
30  enum class Viewportlod
31  {
32  FULL = 0,
33  POINTS,
34  BOX,
35  CENTROID,
36  HIDDEN
37  };
38 }
39 
40 
42 {
43 public:
44  static int version() { return 1; }
45 
47  {
48  mySourceGroup = ""_UTsh;
49  myTargetGroup = ""_UTsh;
50  myShowguide = true;
51  myPack = false;
52  myPivot = 1;
53  myViewportlod = 0;
54  myTransform = true;
55  myDoAttr = true;
56  mySetpt = "*,^v,^Alpha,^N"_UTsh;
57  myMulpt = "Alpha"_UTsh;
58  myAddpt = "v"_UTsh;
59  mySubpt = ""_UTsh;
60  mySetprim = ""_UTsh;
61  myMulprim = ""_UTsh;
62  myAddprim = ""_UTsh;
63  mySubprim = ""_UTsh;
64  mySetvtx = ""_UTsh;
65  myMulvtx = ""_UTsh;
66  myAddvtx = ""_UTsh;
67  mySubvtx = ""_UTsh;
68 
69  }
70 
71  explicit SOP_CopyToPointsParms(const SOP_CopyToPointsParms &) = default;
73  SOP_CopyToPointsParms(SOP_CopyToPointsParms &&) noexcept = default;
74  SOP_CopyToPointsParms &operator=(SOP_CopyToPointsParms &&) noexcept = default;
75 
76  ~SOP_CopyToPointsParms() override {}
77 
79  {
80  if (mySourceGroup != src.mySourceGroup) return false;
81  if (myTargetGroup != src.myTargetGroup) return false;
82  if (myShowguide != src.myShowguide) return false;
83  if (myPack != src.myPack) return false;
84  if (myPivot != src.myPivot) return false;
85  if (myViewportlod != src.myViewportlod) return false;
86  if (myTransform != src.myTransform) return false;
87  if (myDoAttr != src.myDoAttr) return false;
88  if (mySetpt != src.mySetpt) return false;
89  if (myMulpt != src.myMulpt) return false;
90  if (myAddpt != src.myAddpt) return false;
91  if (mySubpt != src.mySubpt) return false;
92  if (mySetprim != src.mySetprim) return false;
93  if (myMulprim != src.myMulprim) return false;
94  if (myAddprim != src.myAddprim) return false;
95  if (mySubprim != src.mySubprim) return false;
96  if (mySetvtx != src.mySetvtx) return false;
97  if (myMulvtx != src.myMulvtx) return false;
98  if (myAddvtx != src.myAddvtx) return false;
99  if (mySubvtx != src.mySubvtx) return false;
100 
101  return true;
102  }
104  {
105  return !operator==(src);
106  }
109 
110 
111 
112  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
113  {
114  mySourceGroup = ""_UTsh;
115  if (true)
116  graph->evalOpParm(mySourceGroup, nodeidx, "sourcegroup", time, 0);
117  myTargetGroup = ""_UTsh;
118  if (true)
119  graph->evalOpParm(myTargetGroup, nodeidx, "targetgroup", time, 0);
120  myShowguide = true;
121  if (true)
122  graph->evalOpParm(myShowguide, nodeidx, "showguide", time, 0);
123  myPack = false;
124  if (true)
125  graph->evalOpParm(myPack, nodeidx, "pack", time, 0);
126  myPivot = 1;
127  if (true && ( (true&&!(((getPack()==0)))) ) )
128  graph->evalOpParm(myPivot, nodeidx, "pivot", time, 0);
129  myViewportlod = 0;
130  if (true && ( (true&&!(((getPack()==0)))) ) )
131  graph->evalOpParm(myViewportlod, nodeidx, "viewportlod", time, 0);
132  myTransform = true;
133  if (true)
134  graph->evalOpParm(myTransform, nodeidx, "transform", time, 0);
135  myDoAttr = true;
136  if (true)
137  graph->evalOpParm(myDoAttr, nodeidx, "doattr", time, 0);
138  mySetpt = "*,^v,^Alpha,^N"_UTsh;
139  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
140  graph->evalOpParm(mySetpt, nodeidx, "setpt", time, 0);
141  myMulpt = "Alpha"_UTsh;
142  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
143  graph->evalOpParm(myMulpt, nodeidx, "mulpt", time, 0);
144  myAddpt = "v"_UTsh;
145  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
146  graph->evalOpParm(myAddpt, nodeidx, "addpt", time, 0);
147  mySubpt = ""_UTsh;
148  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
149  graph->evalOpParm(mySubpt, nodeidx, "subpt", time, 0);
150  mySetprim = ""_UTsh;
151  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
152  graph->evalOpParm(mySetprim, nodeidx, "setprim", time, 0);
153  myMulprim = ""_UTsh;
154  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
155  graph->evalOpParm(myMulprim, nodeidx, "mulprim", time, 0);
156  myAddprim = ""_UTsh;
157  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
158  graph->evalOpParm(myAddprim, nodeidx, "addprim", time, 0);
159  mySubprim = ""_UTsh;
160  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
161  graph->evalOpParm(mySubprim, nodeidx, "subprim", time, 0);
162  mySetvtx = ""_UTsh;
163  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
164  graph->evalOpParm(mySetvtx, nodeidx, "setvtx", time, 0);
165  myMulvtx = ""_UTsh;
166  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
167  graph->evalOpParm(myMulvtx, nodeidx, "mulvtx", time, 0);
168  myAddvtx = ""_UTsh;
169  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
170  graph->evalOpParm(myAddvtx, nodeidx, "addvtx", time, 0);
171  mySubvtx = ""_UTsh;
172  if (true && ( (true&&!(((getDoAttr()==0)))) ) )
173  graph->evalOpParm(mySubvtx, nodeidx, "subvtx", time, 0);
174 
175  }
176 
177 
178  void loadFromOpSubclass(const LoadParms &loadparms) override
179  {
180  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
181  }
182 
183 
184  void copyFrom(const OP_NodeParms *src) override
185  {
186  *this = *((const SOP_CopyToPointsParms *)src);
187  }
188 
189  template <typename T>
190  void
191  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
192  {
193  if (idx.size() < 1)
194  return;
195  UT_ASSERT(idx.size() == instance.size()+1);
196  if (idx.size() != instance.size()+1)
197  return;
198  switch (idx[0])
199  {
200  case 0:
201  coerceValue(value, mySourceGroup);
202  break;
203  case 1:
204  coerceValue(value, myTargetGroup);
205  break;
206  case 2:
207  coerceValue(value, myShowguide);
208  break;
209  case 3:
210  coerceValue(value, myPack);
211  break;
212  case 4:
213  coerceValue(value, myPivot);
214  break;
215  case 5:
216  coerceValue(value, myViewportlod);
217  break;
218  case 6:
219  coerceValue(value, myTransform);
220  break;
221  case 7:
222  coerceValue(value, myDoAttr);
223  break;
224  case 8:
225  coerceValue(value, mySetpt);
226  break;
227  case 9:
228  coerceValue(value, myMulpt);
229  break;
230  case 10:
231  coerceValue(value, myAddpt);
232  break;
233  case 11:
234  coerceValue(value, mySubpt);
235  break;
236  case 12:
237  coerceValue(value, mySetprim);
238  break;
239  case 13:
240  coerceValue(value, myMulprim);
241  break;
242  case 14:
243  coerceValue(value, myAddprim);
244  break;
245  case 15:
246  coerceValue(value, mySubprim);
247  break;
248  case 16:
249  coerceValue(value, mySetvtx);
250  break;
251  case 17:
252  coerceValue(value, myMulvtx);
253  break;
254  case 18:
255  coerceValue(value, myAddvtx);
256  break;
257  case 19:
258  coerceValue(value, mySubvtx);
259  break;
260 
261  }
262  }
263 
264  bool isParmColorRamp(exint idx) const override
265  {
266  switch (idx)
267  {
268 
269  }
270  return false;
271  }
272 
273  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
274  { doGetParmValue(idx, instance, value); }
275  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
276  { doGetParmValue(idx, instance, value); }
277  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
278  { doGetParmValue(idx, instance, value); }
279  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
280  { doGetParmValue(idx, instance, value); }
281  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
282  { doGetParmValue(idx, instance, value); }
283  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
284  { doGetParmValue(idx, instance, value); }
285  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
286  { doGetParmValue(idx, instance, value); }
287  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
288  { doGetParmValue(idx, instance, value); }
289  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
290  { doGetParmValue(idx, instance, value); }
291  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
292  { doGetParmValue(idx, instance, value); }
293  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
294  { doGetParmValue(idx, instance, value); }
295 
296  template <typename T>
297  void
298  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
299  {
300  if (idx.size() < 1)
301  return;
302  UT_ASSERT(idx.size() == instance.size()+1);
303  if (idx.size() != instance.size()+1)
304  return;
305  switch (idx[0])
306  {
307  case 0:
308  coerceValue(mySourceGroup, ( ( value ) ));
309  break;
310  case 1:
311  coerceValue(myTargetGroup, ( ( value ) ));
312  break;
313  case 2:
314  coerceValue(myShowguide, ( ( value ) ));
315  break;
316  case 3:
317  coerceValue(myPack, ( ( value ) ));
318  break;
319  case 4:
320  coerceValue(myPivot, clampMinValue(0, clampMaxValue(1, value ) ));
321  break;
322  case 5:
323  coerceValue(myViewportlod, clampMinValue(0, clampMaxValue(4, value ) ));
324  break;
325  case 6:
326  coerceValue(myTransform, ( ( value ) ));
327  break;
328  case 7:
329  coerceValue(myDoAttr, ( ( value ) ));
330  break;
331  case 8:
332  coerceValue(mySetpt, ( ( value ) ));
333  break;
334  case 9:
335  coerceValue(myMulpt, ( ( value ) ));
336  break;
337  case 10:
338  coerceValue(myAddpt, ( ( value ) ));
339  break;
340  case 11:
341  coerceValue(mySubpt, ( ( value ) ));
342  break;
343  case 12:
344  coerceValue(mySetprim, ( ( value ) ));
345  break;
346  case 13:
347  coerceValue(myMulprim, ( ( value ) ));
348  break;
349  case 14:
350  coerceValue(myAddprim, ( ( value ) ));
351  break;
352  case 15:
353  coerceValue(mySubprim, ( ( value ) ));
354  break;
355  case 16:
356  coerceValue(mySetvtx, ( ( value ) ));
357  break;
358  case 17:
359  coerceValue(myMulvtx, ( ( value ) ));
360  break;
361  case 18:
362  coerceValue(myAddvtx, ( ( value ) ));
363  break;
364  case 19:
365  coerceValue(mySubvtx, ( ( value ) ));
366  break;
367 
368  }
369  }
370 
371  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
372  { doSetParmValue(idx, instance, value); }
373  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
374  { doSetParmValue(idx, instance, value); }
375  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
376  { doSetParmValue(idx, instance, value); }
377  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
378  { doSetParmValue(idx, instance, value); }
379  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
380  { doSetParmValue(idx, instance, value); }
381  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
382  { doSetParmValue(idx, instance, value); }
383  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
384  { doSetParmValue(idx, instance, value); }
385  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
386  { doSetParmValue(idx, instance, value); }
387  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
388  { doSetParmValue(idx, instance, value); }
389  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
390  { doSetParmValue(idx, instance, value); }
391  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
392  { doSetParmValue(idx, instance, value); }
393 
394  exint getNestNumParms(TempIndex idx) const override
395  {
396  if (idx.size() == 0)
397  return 20;
398  switch (idx[0])
399  {
400 
401  }
402  // Invalid
403  return 0;
404  }
405 
406  const char *getNestParmName(TempIndex fieldnum) const override
407  {
408  if (fieldnum.size() < 1)
409  return 0;
410  switch (fieldnum[0])
411  {
412  case 0:
413  return "sourcegroup";
414  case 1:
415  return "targetgroup";
416  case 2:
417  return "showguide";
418  case 3:
419  return "pack";
420  case 4:
421  return "pivot";
422  case 5:
423  return "viewportlod";
424  case 6:
425  return "transform";
426  case 7:
427  return "doattr";
428  case 8:
429  return "setpt";
430  case 9:
431  return "mulpt";
432  case 10:
433  return "addpt";
434  case 11:
435  return "subpt";
436  case 12:
437  return "setprim";
438  case 13:
439  return "mulprim";
440  case 14:
441  return "addprim";
442  case 15:
443  return "subprim";
444  case 16:
445  return "setvtx";
446  case 17:
447  return "mulvtx";
448  case 18:
449  return "addvtx";
450  case 19:
451  return "subvtx";
452 
453  }
454  return 0;
455  }
456 
457  ParmType getNestParmType(TempIndex fieldnum) const override
458  {
459  if (fieldnum.size() < 1)
460  return PARM_UNSUPPORTED;
461  switch (fieldnum[0])
462  {
463  case 0:
464  return PARM_STRING;
465  case 1:
466  return PARM_STRING;
467  case 2:
468  return PARM_INTEGER;
469  case 3:
470  return PARM_INTEGER;
471  case 4:
472  return PARM_INTEGER;
473  case 5:
474  return PARM_INTEGER;
475  case 6:
476  return PARM_INTEGER;
477  case 7:
478  return PARM_INTEGER;
479  case 8:
480  return PARM_STRING;
481  case 9:
482  return PARM_STRING;
483  case 10:
484  return PARM_STRING;
485  case 11:
486  return PARM_STRING;
487  case 12:
488  return PARM_STRING;
489  case 13:
490  return PARM_STRING;
491  case 14:
492  return PARM_STRING;
493  case 15:
494  return PARM_STRING;
495  case 16:
496  return PARM_STRING;
497  case 17:
498  return PARM_STRING;
499  case 18:
500  return PARM_STRING;
501  case 19:
502  return PARM_STRING;
503 
504  }
505  return PARM_UNSUPPORTED;
506  }
507 
508  // Boiler plate to load individual types.
509  static void loadData(UT_IStream &is, int64 &v)
510  { is.bread(&v, 1); }
511  static void loadData(UT_IStream &is, bool &v)
512  { int64 iv; is.bread(&iv, 1); v = iv; }
513  static void loadData(UT_IStream &is, fpreal64 &v)
514  { is.bread<fpreal64>(&v, 1); }
515  static void loadData(UT_IStream &is, UT_Vector2D &v)
516  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
517  static void loadData(UT_IStream &is, UT_Vector3D &v)
518  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
519  is.bread<fpreal64>(&v.z(), 1); }
520  static void loadData(UT_IStream &is, UT_Vector4D &v)
521  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
522  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
523  static void loadData(UT_IStream &is, UT_Matrix2D &v)
524  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
525  static void loadData(UT_IStream &is, UT_Matrix3D &v)
526  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
527  static void loadData(UT_IStream &is, UT_Matrix4D &v)
528  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
529  static void loadData(UT_IStream &is, UT_Vector2I &v)
530  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
531  static void loadData(UT_IStream &is, UT_Vector3I &v)
532  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
533  is.bread<int64>(&v.z(), 1); }
534  static void loadData(UT_IStream &is, UT_Vector4I &v)
535  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
536  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
538  { is.bread(v); }
540  { UT_StringHolder rampdata;
541  loadData(is, rampdata);
542  if (rampdata.isstring())
543  {
544  v.reset(new UT_Ramp());
545  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
546  v->load(istr);
547  }
548  else v.reset();
549  }
552  loadData(is, data);
553  if (data.isstring())
554  {
555  // Find the data type.
556  const char *colon = UT_StringWrap(data).findChar(':');
557  if (colon)
558  {
559  int typelen = colon - data.buffer();
561  type.strncpy(data.buffer(), typelen);
562  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
563 
564  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
565  }
566  }
567  else v.reset();
568  }
569 
570  static void saveData(std::ostream &os, int64 v)
571  { UTwrite(os, &v); }
572  static void saveData(std::ostream &os, bool v)
573  { int64 iv = v; UTwrite(os, &iv); }
574  static void saveData(std::ostream &os, fpreal64 v)
575  { UTwrite<fpreal64>(os, &v); }
576  static void saveData(std::ostream &os, UT_Vector2D v)
577  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
578  static void saveData(std::ostream &os, UT_Vector3D v)
579  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
580  UTwrite<fpreal64>(os, &v.z()); }
581  static void saveData(std::ostream &os, UT_Vector4D v)
582  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
583  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
584  static void saveData(std::ostream &os, UT_Matrix2D v)
586  static void saveData(std::ostream &os, UT_Matrix3D v)
588  static void saveData(std::ostream &os, UT_Matrix4D v)
590  static void saveData(std::ostream &os, UT_StringHolder s)
591  { UT_StringWrap(s).saveBinary(os); }
592  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
594  UT_OStringStream ostr;
595  if (s) s->save(ostr);
596  result = ostr.str();
597  saveData(os, result);
598  }
599  static void saveData(std::ostream &os, PRM_DataItemHandle s)
601  UT_OStringStream ostr;
602  if (s)
603  {
604  ostr << s->getDataTypeToken();
605  ostr << ":";
606  s->saveBinary(ostr);
607  }
608  result = ostr.str();
609  saveData(os, result);
610  }
611 
612 
613  void save(std::ostream &os) const
614  {
615  int32 v = version();
616  UTwrite(os, &v);
617  saveData(os, mySourceGroup);
618  saveData(os, myTargetGroup);
619  saveData(os, myShowguide);
620  saveData(os, myPack);
621  saveData(os, myPivot);
622  saveData(os, myViewportlod);
623  saveData(os, myTransform);
624  saveData(os, myDoAttr);
625  saveData(os, mySetpt);
626  saveData(os, myMulpt);
627  saveData(os, myAddpt);
628  saveData(os, mySubpt);
629  saveData(os, mySetprim);
630  saveData(os, myMulprim);
631  saveData(os, myAddprim);
632  saveData(os, mySubprim);
633  saveData(os, mySetvtx);
634  saveData(os, myMulvtx);
635  saveData(os, myAddvtx);
636  saveData(os, mySubvtx);
637 
638  }
639 
640  bool load(UT_IStream &is)
641  {
642  int32 v;
643  is.bread(&v, 1);
644  if (version() != v)
645  {
646  // Fail incompatible versions
647  return false;
648  }
649  loadData(is, mySourceGroup);
650  loadData(is, myTargetGroup);
651  loadData(is, myShowguide);
652  loadData(is, myPack);
653  loadData(is, myPivot);
654  loadData(is, myViewportlod);
655  loadData(is, myTransform);
656  loadData(is, myDoAttr);
657  loadData(is, mySetpt);
658  loadData(is, myMulpt);
659  loadData(is, myAddpt);
660  loadData(is, mySubpt);
661  loadData(is, mySetprim);
662  loadData(is, myMulprim);
663  loadData(is, myAddprim);
664  loadData(is, mySubprim);
665  loadData(is, mySetvtx);
666  loadData(is, myMulvtx);
667  loadData(is, myAddvtx);
668  loadData(is, mySubvtx);
669 
670  return true;
671  }
672 
673  const UT_StringHolder & getSourceGroup() const { return mySourceGroup; }
674  void setSourceGroup(const UT_StringHolder & val) { mySourceGroup = val; }
676  {
677  SOP_Node *thissop = cookparms.getNode();
678  if (!thissop) return getSourceGroup();
680  OP_Utils::evalOpParm(result, thissop, "sourcegroup", cookparms.getCookTime(), 0);
681  return result;
682  }
683  const UT_StringHolder & getTargetGroup() const { return myTargetGroup; }
684  void setTargetGroup(const UT_StringHolder & val) { myTargetGroup = val; }
686  {
687  SOP_Node *thissop = cookparms.getNode();
688  if (!thissop) return getTargetGroup();
690  OP_Utils::evalOpParm(result, thissop, "targetgroup", cookparms.getCookTime(), 0);
691  return result;
692  }
693  bool getShowguide() const { return myShowguide; }
694  void setShowguide(bool val) { myShowguide = val; }
695  bool opShowguide(const SOP_NodeVerb::CookParms &cookparms) const
696  {
697  SOP_Node *thissop = cookparms.getNode();
698  if (!thissop) return getShowguide();
699  bool result;
700  OP_Utils::evalOpParm(result, thissop, "showguide", cookparms.getCookTime(), 0);
701  return result;
702  }
703  bool getPack() const { return myPack; }
704  void setPack(bool val) { myPack = val; }
705  bool opPack(const SOP_NodeVerb::CookParms &cookparms) const
706  {
707  SOP_Node *thissop = cookparms.getNode();
708  if (!thissop) return getPack();
709  bool result;
710  OP_Utils::evalOpParm(result, thissop, "pack", cookparms.getCookTime(), 0);
711  return result;
712  }
713  Pivot getPivot() const { return Pivot(myPivot); }
714  void setPivot(Pivot val) { myPivot = int64(val); }
715  Pivot opPivot(const SOP_NodeVerb::CookParms &cookparms) const
716  {
717  SOP_Node *thissop = cookparms.getNode();
718  if (!thissop) return getPivot();
719  int64 result;
720  OP_Utils::evalOpParm(result, thissop, "pivot", cookparms.getCookTime(), 0);
721  return Pivot(result);
722  }
723  Viewportlod getViewportlod() const { return Viewportlod(myViewportlod); }
724  void setViewportlod(Viewportlod val) { myViewportlod = int64(val); }
726  {
727  SOP_Node *thissop = cookparms.getNode();
728  if (!thissop) return getViewportlod();
729  int64 result;
730  OP_Utils::evalOpParm(result, thissop, "viewportlod", cookparms.getCookTime(), 0);
731  return Viewportlod(result);
732  }
733  bool getTransform() const { return myTransform; }
734  void setTransform(bool val) { myTransform = val; }
735  bool opTransform(const SOP_NodeVerb::CookParms &cookparms) const
736  {
737  SOP_Node *thissop = cookparms.getNode();
738  if (!thissop) return getTransform();
739  bool result;
740  OP_Utils::evalOpParm(result, thissop, "transform", cookparms.getCookTime(), 0);
741  return result;
742  }
743  bool getDoAttr() const { return myDoAttr; }
744  void setDoAttr(bool val) { myDoAttr = val; }
745  bool opDoAttr(const SOP_NodeVerb::CookParms &cookparms) const
746  {
747  SOP_Node *thissop = cookparms.getNode();
748  if (!thissop) return getDoAttr();
749  bool result;
750  OP_Utils::evalOpParm(result, thissop, "doattr", cookparms.getCookTime(), 0);
751  return result;
752  }
753  const UT_StringHolder & getSetpt() const { return mySetpt; }
754  void setSetpt(const UT_StringHolder & val) { mySetpt = val; }
756  {
757  SOP_Node *thissop = cookparms.getNode();
758  if (!thissop) return getSetpt();
760  OP_Utils::evalOpParm(result, thissop, "setpt", cookparms.getCookTime(), 0);
761  return result;
762  }
763  const UT_StringHolder & getMulpt() const { return myMulpt; }
764  void setMulpt(const UT_StringHolder & val) { myMulpt = val; }
766  {
767  SOP_Node *thissop = cookparms.getNode();
768  if (!thissop) return getMulpt();
770  OP_Utils::evalOpParm(result, thissop, "mulpt", cookparms.getCookTime(), 0);
771  return result;
772  }
773  const UT_StringHolder & getAddpt() const { return myAddpt; }
774  void setAddpt(const UT_StringHolder & val) { myAddpt = val; }
776  {
777  SOP_Node *thissop = cookparms.getNode();
778  if (!thissop) return getAddpt();
780  OP_Utils::evalOpParm(result, thissop, "addpt", cookparms.getCookTime(), 0);
781  return result;
782  }
783  const UT_StringHolder & getSubpt() const { return mySubpt; }
784  void setSubpt(const UT_StringHolder & val) { mySubpt = val; }
786  {
787  SOP_Node *thissop = cookparms.getNode();
788  if (!thissop) return getSubpt();
790  OP_Utils::evalOpParm(result, thissop, "subpt", cookparms.getCookTime(), 0);
791  return result;
792  }
793  const UT_StringHolder & getSetprim() const { return mySetprim; }
794  void setSetprim(const UT_StringHolder & val) { mySetprim = val; }
796  {
797  SOP_Node *thissop = cookparms.getNode();
798  if (!thissop) return getSetprim();
800  OP_Utils::evalOpParm(result, thissop, "setprim", cookparms.getCookTime(), 0);
801  return result;
802  }
803  const UT_StringHolder & getMulprim() const { return myMulprim; }
804  void setMulprim(const UT_StringHolder & val) { myMulprim = val; }
806  {
807  SOP_Node *thissop = cookparms.getNode();
808  if (!thissop) return getMulprim();
810  OP_Utils::evalOpParm(result, thissop, "mulprim", cookparms.getCookTime(), 0);
811  return result;
812  }
813  const UT_StringHolder & getAddprim() const { return myAddprim; }
814  void setAddprim(const UT_StringHolder & val) { myAddprim = val; }
816  {
817  SOP_Node *thissop = cookparms.getNode();
818  if (!thissop) return getAddprim();
820  OP_Utils::evalOpParm(result, thissop, "addprim", cookparms.getCookTime(), 0);
821  return result;
822  }
823  const UT_StringHolder & getSubprim() const { return mySubprim; }
824  void setSubprim(const UT_StringHolder & val) { mySubprim = val; }
826  {
827  SOP_Node *thissop = cookparms.getNode();
828  if (!thissop) return getSubprim();
830  OP_Utils::evalOpParm(result, thissop, "subprim", cookparms.getCookTime(), 0);
831  return result;
832  }
833  const UT_StringHolder & getSetvtx() const { return mySetvtx; }
834  void setSetvtx(const UT_StringHolder & val) { mySetvtx = val; }
836  {
837  SOP_Node *thissop = cookparms.getNode();
838  if (!thissop) return getSetvtx();
840  OP_Utils::evalOpParm(result, thissop, "setvtx", cookparms.getCookTime(), 0);
841  return result;
842  }
843  const UT_StringHolder & getMulvtx() const { return myMulvtx; }
844  void setMulvtx(const UT_StringHolder & val) { myMulvtx = val; }
846  {
847  SOP_Node *thissop = cookparms.getNode();
848  if (!thissop) return getMulvtx();
850  OP_Utils::evalOpParm(result, thissop, "mulvtx", cookparms.getCookTime(), 0);
851  return result;
852  }
853  const UT_StringHolder & getAddvtx() const { return myAddvtx; }
854  void setAddvtx(const UT_StringHolder & val) { myAddvtx = val; }
856  {
857  SOP_Node *thissop = cookparms.getNode();
858  if (!thissop) return getAddvtx();
860  OP_Utils::evalOpParm(result, thissop, "addvtx", cookparms.getCookTime(), 0);
861  return result;
862  }
863  const UT_StringHolder & getSubvtx() const { return mySubvtx; }
864  void setSubvtx(const UT_StringHolder & val) { mySubvtx = val; }
866  {
867  SOP_Node *thissop = cookparms.getNode();
868  if (!thissop) return getSubvtx();
870  OP_Utils::evalOpParm(result, thissop, "subvtx", cookparms.getCookTime(), 0);
871  return result;
872  }
873 
874 private:
875  UT_StringHolder mySourceGroup;
876  UT_StringHolder myTargetGroup;
877  bool myShowguide;
878  bool myPack;
879  int64 myPivot;
880  int64 myViewportlod;
881  bool myTransform;
882  bool myDoAttr;
883  UT_StringHolder mySetpt;
884  UT_StringHolder myMulpt;
885  UT_StringHolder myAddpt;
886  UT_StringHolder mySubpt;
887  UT_StringHolder mySetprim;
888  UT_StringHolder myMulprim;
889  UT_StringHolder myAddprim;
890  UT_StringHolder mySubprim;
891  UT_StringHolder mySetvtx;
892  UT_StringHolder myMulvtx;
893  UT_StringHolder myAddvtx;
894  UT_StringHolder mySubvtx;
895 
896 };
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void loadFromOpSubclass(const LoadParms &loadparms) override
bool opDoAttr(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSubprim(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void saveData(std::ostream &os, UT_Matrix3D v)
bool operator==(const SOP_CopyToPointsParms &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setSubprim(const UT_StringHolder &val)
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void save(std::ostream &os) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
exint bread(int32 *buffer, exint asize=1)
exint getNestNumParms(TempIndex idx) const override
const UT_StringHolder & getSubprim() const
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
const UT_StringHolder & getAddprim() const
void setSubpt(const UT_StringHolder &val)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
static void loadData(UT_IStream &is, UT_Vector4D &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
An output stream object that owns its own string buffer storage.
UT_StringHolder opSetvtx(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAddvtx() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void copyFrom(const OP_NodeParms *src) override
const UT_StringHolder & getAddpt() const
UT_StringHolder opMulvtx(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
Definition: thread.h:613
T clampMinValue(fpreal minvalue, const T &src) const
Definition: OP_NodeParms.h:308
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void loadData(UT_IStream &is, bool &v)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, int64 v)
void setViewportlod(Viewportlod val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getMulvtx() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
double fpreal64
Definition: SYS_Types.h:201
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
Viewportlod getViewportlod() const
static void saveData(std::ostream &os, fpreal64 v)
UT_StringHolder opTargetGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setSourceGroup(const UT_StringHolder &val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
const UT_StringHolder & getMulpt() const
void setAddpt(const UT_StringHolder &val)
UT_StringHolder opAddvtx(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool operator!=(const SOP_CopyToPointsParms &src) const
UT_StringHolder opSubvtx(const SOP_NodeVerb::CookParms &cookparms) const
exint length() const
Pivot opPivot(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSetpt() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
const UT_StringHolder & getSubvtx() const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
UT_StringHolder opSetprim(const SOP_NodeVerb::CookParms &cookparms) const
void setSetprim(const UT_StringHolder &val)
const UT_StringHolder & getTargetGroup() const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setMulprim(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, bool v)
UT_StringHolder opSourceGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
long long int64
Definition: SYS_Types.h:116
const UT_StringHolder & getSetprim() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool opPack(const SOP_NodeVerb::CookParms &cookparms) const
void setMulvtx(const UT_StringHolder &val)
void setSetvtx(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setSubvtx(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool opShowguide(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
bool load(UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setMulpt(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setAddprim(const UT_StringHolder &val)
UT_StringHolder opSubpt(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opAddpt(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
Viewportlod opViewportlod(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
UT_StringHolder opMulprim(const SOP_NodeVerb::CookParms &cookparms) const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const UT_StringHolder & getSetvtx() const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
bool opTransform(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setSetpt(const UT_StringHolder &val)
#define SOP_API
Definition: SOP_API.h:10
UT_StringHolder opMulpt(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
const UT_StringHolder & getMulprim() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_StringHolder &v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_StringHolder opAddprim(const SOP_NodeVerb::CookParms &cookparms) const
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
static void saveData(std::ostream &os, UT_StringHolder s)
GLboolean r
Definition: glcorearb.h:1222
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void saveData(std::ostream &os, UT_Matrix2D v)
const UT_StringHolder & getSubpt() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
type
Definition: core.h:1059
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setTargetGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
static void saveData(std::ostream &os, UT_Matrix4D v)
ParmType getNestParmType(TempIndex fieldnum) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
UT_StringHolder opSetpt(const SOP_NodeVerb::CookParms &cookparms) const
void setAddvtx(const UT_StringHolder &val)
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getSourceGroup() const
static void loadData(UT_IStream &is, UT_Vector2I &v)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663