HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Remesh-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_Remesh_2_0Enums
24 {
25  enum class Sizing
26  {
27  UNIFORM = 0,
28  ADAPTIVE
29  };
30 }
31 
32 
34 {
35 public:
36  static int version() { return 1; }
37 
39  {
40  myGroup = ""_sh;
41  myHardEdges = ""_sh;
42  myIterations = 2;
43  mySmoothing = 0.1;
44  myInputPtsOnly = false;
45  myDetachFromNonGroup = false;
46  myRecomputeNormals = true;
47  mySizing = 0;
48  myTargetSize = 0.2;
49  myUseMaxSize = false;
50  myMaxSize = 0.1;
51  myUseMinSize = false;
52  myMinSize = .1;
53  myDensity = 2.0;
54  myGradation = 0.25;
55  myUseMeshSizeAttrib = false;
56  myMeshSizeAttrib = "targetmeshsize"_sh;
57  myUseMinSizeAttrib = false;
58  myMinSizeAttrib = "minmeshsize"_sh;
59  myUseMaxSizeAttrib = false;
60  myMaxSizeAttrib = "maxmeshsize"_sh;
61  myUseOutMeshSizeAttrib = false;
62  myOutMeshSizeAttrib = "meshsize"_sh;
63 
64  }
65 
66  explicit SOP_Remesh_2_0Parms(const SOP_Remesh_2_0Parms &) = default;
67 
68  ~SOP_Remesh_2_0Parms() override {}
69 
70  bool operator==(const SOP_Remesh_2_0Parms &src) const
71  {
72  if (myGroup != src.myGroup) return false;
73  if (myHardEdges != src.myHardEdges) return false;
74  if (myIterations != src.myIterations) return false;
75  if (mySmoothing != src.mySmoothing) return false;
76  if (myInputPtsOnly != src.myInputPtsOnly) return false;
77  if (myDetachFromNonGroup != src.myDetachFromNonGroup) return false;
78  if (myRecomputeNormals != src.myRecomputeNormals) return false;
79  if (mySizing != src.mySizing) return false;
80  if (myTargetSize != src.myTargetSize) return false;
81  if (myUseMaxSize != src.myUseMaxSize) return false;
82  if (myMaxSize != src.myMaxSize) return false;
83  if (myUseMinSize != src.myUseMinSize) return false;
84  if (myMinSize != src.myMinSize) return false;
85  if (myDensity != src.myDensity) return false;
86  if (myGradation != src.myGradation) return false;
87  if (myUseMeshSizeAttrib != src.myUseMeshSizeAttrib) return false;
88  if (myMeshSizeAttrib != src.myMeshSizeAttrib) return false;
89  if (myUseMinSizeAttrib != src.myUseMinSizeAttrib) return false;
90  if (myMinSizeAttrib != src.myMinSizeAttrib) return false;
91  if (myUseMaxSizeAttrib != src.myUseMaxSizeAttrib) return false;
92  if (myMaxSizeAttrib != src.myMaxSizeAttrib) return false;
93  if (myUseOutMeshSizeAttrib != src.myUseOutMeshSizeAttrib) return false;
94  if (myOutMeshSizeAttrib != src.myOutMeshSizeAttrib) return false;
95 
96  return true;
97  }
98  bool operator!=(const SOP_Remesh_2_0Parms &src) const
99  {
100  return !operator==(src);
101  }
103 
104 
105 
106  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
107  {
108  myGroup = ""_sh;
109  if (true)
110  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
111  myHardEdges = ""_sh;
112  if (true)
113  graph->evalOpParm(myHardEdges, nodeidx, "hard_edges", time, 0);
114  myIterations = 2;
115  if (true)
116  graph->evalOpParm(myIterations, nodeidx, "iterations", time, 0);
117  mySmoothing = 0.1;
118  if (true)
119  graph->evalOpParm(mySmoothing, nodeidx, "smoothing", time, 0);
120  myInputPtsOnly = false;
121  if (true)
122  graph->evalOpParm(myInputPtsOnly, nodeidx, "inputptsonly", time, 0);
123  myDetachFromNonGroup = false;
124  if (true)
125  graph->evalOpParm(myDetachFromNonGroup, nodeidx, "detachfromnongroup", time, 0);
126  myRecomputeNormals = true;
127  if (true)
128  graph->evalOpParm(myRecomputeNormals, nodeidx, "recomputenormals", time, 0);
129  mySizing = 0;
130  if (true)
131  graph->evalOpParm(mySizing, nodeidx, "sizing", time, 0);
132  myTargetSize = 0.2;
133  if (true && ( (!(((int64(getSizing())==1)))) ) )
134  graph->evalOpParm(myTargetSize, nodeidx, "targetsize", time, 0);
135  myUseMaxSize = false;
136  if (true && ( (!(((int64(getSizing())==0)))) ) )
137  graph->evalOpParm(myUseMaxSize, nodeidx, "usemaxsize", time, 0);
138  myMaxSize = 0.1;
139  if (true && ( (!(((getUseMaxSize()==0))||((int64(getSizing())==0)))) ) )
140  graph->evalOpParm(myMaxSize, nodeidx, "maxsize", time, 0);
141  myUseMinSize = false;
142  if (true && ( (!(((int64(getSizing())==0)))) ) )
143  graph->evalOpParm(myUseMinSize, nodeidx, "useminsize", time, 0);
144  myMinSize = .1;
145  if (true && ( (!(((getUseMinSize()==0))||((int64(getSizing())==0)))) ) )
146  graph->evalOpParm(myMinSize, nodeidx, "minsize", time, 0);
147  myDensity = 2.0;
148  if (true && ( (!(((int64(getSizing())==0)))) ) )
149  graph->evalOpParm(myDensity, nodeidx, "density", time, 0);
150  myGradation = 0.25;
151  if (true && ( (!(((int64(getSizing())==0)))) ) )
152  graph->evalOpParm(myGradation, nodeidx, "gradation", time, 0);
153  myUseMeshSizeAttrib = false;
154  if (true && ( (!(((int64(getSizing())==0))||((int64(getSizing())==0)))) ) )
155  graph->evalOpParm(myUseMeshSizeAttrib, nodeidx, "usemeshsizeattrib", time, 0);
156  myMeshSizeAttrib = "targetmeshsize"_sh;
157  if (true && ( (!(((int64(getSizing())==0))||((getUseMeshSizeAttrib()==0))||((int64(getSizing())==0)))) ) )
158  graph->evalOpParm(myMeshSizeAttrib, nodeidx, "meshsizeattrib", time, 0);
159  myUseMinSizeAttrib = false;
160  if (true && ( (!(((int64(getSizing())==0)))) ) )
161  graph->evalOpParm(myUseMinSizeAttrib, nodeidx, "useminsizeattrib", time, 0);
162  myMinSizeAttrib = "minmeshsize"_sh;
163  if (true && ( (!(((int64(getSizing())==0))||((getUseMinSizeAttrib()==0))||((int64(getSizing())==0)))) ) )
164  graph->evalOpParm(myMinSizeAttrib, nodeidx, "minsizeattrib", time, 0);
165  myUseMaxSizeAttrib = false;
166  if (true && ( (!(((int64(getSizing())==0))||((int64(getSizing())==0)))) ) )
167  graph->evalOpParm(myUseMaxSizeAttrib, nodeidx, "usemaxsizeattrib", time, 0);
168  myMaxSizeAttrib = "maxmeshsize"_sh;
169  if (true && ( (!(((int64(getSizing())==0))||((getUseMaxSizeAttrib()==0))||((int64(getSizing())==0)))) ) )
170  graph->evalOpParm(myMaxSizeAttrib, nodeidx, "maxsizeattrib", time, 0);
171  myUseOutMeshSizeAttrib = false;
172  if (true)
173  graph->evalOpParm(myUseOutMeshSizeAttrib, nodeidx, "useoutmeshsizeattrib", time, 0);
174  myOutMeshSizeAttrib = "meshsize"_sh;
175  if (true && ( (!(((getUseOutMeshSizeAttrib()==0)))) ) )
176  graph->evalOpParm(myOutMeshSizeAttrib, nodeidx, "outmeshsizeattrib", time, 0);
177 
178  }
179 
180 
181  void loadFromOpSubclass(const LoadParms &loadparms) override
182  {
183  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
184  }
185 
186 
187  void copyFrom(const SOP_NodeParms *src) override
188  {
189  *this = *((const SOP_Remesh_2_0Parms *)src);
190  }
191 
192  template <typename T>
193  void
194  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
195  {
196  if (idx.size() < 1)
197  return;
198  UT_ASSERT(idx.size() == instance.size()+1);
199  if (idx.size() != instance.size()+1)
200  return;
201  switch (idx[0])
202  {
203  case 0:
204  coerceValue(value, myGroup);
205  break;
206  case 1:
207  coerceValue(value, myHardEdges);
208  break;
209  case 2:
210  coerceValue(value, myIterations);
211  break;
212  case 3:
213  coerceValue(value, mySmoothing);
214  break;
215  case 4:
216  coerceValue(value, myInputPtsOnly);
217  break;
218  case 5:
219  coerceValue(value, myDetachFromNonGroup);
220  break;
221  case 6:
222  coerceValue(value, myRecomputeNormals);
223  break;
224  case 7:
225  coerceValue(value, mySizing);
226  break;
227  case 8:
228  coerceValue(value, myTargetSize);
229  break;
230  case 9:
231  coerceValue(value, myUseMaxSize);
232  break;
233  case 10:
234  coerceValue(value, myMaxSize);
235  break;
236  case 11:
237  coerceValue(value, myUseMinSize);
238  break;
239  case 12:
240  coerceValue(value, myMinSize);
241  break;
242  case 13:
243  coerceValue(value, myDensity);
244  break;
245  case 14:
246  coerceValue(value, myGradation);
247  break;
248  case 15:
249  coerceValue(value, myUseMeshSizeAttrib);
250  break;
251  case 16:
252  coerceValue(value, myMeshSizeAttrib);
253  break;
254  case 17:
255  coerceValue(value, myUseMinSizeAttrib);
256  break;
257  case 18:
258  coerceValue(value, myMinSizeAttrib);
259  break;
260  case 19:
261  coerceValue(value, myUseMaxSizeAttrib);
262  break;
263  case 20:
264  coerceValue(value, myMaxSizeAttrib);
265  break;
266  case 21:
267  coerceValue(value, myUseOutMeshSizeAttrib);
268  break;
269  case 22:
270  coerceValue(value, myOutMeshSizeAttrib);
271  break;
272 
273  }
274  }
275 
276  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
277  { doGetParmValue(idx, instance, value); }
278  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
279  { doGetParmValue(idx, instance, value); }
280  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
281  { doGetParmValue(idx, instance, value); }
282  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
283  { doGetParmValue(idx, instance, value); }
284  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
285  { doGetParmValue(idx, instance, value); }
286  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
287  { doGetParmValue(idx, instance, value); }
288  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
289  { doGetParmValue(idx, instance, value); }
290  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
291  { doGetParmValue(idx, instance, value); }
292  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
293  { doGetParmValue(idx, instance, value); }
294  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
295  { doGetParmValue(idx, instance, value); }
296  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
297  { doGetParmValue(idx, instance, value); }
298 
299  template <typename T>
300  void
301  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
302  {
303  if (idx.size() < 1)
304  return;
305  UT_ASSERT(idx.size() == instance.size()+1);
306  if (idx.size() != instance.size()+1)
307  return;
308  switch (idx[0])
309  {
310  case 0:
311  coerceValue(myGroup, value);
312  break;
313  case 1:
314  coerceValue(myHardEdges, value);
315  break;
316  case 2:
317  coerceValue(myIterations, value);
318  break;
319  case 3:
320  coerceValue(mySmoothing, value);
321  break;
322  case 4:
323  coerceValue(myInputPtsOnly, value);
324  break;
325  case 5:
326  coerceValue(myDetachFromNonGroup, value);
327  break;
328  case 6:
329  coerceValue(myRecomputeNormals, value);
330  break;
331  case 7:
332  coerceValue(mySizing, value);
333  break;
334  case 8:
335  coerceValue(myTargetSize, value);
336  break;
337  case 9:
338  coerceValue(myUseMaxSize, value);
339  break;
340  case 10:
341  coerceValue(myMaxSize, value);
342  break;
343  case 11:
344  coerceValue(myUseMinSize, value);
345  break;
346  case 12:
347  coerceValue(myMinSize, value);
348  break;
349  case 13:
350  coerceValue(myDensity, value);
351  break;
352  case 14:
353  coerceValue(myGradation, value);
354  break;
355  case 15:
356  coerceValue(myUseMeshSizeAttrib, value);
357  break;
358  case 16:
359  coerceValue(myMeshSizeAttrib, value);
360  break;
361  case 17:
362  coerceValue(myUseMinSizeAttrib, value);
363  break;
364  case 18:
365  coerceValue(myMinSizeAttrib, value);
366  break;
367  case 19:
368  coerceValue(myUseMaxSizeAttrib, value);
369  break;
370  case 20:
371  coerceValue(myMaxSizeAttrib, value);
372  break;
373  case 21:
374  coerceValue(myUseOutMeshSizeAttrib, value);
375  break;
376  case 22:
377  coerceValue(myOutMeshSizeAttrib, value);
378  break;
379 
380  }
381  }
382 
383  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
384  { doSetParmValue(idx, instance, value); }
385  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
386  { doSetParmValue(idx, instance, value); }
387  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
388  { doSetParmValue(idx, instance, value); }
389  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
390  { doSetParmValue(idx, instance, value); }
391  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
392  { doSetParmValue(idx, instance, value); }
393  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
394  { doSetParmValue(idx, instance, value); }
395  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
396  { doSetParmValue(idx, instance, value); }
397  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
398  { doSetParmValue(idx, instance, value); }
399  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
400  { doSetParmValue(idx, instance, value); }
401  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
402  { doSetParmValue(idx, instance, value); }
403  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
404  { doSetParmValue(idx, instance, value); }
405 
406  exint getNestNumParms(TempIndex idx) const override
407  {
408  if (idx.size() == 0)
409  return 23;
410  switch (idx[0])
411  {
412 
413  }
414  // Invalid
415  return 0;
416  }
417 
418  const char *getNestParmName(TempIndex fieldnum) const override
419  {
420  if (fieldnum.size() < 1)
421  return 0;
422  switch (fieldnum[0])
423  {
424  case 0:
425  return "group";
426  case 1:
427  return "hard_edges";
428  case 2:
429  return "iterations";
430  case 3:
431  return "smoothing";
432  case 4:
433  return "inputptsonly";
434  case 5:
435  return "detachfromnongroup";
436  case 6:
437  return "recomputenormals";
438  case 7:
439  return "sizing";
440  case 8:
441  return "targetsize";
442  case 9:
443  return "usemaxsize";
444  case 10:
445  return "maxsize";
446  case 11:
447  return "useminsize";
448  case 12:
449  return "minsize";
450  case 13:
451  return "density";
452  case 14:
453  return "gradation";
454  case 15:
455  return "usemeshsizeattrib";
456  case 16:
457  return "meshsizeattrib";
458  case 17:
459  return "useminsizeattrib";
460  case 18:
461  return "minsizeattrib";
462  case 19:
463  return "usemaxsizeattrib";
464  case 20:
465  return "maxsizeattrib";
466  case 21:
467  return "useoutmeshsizeattrib";
468  case 22:
469  return "outmeshsizeattrib";
470 
471  }
472  return 0;
473  }
474 
475  ParmType getNestParmType(TempIndex fieldnum) const override
476  {
477  if (fieldnum.size() < 1)
478  return PARM_UNSUPPORTED;
479  switch (fieldnum[0])
480  {
481  case 0:
482  return PARM_STRING;
483  case 1:
484  return PARM_STRING;
485  case 2:
486  return PARM_INTEGER;
487  case 3:
488  return PARM_FLOAT;
489  case 4:
490  return PARM_INTEGER;
491  case 5:
492  return PARM_INTEGER;
493  case 6:
494  return PARM_INTEGER;
495  case 7:
496  return PARM_INTEGER;
497  case 8:
498  return PARM_FLOAT;
499  case 9:
500  return PARM_INTEGER;
501  case 10:
502  return PARM_FLOAT;
503  case 11:
504  return PARM_INTEGER;
505  case 12:
506  return PARM_FLOAT;
507  case 13:
508  return PARM_FLOAT;
509  case 14:
510  return PARM_FLOAT;
511  case 15:
512  return PARM_INTEGER;
513  case 16:
514  return PARM_STRING;
515  case 17:
516  return PARM_INTEGER;
517  case 18:
518  return PARM_STRING;
519  case 19:
520  return PARM_INTEGER;
521  case 20:
522  return PARM_STRING;
523  case 21:
524  return PARM_INTEGER;
525  case 22:
526  return PARM_STRING;
527 
528  }
529  return PARM_UNSUPPORTED;
530  }
531 
532  // Boiler plate to load individual types.
533  static void loadData(UT_IStream &is, int64 &v)
534  { is.bread(&v, 1); }
535  static void loadData(UT_IStream &is, bool &v)
536  { int64 iv; is.bread(&iv, 1); v = iv; }
537  static void loadData(UT_IStream &is, fpreal64 &v)
538  { is.bread<fpreal64>(&v, 1); }
539  static void loadData(UT_IStream &is, UT_Vector2D &v)
540  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
541  static void loadData(UT_IStream &is, UT_Vector3D &v)
542  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
543  is.bread<fpreal64>(&v.z(), 1); }
544  static void loadData(UT_IStream &is, UT_Vector4D &v)
545  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
546  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
547  static void loadData(UT_IStream &is, UT_Matrix2D &v)
548  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
549  static void loadData(UT_IStream &is, UT_Matrix3D &v)
550  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
551  static void loadData(UT_IStream &is, UT_Matrix4D &v)
552  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
553  static void loadData(UT_IStream &is, UT_Vector2I &v)
554  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
555  static void loadData(UT_IStream &is, UT_Vector3I &v)
556  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
557  is.bread<int64>(&v.z(), 1); }
558  static void loadData(UT_IStream &is, UT_Vector4I &v)
559  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
560  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
562  { is.bread(v); }
564  { UT_StringHolder rampdata;
565  loadData(is, rampdata);
566  if (rampdata.isstring())
567  {
568  v.reset(new UT_Ramp());
569  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
570  v->load(istr);
571  }
572  else v.reset();
573  }
576  loadData(is, data);
577  if (data.isstring())
578  {
579  // Find the data type.
580  const char *colon = UT_StringWrap(data).findChar(':');
581  if (colon)
582  {
583  int typelen = colon - data.buffer();
585  type.strncpy(data.buffer(), typelen);
586  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
587 
588  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
589  }
590  }
591  else v.reset();
592  }
593 
594  static void saveData(std::ostream &os, int64 v)
595  { UTwrite(os, &v); }
596  static void saveData(std::ostream &os, bool v)
597  { int64 iv = v; UTwrite(os, &iv); }
598  static void saveData(std::ostream &os, fpreal64 v)
599  { UTwrite<fpreal64>(os, &v); }
600  static void saveData(std::ostream &os, UT_Vector2D v)
601  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
602  static void saveData(std::ostream &os, UT_Vector3D v)
603  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
604  UTwrite<fpreal64>(os, &v.z()); }
605  static void saveData(std::ostream &os, UT_Vector4D v)
606  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
607  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
608  static void saveData(std::ostream &os, UT_Matrix2D v)
610  static void saveData(std::ostream &os, UT_Matrix3D v)
612  static void saveData(std::ostream &os, UT_Matrix4D v)
614  static void saveData(std::ostream &os, UT_StringHolder s)
615  { UT_StringWrap(s).saveBinary(os); }
616  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
618  UT_OStringStream ostr;
619  if (s) s->save(ostr);
620  result = ostr.str();
621  saveData(os, result);
622  }
623  static void saveData(std::ostream &os, PRM_DataItemHandle s)
625  UT_OStringStream ostr;
626  if (s)
627  {
628  ostr << s->getDataTypeToken();
629  ostr << ":";
630  s->saveBinary(ostr);
631  }
632  result = ostr.str();
633  saveData(os, result);
634  }
635 
636 
637  void save(std::ostream &os) const
638  {
639  int32 v = version();
640  UTwrite(os, &v);
641  saveData(os, myGroup);
642  saveData(os, myHardEdges);
643  saveData(os, myIterations);
644  saveData(os, mySmoothing);
645  saveData(os, myInputPtsOnly);
646  saveData(os, myDetachFromNonGroup);
647  saveData(os, myRecomputeNormals);
648  saveData(os, mySizing);
649  saveData(os, myTargetSize);
650  saveData(os, myUseMaxSize);
651  saveData(os, myMaxSize);
652  saveData(os, myUseMinSize);
653  saveData(os, myMinSize);
654  saveData(os, myDensity);
655  saveData(os, myGradation);
656  saveData(os, myUseMeshSizeAttrib);
657  saveData(os, myMeshSizeAttrib);
658  saveData(os, myUseMinSizeAttrib);
659  saveData(os, myMinSizeAttrib);
660  saveData(os, myUseMaxSizeAttrib);
661  saveData(os, myMaxSizeAttrib);
662  saveData(os, myUseOutMeshSizeAttrib);
663  saveData(os, myOutMeshSizeAttrib);
664 
665  }
666 
667  bool load(UT_IStream &is)
668  {
669  int32 v;
670  is.bread(&v, 1);
671  if (version() != v)
672  {
673  // Fail incompatible versions
674  return false;
675  }
676  loadData(is, myGroup);
677  loadData(is, myHardEdges);
678  loadData(is, myIterations);
679  loadData(is, mySmoothing);
680  loadData(is, myInputPtsOnly);
681  loadData(is, myDetachFromNonGroup);
682  loadData(is, myRecomputeNormals);
683  loadData(is, mySizing);
684  loadData(is, myTargetSize);
685  loadData(is, myUseMaxSize);
686  loadData(is, myMaxSize);
687  loadData(is, myUseMinSize);
688  loadData(is, myMinSize);
689  loadData(is, myDensity);
690  loadData(is, myGradation);
691  loadData(is, myUseMeshSizeAttrib);
692  loadData(is, myMeshSizeAttrib);
693  loadData(is, myUseMinSizeAttrib);
694  loadData(is, myMinSizeAttrib);
695  loadData(is, myUseMaxSizeAttrib);
696  loadData(is, myMaxSizeAttrib);
697  loadData(is, myUseOutMeshSizeAttrib);
698  loadData(is, myOutMeshSizeAttrib);
699 
700  return true;
701  }
702 
703  const UT_StringHolder & getGroup() const { return myGroup; }
704  void setGroup(const UT_StringHolder & val) { myGroup = val; }
706  {
707  SOP_Node *thissop = cookparms.getNode();
708  if (!thissop) return getGroup();
710  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
711  return result;
712  }
713  const UT_StringHolder & getHardEdges() const { return myHardEdges; }
714  void setHardEdges(const UT_StringHolder & val) { myHardEdges = val; }
716  {
717  SOP_Node *thissop = cookparms.getNode();
718  if (!thissop) return getHardEdges();
720  OP_Utils::evalOpParm(result, thissop, "hard_edges", cookparms.getCookTime(), 0);
721  return result;
722  }
723  int64 getIterations() const { return myIterations; }
724  void setIterations(int64 val) { myIterations = val; }
726  {
727  SOP_Node *thissop = cookparms.getNode();
728  if (!thissop) return getIterations();
729  int64 result;
730  OP_Utils::evalOpParm(result, thissop, "iterations", cookparms.getCookTime(), 0);
731  return result;
732  }
733  fpreal64 getSmoothing() const { return mySmoothing; }
734  void setSmoothing(fpreal64 val) { mySmoothing = val; }
736  {
737  SOP_Node *thissop = cookparms.getNode();
738  if (!thissop) return getSmoothing();
740  OP_Utils::evalOpParm(result, thissop, "smoothing", cookparms.getCookTime(), 0);
741  return result;
742  }
743  bool getInputPtsOnly() const { return myInputPtsOnly; }
744  void setInputPtsOnly(bool val) { myInputPtsOnly = val; }
745  bool opInputPtsOnly(const SOP_NodeVerb::CookParms &cookparms) const
746  {
747  SOP_Node *thissop = cookparms.getNode();
748  if (!thissop) return getInputPtsOnly();
749  bool result;
750  OP_Utils::evalOpParm(result, thissop, "inputptsonly", cookparms.getCookTime(), 0);
751  return result;
752  }
753  bool getDetachFromNonGroup() const { return myDetachFromNonGroup; }
754  void setDetachFromNonGroup(bool val) { myDetachFromNonGroup = val; }
755  bool opDetachFromNonGroup(const SOP_NodeVerb::CookParms &cookparms) const
756  {
757  SOP_Node *thissop = cookparms.getNode();
758  if (!thissop) return getDetachFromNonGroup();
759  bool result;
760  OP_Utils::evalOpParm(result, thissop, "detachfromnongroup", cookparms.getCookTime(), 0);
761  return result;
762  }
763  bool getRecomputeNormals() const { return myRecomputeNormals; }
764  void setRecomputeNormals(bool val) { myRecomputeNormals = val; }
765  bool opRecomputeNormals(const SOP_NodeVerb::CookParms &cookparms) const
766  {
767  SOP_Node *thissop = cookparms.getNode();
768  if (!thissop) return getRecomputeNormals();
769  bool result;
770  OP_Utils::evalOpParm(result, thissop, "recomputenormals", cookparms.getCookTime(), 0);
771  return result;
772  }
773  Sizing getSizing() const { return Sizing(mySizing); }
774  void setSizing(Sizing val) { mySizing = int64(val); }
775  Sizing opSizing(const SOP_NodeVerb::CookParms &cookparms) const
776  {
777  SOP_Node *thissop = cookparms.getNode();
778  if (!thissop) return getSizing();
779  int64 result;
780  OP_Utils::evalOpParm(result, thissop, "sizing", cookparms.getCookTime(), 0);
781  return Sizing(result);
782  }
783  fpreal64 getTargetSize() const { return myTargetSize; }
784  void setTargetSize(fpreal64 val) { myTargetSize = val; }
786  {
787  SOP_Node *thissop = cookparms.getNode();
788  if (!thissop) return getTargetSize();
790  OP_Utils::evalOpParm(result, thissop, "targetsize", cookparms.getCookTime(), 0);
791  return result;
792  }
793  bool getUseMaxSize() const { return myUseMaxSize; }
794  void setUseMaxSize(bool val) { myUseMaxSize = val; }
795  bool opUseMaxSize(const SOP_NodeVerb::CookParms &cookparms) const
796  {
797  SOP_Node *thissop = cookparms.getNode();
798  if (!thissop) return getUseMaxSize();
799  bool result;
800  OP_Utils::evalOpParm(result, thissop, "usemaxsize", cookparms.getCookTime(), 0);
801  return result;
802  }
803  fpreal64 getMaxSize() const { return myMaxSize; }
804  void setMaxSize(fpreal64 val) { myMaxSize = val; }
806  {
807  SOP_Node *thissop = cookparms.getNode();
808  if (!thissop) return getMaxSize();
810  OP_Utils::evalOpParm(result, thissop, "maxsize", cookparms.getCookTime(), 0);
811  return result;
812  }
813  bool getUseMinSize() const { return myUseMinSize; }
814  void setUseMinSize(bool val) { myUseMinSize = val; }
815  bool opUseMinSize(const SOP_NodeVerb::CookParms &cookparms) const
816  {
817  SOP_Node *thissop = cookparms.getNode();
818  if (!thissop) return getUseMinSize();
819  bool result;
820  OP_Utils::evalOpParm(result, thissop, "useminsize", cookparms.getCookTime(), 0);
821  return result;
822  }
823  fpreal64 getMinSize() const { return myMinSize; }
824  void setMinSize(fpreal64 val) { myMinSize = val; }
826  {
827  SOP_Node *thissop = cookparms.getNode();
828  if (!thissop) return getMinSize();
830  OP_Utils::evalOpParm(result, thissop, "minsize", cookparms.getCookTime(), 0);
831  return result;
832  }
833  fpreal64 getDensity() const { return myDensity; }
834  void setDensity(fpreal64 val) { myDensity = val; }
836  {
837  SOP_Node *thissop = cookparms.getNode();
838  if (!thissop) return getDensity();
840  OP_Utils::evalOpParm(result, thissop, "density", cookparms.getCookTime(), 0);
841  return result;
842  }
843  fpreal64 getGradation() const { return myGradation; }
844  void setGradation(fpreal64 val) { myGradation = val; }
846  {
847  SOP_Node *thissop = cookparms.getNode();
848  if (!thissop) return getGradation();
850  OP_Utils::evalOpParm(result, thissop, "gradation", cookparms.getCookTime(), 0);
851  return result;
852  }
853  bool getUseMeshSizeAttrib() const { return myUseMeshSizeAttrib; }
854  void setUseMeshSizeAttrib(bool val) { myUseMeshSizeAttrib = val; }
855  bool opUseMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
856  {
857  SOP_Node *thissop = cookparms.getNode();
858  if (!thissop) return getUseMeshSizeAttrib();
859  bool result;
860  OP_Utils::evalOpParm(result, thissop, "usemeshsizeattrib", cookparms.getCookTime(), 0);
861  return result;
862  }
863  const UT_StringHolder & getMeshSizeAttrib() const { return myMeshSizeAttrib; }
864  void setMeshSizeAttrib(const UT_StringHolder & val) { myMeshSizeAttrib = val; }
866  {
867  SOP_Node *thissop = cookparms.getNode();
868  if (!thissop) return getMeshSizeAttrib();
870  OP_Utils::evalOpParm(result, thissop, "meshsizeattrib", cookparms.getCookTime(), 0);
871  return result;
872  }
873  bool getUseMinSizeAttrib() const { return myUseMinSizeAttrib; }
874  void setUseMinSizeAttrib(bool val) { myUseMinSizeAttrib = val; }
875  bool opUseMinSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
876  {
877  SOP_Node *thissop = cookparms.getNode();
878  if (!thissop) return getUseMinSizeAttrib();
879  bool result;
880  OP_Utils::evalOpParm(result, thissop, "useminsizeattrib", cookparms.getCookTime(), 0);
881  return result;
882  }
883  const UT_StringHolder & getMinSizeAttrib() const { return myMinSizeAttrib; }
884  void setMinSizeAttrib(const UT_StringHolder & val) { myMinSizeAttrib = val; }
886  {
887  SOP_Node *thissop = cookparms.getNode();
888  if (!thissop) return getMinSizeAttrib();
890  OP_Utils::evalOpParm(result, thissop, "minsizeattrib", cookparms.getCookTime(), 0);
891  return result;
892  }
893  bool getUseMaxSizeAttrib() const { return myUseMaxSizeAttrib; }
894  void setUseMaxSizeAttrib(bool val) { myUseMaxSizeAttrib = val; }
895  bool opUseMaxSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
896  {
897  SOP_Node *thissop = cookparms.getNode();
898  if (!thissop) return getUseMaxSizeAttrib();
899  bool result;
900  OP_Utils::evalOpParm(result, thissop, "usemaxsizeattrib", cookparms.getCookTime(), 0);
901  return result;
902  }
903  const UT_StringHolder & getMaxSizeAttrib() const { return myMaxSizeAttrib; }
904  void setMaxSizeAttrib(const UT_StringHolder & val) { myMaxSizeAttrib = val; }
906  {
907  SOP_Node *thissop = cookparms.getNode();
908  if (!thissop) return getMaxSizeAttrib();
910  OP_Utils::evalOpParm(result, thissop, "maxsizeattrib", cookparms.getCookTime(), 0);
911  return result;
912  }
913  bool getUseOutMeshSizeAttrib() const { return myUseOutMeshSizeAttrib; }
914  void setUseOutMeshSizeAttrib(bool val) { myUseOutMeshSizeAttrib = val; }
915  bool opUseOutMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
916  {
917  SOP_Node *thissop = cookparms.getNode();
918  if (!thissop) return getUseOutMeshSizeAttrib();
919  bool result;
920  OP_Utils::evalOpParm(result, thissop, "useoutmeshsizeattrib", cookparms.getCookTime(), 0);
921  return result;
922  }
923  const UT_StringHolder & getOutMeshSizeAttrib() const { return myOutMeshSizeAttrib; }
924  void setOutMeshSizeAttrib(const UT_StringHolder & val) { myOutMeshSizeAttrib = val; }
926  {
927  SOP_Node *thissop = cookparms.getNode();
928  if (!thissop) return getOutMeshSizeAttrib();
930  OP_Utils::evalOpParm(result, thissop, "outmeshsizeattrib", cookparms.getCookTime(), 0);
931  return result;
932  }
933 
934 private:
935  UT_StringHolder myGroup;
936  UT_StringHolder myHardEdges;
937  int64 myIterations;
938  fpreal64 mySmoothing;
939  bool myInputPtsOnly;
940  bool myDetachFromNonGroup;
941  bool myRecomputeNormals;
942  int64 mySizing;
943  fpreal64 myTargetSize;
944  bool myUseMaxSize;
945  fpreal64 myMaxSize;
946  bool myUseMinSize;
947  fpreal64 myMinSize;
948  fpreal64 myDensity;
949  fpreal64 myGradation;
950  bool myUseMeshSizeAttrib;
951  UT_StringHolder myMeshSizeAttrib;
952  bool myUseMinSizeAttrib;
953  UT_StringHolder myMinSizeAttrib;
954  bool myUseMaxSizeAttrib;
955  UT_StringHolder myMaxSizeAttrib;
956  bool myUseOutMeshSizeAttrib;
957  UT_StringHolder myOutMeshSizeAttrib;
958 
959 };
GLdouble s
Definition: glew.h:1390
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
int64 getIterations() const
void setOutMeshSizeAttrib(const UT_StringHolder &val)
Sizing opSizing(const SOP_NodeVerb::CookParms &cookparms) const
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
bool opUseMinSize(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void saveData(std::ostream &os, fpreal64 v)
const char * getNestParmName(TempIndex fieldnum) const override
bool getUseMeshSizeAttrib() const
void setUseMaxSizeAttrib(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
fpreal64 opDensity(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
bool getDetachFromNonGroup() const
exint bread(int32 *buffer, exint asize=1)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
GT_API const UT_StringHolder time
fpreal64 getSmoothing() const
static void saveData(std::ostream &os, UT_StringHolder s)
fpreal getTime() const
Definition: OP_Context.h:60
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setHardEdges(const UT_StringHolder &val)
GLuint const GLfloat * val
Definition: glew.h:2794
bool opDetachFromNonGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setDensity(fpreal64 val)
void setMinSizeAttrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
const UT_StringHolder & getMinSizeAttrib() const
static void loadData(UT_IStream &is, int64 &v)
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
bool operator!=(const SOP_Remesh_2_0Parms &src) const
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void loadData(UT_IStream &is, bool &v)
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal64 getMinSize() const
const UT_StringHolder & getOutMeshSizeAttrib() const
void setMaxSizeAttrib(const UT_StringHolder &val)
UT_StringHolder opHardEdges(const SOP_NodeVerb::CookParms &cookparms) const
const GLdouble * v
Definition: glew.h:1391
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
UT_StringHolder opMinSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setUseMinSize(bool val)
void setDetachFromNonGroup(bool val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
int64 opIterations(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
double fpreal64
Definition: SYS_Types.h:201
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool operator==(const SOP_Remesh_2_0Parms &src) const
static void loadData(UT_IStream &is, fpreal64 &v)
void setIterations(int64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 opSmoothing(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
bool opUseMaxSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setUseOutMeshSizeAttrib(bool val)
void setGroup(const UT_StringHolder &val)
void setUseMinSizeAttrib(bool val)
exint length() const
static void saveData(std::ostream &os, UT_Vector4D v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
const UT_StringHolder & getGroup() const
bool getUseOutMeshSizeAttrib() const
static void saveData(std::ostream &os, UT_Vector3D v)
GLint GLenum GLsizei GLint GLsizei const void * data
Definition: glew.h:1379
const UT_StringHolder & getMaxSizeAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
fpreal64 opTargetSize(const SOP_NodeVerb::CookParms &cookparms) const
void setSmoothing(fpreal64 val)
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
fpreal64 getTargetSize() const
const GLfloat * c
Definition: glew.h:16296
bool opUseOutMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
fpreal64 opGradation(const SOP_NodeVerb::CookParms &cookparms) const
bool opInputPtsOnly(const SOP_NodeVerb::CookParms &cookparms) const
long long int64
Definition: SYS_Types.h:116
void setMeshSizeAttrib(const UT_StringHolder &val)
bool opUseMinSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
void setUseMaxSize(bool val)
static void saveData(std::ostream &os, bool v)
bool getUseMaxSizeAttrib() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setUseMeshSizeAttrib(bool val)
void copyFrom(const SOP_NodeParms *src) override
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const UT_StringHolder & getHardEdges() const
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool getRecomputeNormals() const
void loadFromOpSubclass(const LoadParms &loadparms) override
fpreal64 getGradation() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool opUseMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setInputPtsOnly(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setGradation(fpreal64 val)
fpreal64 fpreal
Definition: SYS_Types.h:277
bool getUseMinSizeAttrib() const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
static void loadData(UT_IStream &is, UT_Vector2D &v)
ParmType getNestParmType(TempIndex fieldnum) const override
const UT_StringHolder & getMeshSizeAttrib() const
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
static void loadData(UT_IStream &is, UT_Vector2I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
#define SOP_API
Definition: SOP_API.h:10
bool opRecomputeNormals(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setMaxSize(fpreal64 val)
void setTargetSize(fpreal64 val)
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 opMaxSize(const SOP_NodeVerb::CookParms &cookparms) const
GLuint64EXT * result
Definition: glew.h:14007
static void saveData(std::ostream &os, UT_Matrix4D v)
const char * findChar(int c) const
Definition: UT_String.h:1367
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
UT_StringHolder opMaxSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opOutMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
Definition: glew.h:1849
fpreal64 opMinSize(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
bool opUseMaxSize(const SOP_NodeVerb::CookParms &cookparms) const
void setSizing(Sizing val)
SYS_FORCE_INLINE bool isstring() const
void setMinSize(fpreal64 val)
void setRecomputeNormals(bool val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
type
Definition: core.h:528
static void saveData(std::ostream &os, UT_Matrix2D v)
UT_StringHolder opMeshSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getDensity() const
fpreal64 getMaxSize() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_Matrix3D v)