HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_IntersectionAnalysis.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 
25 {
26 public:
27  static int version() { return 1; }
28 
30  {
31  myAgroup = ""_sh;
32  myBgroup = ""_sh;
33  myUseproxtol = true;
34  myProxtol = 0.01;
35  myDetectverts = false;
36  myOutputsegs = false;
37  myUseinputnumattrib = false;
38  myInputnumattrib = "sourceinput"_sh;
39  myUseprimnumattrib = false;
40  myPrimnumattrib = "sourceprim"_sh;
41  myUseprimuvwattrib = false;
42  myPrimuvwattrib = "sourceprimuv"_sh;
43  myUseptnumattrib = false;
44  myPtnumattrib = "sourceptnum"_sh;
45 
46  }
47 
49 
51 
53  {
54  if (myAgroup != src.myAgroup) return false;
55  if (myBgroup != src.myBgroup) return false;
56  if (myUseproxtol != src.myUseproxtol) return false;
57  if (myProxtol != src.myProxtol) return false;
58  if (myDetectverts != src.myDetectverts) return false;
59  if (myOutputsegs != src.myOutputsegs) return false;
60  if (myUseinputnumattrib != src.myUseinputnumattrib) return false;
61  if (myInputnumattrib != src.myInputnumattrib) return false;
62  if (myUseprimnumattrib != src.myUseprimnumattrib) return false;
63  if (myPrimnumattrib != src.myPrimnumattrib) return false;
64  if (myUseprimuvwattrib != src.myUseprimuvwattrib) return false;
65  if (myPrimuvwattrib != src.myPrimuvwattrib) return false;
66  if (myUseptnumattrib != src.myUseptnumattrib) return false;
67  if (myPtnumattrib != src.myPtnumattrib) return false;
68 
69  return true;
70  }
72  {
73  return !operator==(src);
74  }
75 
76 
77 
78  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
79  {
80  myAgroup = ""_sh;
81  if (true)
82  graph->evalOpParm(myAgroup, nodeidx, "agroup", time, 0);
83  myBgroup = ""_sh;
84  if (true)
85  graph->evalOpParm(myBgroup, nodeidx, "bgroup", time, 0);
86  myUseproxtol = true;
87  if (true)
88  graph->evalOpParm(myUseproxtol, nodeidx, "useproxtol", time, 0);
89  myProxtol = 0.01;
90  if (true && ( (!(((getUseproxtol()==0)))) ) )
91  graph->evalOpParm(myProxtol, nodeidx, "proxtol", time, 0);
92  myDetectverts = false;
93  if (true)
94  graph->evalOpParm(myDetectverts, nodeidx, "detectverts", time, 0);
95  myOutputsegs = false;
96  if (true)
97  graph->evalOpParm(myOutputsegs, nodeidx, "outputsegs", time, 0);
98  myUseinputnumattrib = false;
99  if (true)
100  graph->evalOpParm(myUseinputnumattrib, nodeidx, "useinputnumattrib", time, 0);
101  myInputnumattrib = "sourceinput"_sh;
102  if (true && ( (!(((getUseinputnumattrib()==0)))) ) )
103  graph->evalOpParm(myInputnumattrib, nodeidx, "inputnumattrib", time, 0);
104  myUseprimnumattrib = false;
105  if (true)
106  graph->evalOpParm(myUseprimnumattrib, nodeidx, "useprimnumattrib", time, 0);
107  myPrimnumattrib = "sourceprim"_sh;
108  if (true && ( (!(((getUseprimnumattrib()==0)))) ) )
109  graph->evalOpParm(myPrimnumattrib, nodeidx, "primnumattrib", time, 0);
110  myUseprimuvwattrib = false;
111  if (true)
112  graph->evalOpParm(myUseprimuvwattrib, nodeidx, "useprimuvwattrib", time, 0);
113  myPrimuvwattrib = "sourceprimuv"_sh;
114  if (true && ( (!(((getUseprimuvwattrib()==0)))) ) )
115  graph->evalOpParm(myPrimuvwattrib, nodeidx, "primuvwattrib", time, 0);
116  myUseptnumattrib = false;
117  if (true)
118  graph->evalOpParm(myUseptnumattrib, nodeidx, "useptnumattrib", time, 0);
119  myPtnumattrib = "sourceptnum"_sh;
120  if (true && ( (!(((getUseptnumattrib()==0)))) ) )
121  graph->evalOpParm(myPtnumattrib, nodeidx, "ptnumattrib", time, 0);
122 
123  }
124 
125 
126  void loadFromOpSubclass(const LoadParms &loadparms) override
127  {
128  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
129  }
130 
131 
132  void copyFrom(const SOP_NodeParms *src) override
133  {
134  *this = *((const SOP_IntersectionAnalysisParms *)src);
135  }
136 
137  template <typename T>
138  void
139  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
140  {
141  if (idx.size() < 1)
142  return;
143  UT_ASSERT(idx.size() == instance.size()+1);
144  if (idx.size() != instance.size()+1)
145  return;
146  switch (idx[0])
147  {
148  case 0:
149  coerceValue(value, myAgroup);
150  break;
151  case 1:
152  coerceValue(value, myBgroup);
153  break;
154  case 2:
155  coerceValue(value, myUseproxtol);
156  break;
157  case 3:
158  coerceValue(value, myProxtol);
159  break;
160  case 4:
161  coerceValue(value, myDetectverts);
162  break;
163  case 5:
164  coerceValue(value, myOutputsegs);
165  break;
166  case 6:
167  coerceValue(value, myUseinputnumattrib);
168  break;
169  case 7:
170  coerceValue(value, myInputnumattrib);
171  break;
172  case 8:
173  coerceValue(value, myUseprimnumattrib);
174  break;
175  case 9:
176  coerceValue(value, myPrimnumattrib);
177  break;
178  case 10:
179  coerceValue(value, myUseprimuvwattrib);
180  break;
181  case 11:
182  coerceValue(value, myPrimuvwattrib);
183  break;
184  case 12:
185  coerceValue(value, myUseptnumattrib);
186  break;
187  case 13:
188  coerceValue(value, myPtnumattrib);
189  break;
190 
191  }
192  }
193 
194  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
195  { doGetParmValue(idx, instance, value); }
196  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
197  { doGetParmValue(idx, instance, value); }
198  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
199  { doGetParmValue(idx, instance, value); }
200  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
201  { doGetParmValue(idx, instance, value); }
202  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
203  { doGetParmValue(idx, instance, value); }
204  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
205  { doGetParmValue(idx, instance, value); }
206  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
207  { doGetParmValue(idx, instance, value); }
208  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
209  { doGetParmValue(idx, instance, value); }
210  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
211  { doGetParmValue(idx, instance, value); }
212  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
213  { doGetParmValue(idx, instance, value); }
214  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
215  { doGetParmValue(idx, instance, value); }
216 
217  template <typename T>
218  void
219  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
220  {
221  if (idx.size() < 1)
222  return;
223  UT_ASSERT(idx.size() == instance.size()+1);
224  if (idx.size() != instance.size()+1)
225  return;
226  switch (idx[0])
227  {
228  case 0:
229  coerceValue(myAgroup, value);
230  break;
231  case 1:
232  coerceValue(myBgroup, value);
233  break;
234  case 2:
235  coerceValue(myUseproxtol, value);
236  break;
237  case 3:
238  coerceValue(myProxtol, value);
239  break;
240  case 4:
241  coerceValue(myDetectverts, value);
242  break;
243  case 5:
244  coerceValue(myOutputsegs, value);
245  break;
246  case 6:
247  coerceValue(myUseinputnumattrib, value);
248  break;
249  case 7:
250  coerceValue(myInputnumattrib, value);
251  break;
252  case 8:
253  coerceValue(myUseprimnumattrib, value);
254  break;
255  case 9:
256  coerceValue(myPrimnumattrib, value);
257  break;
258  case 10:
259  coerceValue(myUseprimuvwattrib, value);
260  break;
261  case 11:
262  coerceValue(myPrimuvwattrib, value);
263  break;
264  case 12:
265  coerceValue(myUseptnumattrib, value);
266  break;
267  case 13:
268  coerceValue(myPtnumattrib, value);
269  break;
270 
271  }
272  }
273 
274  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
275  { doSetParmValue(idx, instance, value); }
276  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
277  { doSetParmValue(idx, instance, value); }
278  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
279  { doSetParmValue(idx, instance, value); }
280  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
281  { doSetParmValue(idx, instance, value); }
282  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
283  { doSetParmValue(idx, instance, value); }
284  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
285  { doSetParmValue(idx, instance, value); }
286  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
287  { doSetParmValue(idx, instance, value); }
288  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
289  { doSetParmValue(idx, instance, value); }
290  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
291  { doSetParmValue(idx, instance, value); }
292  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
293  { doSetParmValue(idx, instance, value); }
294  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
295  { doSetParmValue(idx, instance, value); }
296 
297  exint getNestNumParms(TempIndex idx) const override
298  {
299  if (idx.size() == 0)
300  return 14;
301  switch (idx[0])
302  {
303 
304  }
305  // Invalid
306  return 0;
307  }
308 
309  const char *getNestParmName(TempIndex fieldnum) const override
310  {
311  if (fieldnum.size() < 1)
312  return 0;
313  switch (fieldnum[0])
314  {
315  case 0:
316  return "agroup";
317  case 1:
318  return "bgroup";
319  case 2:
320  return "useproxtol";
321  case 3:
322  return "proxtol";
323  case 4:
324  return "detectverts";
325  case 5:
326  return "outputsegs";
327  case 6:
328  return "useinputnumattrib";
329  case 7:
330  return "inputnumattrib";
331  case 8:
332  return "useprimnumattrib";
333  case 9:
334  return "primnumattrib";
335  case 10:
336  return "useprimuvwattrib";
337  case 11:
338  return "primuvwattrib";
339  case 12:
340  return "useptnumattrib";
341  case 13:
342  return "ptnumattrib";
343 
344  }
345  return 0;
346  }
347 
348  ParmType getNestParmType(TempIndex fieldnum) const override
349  {
350  if (fieldnum.size() < 1)
351  return PARM_UNSUPPORTED;
352  switch (fieldnum[0])
353  {
354  case 0:
355  return PARM_STRING;
356  case 1:
357  return PARM_STRING;
358  case 2:
359  return PARM_INTEGER;
360  case 3:
361  return PARM_FLOAT;
362  case 4:
363  return PARM_INTEGER;
364  case 5:
365  return PARM_INTEGER;
366  case 6:
367  return PARM_INTEGER;
368  case 7:
369  return PARM_STRING;
370  case 8:
371  return PARM_INTEGER;
372  case 9:
373  return PARM_STRING;
374  case 10:
375  return PARM_INTEGER;
376  case 11:
377  return PARM_STRING;
378  case 12:
379  return PARM_INTEGER;
380  case 13:
381  return PARM_STRING;
382 
383  }
384  return PARM_UNSUPPORTED;
385  }
386 
387  // Boiler plate to load individual types.
388  static void loadData(UT_IStream &is, int64 &v)
389  { is.bread(&v, 1); }
390  static void loadData(UT_IStream &is, bool &v)
391  { int64 iv; is.bread(&iv, 1); v = iv; }
392  static void loadData(UT_IStream &is, fpreal64 &v)
393  { is.bread<fpreal64>(&v, 1); }
394  static void loadData(UT_IStream &is, UT_Vector2D &v)
395  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
396  static void loadData(UT_IStream &is, UT_Vector3D &v)
397  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
398  is.bread<fpreal64>(&v.z(), 1); }
399  static void loadData(UT_IStream &is, UT_Vector4D &v)
400  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
401  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
402  static void loadData(UT_IStream &is, UT_Matrix2D &v)
403  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
404  static void loadData(UT_IStream &is, UT_Matrix3D &v)
405  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
406  static void loadData(UT_IStream &is, UT_Matrix4D &v)
407  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
408  static void loadData(UT_IStream &is, UT_Vector2I &v)
409  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
410  static void loadData(UT_IStream &is, UT_Vector3I &v)
411  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
412  is.bread<int64>(&v.z(), 1); }
413  static void loadData(UT_IStream &is, UT_Vector4I &v)
414  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
415  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
417  { is.bread(v); }
419  { UT_StringHolder rampdata;
420  loadData(is, rampdata);
421  if (rampdata.isstring())
422  {
423  v.reset(new UT_Ramp());
424  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
425  v->load(istr);
426  }
427  else v.reset();
428  }
431  loadData(is, data);
432  if (data.isstring())
433  {
434  // Find the data type.
435  const char *colon = UT_StringWrap(data).findChar(':');
436  if (colon)
437  {
438  int typelen = colon - data.buffer();
440  type.strncpy(data.buffer(), typelen);
441  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
442 
443  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
444  }
445  }
446  else v.reset();
447  }
448 
449  static void saveData(std::ostream &os, int64 v)
450  { UTwrite(os, &v); }
451  static void saveData(std::ostream &os, bool v)
452  { int64 iv = v; UTwrite(os, &iv); }
453  static void saveData(std::ostream &os, fpreal64 v)
454  { UTwrite<fpreal64>(os, &v); }
455  static void saveData(std::ostream &os, UT_Vector2D v)
456  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
457  static void saveData(std::ostream &os, UT_Vector3D v)
458  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
459  UTwrite<fpreal64>(os, &v.z()); }
460  static void saveData(std::ostream &os, UT_Vector4D v)
461  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
462  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
463  static void saveData(std::ostream &os, UT_Matrix2D v)
465  static void saveData(std::ostream &os, UT_Matrix3D v)
467  static void saveData(std::ostream &os, UT_Matrix4D v)
469  static void saveData(std::ostream &os, UT_StringHolder s)
470  { UT_StringWrap(s).saveBinary(os); }
471  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
473  UT_OStringStream ostr;
474  if (s) s->save(ostr);
475  result = ostr.str();
476  saveData(os, result);
477  }
478  static void saveData(std::ostream &os, PRM_DataItemHandle s)
480  UT_OStringStream ostr;
481  if (s)
482  {
483  ostr << s->getDataTypeToken();
484  ostr << ":";
485  s->saveBinary(ostr);
486  }
487  result = ostr.str();
488  saveData(os, result);
489  }
490 
491 
492  void save(std::ostream &os) const
493  {
494  int32 v = version();
495  UTwrite(os, &v);
496  saveData(os, myAgroup);
497  saveData(os, myBgroup);
498  saveData(os, myUseproxtol);
499  saveData(os, myProxtol);
500  saveData(os, myDetectverts);
501  saveData(os, myOutputsegs);
502  saveData(os, myUseinputnumattrib);
503  saveData(os, myInputnumattrib);
504  saveData(os, myUseprimnumattrib);
505  saveData(os, myPrimnumattrib);
506  saveData(os, myUseprimuvwattrib);
507  saveData(os, myPrimuvwattrib);
508  saveData(os, myUseptnumattrib);
509  saveData(os, myPtnumattrib);
510 
511  }
512 
513  bool load(UT_IStream &is)
514  {
515  int32 v;
516  is.bread(&v, 1);
517  if (version() != v)
518  {
519  // Fail incompatible versions
520  return false;
521  }
522  loadData(is, myAgroup);
523  loadData(is, myBgroup);
524  loadData(is, myUseproxtol);
525  loadData(is, myProxtol);
526  loadData(is, myDetectverts);
527  loadData(is, myOutputsegs);
528  loadData(is, myUseinputnumattrib);
529  loadData(is, myInputnumattrib);
530  loadData(is, myUseprimnumattrib);
531  loadData(is, myPrimnumattrib);
532  loadData(is, myUseprimuvwattrib);
533  loadData(is, myPrimuvwattrib);
534  loadData(is, myUseptnumattrib);
535  loadData(is, myPtnumattrib);
536 
537  return true;
538  }
539 
540  const UT_StringHolder & getAgroup() const { return myAgroup; }
541  void setAgroup(const UT_StringHolder & val) { myAgroup = val; }
543  {
544  SOP_Node *thissop = cookparms.getNode();
545  if (!thissop) return getAgroup();
547  OP_Utils::evalOpParm(result, thissop, "agroup", cookparms.getCookTime(), 0);
548  return result;
549  }
550  const UT_StringHolder & getBgroup() const { return myBgroup; }
551  void setBgroup(const UT_StringHolder & val) { myBgroup = val; }
553  {
554  SOP_Node *thissop = cookparms.getNode();
555  if (!thissop) return getBgroup();
557  OP_Utils::evalOpParm(result, thissop, "bgroup", cookparms.getCookTime(), 0);
558  return result;
559  }
560  bool getUseproxtol() const { return myUseproxtol; }
561  void setUseproxtol(bool val) { myUseproxtol = val; }
562  bool opUseproxtol(const SOP_NodeVerb::CookParms &cookparms) const
563  {
564  SOP_Node *thissop = cookparms.getNode();
565  if (!thissop) return getUseproxtol();
566  bool result;
567  OP_Utils::evalOpParm(result, thissop, "useproxtol", cookparms.getCookTime(), 0);
568  return result;
569  }
570  fpreal64 getProxtol() const { return myProxtol; }
571  void setProxtol(fpreal64 val) { myProxtol = val; }
573  {
574  SOP_Node *thissop = cookparms.getNode();
575  if (!thissop) return getProxtol();
577  OP_Utils::evalOpParm(result, thissop, "proxtol", cookparms.getCookTime(), 0);
578  return result;
579  }
580  bool getDetectverts() const { return myDetectverts; }
581  void setDetectverts(bool val) { myDetectverts = val; }
582  bool opDetectverts(const SOP_NodeVerb::CookParms &cookparms) const
583  {
584  SOP_Node *thissop = cookparms.getNode();
585  if (!thissop) return getDetectverts();
586  bool result;
587  OP_Utils::evalOpParm(result, thissop, "detectverts", cookparms.getCookTime(), 0);
588  return result;
589  }
590  bool getOutputsegs() const { return myOutputsegs; }
591  void setOutputsegs(bool val) { myOutputsegs = val; }
592  bool opOutputsegs(const SOP_NodeVerb::CookParms &cookparms) const
593  {
594  SOP_Node *thissop = cookparms.getNode();
595  if (!thissop) return getOutputsegs();
596  bool result;
597  OP_Utils::evalOpParm(result, thissop, "outputsegs", cookparms.getCookTime(), 0);
598  return result;
599  }
600  bool getUseinputnumattrib() const { return myUseinputnumattrib; }
601  void setUseinputnumattrib(bool val) { myUseinputnumattrib = val; }
602  bool opUseinputnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
603  {
604  SOP_Node *thissop = cookparms.getNode();
605  if (!thissop) return getUseinputnumattrib();
606  bool result;
607  OP_Utils::evalOpParm(result, thissop, "useinputnumattrib", cookparms.getCookTime(), 0);
608  return result;
609  }
610  const UT_StringHolder & getInputnumattrib() const { return myInputnumattrib; }
611  void setInputnumattrib(const UT_StringHolder & val) { myInputnumattrib = val; }
613  {
614  SOP_Node *thissop = cookparms.getNode();
615  if (!thissop) return getInputnumattrib();
617  OP_Utils::evalOpParm(result, thissop, "inputnumattrib", cookparms.getCookTime(), 0);
618  return result;
619  }
620  bool getUseprimnumattrib() const { return myUseprimnumattrib; }
621  void setUseprimnumattrib(bool val) { myUseprimnumattrib = val; }
622  bool opUseprimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
623  {
624  SOP_Node *thissop = cookparms.getNode();
625  if (!thissop) return getUseprimnumattrib();
626  bool result;
627  OP_Utils::evalOpParm(result, thissop, "useprimnumattrib", cookparms.getCookTime(), 0);
628  return result;
629  }
630  const UT_StringHolder & getPrimnumattrib() const { return myPrimnumattrib; }
631  void setPrimnumattrib(const UT_StringHolder & val) { myPrimnumattrib = val; }
633  {
634  SOP_Node *thissop = cookparms.getNode();
635  if (!thissop) return getPrimnumattrib();
637  OP_Utils::evalOpParm(result, thissop, "primnumattrib", cookparms.getCookTime(), 0);
638  return result;
639  }
640  bool getUseprimuvwattrib() const { return myUseprimuvwattrib; }
641  void setUseprimuvwattrib(bool val) { myUseprimuvwattrib = val; }
642  bool opUseprimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
643  {
644  SOP_Node *thissop = cookparms.getNode();
645  if (!thissop) return getUseprimuvwattrib();
646  bool result;
647  OP_Utils::evalOpParm(result, thissop, "useprimuvwattrib", cookparms.getCookTime(), 0);
648  return result;
649  }
650  const UT_StringHolder & getPrimuvwattrib() const { return myPrimuvwattrib; }
651  void setPrimuvwattrib(const UT_StringHolder & val) { myPrimuvwattrib = val; }
653  {
654  SOP_Node *thissop = cookparms.getNode();
655  if (!thissop) return getPrimuvwattrib();
657  OP_Utils::evalOpParm(result, thissop, "primuvwattrib", cookparms.getCookTime(), 0);
658  return result;
659  }
660  bool getUseptnumattrib() const { return myUseptnumattrib; }
661  void setUseptnumattrib(bool val) { myUseptnumattrib = val; }
662  bool opUseptnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
663  {
664  SOP_Node *thissop = cookparms.getNode();
665  if (!thissop) return getUseptnumattrib();
666  bool result;
667  OP_Utils::evalOpParm(result, thissop, "useptnumattrib", cookparms.getCookTime(), 0);
668  return result;
669  }
670  const UT_StringHolder & getPtnumattrib() const { return myPtnumattrib; }
671  void setPtnumattrib(const UT_StringHolder & val) { myPtnumattrib = val; }
673  {
674  SOP_Node *thissop = cookparms.getNode();
675  if (!thissop) return getPtnumattrib();
677  OP_Utils::evalOpParm(result, thissop, "ptnumattrib", cookparms.getCookTime(), 0);
678  return result;
679  }
680 
681 private:
682  UT_StringHolder myAgroup;
683  UT_StringHolder myBgroup;
684  bool myUseproxtol;
685  fpreal64 myProxtol;
686  bool myDetectverts;
687  bool myOutputsegs;
688  bool myUseinputnumattrib;
689  UT_StringHolder myInputnumattrib;
690  bool myUseprimnumattrib;
691  UT_StringHolder myPrimnumattrib;
692  bool myUseprimuvwattrib;
693  UT_StringHolder myPrimuvwattrib;
694  bool myUseptnumattrib;
695  UT_StringHolder myPtnumattrib;
696 
697 };
static void saveData(std::ostream &os, UT_Matrix2D v)
GLdouble s
Definition: glew.h:1390
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void loadData(UT_IStream &is, UT_Vector3I &v)
exint getNestNumParms(TempIndex idx) const override
bool opUseproxtol(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
UT_StringHolder opPrimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setPtnumattrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void saveData(std::ostream &os, UT_Vector4D v)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
fpreal getTime() const
Definition: OP_Context.h:60
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
GLuint const GLfloat * val
Definition: glew.h:2794
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
fpreal64 opProxtol(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
const GLdouble * v
Definition: glew.h:1391
ParmType getNestParmType(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void loadData(UT_IStream &is, UT_Vector2D &v)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool opUseprimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
double fpreal64
Definition: SYS_Types.h:201
const UT_StringHolder & getPrimuvwattrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setPrimnumattrib(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool opUseprimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAgroup() const
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
exint length() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
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
void copyFrom(const SOP_NodeParms *src) override
static void loadData(UT_IStream &is, int64 &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
static void loadData(UT_IStream &is, UT_Matrix4D &v)
const UT_StringHolder & getPrimnumattrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const GLfloat * c
Definition: glew.h:16296
const char * getNestParmName(TempIndex fieldnum) const override
UT_StringHolder opInputnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
long long int64
Definition: SYS_Types.h:116
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
const UT_StringHolder & getBgroup() const
bool operator!=(const SOP_IntersectionAnalysisParms &src) const
static void saveData(std::ostream &os, UT_Vector3D v)
static void loadData(UT_IStream &is, bool &v)
static void saveData(std::ostream &os, UT_StringHolder s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static void loadData(UT_IStream &is, fpreal64 &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
UT_StringHolder opAgroup(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
static void saveData(std::ostream &os, fpreal64 v)
UT_StringHolder opPtnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setBgroup(const UT_StringHolder &val)
fpreal64 fpreal
Definition: SYS_Types.h:277
static void saveData(std::ostream &os, int64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
UT_StringHolder opPrimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
bool opUseptnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
static void saveData(std::ostream &os, UT_Vector2D v)
#define SOP_API
Definition: SOP_API.h:10
bool opUseinputnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
GLuint64EXT * result
Definition: glew.h:14007
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
const char * findChar(int c) const
Definition: UT_String.h:1367
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
static void saveData(std::ostream &os, UT_Matrix4D v)
void setInputnumattrib(const UT_StringHolder &val)
void setPrimuvwattrib(const UT_StringHolder &val)
const UT_StringHolder & getPtnumattrib() const
static void saveData(std::ostream &os, UT_Matrix3D v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GLsizei const GLfloat * value
Definition: glew.h:1849
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder opBgroup(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
bool opDetectverts(const SOP_NodeVerb::CookParms &cookparms) const
void setAgroup(const UT_StringHolder &val)
SYS_FORCE_INLINE bool isstring() const
const UT_StringHolder & getInputnumattrib() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
type
Definition: core.h:528
bool operator==(const SOP_IntersectionAnalysisParms &src) const
static void saveData(std::ostream &os, bool v)
bool opOutputsegs(const SOP_NodeVerb::CookParms &cookparms) const