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