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