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_NodeVerb.h>
7 #include <SOP/SOP_GraphProxy.h>
8 
9 #include <OP/OP_Utils.h>
10 #include <PRM/PRM_Parm.h>
11 #include <UT/UT_IStream.h>
12 #include <UT/UT_NTStreamUtil.h>
13 #include <UT/UT_Ramp.h>
14 #include <UT/UT_SharedPtr.h>
15 #include <UT/UT_StringHolder.h>
16 #include <UT/UT_StringStream.h>
17 #include <UT/UT_VectorTypes.h>
18 #include <SYS/SYS_Types.h>
19 
20 using namespace UT::Literal;
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 = ""_sh;
42  myPlanepossrc = 0;
43  myOrigin = UT_Vector3D(0,0,0);
44  myDist = 0;
45  myDir = UT_Vector3D(0,1,0);
46  myPos2attrib = ""_sh;
47  myRestorepos = false;
48  myKeepprims = false;
49  myUpdatenmls = true;
50  myRemoveunusedpoints = true;
51  myRemoveduplicatepoints = true;
52  myRandseed = 5678;
53  myConprims = ""_sh;
54  myConedges = ""_sh;
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"_sh;
66  myMakenewconedgegrp = false;
67  myOutconedgegrp = "outconedges"_sh;
68 
69  }
70 
71  explicit SOP_Triangulate2D_2_0Parms(const SOP_Triangulate2D_2_0Parms &) = default;
72 
74 
76  {
77  if (myPoints != src.myPoints) return false;
78  if (myPlanepossrc != src.myPlanepossrc) return false;
79  if (myOrigin != src.myOrigin) return false;
80  if (myDist != src.myDist) return false;
81  if (myDir != src.myDir) return false;
82  if (myPos2attrib != src.myPos2attrib) return false;
83  if (myRestorepos != src.myRestorepos) return false;
84  if (myKeepprims != src.myKeepprims) return false;
85  if (myUpdatenmls != src.myUpdatenmls) return false;
86  if (myRemoveunusedpoints != src.myRemoveunusedpoints) return false;
87  if (myRemoveduplicatepoints != src.myRemoveduplicatepoints) return false;
88  if (myRandseed != src.myRandseed) return false;
89  if (myConprims != src.myConprims) return false;
90  if (myConedges != src.myConedges) return false;
91  if (myRemoveconvhull != src.myRemoveconvhull) return false;
92  if (myRemoveoutcons != src.myRemoveoutcons) return false;
93  if (myDontremoveincons != src.myDontremoveincons) return false;
94  if (myRefine != src.myRefine) return false;
95  if (myMaxarea != src.myMaxarea) return false;
96  if (myMinangle != src.myMinangle) return false;
97  if (myMinedgelength != src.myMinedgelength) return false;
98  if (myMaxnewpts != src.myMaxnewpts) return false;
99  if (myNonewconpts != src.myNonewconpts) return false;
100  if (myMakenewconptgrp != src.myMakenewconptgrp) return false;
101  if (myNewconptgrp != src.myNewconptgrp) return false;
102  if (myMakenewconedgegrp != src.myMakenewconedgegrp) return false;
103  if (myOutconedgegrp != src.myOutconedgegrp) return false;
104 
105  return true;
106  }
108  {
109  return !operator==(src);
110  }
112 
113 
114 
115  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
116  {
117  myPoints = ""_sh;
118  if (true)
119  graph->evalOpParm(myPoints, nodeidx, "points", time, 0);
120  myPlanepossrc = 0;
121  if (true)
122  graph->evalOpParm(myPlanepossrc, nodeidx, "planepossrc", time, 0);
123  myOrigin = UT_Vector3D(0,0,0);
124  if (true && ( (!(((int64(getPlanepossrc())!=1)))) ) )
125  graph->evalOpParm(myOrigin, nodeidx, "origin", time, 0);
126  myDist = 0;
127  if (true && ( (!(((int64(getPlanepossrc())!=1)))) ) )
128  graph->evalOpParm(myDist, nodeidx, "dist", time, 0);
129  myDir = UT_Vector3D(0,1,0);
130  if (true && ( (!(((int64(getPlanepossrc())!=1)))) ) )
131  graph->evalOpParm(myDir, nodeidx, "dir", time, 0);
132  myPos2attrib = ""_sh;
133  if (true && ( (!(((int64(getPlanepossrc())!=2)))) ) )
134  graph->evalOpParm(myPos2attrib, nodeidx, "pos2attrib", time, 0);
135  myRestorepos = false;
136  if (true)
137  graph->evalOpParm(myRestorepos, nodeidx, "restorepos", time, 0);
138  myKeepprims = false;
139  if (true)
140  graph->evalOpParm(myKeepprims, nodeidx, "keepprims", time, 0);
141  myUpdatenmls = true;
142  if (true)
143  graph->evalOpParm(myUpdatenmls, nodeidx, "updatenmls", time, 0);
144  myRemoveunusedpoints = true;
145  if (true)
146  graph->evalOpParm(myRemoveunusedpoints, nodeidx, "removeunusedpoints", time, 0);
147  myRemoveduplicatepoints = true;
148  if (true)
149  graph->evalOpParm(myRemoveduplicatepoints, nodeidx, "removeduplicatepoints", time, 0);
150  myRandseed = 5678;
151  if (true)
152  graph->evalOpParm(myRandseed, nodeidx, "randseed", time, 0);
153  myConprims = ""_sh;
154  if (true)
155  graph->evalOpParm(myConprims, nodeidx, "conprims", time, 0);
156  myConedges = ""_sh;
157  if (true)
158  graph->evalOpParm(myConedges, nodeidx, "conedges", time, 0);
159  myRemoveconvhull = false;
160  if (true)
161  graph->evalOpParm(myRemoveconvhull, nodeidx, "removeconvhull", time, 0);
162  myRemoveoutcons = true;
163  if (true)
164  graph->evalOpParm(myRemoveoutcons, nodeidx, "removeoutcons", time, 0);
165  myDontremoveincons = true;
166  if (true && ( (!(((getRemoveoutcons()==0)))) ) )
167  graph->evalOpParm(myDontremoveincons, nodeidx, "dontremoveincons", time, 0);
168  myRefine = false;
169  if (true)
170  graph->evalOpParm(myRefine, nodeidx, "refine", time, 0);
171  myMaxarea = 10000;
172  if (true && ( (!(((getRefine()==0)))) ) )
173  graph->evalOpParm(myMaxarea, nodeidx, "maxarea", time, 0);
174  myMinangle = 0;
175  if (true && ( (!(((getRefine()==0)))) ) )
176  graph->evalOpParm(myMinangle, nodeidx, "minangle", time, 0);
177  myMinedgelength = 0.001;
178  if (true)
179  graph->evalOpParm(myMinedgelength, nodeidx, "minedgelength", time, 0);
180  myMaxnewpts = 5000;
181  if (true)
182  graph->evalOpParm(myMaxnewpts, nodeidx, "maxnewpts", time, 0);
183  myNonewconpts = false;
184  if (true && ( (!(((getRefine()==1)))) ) )
185  graph->evalOpParm(myNonewconpts, nodeidx, "nonewconpts", time, 0);
186  myMakenewconptgrp = false;
187  if (true && ( (!(((getNonewconpts()==1)&&(getRefine()==0)))) ) )
188  graph->evalOpParm(myMakenewconptgrp, nodeidx, "makenewconptgrp", time, 0);
189  myNewconptgrp = "newconpoints"_sh;
190  if (true && ( (!(((getNonewconpts()==1)&&(getRefine()==0))||((getMakenewconptgrp()==0)))) ) )
191  graph->evalOpParm(myNewconptgrp, nodeidx, "newconptgrp", time, 0);
192  myMakenewconedgegrp = false;
193  if (true && ( (!(((getNonewconpts()==1)&&(getRefine()==0)))) ) )
194  graph->evalOpParm(myMakenewconedgegrp, nodeidx, "makenewconedgegrp", time, 0);
195  myOutconedgegrp = "outconedges"_sh;
196  if (true && ( (!(((getNonewconpts()==1)&&(getRefine()==0))||((getMakenewconedgegrp()==0)))) ) )
197  graph->evalOpParm(myOutconedgegrp, nodeidx, "outconedgegrp", time, 0);
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 SOP_NodeParms *src) override
209  {
210  *this = *((const SOP_Triangulate2D_2_0Parms *)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, myPoints);
226  break;
227  case 1:
228  coerceValue(value, myPlanepossrc);
229  break;
230  case 2:
231  coerceValue(value, myOrigin);
232  break;
233  case 3:
234  coerceValue(value, myDist);
235  break;
236  case 4:
237  coerceValue(value, myDir);
238  break;
239  case 5:
240  coerceValue(value, myPos2attrib);
241  break;
242  case 6:
243  coerceValue(value, myRestorepos);
244  break;
245  case 7:
246  coerceValue(value, myKeepprims);
247  break;
248  case 8:
249  coerceValue(value, myUpdatenmls);
250  break;
251  case 9:
252  coerceValue(value, myRemoveunusedpoints);
253  break;
254  case 10:
255  coerceValue(value, myRemoveduplicatepoints);
256  break;
257  case 11:
258  coerceValue(value, myRandseed);
259  break;
260  case 12:
261  coerceValue(value, myConprims);
262  break;
263  case 13:
264  coerceValue(value, myConedges);
265  break;
266  case 14:
267  coerceValue(value, myRemoveconvhull);
268  break;
269  case 15:
270  coerceValue(value, myRemoveoutcons);
271  break;
272  case 16:
273  coerceValue(value, myDontremoveincons);
274  break;
275  case 17:
276  coerceValue(value, myRefine);
277  break;
278  case 18:
279  coerceValue(value, myMaxarea);
280  break;
281  case 19:
282  coerceValue(value, myMinangle);
283  break;
284  case 20:
285  coerceValue(value, myMinedgelength);
286  break;
287  case 21:
288  coerceValue(value, myMaxnewpts);
289  break;
290  case 22:
291  coerceValue(value, myNonewconpts);
292  break;
293  case 23:
294  coerceValue(value, myMakenewconptgrp);
295  break;
296  case 24:
297  coerceValue(value, myNewconptgrp);
298  break;
299  case 25:
300  coerceValue(value, myMakenewconedgegrp);
301  break;
302  case 26:
303  coerceValue(value, myOutconedgegrp);
304  break;
305 
306  }
307  }
308 
309  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
310  { doGetParmValue(idx, instance, value); }
311  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
312  { doGetParmValue(idx, instance, value); }
313  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
314  { doGetParmValue(idx, instance, value); }
315  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
316  { doGetParmValue(idx, instance, value); }
317  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
318  { doGetParmValue(idx, instance, value); }
319  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
320  { doGetParmValue(idx, instance, value); }
321  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
322  { doGetParmValue(idx, instance, value); }
323  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
324  { doGetParmValue(idx, instance, value); }
325  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
326  { doGetParmValue(idx, instance, value); }
327  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
328  { doGetParmValue(idx, instance, value); }
329  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
330  { doGetParmValue(idx, instance, value); }
331 
332  template <typename T>
333  void
334  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
335  {
336  if (idx.size() < 1)
337  return;
338  UT_ASSERT(idx.size() == instance.size()+1);
339  if (idx.size() != instance.size()+1)
340  return;
341  switch (idx[0])
342  {
343  case 0:
344  coerceValue(myPoints, value);
345  break;
346  case 1:
347  coerceValue(myPlanepossrc, value);
348  break;
349  case 2:
350  coerceValue(myOrigin, value);
351  break;
352  case 3:
353  coerceValue(myDist, value);
354  break;
355  case 4:
356  coerceValue(myDir, value);
357  break;
358  case 5:
359  coerceValue(myPos2attrib, value);
360  break;
361  case 6:
362  coerceValue(myRestorepos, value);
363  break;
364  case 7:
365  coerceValue(myKeepprims, value);
366  break;
367  case 8:
368  coerceValue(myUpdatenmls, value);
369  break;
370  case 9:
371  coerceValue(myRemoveunusedpoints, value);
372  break;
373  case 10:
374  coerceValue(myRemoveduplicatepoints, value);
375  break;
376  case 11:
377  coerceValue(myRandseed, value);
378  break;
379  case 12:
380  coerceValue(myConprims, value);
381  break;
382  case 13:
383  coerceValue(myConedges, value);
384  break;
385  case 14:
386  coerceValue(myRemoveconvhull, value);
387  break;
388  case 15:
389  coerceValue(myRemoveoutcons, value);
390  break;
391  case 16:
392  coerceValue(myDontremoveincons, value);
393  break;
394  case 17:
395  coerceValue(myRefine, value);
396  break;
397  case 18:
398  coerceValue(myMaxarea, value);
399  break;
400  case 19:
401  coerceValue(myMinangle, value);
402  break;
403  case 20:
404  coerceValue(myMinedgelength, value);
405  break;
406  case 21:
407  coerceValue(myMaxnewpts, value);
408  break;
409  case 22:
410  coerceValue(myNonewconpts, value);
411  break;
412  case 23:
413  coerceValue(myMakenewconptgrp, value);
414  break;
415  case 24:
416  coerceValue(myNewconptgrp, value);
417  break;
418  case 25:
419  coerceValue(myMakenewconedgegrp, value);
420  break;
421  case 26:
422  coerceValue(myOutconedgegrp, value);
423  break;
424 
425  }
426  }
427 
428  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
429  { doSetParmValue(idx, instance, value); }
430  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
431  { doSetParmValue(idx, instance, value); }
432  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
433  { doSetParmValue(idx, instance, value); }
434  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
435  { doSetParmValue(idx, instance, value); }
436  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
437  { doSetParmValue(idx, instance, value); }
438  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
439  { doSetParmValue(idx, instance, value); }
440  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
441  { doSetParmValue(idx, instance, value); }
442  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
443  { doSetParmValue(idx, instance, value); }
444  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
445  { doSetParmValue(idx, instance, value); }
446  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
447  { doSetParmValue(idx, instance, value); }
448  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
449  { doSetParmValue(idx, instance, value); }
450 
451  exint getNestNumParms(TempIndex idx) const override
452  {
453  if (idx.size() == 0)
454  return 27;
455  switch (idx[0])
456  {
457 
458  }
459  // Invalid
460  return 0;
461  }
462 
463  const char *getNestParmName(TempIndex fieldnum) const override
464  {
465  if (fieldnum.size() < 1)
466  return 0;
467  switch (fieldnum[0])
468  {
469  case 0:
470  return "points";
471  case 1:
472  return "planepossrc";
473  case 2:
474  return "origin";
475  case 3:
476  return "dist";
477  case 4:
478  return "dir";
479  case 5:
480  return "pos2attrib";
481  case 6:
482  return "restorepos";
483  case 7:
484  return "keepprims";
485  case 8:
486  return "updatenmls";
487  case 9:
488  return "removeunusedpoints";
489  case 10:
490  return "removeduplicatepoints";
491  case 11:
492  return "randseed";
493  case 12:
494  return "conprims";
495  case 13:
496  return "conedges";
497  case 14:
498  return "removeconvhull";
499  case 15:
500  return "removeoutcons";
501  case 16:
502  return "dontremoveincons";
503  case 17:
504  return "refine";
505  case 18:
506  return "maxarea";
507  case 19:
508  return "minangle";
509  case 20:
510  return "minedgelength";
511  case 21:
512  return "maxnewpts";
513  case 22:
514  return "nonewconpts";
515  case 23:
516  return "makenewconptgrp";
517  case 24:
518  return "newconptgrp";
519  case 25:
520  return "makenewconedgegrp";
521  case 26:
522  return "outconedgegrp";
523 
524  }
525  return 0;
526  }
527 
528  ParmType getNestParmType(TempIndex fieldnum) const override
529  {
530  if (fieldnum.size() < 1)
531  return PARM_UNSUPPORTED;
532  switch (fieldnum[0])
533  {
534  case 0:
535  return PARM_STRING;
536  case 1:
537  return PARM_INTEGER;
538  case 2:
539  return PARM_VECTOR3;
540  case 3:
541  return PARM_FLOAT;
542  case 4:
543  return PARM_VECTOR3;
544  case 5:
545  return PARM_STRING;
546  case 6:
547  return PARM_INTEGER;
548  case 7:
549  return PARM_INTEGER;
550  case 8:
551  return PARM_INTEGER;
552  case 9:
553  return PARM_INTEGER;
554  case 10:
555  return PARM_INTEGER;
556  case 11:
557  return PARM_INTEGER;
558  case 12:
559  return PARM_STRING;
560  case 13:
561  return PARM_STRING;
562  case 14:
563  return PARM_INTEGER;
564  case 15:
565  return PARM_INTEGER;
566  case 16:
567  return PARM_INTEGER;
568  case 17:
569  return PARM_INTEGER;
570  case 18:
571  return PARM_FLOAT;
572  case 19:
573  return PARM_FLOAT;
574  case 20:
575  return PARM_FLOAT;
576  case 21:
577  return PARM_INTEGER;
578  case 22:
579  return PARM_INTEGER;
580  case 23:
581  return PARM_INTEGER;
582  case 24:
583  return PARM_STRING;
584  case 25:
585  return PARM_INTEGER;
586  case 26:
587  return PARM_STRING;
588 
589  }
590  return PARM_UNSUPPORTED;
591  }
592 
593  // Boiler plate to load individual types.
594  static void loadData(UT_IStream &is, int64 &v)
595  { is.bread(&v, 1); }
596  static void loadData(UT_IStream &is, bool &v)
597  { int64 iv; is.bread(&iv, 1); v = iv; }
598  static void loadData(UT_IStream &is, fpreal64 &v)
599  { is.bread<fpreal64>(&v, 1); }
600  static void loadData(UT_IStream &is, UT_Vector2D &v)
601  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
602  static void loadData(UT_IStream &is, UT_Vector3D &v)
603  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
604  is.bread<fpreal64>(&v.z(), 1); }
605  static void loadData(UT_IStream &is, UT_Vector4D &v)
606  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
607  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
608  static void loadData(UT_IStream &is, UT_Matrix2D &v)
609  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
610  static void loadData(UT_IStream &is, UT_Matrix3D &v)
611  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
612  static void loadData(UT_IStream &is, UT_Matrix4D &v)
613  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
614  static void loadData(UT_IStream &is, UT_Vector2I &v)
615  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
616  static void loadData(UT_IStream &is, UT_Vector3I &v)
617  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
618  is.bread<int64>(&v.z(), 1); }
619  static void loadData(UT_IStream &is, UT_Vector4I &v)
620  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
621  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
623  { is.bread(v); }
625  { UT_StringHolder rampdata;
626  loadData(is, rampdata);
627  if (rampdata.isstring())
628  {
629  v.reset(new UT_Ramp());
630  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
631  v->load(istr);
632  }
633  else v.reset();
634  }
637  loadData(is, data);
638  if (data.isstring())
639  {
640  // Find the data type.
641  const char *colon = UT_StringWrap(data).findChar(':');
642  if (colon)
643  {
644  int typelen = colon - data.buffer();
646  type.strncpy(data.buffer(), typelen);
647  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
648 
649  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
650  }
651  }
652  else v.reset();
653  }
654 
655  static void saveData(std::ostream &os, int64 v)
656  { UTwrite(os, &v); }
657  static void saveData(std::ostream &os, bool v)
658  { int64 iv = v; UTwrite(os, &iv); }
659  static void saveData(std::ostream &os, fpreal64 v)
660  { UTwrite<fpreal64>(os, &v); }
661  static void saveData(std::ostream &os, UT_Vector2D v)
662  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
663  static void saveData(std::ostream &os, UT_Vector3D v)
664  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
665  UTwrite<fpreal64>(os, &v.z()); }
666  static void saveData(std::ostream &os, UT_Vector4D v)
667  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
668  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
669  static void saveData(std::ostream &os, UT_Matrix2D v)
671  static void saveData(std::ostream &os, UT_Matrix3D v)
673  static void saveData(std::ostream &os, UT_Matrix4D v)
675  static void saveData(std::ostream &os, UT_StringHolder s)
676  { UT_StringWrap(s).saveBinary(os); }
677  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
679  UT_OStringStream ostr;
680  if (s) s->save(ostr);
681  result = ostr.str();
682  saveData(os, result);
683  }
684  static void saveData(std::ostream &os, PRM_DataItemHandle s)
686  UT_OStringStream ostr;
687  if (s)
688  {
689  ostr << s->getDataTypeToken();
690  ostr << ":";
691  s->saveBinary(ostr);
692  }
693  result = ostr.str();
694  saveData(os, result);
695  }
696 
697 
698  void save(std::ostream &os) const
699  {
700  int32 v = version();
701  UTwrite(os, &v);
702  saveData(os, myPoints);
703  saveData(os, myPlanepossrc);
704  saveData(os, myOrigin);
705  saveData(os, myDist);
706  saveData(os, myDir);
707  saveData(os, myPos2attrib);
708  saveData(os, myRestorepos);
709  saveData(os, myKeepprims);
710  saveData(os, myUpdatenmls);
711  saveData(os, myRemoveunusedpoints);
712  saveData(os, myRemoveduplicatepoints);
713  saveData(os, myRandseed);
714  saveData(os, myConprims);
715  saveData(os, myConedges);
716  saveData(os, myRemoveconvhull);
717  saveData(os, myRemoveoutcons);
718  saveData(os, myDontremoveincons);
719  saveData(os, myRefine);
720  saveData(os, myMaxarea);
721  saveData(os, myMinangle);
722  saveData(os, myMinedgelength);
723  saveData(os, myMaxnewpts);
724  saveData(os, myNonewconpts);
725  saveData(os, myMakenewconptgrp);
726  saveData(os, myNewconptgrp);
727  saveData(os, myMakenewconedgegrp);
728  saveData(os, myOutconedgegrp);
729 
730  }
731 
732  bool load(UT_IStream &is)
733  {
734  int32 v;
735  is.bread(&v, 1);
736  if (version() != v)
737  {
738  // Fail incompatible versions
739  return false;
740  }
741  loadData(is, myPoints);
742  loadData(is, myPlanepossrc);
743  loadData(is, myOrigin);
744  loadData(is, myDist);
745  loadData(is, myDir);
746  loadData(is, myPos2attrib);
747  loadData(is, myRestorepos);
748  loadData(is, myKeepprims);
749  loadData(is, myUpdatenmls);
750  loadData(is, myRemoveunusedpoints);
751  loadData(is, myRemoveduplicatepoints);
752  loadData(is, myRandseed);
753  loadData(is, myConprims);
754  loadData(is, myConedges);
755  loadData(is, myRemoveconvhull);
756  loadData(is, myRemoveoutcons);
757  loadData(is, myDontremoveincons);
758  loadData(is, myRefine);
759  loadData(is, myMaxarea);
760  loadData(is, myMinangle);
761  loadData(is, myMinedgelength);
762  loadData(is, myMaxnewpts);
763  loadData(is, myNonewconpts);
764  loadData(is, myMakenewconptgrp);
765  loadData(is, myNewconptgrp);
766  loadData(is, myMakenewconedgegrp);
767  loadData(is, myOutconedgegrp);
768 
769  return true;
770  }
771 
772  const UT_StringHolder & getPoints() const { return myPoints; }
773  void setPoints(const UT_StringHolder & val) { myPoints = val; }
775  {
776  SOP_Node *thissop = cookparms.getNode();
777  if (!thissop) return getPoints();
779  OP_Utils::evalOpParm(result, thissop, "points", cookparms.getCookTime(), 0);
780  return result;
781  }
782  Planepossrc getPlanepossrc() const { return Planepossrc(myPlanepossrc); }
783  void setPlanepossrc(Planepossrc val) { myPlanepossrc = int64(val); }
785  {
786  SOP_Node *thissop = cookparms.getNode();
787  if (!thissop) return getPlanepossrc();
788  int64 result;
789  OP_Utils::evalOpParm(result, thissop, "planepossrc", cookparms.getCookTime(), 0);
790  return Planepossrc(result);
791  }
792  UT_Vector3D getOrigin() const { return myOrigin; }
793  void setOrigin(UT_Vector3D val) { myOrigin = val; }
795  {
796  SOP_Node *thissop = cookparms.getNode();
797  if (!thissop) return getOrigin();
799  OP_Utils::evalOpParm(result, thissop, "origin", cookparms.getCookTime(), 0);
800  return result;
801  }
802  fpreal64 getDist() const { return myDist; }
803  void setDist(fpreal64 val) { myDist = val; }
804  fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
805  {
806  SOP_Node *thissop = cookparms.getNode();
807  if (!thissop) return getDist();
809  OP_Utils::evalOpParm(result, thissop, "dist", cookparms.getCookTime(), 0);
810  return result;
811  }
812  UT_Vector3D getDir() const { return myDir; }
813  void setDir(UT_Vector3D val) { myDir = val; }
814  UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
815  {
816  SOP_Node *thissop = cookparms.getNode();
817  if (!thissop) return getDir();
819  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
820  return result;
821  }
822  const UT_StringHolder & getPos2attrib() const { return myPos2attrib; }
823  void setPos2attrib(const UT_StringHolder & val) { myPos2attrib = val; }
825  {
826  SOP_Node *thissop = cookparms.getNode();
827  if (!thissop) return getPos2attrib();
829  OP_Utils::evalOpParm(result, thissop, "pos2attrib", cookparms.getCookTime(), 0);
830  return result;
831  }
832  bool getRestorepos() const { return myRestorepos; }
833  void setRestorepos(bool val) { myRestorepos = val; }
834  bool opRestorepos(const SOP_NodeVerb::CookParms &cookparms) const
835  {
836  SOP_Node *thissop = cookparms.getNode();
837  if (!thissop) return getRestorepos();
838  bool result;
839  OP_Utils::evalOpParm(result, thissop, "restorepos", cookparms.getCookTime(), 0);
840  return result;
841  }
842  bool getKeepprims() const { return myKeepprims; }
843  void setKeepprims(bool val) { myKeepprims = val; }
844  bool opKeepprims(const SOP_NodeVerb::CookParms &cookparms) const
845  {
846  SOP_Node *thissop = cookparms.getNode();
847  if (!thissop) return getKeepprims();
848  bool result;
849  OP_Utils::evalOpParm(result, thissop, "keepprims", cookparms.getCookTime(), 0);
850  return result;
851  }
852  bool getUpdatenmls() const { return myUpdatenmls; }
853  void setUpdatenmls(bool val) { myUpdatenmls = val; }
854  bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
855  {
856  SOP_Node *thissop = cookparms.getNode();
857  if (!thissop) return getUpdatenmls();
858  bool result;
859  OP_Utils::evalOpParm(result, thissop, "updatenmls", cookparms.getCookTime(), 0);
860  return result;
861  }
862  bool getRemoveunusedpoints() const { return myRemoveunusedpoints; }
863  void setRemoveunusedpoints(bool val) { myRemoveunusedpoints = val; }
864  bool opRemoveunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
865  {
866  SOP_Node *thissop = cookparms.getNode();
867  if (!thissop) return getRemoveunusedpoints();
868  bool result;
869  OP_Utils::evalOpParm(result, thissop, "removeunusedpoints", cookparms.getCookTime(), 0);
870  return result;
871  }
872  bool getRemoveduplicatepoints() const { return myRemoveduplicatepoints; }
873  void setRemoveduplicatepoints(bool val) { myRemoveduplicatepoints = val; }
875  {
876  SOP_Node *thissop = cookparms.getNode();
877  if (!thissop) return getRemoveduplicatepoints();
878  bool result;
879  OP_Utils::evalOpParm(result, thissop, "removeduplicatepoints", cookparms.getCookTime(), 0);
880  return result;
881  }
882  int64 getRandseed() const { return myRandseed; }
883  void setRandseed(int64 val) { myRandseed = val; }
884  int64 opRandseed(const SOP_NodeVerb::CookParms &cookparms) const
885  {
886  SOP_Node *thissop = cookparms.getNode();
887  if (!thissop) return getRandseed();
888  int64 result;
889  OP_Utils::evalOpParm(result, thissop, "randseed", cookparms.getCookTime(), 0);
890  return result;
891  }
892  const UT_StringHolder & getConprims() const { return myConprims; }
893  void setConprims(const UT_StringHolder & val) { myConprims = val; }
895  {
896  SOP_Node *thissop = cookparms.getNode();
897  if (!thissop) return getConprims();
899  OP_Utils::evalOpParm(result, thissop, "conprims", cookparms.getCookTime(), 0);
900  return result;
901  }
902  const UT_StringHolder & getConedges() const { return myConedges; }
903  void setConedges(const UT_StringHolder & val) { myConedges = val; }
905  {
906  SOP_Node *thissop = cookparms.getNode();
907  if (!thissop) return getConedges();
909  OP_Utils::evalOpParm(result, thissop, "conedges", cookparms.getCookTime(), 0);
910  return result;
911  }
912  bool getRemoveconvhull() const { return myRemoveconvhull; }
913  void setRemoveconvhull(bool val) { myRemoveconvhull = val; }
914  bool opRemoveconvhull(const SOP_NodeVerb::CookParms &cookparms) const
915  {
916  SOP_Node *thissop = cookparms.getNode();
917  if (!thissop) return getRemoveconvhull();
918  bool result;
919  OP_Utils::evalOpParm(result, thissop, "removeconvhull", cookparms.getCookTime(), 0);
920  return result;
921  }
922  bool getRemoveoutcons() const { return myRemoveoutcons; }
923  void setRemoveoutcons(bool val) { myRemoveoutcons = val; }
924  bool opRemoveoutcons(const SOP_NodeVerb::CookParms &cookparms) const
925  {
926  SOP_Node *thissop = cookparms.getNode();
927  if (!thissop) return getRemoveoutcons();
928  bool result;
929  OP_Utils::evalOpParm(result, thissop, "removeoutcons", cookparms.getCookTime(), 0);
930  return result;
931  }
932  bool getDontremoveincons() const { return myDontremoveincons; }
933  void setDontremoveincons(bool val) { myDontremoveincons = val; }
934  bool opDontremoveincons(const SOP_NodeVerb::CookParms &cookparms) const
935  {
936  SOP_Node *thissop = cookparms.getNode();
937  if (!thissop) return getDontremoveincons();
938  bool result;
939  OP_Utils::evalOpParm(result, thissop, "dontremoveincons", cookparms.getCookTime(), 0);
940  return result;
941  }
942  bool getRefine() const { return myRefine; }
943  void setRefine(bool val) { myRefine = val; }
944  bool opRefine(const SOP_NodeVerb::CookParms &cookparms) const
945  {
946  SOP_Node *thissop = cookparms.getNode();
947  if (!thissop) return getRefine();
948  bool result;
949  OP_Utils::evalOpParm(result, thissop, "refine", cookparms.getCookTime(), 0);
950  return result;
951  }
952  fpreal64 getMaxarea() const { return myMaxarea; }
953  void setMaxarea(fpreal64 val) { myMaxarea = val; }
955  {
956  SOP_Node *thissop = cookparms.getNode();
957  if (!thissop) return getMaxarea();
959  OP_Utils::evalOpParm(result, thissop, "maxarea", cookparms.getCookTime(), 0);
960  return result;
961  }
962  fpreal64 getMinangle() const { return myMinangle; }
963  void setMinangle(fpreal64 val) { myMinangle = val; }
965  {
966  SOP_Node *thissop = cookparms.getNode();
967  if (!thissop) return getMinangle();
969  OP_Utils::evalOpParm(result, thissop, "minangle", cookparms.getCookTime(), 0);
970  return result;
971  }
972  fpreal64 getMinedgelength() const { return myMinedgelength; }
973  void setMinedgelength(fpreal64 val) { myMinedgelength = val; }
975  {
976  SOP_Node *thissop = cookparms.getNode();
977  if (!thissop) return getMinedgelength();
979  OP_Utils::evalOpParm(result, thissop, "minedgelength", cookparms.getCookTime(), 0);
980  return result;
981  }
982  int64 getMaxnewpts() const { return myMaxnewpts; }
983  void setMaxnewpts(int64 val) { myMaxnewpts = val; }
984  int64 opMaxnewpts(const SOP_NodeVerb::CookParms &cookparms) const
985  {
986  SOP_Node *thissop = cookparms.getNode();
987  if (!thissop) return getMaxnewpts();
988  int64 result;
989  OP_Utils::evalOpParm(result, thissop, "maxnewpts", cookparms.getCookTime(), 0);
990  return result;
991  }
992  bool getNonewconpts() const { return myNonewconpts; }
993  void setNonewconpts(bool val) { myNonewconpts = val; }
994  bool opNonewconpts(const SOP_NodeVerb::CookParms &cookparms) const
995  {
996  SOP_Node *thissop = cookparms.getNode();
997  if (!thissop) return getNonewconpts();
998  bool result;
999  OP_Utils::evalOpParm(result, thissop, "nonewconpts", cookparms.getCookTime(), 0);
1000  return result;
1001  }
1002  bool getMakenewconptgrp() const { return myMakenewconptgrp; }
1003  void setMakenewconptgrp(bool val) { myMakenewconptgrp = val; }
1004  bool opMakenewconptgrp(const SOP_NodeVerb::CookParms &cookparms) const
1005  {
1006  SOP_Node *thissop = cookparms.getNode();
1007  if (!thissop) return getMakenewconptgrp();
1008  bool result;
1009  OP_Utils::evalOpParm(result, thissop, "makenewconptgrp", cookparms.getCookTime(), 0);
1010  return result;
1011  }
1012  const UT_StringHolder & getNewconptgrp() const { return myNewconptgrp; }
1013  void setNewconptgrp(const UT_StringHolder & val) { myNewconptgrp = val; }
1015  {
1016  SOP_Node *thissop = cookparms.getNode();
1017  if (!thissop) return getNewconptgrp();
1019  OP_Utils::evalOpParm(result, thissop, "newconptgrp", cookparms.getCookTime(), 0);
1020  return result;
1021  }
1022  bool getMakenewconedgegrp() const { return myMakenewconedgegrp; }
1023  void setMakenewconedgegrp(bool val) { myMakenewconedgegrp = val; }
1024  bool opMakenewconedgegrp(const SOP_NodeVerb::CookParms &cookparms) const
1025  {
1026  SOP_Node *thissop = cookparms.getNode();
1027  if (!thissop) return getMakenewconedgegrp();
1028  bool result;
1029  OP_Utils::evalOpParm(result, thissop, "makenewconedgegrp", cookparms.getCookTime(), 0);
1030  return result;
1031  }
1032  const UT_StringHolder & getOutconedgegrp() const { return myOutconedgegrp; }
1033  void setOutconedgegrp(const UT_StringHolder & val) { myOutconedgegrp = val; }
1035  {
1036  SOP_Node *thissop = cookparms.getNode();
1037  if (!thissop) return getOutconedgegrp();
1039  OP_Utils::evalOpParm(result, thissop, "outconedgegrp", cookparms.getCookTime(), 0);
1040  return result;
1041  }
1042 
1043 private:
1044  UT_StringHolder myPoints;
1045  int64 myPlanepossrc;
1046  UT_Vector3D myOrigin;
1047  fpreal64 myDist;
1048  UT_Vector3D myDir;
1049  UT_StringHolder myPos2attrib;
1050  bool myRestorepos;
1051  bool myKeepprims;
1052  bool myUpdatenmls;
1053  bool myRemoveunusedpoints;
1054  bool myRemoveduplicatepoints;
1055  int64 myRandseed;
1056  UT_StringHolder myConprims;
1057  UT_StringHolder myConedges;
1058  bool myRemoveconvhull;
1059  bool myRemoveoutcons;
1060  bool myDontremoveincons;
1061  bool myRefine;
1062  fpreal64 myMaxarea;
1063  fpreal64 myMinangle;
1064  fpreal64 myMinedgelength;
1065  int64 myMaxnewpts;
1066  bool myNonewconpts;
1067  bool myMakenewconptgrp;
1068  UT_StringHolder myNewconptgrp;
1069  bool myMakenewconedgegrp;
1070  UT_StringHolder myOutconedgegrp;
1071 
1072 };
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
GLdouble s
Definition: glew.h:1390
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getOutconedgegrp() const
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getPoints() const
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
void setConedges(const UT_StringHolder &val)
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)
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)
GT_API const UT_StringHolder time
fpreal getTime() const
Definition: OP_Context.h:60
GLuint const GLfloat * val
Definition: glew.h:2794
fpreal64 opMaxarea(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getConprims() const
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
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
const GLdouble * v
Definition: glew.h:1391
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opOrigin(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
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)
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
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
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
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:28
GLint GLenum GLsizei GLint GLsizei const void * data
Definition: glew.h:1379
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
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
const GLfloat * c
Definition: glew.h:16296
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
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:294
int64 opMaxnewpts(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
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 buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
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
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:84
bool operator==(const SOP_Triangulate2D_2_0Parms &src) const
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
void setOutconedgegrp(const UT_StringHolder &val)
#define SOP_API
Definition: SOP_API.h:10
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
UT_StringHolder opOutconedgegrp(const SOP_NodeVerb::CookParms &cookparms) const
void setPos2attrib(const UT_StringHolder &val)
static void saveData(std::ostream &os, int64 v)
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
fpreal64 opMinangle(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
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
GLuint64EXT * result
Definition: glew.h:14007
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:1368
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
GLsizei const GLfloat * value
Definition: glew.h:1849
void copyFrom(const SOP_NodeParms *src) override
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
bool opUpdatenmls(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
type
Definition: core.h:528