HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Triangulate2D-2.0.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_Triangulate2D_2_0Enums
24 {
25  enum class Planepossrc
26  {
27  FITPLANE = 0,
29  USEATTRIB
30  };
31 }
32 
33 
35 {
36 public:
37  static int version() { return 1; }
38 
40  {
41  myPoints = ""_UTsh;
42  myPlanepossrc = 0;
43  myOrigin = UT_Vector3D(0,0,0);
44  myDist = 0;
45  myDir = UT_Vector3D(0,1,0);
46  myPos2attrib = ""_UTsh;
47  myRestorepos = false;
48  myKeepprims = false;
49  myUpdatenmls = true;
50  myRemoveunusedpoints = true;
51  myRemoveduplicatepoints = true;
52  myRandseed = 5678;
53  myConprims = ""_UTsh;
54  myConedges = ""_UTsh;
55  myRemoveconvhull = false;
56  myRemoveoutcons = true;
57  myDontremoveincons = true;
58  myRefine = false;
59  myMaxarea = 10000;
60  myMinangle = 0;
61  myMinedgelength = 0.001;
62  myMaxnewpts = 5000;
63  myNonewconpts = false;
64  myMakenewconptgrp = false;
65  myNewconptgrp = "newconpoints"_UTsh;
66  myMakenewconedgegrp = false;
67  myOutconedgegrp = "outconedges"_UTsh;
68 
69  }
70 
71  explicit SOP_Triangulate2D_2_0Parms(const SOP_Triangulate2D_2_0Parms &) = default;
74  SOP_Triangulate2D_2_0Parms &operator=(SOP_Triangulate2D_2_0Parms &&) noexcept = default;
75 
77 
79  {
80  if (myPoints != src.myPoints) return false;
81  if (myPlanepossrc != src.myPlanepossrc) return false;
82  if (myOrigin != src.myOrigin) return false;
83  if (myDist != src.myDist) return false;
84  if (myDir != src.myDir) return false;
85  if (myPos2attrib != src.myPos2attrib) return false;
86  if (myRestorepos != src.myRestorepos) return false;
87  if (myKeepprims != src.myKeepprims) return false;
88  if (myUpdatenmls != src.myUpdatenmls) return false;
89  if (myRemoveunusedpoints != src.myRemoveunusedpoints) return false;
90  if (myRemoveduplicatepoints != src.myRemoveduplicatepoints) return false;
91  if (myRandseed != src.myRandseed) return false;
92  if (myConprims != src.myConprims) return false;
93  if (myConedges != src.myConedges) return false;
94  if (myRemoveconvhull != src.myRemoveconvhull) return false;
95  if (myRemoveoutcons != src.myRemoveoutcons) return false;
96  if (myDontremoveincons != src.myDontremoveincons) return false;
97  if (myRefine != src.myRefine) return false;
98  if (myMaxarea != src.myMaxarea) return false;
99  if (myMinangle != src.myMinangle) return false;
100  if (myMinedgelength != src.myMinedgelength) return false;
101  if (myMaxnewpts != src.myMaxnewpts) return false;
102  if (myNonewconpts != src.myNonewconpts) return false;
103  if (myMakenewconptgrp != src.myMakenewconptgrp) return false;
104  if (myNewconptgrp != src.myNewconptgrp) return false;
105  if (myMakenewconedgegrp != src.myMakenewconedgegrp) return false;
106  if (myOutconedgegrp != src.myOutconedgegrp) return false;
107 
108  return true;
109  }
111  {
112  return !operator==(src);
113  }
115 
116 
117 
118  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
119  {
120  myPoints = ""_UTsh;
121  if (true)
122  graph->evalOpParm(myPoints, nodeidx, "points", time, 0);
123  myPlanepossrc = 0;
124  if (true)
125  graph->evalOpParm(myPlanepossrc, nodeidx, "planepossrc", time, 0);
126  myOrigin = UT_Vector3D(0,0,0);
127  if (true && ( (true&&!(((int64(getPlanepossrc())!=1)))) ) )
128  graph->evalOpParm(myOrigin, nodeidx, "origin", time, 0);
129  myDist = 0;
130  if (true && ( (true&&!(((int64(getPlanepossrc())!=1)))) ) )
131  graph->evalOpParm(myDist, nodeidx, "dist", time, 0);
132  myDir = UT_Vector3D(0,1,0);
133  if (true && ( (true&&!(((int64(getPlanepossrc())!=1)))) ) )
134  graph->evalOpParm(myDir, nodeidx, "dir", time, 0);
135  myPos2attrib = ""_UTsh;
136  if (true && ( (true&&!(((int64(getPlanepossrc())!=2)))) ) )
137  graph->evalOpParm(myPos2attrib, nodeidx, "pos2attrib", time, 0);
138  myRestorepos = false;
139  if (true)
140  graph->evalOpParm(myRestorepos, nodeidx, "restorepos", time, 0);
141  myKeepprims = false;
142  if (true)
143  graph->evalOpParm(myKeepprims, nodeidx, "keepprims", time, 0);
144  myUpdatenmls = true;
145  if (true)
146  graph->evalOpParm(myUpdatenmls, nodeidx, "updatenmls", time, 0);
147  myRemoveunusedpoints = true;
148  if (true)
149  graph->evalOpParm(myRemoveunusedpoints, nodeidx, "removeunusedpoints", time, 0);
150  myRemoveduplicatepoints = true;
151  if (true)
152  graph->evalOpParm(myRemoveduplicatepoints, nodeidx, "removeduplicatepoints", time, 0);
153  myRandseed = 5678;
154  if (true)
155  graph->evalOpParm(myRandseed, nodeidx, "randseed", time, 0);
156  myConprims = ""_UTsh;
157  if (true)
158  graph->evalOpParm(myConprims, nodeidx, "conprims", time, 0);
159  myConedges = ""_UTsh;
160  if (true)
161  graph->evalOpParm(myConedges, nodeidx, "conedges", time, 0);
162  myRemoveconvhull = false;
163  if (true)
164  graph->evalOpParm(myRemoveconvhull, nodeidx, "removeconvhull", time, 0);
165  myRemoveoutcons = true;
166  if (true)
167  graph->evalOpParm(myRemoveoutcons, nodeidx, "removeoutcons", time, 0);
168  myDontremoveincons = true;
169  if (true && ( (true&&!(((getRemoveoutcons()==0)))) ) )
170  graph->evalOpParm(myDontremoveincons, nodeidx, "dontremoveincons", time, 0);
171  myRefine = false;
172  if (true)
173  graph->evalOpParm(myRefine, nodeidx, "refine", time, 0);
174  myMaxarea = 10000;
175  if (true && ( (true&&!(((getRefine()==0)))) ) )
176  graph->evalOpParm(myMaxarea, nodeidx, "maxarea", time, 0);
177  myMinangle = 0;
178  if (true && ( (true&&!(((getRefine()==0)))) ) )
179  graph->evalOpParm(myMinangle, nodeidx, "minangle", time, 0);
180  myMinedgelength = 0.001;
181  if (true)
182  graph->evalOpParm(myMinedgelength, nodeidx, "minedgelength", time, 0);
183  myMaxnewpts = 5000;
184  if (true)
185  graph->evalOpParm(myMaxnewpts, nodeidx, "maxnewpts", time, 0);
186  myNonewconpts = false;
187  if (true && ( (true&&!(((getRefine()==1)))) ) )
188  graph->evalOpParm(myNonewconpts, nodeidx, "nonewconpts", time, 0);
189  myMakenewconptgrp = false;
190  if (true && ( (true&&!(((getNonewconpts()==1)&&(getRefine()==0)))) ) )
191  graph->evalOpParm(myMakenewconptgrp, nodeidx, "makenewconptgrp", time, 0);
192  myNewconptgrp = "newconpoints"_UTsh;
193  if (true && ( (true&&!(((getNonewconpts()==1)&&(getRefine()==0))||((getMakenewconptgrp()==0)))) ) )
194  graph->evalOpParm(myNewconptgrp, nodeidx, "newconptgrp", time, 0);
195  myMakenewconedgegrp = false;
196  if (true && ( (true&&!(((getNonewconpts()==1)&&(getRefine()==0)))) ) )
197  graph->evalOpParm(myMakenewconedgegrp, nodeidx, "makenewconedgegrp", time, 0);
198  myOutconedgegrp = "outconedges"_UTsh;
199  if (true && ( (true&&!(((getNonewconpts()==1)&&(getRefine()==0))||((getMakenewconedgegrp()==0)))) ) )
200  graph->evalOpParm(myOutconedgegrp, nodeidx, "outconedgegrp", time, 0);
201 
202  }
203 
204 
205  void loadFromOpSubclass(const LoadParms &loadparms) override
206  {
207  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
208  }
209 
210 
211  void copyFrom(const OP_NodeParms *src) override
212  {
213  *this = *((const SOP_Triangulate2D_2_0Parms *)src);
214  }
215 
216  template <typename T>
217  void
218  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
219  {
220  if (idx.size() < 1)
221  return;
222  UT_ASSERT(idx.size() == instance.size()+1);
223  if (idx.size() != instance.size()+1)
224  return;
225  switch (idx[0])
226  {
227  case 0:
228  coerceValue(value, myPoints);
229  break;
230  case 1:
231  coerceValue(value, myPlanepossrc);
232  break;
233  case 2:
234  coerceValue(value, myOrigin);
235  break;
236  case 3:
237  coerceValue(value, myDist);
238  break;
239  case 4:
240  coerceValue(value, myDir);
241  break;
242  case 5:
243  coerceValue(value, myPos2attrib);
244  break;
245  case 6:
246  coerceValue(value, myRestorepos);
247  break;
248  case 7:
249  coerceValue(value, myKeepprims);
250  break;
251  case 8:
252  coerceValue(value, myUpdatenmls);
253  break;
254  case 9:
255  coerceValue(value, myRemoveunusedpoints);
256  break;
257  case 10:
258  coerceValue(value, myRemoveduplicatepoints);
259  break;
260  case 11:
261  coerceValue(value, myRandseed);
262  break;
263  case 12:
264  coerceValue(value, myConprims);
265  break;
266  case 13:
267  coerceValue(value, myConedges);
268  break;
269  case 14:
270  coerceValue(value, myRemoveconvhull);
271  break;
272  case 15:
273  coerceValue(value, myRemoveoutcons);
274  break;
275  case 16:
276  coerceValue(value, myDontremoveincons);
277  break;
278  case 17:
279  coerceValue(value, myRefine);
280  break;
281  case 18:
282  coerceValue(value, myMaxarea);
283  break;
284  case 19:
285  coerceValue(value, myMinangle);
286  break;
287  case 20:
288  coerceValue(value, myMinedgelength);
289  break;
290  case 21:
291  coerceValue(value, myMaxnewpts);
292  break;
293  case 22:
294  coerceValue(value, myNonewconpts);
295  break;
296  case 23:
297  coerceValue(value, myMakenewconptgrp);
298  break;
299  case 24:
300  coerceValue(value, myNewconptgrp);
301  break;
302  case 25:
303  coerceValue(value, myMakenewconedgegrp);
304  break;
305  case 26:
306  coerceValue(value, myOutconedgegrp);
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(myPoints, ( ( value ) ));
357  break;
358  case 1:
359  coerceValue(myPlanepossrc, clampMinValue(0, clampMaxValue(2, value ) ));
360  break;
361  case 2:
362  coerceValue(myOrigin, ( ( value ) ));
363  break;
364  case 3:
365  coerceValue(myDist, ( ( value ) ));
366  break;
367  case 4:
368  coerceValue(myDir, ( ( value ) ));
369  break;
370  case 5:
371  coerceValue(myPos2attrib, ( ( value ) ));
372  break;
373  case 6:
374  coerceValue(myRestorepos, ( ( value ) ));
375  break;
376  case 7:
377  coerceValue(myKeepprims, ( ( value ) ));
378  break;
379  case 8:
380  coerceValue(myUpdatenmls, ( ( value ) ));
381  break;
382  case 9:
383  coerceValue(myRemoveunusedpoints, ( ( value ) ));
384  break;
385  case 10:
386  coerceValue(myRemoveduplicatepoints, ( ( value ) ));
387  break;
388  case 11:
389  coerceValue(myRandseed, ( ( value ) ));
390  break;
391  case 12:
392  coerceValue(myConprims, ( ( value ) ));
393  break;
394  case 13:
395  coerceValue(myConedges, ( ( value ) ));
396  break;
397  case 14:
398  coerceValue(myRemoveconvhull, ( ( value ) ));
399  break;
400  case 15:
401  coerceValue(myRemoveoutcons, ( ( value ) ));
402  break;
403  case 16:
404  coerceValue(myDontremoveincons, ( ( value ) ));
405  break;
406  case 17:
407  coerceValue(myRefine, ( ( value ) ));
408  break;
409  case 18:
410  coerceValue(myMaxarea, clampMinValue(0.0001, ( value ) ));
411  break;
412  case 19:
413  coerceValue(myMinangle, clampMinValue(0, ( value ) ));
414  break;
415  case 20:
416  coerceValue(myMinedgelength, ( ( value ) ));
417  break;
418  case 21:
419  coerceValue(myMaxnewpts, ( ( value ) ));
420  break;
421  case 22:
422  coerceValue(myNonewconpts, ( ( value ) ));
423  break;
424  case 23:
425  coerceValue(myMakenewconptgrp, ( ( value ) ));
426  break;
427  case 24:
428  coerceValue(myNewconptgrp, ( ( value ) ));
429  break;
430  case 25:
431  coerceValue(myMakenewconedgegrp, ( ( value ) ));
432  break;
433  case 26:
434  coerceValue(myOutconedgegrp, ( ( 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 27;
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 "points";
483  case 1:
484  return "planepossrc";
485  case 2:
486  return "origin";
487  case 3:
488  return "dist";
489  case 4:
490  return "dir";
491  case 5:
492  return "pos2attrib";
493  case 6:
494  return "restorepos";
495  case 7:
496  return "keepprims";
497  case 8:
498  return "updatenmls";
499  case 9:
500  return "removeunusedpoints";
501  case 10:
502  return "removeduplicatepoints";
503  case 11:
504  return "randseed";
505  case 12:
506  return "conprims";
507  case 13:
508  return "conedges";
509  case 14:
510  return "removeconvhull";
511  case 15:
512  return "removeoutcons";
513  case 16:
514  return "dontremoveincons";
515  case 17:
516  return "refine";
517  case 18:
518  return "maxarea";
519  case 19:
520  return "minangle";
521  case 20:
522  return "minedgelength";
523  case 21:
524  return "maxnewpts";
525  case 22:
526  return "nonewconpts";
527  case 23:
528  return "makenewconptgrp";
529  case 24:
530  return "newconptgrp";
531  case 25:
532  return "makenewconedgegrp";
533  case 26:
534  return "outconedgegrp";
535 
536  }
537  return 0;
538  }
539 
540  ParmType getNestParmType(TempIndex fieldnum) const override
541  {
542  if (fieldnum.size() < 1)
543  return PARM_UNSUPPORTED;
544  switch (fieldnum[0])
545  {
546  case 0:
547  return PARM_STRING;
548  case 1:
549  return PARM_INTEGER;
550  case 2:
551  return PARM_VECTOR3;
552  case 3:
553  return PARM_FLOAT;
554  case 4:
555  return PARM_VECTOR3;
556  case 5:
557  return PARM_STRING;
558  case 6:
559  return PARM_INTEGER;
560  case 7:
561  return PARM_INTEGER;
562  case 8:
563  return PARM_INTEGER;
564  case 9:
565  return PARM_INTEGER;
566  case 10:
567  return PARM_INTEGER;
568  case 11:
569  return PARM_INTEGER;
570  case 12:
571  return PARM_STRING;
572  case 13:
573  return PARM_STRING;
574  case 14:
575  return PARM_INTEGER;
576  case 15:
577  return PARM_INTEGER;
578  case 16:
579  return PARM_INTEGER;
580  case 17:
581  return PARM_INTEGER;
582  case 18:
583  return PARM_FLOAT;
584  case 19:
585  return PARM_FLOAT;
586  case 20:
587  return PARM_FLOAT;
588  case 21:
589  return PARM_INTEGER;
590  case 22:
591  return PARM_INTEGER;
592  case 23:
593  return PARM_INTEGER;
594  case 24:
595  return PARM_STRING;
596  case 25:
597  return PARM_INTEGER;
598  case 26:
599  return PARM_STRING;
600 
601  }
602  return PARM_UNSUPPORTED;
603  }
604 
605  // Boiler plate to load individual types.
606  static void loadData(UT_IStream &is, int64 &v)
607  { is.bread(&v, 1); }
608  static void loadData(UT_IStream &is, bool &v)
609  { int64 iv; is.bread(&iv, 1); v = iv; }
610  static void loadData(UT_IStream &is, fpreal64 &v)
611  { is.bread<fpreal64>(&v, 1); }
612  static void loadData(UT_IStream &is, UT_Vector2D &v)
613  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
614  static void loadData(UT_IStream &is, UT_Vector3D &v)
615  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
616  is.bread<fpreal64>(&v.z(), 1); }
617  static void loadData(UT_IStream &is, UT_Vector4D &v)
618  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
619  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
620  static void loadData(UT_IStream &is, UT_Matrix2D &v)
621  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
622  static void loadData(UT_IStream &is, UT_Matrix3D &v)
623  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
624  static void loadData(UT_IStream &is, UT_Matrix4D &v)
625  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
626  static void loadData(UT_IStream &is, UT_Vector2I &v)
627  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
628  static void loadData(UT_IStream &is, UT_Vector3I &v)
629  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
630  is.bread<int64>(&v.z(), 1); }
631  static void loadData(UT_IStream &is, UT_Vector4I &v)
632  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
633  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
635  { is.bread(v); }
637  { UT_StringHolder rampdata;
638  loadData(is, rampdata);
639  if (rampdata.isstring())
640  {
641  v.reset(new UT_Ramp());
642  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
643  v->load(istr);
644  }
645  else v.reset();
646  }
649  loadData(is, data);
650  if (data.isstring())
651  {
652  // Find the data type.
653  const char *colon = UT_StringWrap(data).findChar(':');
654  if (colon)
655  {
656  int typelen = colon - data.buffer();
658  type.strncpy(data.buffer(), typelen);
659  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
660 
661  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
662  }
663  }
664  else v.reset();
665  }
666 
667  static void saveData(std::ostream &os, int64 v)
668  { UTwrite(os, &v); }
669  static void saveData(std::ostream &os, bool v)
670  { int64 iv = v; UTwrite(os, &iv); }
671  static void saveData(std::ostream &os, fpreal64 v)
672  { UTwrite<fpreal64>(os, &v); }
673  static void saveData(std::ostream &os, UT_Vector2D v)
674  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
675  static void saveData(std::ostream &os, UT_Vector3D v)
676  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
677  UTwrite<fpreal64>(os, &v.z()); }
678  static void saveData(std::ostream &os, UT_Vector4D v)
679  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
680  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
681  static void saveData(std::ostream &os, UT_Matrix2D v)
683  static void saveData(std::ostream &os, UT_Matrix3D v)
685  static void saveData(std::ostream &os, UT_Matrix4D v)
687  static void saveData(std::ostream &os, UT_StringHolder s)
688  { UT_StringWrap(s).saveBinary(os); }
689  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
691  UT_OStringStream ostr;
692  if (s) s->save(ostr);
693  result = ostr.str();
694  saveData(os, result);
695  }
696  static void saveData(std::ostream &os, PRM_DataItemHandle s)
698  UT_OStringStream ostr;
699  if (s)
700  {
701  ostr << s->getDataTypeToken();
702  ostr << ":";
703  s->saveBinary(ostr);
704  }
705  result = ostr.str();
706  saveData(os, result);
707  }
708 
709 
710  void save(std::ostream &os) const
711  {
712  int32 v = version();
713  UTwrite(os, &v);
714  saveData(os, myPoints);
715  saveData(os, myPlanepossrc);
716  saveData(os, myOrigin);
717  saveData(os, myDist);
718  saveData(os, myDir);
719  saveData(os, myPos2attrib);
720  saveData(os, myRestorepos);
721  saveData(os, myKeepprims);
722  saveData(os, myUpdatenmls);
723  saveData(os, myRemoveunusedpoints);
724  saveData(os, myRemoveduplicatepoints);
725  saveData(os, myRandseed);
726  saveData(os, myConprims);
727  saveData(os, myConedges);
728  saveData(os, myRemoveconvhull);
729  saveData(os, myRemoveoutcons);
730  saveData(os, myDontremoveincons);
731  saveData(os, myRefine);
732  saveData(os, myMaxarea);
733  saveData(os, myMinangle);
734  saveData(os, myMinedgelength);
735  saveData(os, myMaxnewpts);
736  saveData(os, myNonewconpts);
737  saveData(os, myMakenewconptgrp);
738  saveData(os, myNewconptgrp);
739  saveData(os, myMakenewconedgegrp);
740  saveData(os, myOutconedgegrp);
741 
742  }
743 
744  bool load(UT_IStream &is)
745  {
746  int32 v;
747  is.bread(&v, 1);
748  if (version() != v)
749  {
750  // Fail incompatible versions
751  return false;
752  }
753  loadData(is, myPoints);
754  loadData(is, myPlanepossrc);
755  loadData(is, myOrigin);
756  loadData(is, myDist);
757  loadData(is, myDir);
758  loadData(is, myPos2attrib);
759  loadData(is, myRestorepos);
760  loadData(is, myKeepprims);
761  loadData(is, myUpdatenmls);
762  loadData(is, myRemoveunusedpoints);
763  loadData(is, myRemoveduplicatepoints);
764  loadData(is, myRandseed);
765  loadData(is, myConprims);
766  loadData(is, myConedges);
767  loadData(is, myRemoveconvhull);
768  loadData(is, myRemoveoutcons);
769  loadData(is, myDontremoveincons);
770  loadData(is, myRefine);
771  loadData(is, myMaxarea);
772  loadData(is, myMinangle);
773  loadData(is, myMinedgelength);
774  loadData(is, myMaxnewpts);
775  loadData(is, myNonewconpts);
776  loadData(is, myMakenewconptgrp);
777  loadData(is, myNewconptgrp);
778  loadData(is, myMakenewconedgegrp);
779  loadData(is, myOutconedgegrp);
780 
781  return true;
782  }
783 
784  const UT_StringHolder & getPoints() const { return myPoints; }
785  void setPoints(const UT_StringHolder & val) { myPoints = val; }
787  {
788  SOP_Node *thissop = cookparms.getNode();
789  if (!thissop) return getPoints();
791  OP_Utils::evalOpParm(result, thissop, "points", cookparms.getCookTime(), 0);
792  return result;
793  }
794  Planepossrc getPlanepossrc() const { return Planepossrc(myPlanepossrc); }
795  void setPlanepossrc(Planepossrc val) { myPlanepossrc = int64(val); }
797  {
798  SOP_Node *thissop = cookparms.getNode();
799  if (!thissop) return getPlanepossrc();
800  int64 result;
801  OP_Utils::evalOpParm(result, thissop, "planepossrc", cookparms.getCookTime(), 0);
802  return Planepossrc(result);
803  }
804  UT_Vector3D getOrigin() const { return myOrigin; }
805  void setOrigin(UT_Vector3D val) { myOrigin = val; }
807  {
808  SOP_Node *thissop = cookparms.getNode();
809  if (!thissop) return getOrigin();
811  OP_Utils::evalOpParm(result, thissop, "origin", cookparms.getCookTime(), 0);
812  return result;
813  }
814  fpreal64 getDist() const { return myDist; }
815  void setDist(fpreal64 val) { myDist = val; }
816  fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
817  {
818  SOP_Node *thissop = cookparms.getNode();
819  if (!thissop) return getDist();
821  OP_Utils::evalOpParm(result, thissop, "dist", cookparms.getCookTime(), 0);
822  return result;
823  }
824  UT_Vector3D getDir() const { return myDir; }
825  void setDir(UT_Vector3D val) { myDir = val; }
826  UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
827  {
828  SOP_Node *thissop = cookparms.getNode();
829  if (!thissop) return getDir();
831  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
832  return result;
833  }
834  const UT_StringHolder & getPos2attrib() const { return myPos2attrib; }
835  void setPos2attrib(const UT_StringHolder & val) { myPos2attrib = val; }
837  {
838  SOP_Node *thissop = cookparms.getNode();
839  if (!thissop) return getPos2attrib();
841  OP_Utils::evalOpParm(result, thissop, "pos2attrib", cookparms.getCookTime(), 0);
842  return result;
843  }
844  bool getRestorepos() const { return myRestorepos; }
845  void setRestorepos(bool val) { myRestorepos = val; }
846  bool opRestorepos(const SOP_NodeVerb::CookParms &cookparms) const
847  {
848  SOP_Node *thissop = cookparms.getNode();
849  if (!thissop) return getRestorepos();
850  bool result;
851  OP_Utils::evalOpParm(result, thissop, "restorepos", cookparms.getCookTime(), 0);
852  return result;
853  }
854  bool getKeepprims() const { return myKeepprims; }
855  void setKeepprims(bool val) { myKeepprims = val; }
856  bool opKeepprims(const SOP_NodeVerb::CookParms &cookparms) const
857  {
858  SOP_Node *thissop = cookparms.getNode();
859  if (!thissop) return getKeepprims();
860  bool result;
861  OP_Utils::evalOpParm(result, thissop, "keepprims", cookparms.getCookTime(), 0);
862  return result;
863  }
864  bool getUpdatenmls() const { return myUpdatenmls; }
865  void setUpdatenmls(bool val) { myUpdatenmls = val; }
866  bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
867  {
868  SOP_Node *thissop = cookparms.getNode();
869  if (!thissop) return getUpdatenmls();
870  bool result;
871  OP_Utils::evalOpParm(result, thissop, "updatenmls", cookparms.getCookTime(), 0);
872  return result;
873  }
874  bool getRemoveunusedpoints() const { return myRemoveunusedpoints; }
875  void setRemoveunusedpoints(bool val) { myRemoveunusedpoints = val; }
876  bool opRemoveunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
877  {
878  SOP_Node *thissop = cookparms.getNode();
879  if (!thissop) return getRemoveunusedpoints();
880  bool result;
881  OP_Utils::evalOpParm(result, thissop, "removeunusedpoints", cookparms.getCookTime(), 0);
882  return result;
883  }
884  bool getRemoveduplicatepoints() const { return myRemoveduplicatepoints; }
885  void setRemoveduplicatepoints(bool val) { myRemoveduplicatepoints = val; }
887  {
888  SOP_Node *thissop = cookparms.getNode();
889  if (!thissop) return getRemoveduplicatepoints();
890  bool result;
891  OP_Utils::evalOpParm(result, thissop, "removeduplicatepoints", cookparms.getCookTime(), 0);
892  return result;
893  }
894  int64 getRandseed() const { return myRandseed; }
895  void setRandseed(int64 val) { myRandseed = val; }
896  int64 opRandseed(const SOP_NodeVerb::CookParms &cookparms) const
897  {
898  SOP_Node *thissop = cookparms.getNode();
899  if (!thissop) return getRandseed();
900  int64 result;
901  OP_Utils::evalOpParm(result, thissop, "randseed", cookparms.getCookTime(), 0);
902  return result;
903  }
904  const UT_StringHolder & getConprims() const { return myConprims; }
905  void setConprims(const UT_StringHolder & val) { myConprims = val; }
907  {
908  SOP_Node *thissop = cookparms.getNode();
909  if (!thissop) return getConprims();
911  OP_Utils::evalOpParm(result, thissop, "conprims", cookparms.getCookTime(), 0);
912  return result;
913  }
914  const UT_StringHolder & getConedges() const { return myConedges; }
915  void setConedges(const UT_StringHolder & val) { myConedges = val; }
917  {
918  SOP_Node *thissop = cookparms.getNode();
919  if (!thissop) return getConedges();
921  OP_Utils::evalOpParm(result, thissop, "conedges", cookparms.getCookTime(), 0);
922  return result;
923  }
924  bool getRemoveconvhull() const { return myRemoveconvhull; }
925  void setRemoveconvhull(bool val) { myRemoveconvhull = val; }
926  bool opRemoveconvhull(const SOP_NodeVerb::CookParms &cookparms) const
927  {
928  SOP_Node *thissop = cookparms.getNode();
929  if (!thissop) return getRemoveconvhull();
930  bool result;
931  OP_Utils::evalOpParm(result, thissop, "removeconvhull", cookparms.getCookTime(), 0);
932  return result;
933  }
934  bool getRemoveoutcons() const { return myRemoveoutcons; }
935  void setRemoveoutcons(bool val) { myRemoveoutcons = val; }
936  bool opRemoveoutcons(const SOP_NodeVerb::CookParms &cookparms) const
937  {
938  SOP_Node *thissop = cookparms.getNode();
939  if (!thissop) return getRemoveoutcons();
940  bool result;
941  OP_Utils::evalOpParm(result, thissop, "removeoutcons", cookparms.getCookTime(), 0);
942  return result;
943  }
944  bool getDontremoveincons() const { return myDontremoveincons; }
945  void setDontremoveincons(bool val) { myDontremoveincons = val; }
946  bool opDontremoveincons(const SOP_NodeVerb::CookParms &cookparms) const
947  {
948  SOP_Node *thissop = cookparms.getNode();
949  if (!thissop) return getDontremoveincons();
950  bool result;
951  OP_Utils::evalOpParm(result, thissop, "dontremoveincons", cookparms.getCookTime(), 0);
952  return result;
953  }
954  bool getRefine() const { return myRefine; }
955  void setRefine(bool val) { myRefine = val; }
956  bool opRefine(const SOP_NodeVerb::CookParms &cookparms) const
957  {
958  SOP_Node *thissop = cookparms.getNode();
959  if (!thissop) return getRefine();
960  bool result;
961  OP_Utils::evalOpParm(result, thissop, "refine", cookparms.getCookTime(), 0);
962  return result;
963  }
964  fpreal64 getMaxarea() const { return myMaxarea; }
965  void setMaxarea(fpreal64 val) { myMaxarea = val; }
967  {
968  SOP_Node *thissop = cookparms.getNode();
969  if (!thissop) return getMaxarea();
971  OP_Utils::evalOpParm(result, thissop, "maxarea", cookparms.getCookTime(), 0);
972  return result;
973  }
974  fpreal64 getMinangle() const { return myMinangle; }
975  void setMinangle(fpreal64 val) { myMinangle = val; }
977  {
978  SOP_Node *thissop = cookparms.getNode();
979  if (!thissop) return getMinangle();
981  OP_Utils::evalOpParm(result, thissop, "minangle", cookparms.getCookTime(), 0);
982  return result;
983  }
984  fpreal64 getMinedgelength() const { return myMinedgelength; }
985  void setMinedgelength(fpreal64 val) { myMinedgelength = val; }
987  {
988  SOP_Node *thissop = cookparms.getNode();
989  if (!thissop) return getMinedgelength();
991  OP_Utils::evalOpParm(result, thissop, "minedgelength", cookparms.getCookTime(), 0);
992  return result;
993  }
994  int64 getMaxnewpts() const { return myMaxnewpts; }
995  void setMaxnewpts(int64 val) { myMaxnewpts = val; }
996  int64 opMaxnewpts(const SOP_NodeVerb::CookParms &cookparms) const
997  {
998  SOP_Node *thissop = cookparms.getNode();
999  if (!thissop) return getMaxnewpts();
1000  int64 result;
1001  OP_Utils::evalOpParm(result, thissop, "maxnewpts", cookparms.getCookTime(), 0);
1002  return result;
1003  }
1004  bool getNonewconpts() const { return myNonewconpts; }
1005  void setNonewconpts(bool val) { myNonewconpts = val; }
1006  bool opNonewconpts(const SOP_NodeVerb::CookParms &cookparms) const
1007  {
1008  SOP_Node *thissop = cookparms.getNode();
1009  if (!thissop) return getNonewconpts();
1010  bool result;
1011  OP_Utils::evalOpParm(result, thissop, "nonewconpts", cookparms.getCookTime(), 0);
1012  return result;
1013  }
1014  bool getMakenewconptgrp() const { return myMakenewconptgrp; }
1015  void setMakenewconptgrp(bool val) { myMakenewconptgrp = val; }
1016  bool opMakenewconptgrp(const SOP_NodeVerb::CookParms &cookparms) const
1017  {
1018  SOP_Node *thissop = cookparms.getNode();
1019  if (!thissop) return getMakenewconptgrp();
1020  bool result;
1021  OP_Utils::evalOpParm(result, thissop, "makenewconptgrp", cookparms.getCookTime(), 0);
1022  return result;
1023  }
1024  const UT_StringHolder & getNewconptgrp() const { return myNewconptgrp; }
1025  void setNewconptgrp(const UT_StringHolder & val) { myNewconptgrp = val; }
1027  {
1028  SOP_Node *thissop = cookparms.getNode();
1029  if (!thissop) return getNewconptgrp();
1031  OP_Utils::evalOpParm(result, thissop, "newconptgrp", cookparms.getCookTime(), 0);
1032  return result;
1033  }
1034  bool getMakenewconedgegrp() const { return myMakenewconedgegrp; }
1035  void setMakenewconedgegrp(bool val) { myMakenewconedgegrp = val; }
1036  bool opMakenewconedgegrp(const SOP_NodeVerb::CookParms &cookparms) const
1037  {
1038  SOP_Node *thissop = cookparms.getNode();
1039  if (!thissop) return getMakenewconedgegrp();
1040  bool result;
1041  OP_Utils::evalOpParm(result, thissop, "makenewconedgegrp", cookparms.getCookTime(), 0);
1042  return result;
1043  }
1044  const UT_StringHolder & getOutconedgegrp() const { return myOutconedgegrp; }
1045  void setOutconedgegrp(const UT_StringHolder & val) { myOutconedgegrp = val; }
1047  {
1048  SOP_Node *thissop = cookparms.getNode();
1049  if (!thissop) return getOutconedgegrp();
1051  OP_Utils::evalOpParm(result, thissop, "outconedgegrp", cookparms.getCookTime(), 0);
1052  return result;
1053  }
1054 
1055 private:
1056  UT_StringHolder myPoints;
1057  int64 myPlanepossrc;
1058  UT_Vector3D myOrigin;
1059  fpreal64 myDist;
1060  UT_Vector3D myDir;
1061  UT_StringHolder myPos2attrib;
1062  bool myRestorepos;
1063  bool myKeepprims;
1064  bool myUpdatenmls;
1065  bool myRemoveunusedpoints;
1066  bool myRemoveduplicatepoints;
1067  int64 myRandseed;
1068  UT_StringHolder myConprims;
1069  UT_StringHolder myConedges;
1070  bool myRemoveconvhull;
1071  bool myRemoveoutcons;
1072  bool myDontremoveincons;
1073  bool myRefine;
1074  fpreal64 myMaxarea;
1075  fpreal64 myMinangle;
1076  fpreal64 myMinedgelength;
1077  int64 myMaxnewpts;
1078  bool myNonewconpts;
1079  bool myMakenewconptgrp;
1080  UT_StringHolder myNewconptgrp;
1081  bool myMakenewconedgegrp;
1082  UT_StringHolder myOutconedgegrp;
1083 
1084 };
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getOutconedgegrp() const
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getPoints() const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setConedges(const UT_StringHolder &val)
bool isParmColorRamp(exint idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator!=(const SOP_Triangulate2D_2_0Parms &src) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
bool opRestorepos(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
void copyFrom(const OP_NodeParms *src) override
fpreal64 opMaxarea(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getConprims() const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
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
int64 opRandseed(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
An output stream object that owns its own string buffer storage.
static void saveData(std::ostream &os, UT_Matrix3D v)
UT_StringHolder opConedges(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opDir(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
UT_Vector3D opOrigin(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
UT_StringHolder opPoints(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool opKeepprims(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const char * getNestParmName(TempIndex fieldnum) const override
const UT_StringHolder & getPos2attrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void loadFromOpSubclass(const LoadParms &loadparms) override
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
static void loadData(UT_IStream &is, int64 &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
static void saveData(std::ostream &os, UT_Matrix4D v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_StringHolder opConprims(const SOP_NodeVerb::CookParms &cookparms) const
bool opMakenewconedgegrp(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void saveData(std::ostream &os, bool v)
const UT_StringHolder & getNewconptgrp() const
exint length() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
UT_StringHolder opNewconptgrp(const SOP_NodeVerb::CookParms &cookparms) const
void setPoints(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
bool opRemoveconvhull(const SOP_NodeVerb::CookParms &cookparms) const
Planepossrc opPlanepossrc(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
bool opNonewconpts(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
UT_Vector3T< fpreal64 > UT_Vector3D
void setConprims(const UT_StringHolder &val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
UT_StringHolder opPos2attrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool opRemoveduplicatepoints(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
const UT_StringHolder & getConedges() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool opMakenewconptgrp(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opMinedgelength(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
int64 opMaxnewpts(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void save(std::ostream &os) const
exint getNestNumParms(TempIndex idx) const override
void setNewconptgrp(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
bool opDontremoveincons(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
bool opRemoveoutcons(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
bool operator==(const SOP_Triangulate2D_2_0Parms &src) const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
void setOutconedgegrp(const UT_StringHolder &val)
#define SOP_API
Definition: SOP_API.h:10
UT_StringHolder opOutconedgegrp(const SOP_NodeVerb::CookParms &cookparms) const
void setPos2attrib(const UT_StringHolder &val)
static void saveData(std::ostream &os, int64 v)
fpreal64 opMinangle(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opRefine(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_Vector4D v)
bool opRemoveunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
GLboolean r
Definition: glcorearb.h:1222
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
type
Definition: core.h:1059
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663