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