HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_AttribVopParms.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 <OP/OP_Utils.h>
8 #include <PRM/PRM_Parm.h>
9 #include <UT/UT_IStream.h>
10 #include <UT/UT_NTStreamUtil.h>
11 #include <UT/UT_Ramp.h>
12 #include <UT/UT_SharedPtr.h>
13 #include <UT/UT_StringHolder.h>
14 #include <UT/UT_StringStream.h>
15 #include <UT/UT_VectorTypes.h>
16 #include <SYS/SYS_Types.h>
17 
18 using namespace UT::Literal;
19 
20 class DEP_MicroNode;
21 
23 {
24 public:
25  static int version() { return 1; }
26  struct Bindings
27  {
30 
31 
33  {
34  bindname = ""_sh;
35  bindparm = ""_sh;
36 
37  }
38 
39  bool operator==(const Bindings &src) const
40  {
41  if (bindname != src.bindname) return false;
42  if (bindparm != src.bindparm) return false;
43 
44  return true;
45  }
46  bool operator!=(const Bindings &src) const
47  {
48  return !operator==(src);
49  }
50 
51  };
52 
54  {
56 
57  buf.strcat("[ ");
58  for (int i = 0; i < list.entries(); i++)
59  {
60  if (i)
61  buf.strcat(", ");
62  buf.strcat("( ");
63  buf.append("");
64  { UT_String tmp; tmp = UT_StringWrap(list(i).bindname).makeQuotedString('"'); buf.strcat(tmp); }
65  buf.append(", ");
66  { UT_String tmp; tmp = UT_StringWrap(list(i).bindparm).makeQuotedString('"'); buf.strcat(tmp); }
67 
68  buf.strcat(" )");
69  }
70  buf.strcat(" ]");
71 
72  UT_StringHolder result = buf;
73  return result;
74  }
76  {
79 
80 
82  {
83  bindgroupname = ""_sh;
84  bindgroupparm = ""_sh;
85 
86  }
87 
88  bool operator==(const GroupBindings &src) const
89  {
90  if (bindgroupname != src.bindgroupname) return false;
91  if (bindgroupparm != src.bindgroupparm) return false;
92 
93  return true;
94  }
95  bool operator!=(const GroupBindings &src) const
96  {
97  return !operator==(src);
98  }
99 
100  };
101 
103  {
105 
106  buf.strcat("[ ");
107  for (int i = 0; i < list.entries(); i++)
108  {
109  if (i)
110  buf.strcat(", ");
111  buf.strcat("( ");
112  buf.append("");
113  { UT_String tmp; tmp = UT_StringWrap(list(i).bindgroupname).makeQuotedString('"'); buf.strcat(tmp); }
114  buf.append(", ");
115  { UT_String tmp; tmp = UT_StringWrap(list(i).bindgroupparm).makeQuotedString('"'); buf.strcat(tmp); }
116 
117  buf.strcat(" )");
118  }
119  buf.strcat(" ]");
120 
121  UT_StringHolder result = buf;
122  return result;
123  }
124 
126  {
127  myVexCWD = ""_sh;
128  myVexOutputMask = "*"_sh;
129  myAutobind = true;
130  myGroupAutobind = true;
131  myBindClass = 2;
132  myBindGroup = ""_sh;
133  myBindGroupType = 0;
134  myMultiThread = true;
135  myUpdateNormals = false;
136  myNumCount = 10;
137  myThreadJobSize = 1024;
138  myMatchAttrib = "id"_sh;
139  mySelectionGroup = ""_sh;
140  myCookInPlace = false;
141 
142  }
143 
144  explicit SOP_AttribVopParms(const SOP_AttribVopParms &) = default;
145 
147 
148  bool operator==(const SOP_AttribVopParms &src) const
149  {
150  if (myVexCWD != src.myVexCWD) return false;
151  if (myVexOutputMask != src.myVexOutputMask) return false;
152  if (myBindings != src.myBindings) return false;
153  if (myGroupBindings != src.myGroupBindings) return false;
154  if (myAutobind != src.myAutobind) return false;
155  if (myGroupAutobind != src.myGroupAutobind) return false;
156  if (myBindClass != src.myBindClass) return false;
157  if (myBindGroup != src.myBindGroup) return false;
158  if (myBindGroupType != src.myBindGroupType) return false;
159  if (myMultiThread != src.myMultiThread) return false;
160  if (myUpdateNormals != src.myUpdateNormals) return false;
161  if (myNumCount != src.myNumCount) return false;
162  if (myThreadJobSize != src.myThreadJobSize) return false;
163  if (myMatchAttrib != src.myMatchAttrib) return false;
164  if (mySelectionGroup != src.mySelectionGroup) return false;
165  if (myCookInPlace != src.myCookInPlace) return false;
166 
167  return true;
168  }
169  bool operator!=(const SOP_AttribVopParms &src) const
170  {
171  return !operator==(src);
172  }
173 
174 
175 
176  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
177  {
178  if (true)
179  OP_Utils::evalOpParm(myVexCWD, node, "vex_cwdpath", time, 0);
180  else myVexCWD = ""_sh;
181  if (true)
182  OP_Utils::evalOpParm(myVexOutputMask, node, "vex_outputmask", time, 0);
183  else myVexOutputMask = "*"_sh;
184  if (true)
185  {
186  int64 length;
187  OP_Utils::evalOpParm(length, node, "bindings", time, 0);
188  myBindings.entries(length);
189  for (exint i = 0; i < length; i++)
190  {
191  int parmidx = i+1;
192  auto && _curentry = myBindings(i);
193  (void) _curentry;
194  if (true)
195  OP_Utils::evalOpParmInst(myBindings(i).bindname, node, "bindname#", &parmidx, time, 0);
196  else myBindings(i).bindname = ""_sh;
197  if (true)
198  OP_Utils::evalOpParmInst(myBindings(i).bindparm, node, "bindparm#", &parmidx, time, 0);
199  else myBindings(i).bindparm = ""_sh;
200 
201  }
202  }
203  else
204  myBindings.clear();
205  if (true)
206  {
207  int64 length;
208  OP_Utils::evalOpParm(length, node, "groupbindings", time, 0);
209  myGroupBindings.entries(length);
210  for (exint i = 0; i < length; i++)
211  {
212  int parmidx = i+1;
213  auto && _curentry = myGroupBindings(i);
214  (void) _curentry;
215  if (true)
216  OP_Utils::evalOpParmInst(myGroupBindings(i).bindgroupname, node, "bindgroupname#", &parmidx, time, 0);
217  else myGroupBindings(i).bindgroupname = ""_sh;
218  if (true)
219  OP_Utils::evalOpParmInst(myGroupBindings(i).bindgroupparm, node, "bindgroupparm#", &parmidx, time, 0);
220  else myGroupBindings(i).bindgroupparm = ""_sh;
221 
222  }
223  }
224  else
225  myGroupBindings.clear();
226  if (true)
227  OP_Utils::evalOpParm(myAutobind, node, "autobind", time, 0);
228  else myAutobind = true;
229  if (true)
230  OP_Utils::evalOpParm(myGroupAutobind, node, "groupautobind", time, 0);
231  else myGroupAutobind = true;
232  if (true)
233  OP_Utils::evalOpParm(myBindClass, node, "bindclass", time, 0);
234  else myBindClass = 2;
235  if (true)
236  OP_Utils::evalOpParm(myBindGroup, node, "bindgroup", time, 0);
237  else myBindGroup = ""_sh;
238  if (true)
239  OP_Utils::evalOpParm(myBindGroupType, node, "bindgrouptype", time, 0);
240  else myBindGroupType = 0;
241  if (true)
242  OP_Utils::evalOpParm(myMultiThread, node, "vex_multithread", time, 0);
243  else myMultiThread = true;
244  if (true)
245  OP_Utils::evalOpParm(myUpdateNormals, node, "vex_updatenmls", time, 0);
246  else myUpdateNormals = false;
247  if (true && ( (getBindClass()==4) ) )
248  OP_Utils::evalOpParm(myNumCount, node, "vex_numcount", time, 0);
249  else myNumCount = 10;
250  if (true && ( (getBindClass()==4) ) )
251  OP_Utils::evalOpParm(myThreadJobSize, node, "vex_threadjobsize", time, 0);
252  else myThreadJobSize = 1024;
253  if (true)
254  OP_Utils::evalOpParm(myMatchAttrib, node, "vex_matchattrib", time, 0);
255  else myMatchAttrib = "id"_sh;
256  if (true)
257  OP_Utils::evalOpParm(mySelectionGroup, node, "vex_selectiongroup", time, 0);
258  else mySelectionGroup = ""_sh;
259  if (true)
260  OP_Utils::evalOpParm(myCookInPlace, node, "vex_inplace", time, 0);
261  else myCookInPlace = false;
262 
263  }
264 
265 
266 
267  // Boiler plate to load individual types.
268  static void loadData(UT_IStream &is, int64 &v)
269  { is.bread(&v, 1); }
270  static void loadData(UT_IStream &is, bool &v)
271  { int64 iv; is.bread(&iv, 1); v = iv; }
272  static void loadData(UT_IStream &is, fpreal64 &v)
273  { is.bread<fpreal64>(&v, 1); }
274  static void loadData(UT_IStream &is, UT_Vector2D &v)
275  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
276  static void loadData(UT_IStream &is, UT_Vector3D &v)
277  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
278  is.bread<fpreal64>(&v.z(), 1); }
279  static void loadData(UT_IStream &is, UT_Vector4D &v)
280  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
281  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
282  static void loadData(UT_IStream &is, UT_Matrix2D &v)
283  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
284  static void loadData(UT_IStream &is, UT_Matrix3D &v)
285  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
286  static void loadData(UT_IStream &is, UT_Matrix4D &v)
287  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
288  static void loadData(UT_IStream &is, UT_Vector2I &v)
289  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
290  static void loadData(UT_IStream &is, UT_Vector3I &v)
291  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
292  is.bread<int64>(&v.z(), 1); }
293  static void loadData(UT_IStream &is, UT_Vector4I &v)
294  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
295  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
297  { is.bread(v); }
299  { UT_StringHolder rampdata;
300  loadData(is, rampdata);
301  if (rampdata.isstring())
302  {
303  v.reset(new UT_Ramp());
304  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
305  v->load(istr);
306  }
307  else v.reset();
308  }
311  loadData(is, data);
312  if (data.isstring())
313  {
314  // Find the data type.
315  char *colon = UT_StringWrap(data).findChar(':');
316  if (colon)
317  {
318  int typelen = colon - data.buffer();
320  type.strncpy(data.buffer(), typelen);
321  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
322 
323  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
324  }
325  }
326  else v.reset();
327  }
328 
329  static void saveData(std::ostream &os, int64 v)
330  { UTwrite(os, &v); }
331  static void saveData(std::ostream &os, bool v)
332  { int64 iv = v; UTwrite(os, &iv); }
333  static void saveData(std::ostream &os, fpreal64 v)
334  { UTwrite<fpreal64>(os, &v); }
335  static void saveData(std::ostream &os, UT_Vector2D v)
336  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
337  static void saveData(std::ostream &os, UT_Vector3D v)
338  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
339  UTwrite<fpreal64>(os, &v.z()); }
340  static void saveData(std::ostream &os, UT_Vector4D v)
341  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
342  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
343  static void saveData(std::ostream &os, UT_Matrix2D v)
345  static void saveData(std::ostream &os, UT_Matrix3D v)
347  static void saveData(std::ostream &os, UT_Matrix4D v)
349  static void saveData(std::ostream &os, UT_StringHolder s)
350  { UT_StringWrap(s).saveBinary(os); }
351  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
352  { UT_StringHolder result;
353  UT_OStringStream ostr;
354  if (s) s->save(ostr);
355  result = ostr.str();
356  saveData(os, result);
357  }
358  static void saveData(std::ostream &os, PRM_DataItemHandle s)
359  { UT_StringHolder result;
360  UT_OStringStream ostr;
361  if (s)
362  {
363  ostr << s->getDataTypeToken();
364  ostr << ":";
365  s->saveBinary(ostr);
366  }
367  result = ostr.str();
368  saveData(os, result);
369  }
370 
371 
372  void save(std::ostream &os) const
373  {
374  int32 v = version();
375  UTwrite(os, &v);
376  saveData(os, myVexCWD);
377  saveData(os, myVexOutputMask);
378  {
379  int64 length = myBindings.entries();
380  UTwrite(os, &length);
381  for (exint i = 0; i < length; i++)
382  {
383  saveData(os, myBindings(i).bindname);
384  saveData(os, myBindings(i).bindparm);
385 
386  }
387  }
388  {
389  int64 length = myGroupBindings.entries();
390  UTwrite(os, &length);
391  for (exint i = 0; i < length; i++)
392  {
393  saveData(os, myGroupBindings(i).bindgroupname);
394  saveData(os, myGroupBindings(i).bindgroupparm);
395 
396  }
397  }
398  saveData(os, myAutobind);
399  saveData(os, myGroupAutobind);
400  saveData(os, myBindClass);
401  saveData(os, myBindGroup);
402  saveData(os, myBindGroupType);
403  saveData(os, myMultiThread);
404  saveData(os, myUpdateNormals);
405  saveData(os, myNumCount);
406  saveData(os, myThreadJobSize);
407  saveData(os, myMatchAttrib);
408  saveData(os, mySelectionGroup);
409  saveData(os, myCookInPlace);
410 
411  }
412 
413  bool load(UT_IStream &is)
414  {
415  int32 v;
416  is.bread(&v, 1);
417  if (version() != v)
418  {
419  // Fail incompatible versions
420  return false;
421  }
422  loadData(is, myVexCWD);
423  loadData(is, myVexOutputMask);
424  {
425  int64 length;
426  is.read(&length, 1);
427  myBindings.entries(length);
428  for (exint i = 0; i < length; i++)
429  {
430  loadData(is, myBindings(i).bindname);
431  loadData(is, myBindings(i).bindparm);
432 
433  }
434  }
435  {
436  int64 length;
437  is.read(&length, 1);
438  myGroupBindings.entries(length);
439  for (exint i = 0; i < length; i++)
440  {
441  loadData(is, myGroupBindings(i).bindgroupname);
442  loadData(is, myGroupBindings(i).bindgroupparm);
443 
444  }
445  }
446  loadData(is, myAutobind);
447  loadData(is, myGroupAutobind);
448  loadData(is, myBindClass);
449  loadData(is, myBindGroup);
450  loadData(is, myBindGroupType);
451  loadData(is, myMultiThread);
452  loadData(is, myUpdateNormals);
453  loadData(is, myNumCount);
454  loadData(is, myThreadJobSize);
455  loadData(is, myMatchAttrib);
456  loadData(is, mySelectionGroup);
457  loadData(is, myCookInPlace);
458 
459  return true;
460  }
461 
462  const UT_StringHolder & getVexCWD() const { return myVexCWD; }
463  void setVexCWD(const UT_StringHolder & val) { myVexCWD = val; }
465  {
466  SOP_Node *thissop = cookparms.getNode();
467  if (!thissop) return getVexCWD();
468  UT_StringHolder result;
469  OP_Utils::evalOpParm(result, thissop, "vex_cwdpath", cookparms.getCookTime(), 0);
470  return result;
471  }
472  const UT_StringHolder & getVexOutputMask() const { return myVexOutputMask; }
473  void setVexOutputMask(const UT_StringHolder & val) { myVexOutputMask = val; }
475  {
476  SOP_Node *thissop = cookparms.getNode();
477  if (!thissop) return getVexOutputMask();
478  UT_StringHolder result;
479  OP_Utils::evalOpParm(result, thissop, "vex_outputmask", cookparms.getCookTime(), 0);
480  return result;
481  }
482  const UT_Array<Bindings> &getBindings() const { return myBindings; }
483  void setBindings(const UT_Array<Bindings> &val) { myBindings = val; }
484  exint opBindings(const SOP_NodeVerb::CookParms &cookparms) const
485  {
486  SOP_Node *thissop = cookparms.getNode();
487  if (!thissop) return getBindings().entries();
488  exint result;
489  OP_Utils::evalOpParm(result, thissop, "bindings", cookparms.getCookTime(), 0);
490  return result;
491  }
493  {
494  SOP_Node *thissop = cookparms.getNode();
495  if (!thissop) return (myBindings(_idx).bindname);
496  int _parmidx = _idx + 1;
497  UT_StringHolder result;
498  OP_Utils::evalOpParmInst(result, thissop, "bindname#", &_parmidx, cookparms.getCookTime(), 0);
499  return (result);
500  }
502  {
503  SOP_Node *thissop = cookparms.getNode();
504  if (!thissop) return (myBindings(_idx).bindparm);
505  int _parmidx = _idx + 1;
506  UT_StringHolder result;
507  OP_Utils::evalOpParmInst(result, thissop, "bindparm#", &_parmidx, cookparms.getCookTime(), 0);
508  return (result);
509  }
510 
511  const UT_Array<GroupBindings> &getGroupBindings() const { return myGroupBindings; }
512  void setGroupBindings(const UT_Array<GroupBindings> &val) { myGroupBindings = val; }
514  {
515  SOP_Node *thissop = cookparms.getNode();
516  if (!thissop) return getGroupBindings().entries();
517  exint result;
518  OP_Utils::evalOpParm(result, thissop, "groupbindings", cookparms.getCookTime(), 0);
519  return result;
520  }
522  {
523  SOP_Node *thissop = cookparms.getNode();
524  if (!thissop) return (myGroupBindings(_idx).bindgroupname);
525  int _parmidx = _idx + 1;
526  UT_StringHolder result;
527  OP_Utils::evalOpParmInst(result, thissop, "bindgroupname#", &_parmidx, cookparms.getCookTime(), 0);
528  return (result);
529  }
531  {
532  SOP_Node *thissop = cookparms.getNode();
533  if (!thissop) return (myGroupBindings(_idx).bindgroupparm);
534  int _parmidx = _idx + 1;
535  UT_StringHolder result;
536  OP_Utils::evalOpParmInst(result, thissop, "bindgroupparm#", &_parmidx, cookparms.getCookTime(), 0);
537  return (result);
538  }
539 
540  bool getAutobind() const { return myAutobind; }
541  void setAutobind(bool val) { myAutobind = val; }
542  bool opAutobind(const SOP_NodeVerb::CookParms &cookparms) const
543  {
544  SOP_Node *thissop = cookparms.getNode();
545  if (!thissop) return getAutobind();
546  bool result;
547  OP_Utils::evalOpParm(result, thissop, "autobind", cookparms.getCookTime(), 0);
548  return result;
549  }
550  bool getGroupAutobind() const { return myGroupAutobind; }
551  void setGroupAutobind(bool val) { myGroupAutobind = val; }
552  bool opGroupAutobind(const SOP_NodeVerb::CookParms &cookparms) const
553  {
554  SOP_Node *thissop = cookparms.getNode();
555  if (!thissop) return getGroupAutobind();
556  bool result;
557  OP_Utils::evalOpParm(result, thissop, "groupautobind", cookparms.getCookTime(), 0);
558  return result;
559  }
560  int64 getBindClass() const { return myBindClass; }
561  void setBindClass(int64 val) { myBindClass = val; }
562  int64 opBindClass(const SOP_NodeVerb::CookParms &cookparms) const
563  {
564  SOP_Node *thissop = cookparms.getNode();
565  if (!thissop) return getBindClass();
566  int64 result;
567  OP_Utils::evalOpParm(result, thissop, "bindclass", cookparms.getCookTime(), 0);
568  return result;
569  }
570  const UT_StringHolder & getBindGroup() const { return myBindGroup; }
571  void setBindGroup(const UT_StringHolder & val) { myBindGroup = val; }
573  {
574  SOP_Node *thissop = cookparms.getNode();
575  if (!thissop) return getBindGroup();
576  UT_StringHolder result;
577  OP_Utils::evalOpParm(result, thissop, "bindgroup", cookparms.getCookTime(), 0);
578  return result;
579  }
580  int64 getBindGroupType() const { return myBindGroupType; }
581  void setBindGroupType(int64 val) { myBindGroupType = val; }
583  {
584  SOP_Node *thissop = cookparms.getNode();
585  if (!thissop) return getBindGroupType();
586  int64 result;
587  OP_Utils::evalOpParm(result, thissop, "bindgrouptype", cookparms.getCookTime(), 0);
588  return result;
589  }
590  bool getMultiThread() const { return myMultiThread; }
591  void setMultiThread(bool val) { myMultiThread = val; }
592  bool opMultiThread(const SOP_NodeVerb::CookParms &cookparms) const
593  {
594  SOP_Node *thissop = cookparms.getNode();
595  if (!thissop) return getMultiThread();
596  bool result;
597  OP_Utils::evalOpParm(result, thissop, "vex_multithread", cookparms.getCookTime(), 0);
598  return result;
599  }
600  bool getUpdateNormals() const { return myUpdateNormals; }
601  void setUpdateNormals(bool val) { myUpdateNormals = val; }
602  bool opUpdateNormals(const SOP_NodeVerb::CookParms &cookparms) const
603  {
604  SOP_Node *thissop = cookparms.getNode();
605  if (!thissop) return getUpdateNormals();
606  bool result;
607  OP_Utils::evalOpParm(result, thissop, "vex_updatenmls", cookparms.getCookTime(), 0);
608  return result;
609  }
610  int64 getNumCount() const { return myNumCount; }
611  void setNumCount(int64 val) { myNumCount = val; }
612  int64 opNumCount(const SOP_NodeVerb::CookParms &cookparms) const
613  {
614  SOP_Node *thissop = cookparms.getNode();
615  if (!thissop) return getNumCount();
616  int64 result;
617  OP_Utils::evalOpParm(result, thissop, "vex_numcount", cookparms.getCookTime(), 0);
618  return result;
619  }
620  int64 getThreadJobSize() const { return myThreadJobSize; }
621  void setThreadJobSize(int64 val) { myThreadJobSize = val; }
623  {
624  SOP_Node *thissop = cookparms.getNode();
625  if (!thissop) return getThreadJobSize();
626  int64 result;
627  OP_Utils::evalOpParm(result, thissop, "vex_threadjobsize", cookparms.getCookTime(), 0);
628  return result;
629  }
630  const UT_StringHolder & getMatchAttrib() const { return myMatchAttrib; }
631  void setMatchAttrib(const UT_StringHolder & val) { myMatchAttrib = val; }
633  {
634  SOP_Node *thissop = cookparms.getNode();
635  if (!thissop) return getMatchAttrib();
636  UT_StringHolder result;
637  OP_Utils::evalOpParm(result, thissop, "vex_matchattrib", cookparms.getCookTime(), 0);
638  return result;
639  }
640  const UT_StringHolder & getSelectionGroup() const { return mySelectionGroup; }
641  void setSelectionGroup(const UT_StringHolder & val) { mySelectionGroup = val; }
643  {
644  SOP_Node *thissop = cookparms.getNode();
645  if (!thissop) return getSelectionGroup();
646  UT_StringHolder result;
647  OP_Utils::evalOpParm(result, thissop, "vex_selectiongroup", cookparms.getCookTime(), 0);
648  return result;
649  }
650  bool getCookInPlace() const { return myCookInPlace; }
651  void setCookInPlace(bool val) { myCookInPlace = val; }
652  bool opCookInPlace(const SOP_NodeVerb::CookParms &cookparms) const
653  {
654  SOP_Node *thissop = cookparms.getNode();
655  if (!thissop) return getCookInPlace();
656  bool result;
657  OP_Utils::evalOpParm(result, thissop, "vex_inplace", cookparms.getCookTime(), 0);
658  return result;
659  }
660 
661 private:
662  UT_StringHolder myVexCWD;
663  UT_StringHolder myVexOutputMask;
664  UT_Array<Bindings> myBindings;
665  UT_Array<GroupBindings> myGroupBindings;
666  bool myAutobind;
667  bool myGroupAutobind;
668  int64 myBindClass;
669  UT_StringHolder myBindGroup;
670  int64 myBindGroupType;
671  bool myMultiThread;
672  bool myUpdateNormals;
673  int64 myNumCount;
674  int64 myThreadJobSize;
675  UT_StringHolder myMatchAttrib;
676  UT_StringHolder mySelectionGroup;
677  bool myCookInPlace;
678 
679 };
UT_StringHolder opBindings_bindname(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
static void loadData(UT_IStream &is, fpreal64 &v)
const UT_Array< GroupBindings > & getGroupBindings() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
exint opGroupBindings(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:494
T & z(void)
Definition: UT_Vector4.h:379
const UT_StringHolder & getMatchAttrib() const
bool operator==(const GroupBindings &src) const
UT_StringHolder opVexOutputMask(const SOP_NodeVerb::CookParms &cookparms) const
exint opBindings(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
UT_StringHolder opVexCWD(const SOP_NodeVerb::CookParms &cookparms) const
const GLdouble * v
Definition: glcorearb.h:836
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
UT_StringHolder opMatchAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
void setVexCWD(const UT_StringHolder &val)
SYS_FORCE_INLINE const char * buffer() const
T & x(void)
Definition: UT_Vector2.h:285
An output stream object that owns its own string buffer storage.
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
void setMatchAttrib(const UT_StringHolder &val)
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool operator!=(const Bindings &src) const
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:498
static void saveData(std::ostream &os, fpreal64 v)
UT_StringHolder createString(const UT_Array< Bindings > &list) const
int64 opNumCount(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
png_uint_32 i
Definition: png.h:2877
static void loadData(UT_IStream &is, bool &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
void setBindGroupType(int64 val)
void setBindGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_StringHolder createString(const UT_Array< GroupBindings > &list) const
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:502
bool opMultiThread(const SOP_NodeVerb::CookParms &cookparms) const
void setThreadJobSize(int64 val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
long long int64
Definition: SYS_Types.h:107
static void saveData(std::ostream &os, UT_Vector2D v)
const UT_StringHolder & getBindGroup() const
void setGroupBindings(const UT_Array< GroupBindings > &val)
const UT_StringHolder & getSelectionGroup() const
bool opGroupAutobind(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
const UT_StringHolder & getVexCWD() const
exint length() const
char * findChar(int c) const
Find first occurrance of character. Returns NULL upon failure.
Definition: UT_String.h:550
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
int64 exint
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_StringHolder &v)
double fpreal64
Definition: SYS_Types.h:192
bool operator!=(const GroupBindings &src) const
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:284
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_Vector3D v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_Vector4D v)
const UT_Array< Bindings > & getBindings() const
bool operator==(const SOP_AttribVopParms &src) const
bool load(UT_IStream &is)
bool operator==(const Bindings &src) const
GLboolean * data
Definition: glcorearb.h:130
static void loadData(UT_IStream &is, int64 &v)
int int32
Definition: SYS_Types.h:35
T & y(void)
Definition: UT_Vector4.h:377
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_StringHolder opBindGroup(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSelectionGroup(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
void setBindings(const UT_Array< Bindings > &val)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2539
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:453
int64 opBindGroupType(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opBindings_bindparm(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:500
static void loadData(UT_IStream &is, UT_Vector3I &v)
double fpreal
Definition: SYS_Types.h:270
bool opUpdateNormals(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
bool operator!=(const SOP_AttribVopParms &src) const
UT_StringHolder opGroupBindings_bindgroupparm(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
SYS_FORCE_INLINE void append(char character)
bool opAutobind(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLfloat * val
Definition: glcorearb.h:1607
const UT_StringHolder & getVexOutputMask() const
#define SOP_API
Definition: SOP_API.h:10
void setSelectionGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:501
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
T & x(void)
Definition: UT_Vector4.h:375
T & y(void)
Definition: UT_Vector2.h:287
bool opCookInPlace(const SOP_NodeVerb::CookParms &cookparms) const
int64 opBindClass(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1221
static void saveData(std::ostream &os, UT_Matrix2D v)
void setVexOutputMask(const UT_StringHolder &val)
T & w(void)
Definition: UT_Vector4.h:381
int64 opThreadJobSize(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder opGroupBindings_bindgroupname(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:88
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, int64 v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:794
GLenum src
Definition: glcorearb.h:1792