HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Invoke.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_NodeVerb.h>
7 #include <SOP/SOP_GraphProxy.h>
8 
9 #include <OP/OP_Utils.h>
10 #include <PRM/PRM_Parm.h>
11 #include <UT/UT_IStream.h>
12 #include <UT/UT_NTStreamUtil.h>
13 #include <UT/UT_Ramp.h>
14 #include <UT/UT_SharedPtr.h>
15 #include <UT/UT_StringHolder.h>
16 #include <UT/UT_StringStream.h>
17 #include <UT/UT_VectorTypes.h>
18 #include <SYS/SYS_Types.h>
19 
20 using namespace UT::Literal;
21 
22 class DEP_MicroNode;
23 namespace SOP_InvokeEnums
24 {
25  enum class Unload
26  {
27  NEVER = 0,
28  FLAG,
29  ALWAYS
30  };
31 }
32 
33 
35 {
36 public:
37  static int version() { return 1; }
38  struct Inputs
39  {
42 
43 
45  {
46  name = ""_sh;
47  inputpath = ""_sh;
48 
49  }
50 
51  bool operator==(const Inputs &src) const
52  {
53  if (name != src.name) return false;
54  if (inputpath != src.inputpath) return false;
55 
56  return true;
57  }
58  bool operator!=(const Inputs &src) const
59  {
60  return !operator==(src);
61  }
62 
63  };
64 
66  {
68 
69  buf.strcat("[ ");
70  for (int i = 0; i < list.entries(); i++)
71  {
72  if (i)
73  buf.strcat(", ");
74  buf.strcat("( ");
75  buf.append("");
76  { UT_String tmp; tmp = UT_StringWrap(list(i).name).makeQuotedString('"'); buf.strcat(tmp); }
77  buf.append(", ");
78  { UT_String tmp; tmp = UT_StringWrap(list(i).inputpath).makeQuotedString('"'); buf.strcat(tmp); }
79 
80  buf.strcat(" )");
81  }
82  buf.strcat(" ]");
83 
85  return result;
86  }
87 
89  {
90  myBlockpath = ""_sh;
91  myUnload = 2;
92 
93  }
94 
95  explicit SOP_InvokeParms(const SOP_InvokeParms &) = default;
96 
97  ~SOP_InvokeParms() override {}
98 
99  bool operator==(const SOP_InvokeParms &src) const
100  {
101  if (myBlockpath != src.myBlockpath) return false;
102  if (myInputs != src.myInputs) return false;
103  if (myUnload != src.myUnload) return false;
104 
105  return true;
106  }
107  bool operator!=(const SOP_InvokeParms &src) const
108  {
109  return !operator==(src);
110  }
112 
113 
114 
115  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
116  {
117  myBlockpath = ""_sh;
118  if (true)
119  graph->evalOpParm(myBlockpath, nodeidx, "blockpath", time, 0);
120  if (true)
121  {
122  int64 length = 0;
123  graph->evalOpParm(length, nodeidx, "inputs", time, 0);
124  myInputs.entries(length);
125  for (exint i = 0; i < length; i++)
126  {
127  int parmidx = i+0;
128  auto && _curentry = myInputs(i);
129  (void) _curentry;
130  myInputs(i).name = ""_sh;
131  if (true)
132  graph->evalOpParmInst(myInputs(i).name, nodeidx, "name#", &parmidx, time, 0);
133  myInputs(i).inputpath = ""_sh;
134  if (true)
135  graph->evalOpParmInst(myInputs(i).inputpath, nodeidx, "inputpath#", &parmidx, time, 0);
136 
137  }
138  }
139  else
140  myInputs.clear();
141  myUnload = 2;
142  if (true)
143  graph->evalOpParm(myUnload, nodeidx, "unload", time, 0);
144 
145  }
146 
147 
148  void loadFromOpSubclass(const LoadParms &loadparms) override
149  {
150  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
151  }
152 
153 
154  void copyFrom(const SOP_NodeParms *src) override
155  {
156  *this = *((const SOP_InvokeParms *)src);
157  }
158 
159  template <typename T>
160  void
161  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
162  {
163  if (idx.size() < 1)
164  return;
165  UT_ASSERT(idx.size() == instance.size()+1);
166  if (idx.size() != instance.size()+1)
167  return;
168  switch (idx[0])
169  {
170  case 0:
171  coerceValue(value, myBlockpath);
172  break;
173  case 1:
174  if (idx.size() == 1)
175  coerceValue(value, myInputs.entries());
176  else if (instance[0] < myInputs.entries())
177  {
178  auto && _data = myInputs(instance[0]);
179  switch (idx[1])
180  {
181  case 0:
182  coerceValue(value, _data.name);
183  break;
184  case 1:
185  coerceValue(value, _data.inputpath);
186  break;
187 
188  }
189  }
190  break;
191  case 2:
192  coerceValue(value, myUnload);
193  break;
194 
195  }
196  }
197 
198  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
199  { doGetParmValue(idx, instance, value); }
200  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
201  { doGetParmValue(idx, instance, value); }
202  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
203  { doGetParmValue(idx, instance, value); }
204  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
205  { doGetParmValue(idx, instance, value); }
206  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
207  { doGetParmValue(idx, instance, value); }
208  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
209  { doGetParmValue(idx, instance, value); }
210  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
211  { doGetParmValue(idx, instance, value); }
212  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
213  { doGetParmValue(idx, instance, value); }
214  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
215  { doGetParmValue(idx, instance, value); }
216  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
217  { doGetParmValue(idx, instance, value); }
218  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
219  { doGetParmValue(idx, instance, value); }
220 
221  template <typename T>
222  void
223  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
224  {
225  if (idx.size() < 1)
226  return;
227  UT_ASSERT(idx.size() == instance.size()+1);
228  if (idx.size() != instance.size()+1)
229  return;
230  switch (idx[0])
231  {
232  case 0:
233  coerceValue(myBlockpath, value);
234  break;
235  case 1:
236  if (idx.size() == 1)
237  {
238  exint newsize;
239  coerceValue(newsize, value);
240  myInputs.setSize(newsize);
241  }
242  else
243  {
244  myInputs.setSizeIfNeeded(instance[0]+1);
245  auto && _data = myInputs(instance[0]);
246  switch (idx[1])
247  {
248  case 0:
249  coerceValue(_data.name, value);
250  break;
251  case 1:
252  coerceValue(_data.inputpath, value);
253  break;
254 
255  }
256  }
257  break;
258  case 2:
259  coerceValue(myUnload, value);
260  break;
261 
262  }
263  }
264 
265  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
266  { doSetParmValue(idx, instance, value); }
267  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
268  { doSetParmValue(idx, instance, value); }
269  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
270  { doSetParmValue(idx, instance, value); }
271  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
272  { doSetParmValue(idx, instance, value); }
273  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
274  { doSetParmValue(idx, instance, value); }
275  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
276  { doSetParmValue(idx, instance, value); }
277  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
278  { doSetParmValue(idx, instance, value); }
279  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
280  { doSetParmValue(idx, instance, value); }
281  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
282  { doSetParmValue(idx, instance, value); }
283  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
284  { doSetParmValue(idx, instance, value); }
285  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
286  { doSetParmValue(idx, instance, value); }
287 
288  exint getNestNumParms(TempIndex idx) const override
289  {
290  if (idx.size() == 0)
291  return 3;
292  switch (idx[0])
293  {
294  case 1:
295  return 2;
296 
297  }
298  // Invalid
299  return 0;
300  }
301 
302  const char *getNestParmName(TempIndex fieldnum) const override
303  {
304  if (fieldnum.size() < 1)
305  return 0;
306  switch (fieldnum[0])
307  {
308  case 0:
309  return "blockpath";
310  case 1:
311  if (fieldnum.size() == 1)
312  return "inputs";
313  switch (fieldnum[1])
314  {
315  case 0:
316  return "name#";
317  case 1:
318  return "inputpath#";
319 
320  }
321  return 0;
322  case 2:
323  return "unload";
324 
325  }
326  return 0;
327  }
328 
329  ParmType getNestParmType(TempIndex fieldnum) const override
330  {
331  if (fieldnum.size() < 1)
332  return PARM_UNSUPPORTED;
333  switch (fieldnum[0])
334  {
335  case 0:
336  return PARM_STRING;
337  case 1:
338  if (fieldnum.size() == 1)
339  return PARM_MULTIPARM;
340  switch (fieldnum[1])
341  {
342  case 0:
343  return PARM_STRING;
344  case 1:
345  return PARM_STRING;
346 
347  }
348  return PARM_UNSUPPORTED;
349  case 2:
350  return PARM_INTEGER;
351 
352  }
353  return PARM_UNSUPPORTED;
354  }
355 
356  // Boiler plate to load individual types.
357  static void loadData(UT_IStream &is, int64 &v)
358  { is.bread(&v, 1); }
359  static void loadData(UT_IStream &is, bool &v)
360  { int64 iv; is.bread(&iv, 1); v = iv; }
361  static void loadData(UT_IStream &is, fpreal64 &v)
362  { is.bread<fpreal64>(&v, 1); }
363  static void loadData(UT_IStream &is, UT_Vector2D &v)
364  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
365  static void loadData(UT_IStream &is, UT_Vector3D &v)
366  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
367  is.bread<fpreal64>(&v.z(), 1); }
368  static void loadData(UT_IStream &is, UT_Vector4D &v)
369  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
370  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
371  static void loadData(UT_IStream &is, UT_Matrix2D &v)
372  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
373  static void loadData(UT_IStream &is, UT_Matrix3D &v)
374  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
375  static void loadData(UT_IStream &is, UT_Matrix4D &v)
376  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
377  static void loadData(UT_IStream &is, UT_Vector2I &v)
378  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
379  static void loadData(UT_IStream &is, UT_Vector3I &v)
380  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
381  is.bread<int64>(&v.z(), 1); }
382  static void loadData(UT_IStream &is, UT_Vector4I &v)
383  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
384  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
386  { is.bread(v); }
388  { UT_StringHolder rampdata;
389  loadData(is, rampdata);
390  if (rampdata.isstring())
391  {
392  v.reset(new UT_Ramp());
393  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
394  v->load(istr);
395  }
396  else v.reset();
397  }
400  loadData(is, data);
401  if (data.isstring())
402  {
403  // Find the data type.
404  const char *colon = UT_StringWrap(data).findChar(':');
405  if (colon)
406  {
407  int typelen = colon - data.buffer();
409  type.strncpy(data.buffer(), typelen);
410  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
411 
412  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
413  }
414  }
415  else v.reset();
416  }
417 
418  static void saveData(std::ostream &os, int64 v)
419  { UTwrite(os, &v); }
420  static void saveData(std::ostream &os, bool v)
421  { int64 iv = v; UTwrite(os, &iv); }
422  static void saveData(std::ostream &os, fpreal64 v)
423  { UTwrite<fpreal64>(os, &v); }
424  static void saveData(std::ostream &os, UT_Vector2D v)
425  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
426  static void saveData(std::ostream &os, UT_Vector3D v)
427  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
428  UTwrite<fpreal64>(os, &v.z()); }
429  static void saveData(std::ostream &os, UT_Vector4D v)
430  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
431  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
432  static void saveData(std::ostream &os, UT_Matrix2D v)
434  static void saveData(std::ostream &os, UT_Matrix3D v)
436  static void saveData(std::ostream &os, UT_Matrix4D v)
438  static void saveData(std::ostream &os, UT_StringHolder s)
439  { UT_StringWrap(s).saveBinary(os); }
440  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
442  UT_OStringStream ostr;
443  if (s) s->save(ostr);
444  result = ostr.str();
445  saveData(os, result);
446  }
447  static void saveData(std::ostream &os, PRM_DataItemHandle s)
449  UT_OStringStream ostr;
450  if (s)
451  {
452  ostr << s->getDataTypeToken();
453  ostr << ":";
454  s->saveBinary(ostr);
455  }
456  result = ostr.str();
457  saveData(os, result);
458  }
459 
460 
461  void save(std::ostream &os) const
462  {
463  int32 v = version();
464  UTwrite(os, &v);
465  saveData(os, myBlockpath);
466  {
467  int64 length = myInputs.entries();
468  UTwrite(os, &length);
469  for (exint i = 0; i < length; i++)
470  {
471  saveData(os, myInputs(i).name);
472  saveData(os, myInputs(i).inputpath);
473 
474  }
475  }
476  saveData(os, myUnload);
477 
478  }
479 
480  bool load(UT_IStream &is)
481  {
482  int32 v;
483  is.bread(&v, 1);
484  if (version() != v)
485  {
486  // Fail incompatible versions
487  return false;
488  }
489  loadData(is, myBlockpath);
490  {
491  int64 length;
492  is.read(&length, 1);
493  myInputs.entries(length);
494  for (exint i = 0; i < length; i++)
495  {
496  loadData(is, myInputs(i).name);
497  loadData(is, myInputs(i).inputpath);
498 
499  }
500  }
501  loadData(is, myUnload);
502 
503  return true;
504  }
505 
506  const UT_StringHolder & getBlockpath() const { return myBlockpath; }
507  void setBlockpath(const UT_StringHolder & val) { myBlockpath = val; }
509  {
510  SOP_Node *thissop = cookparms.getNode();
511  if (!thissop) return getBlockpath();
513  OP_Utils::evalOpParm(result, thissop, "blockpath", cookparms.getCookTime(), 0);
514  return result;
515  }
516  const UT_Array<Inputs> &getInputs() const { return myInputs; }
517  void setInputs(const UT_Array<Inputs> &val) { myInputs = val; }
518  exint opInputs(const SOP_NodeVerb::CookParms &cookparms) const
519  {
520  SOP_Node *thissop = cookparms.getNode();
521  if (!thissop) return getInputs().entries();
522  exint result;
523  OP_Utils::evalOpParm(result, thissop, "inputs", cookparms.getCookTime(), 0);
524  return result;
525  }
527  {
528  SOP_Node *thissop = cookparms.getNode();
529  if (!thissop) return (myInputs(_idx).name);
530  int _parmidx = _idx + 0;
532  OP_Utils::evalOpParmInst(result, thissop, "name#", &_parmidx, cookparms.getCookTime(), 0);
533  return (result);
534  }
536  {
537  SOP_Node *thissop = cookparms.getNode();
538  if (!thissop) return (myInputs(_idx).inputpath);
539  int _parmidx = _idx + 0;
541  OP_Utils::evalOpParmInst(result, thissop, "inputpath#", &_parmidx, cookparms.getCookTime(), 0);
542  return (result);
543  }
544 
545  Unload getUnload() const { return Unload(myUnload); }
546  void setUnload(Unload val) { myUnload = int64(val); }
547  Unload opUnload(const SOP_NodeVerb::CookParms &cookparms) const
548  {
549  SOP_Node *thissop = cookparms.getNode();
550  if (!thissop) return getUnload();
551  int64 result;
552  OP_Utils::evalOpParm(result, thissop, "unload", cookparms.getCookTime(), 0);
553  return Unload(result);
554  }
555 
556 private:
557  UT_StringHolder myBlockpath;
558  UT_Array<Inputs> myInputs;
559  int64 myUnload;
560 
561 };
GLdouble s
Definition: glew.h:1390
exint getNestNumParms(TempIndex idx) const override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool operator!=(const Inputs &src) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder opInputs_name(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
static void loadData(UT_IStream &is, int64 &v)
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
bool operator!=(const SOP_InvokeParms &src) const
GLuint const GLchar * name
Definition: glew.h:1814
static void loadData(UT_IStream &is, UT_Matrix2D &v)
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, int *inst, fpreal time, DEP_MicroNode *depnode) const =0
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, fpreal64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void save(std::ostream &os) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
void setUnload(Unload val)
UT_StringHolder inputpath
fpreal getTime() const
Definition: OP_Context.h:60
UT_StringHolder createString(const UT_Array< Inputs > &list) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
GLuint const GLfloat * val
Definition: glew.h:2794
static void loadData(UT_IStream &is, UT_StringHolder &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
const GLdouble * v
Definition: glew.h:1391
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
~SOP_InvokeParms() override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
Unload opUnload(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
double fpreal64
Definition: SYS_Types.h:201
void setInputs(const UT_Array< Inputs > &val)
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
UT_StringHolder opInputs_inputpath(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
static void saveData(std::ostream &os, int64 v)
static void saveData(std::ostream &os, UT_Vector4D v)
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
static void saveData(std::ostream &os, bool v)
exint length() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
GLint GLenum GLsizei GLint GLsizei const void * data
Definition: glew.h:1379
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:284
static void saveData(std::ostream &os, UT_Matrix4D v)
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
void
Definition: png.h:1083
const GLfloat * c
Definition: glew.h:16296
GLuint GLsizei GLsizei * length
Definition: glew.h:1825
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_StringHolder opBlockpath(const SOP_NodeVerb::CookParms &cookparms) const
const UT_Array< Inputs > & getInputs() const
const char * getNestParmName(TempIndex fieldnum) const override
long long int64
Definition: SYS_Types.h:116
static void saveData(std::ostream &os, UT_Vector3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const UT_StringHolder & getBlockpath() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
SYS_FORCE_INLINE void strcat(const char *src)
static void loadData(UT_IStream &is, UT_Vector4I &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:460
void setBlockpath(const UT_StringHolder &val)
static void saveData(std::ostream &os, fpreal64 v)
static int version()
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool operator==(const Inputs &src) const
bool operator==(const SOP_InvokeParms &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
fpreal64 fpreal
Definition: SYS_Types.h:277
static void saveData(std::ostream &os, UT_StringHolder s)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
void loadFromOpSubclass(const LoadParms &loadparms) override
exint opInputs(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void append(char character)
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
#define SOP_API
Definition: SOP_API.h:10
static void loadData(UT_IStream &is, bool &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
void copyFrom(const SOP_NodeParms *src) override
GLuint64EXT * result
Definition: glew.h:14007
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
const char * findChar(int c) const
Definition: UT_String.h:1367
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, UT_Matrix3D v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
GLenum GLuint GLsizei const GLchar * buf
Definition: glew.h:2580
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
GLsizei const GLfloat * value
Definition: glew.h:1849
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
static void saveData(std::ostream &os, UT_Matrix2D v)
SYS_FORCE_INLINE bool isstring() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
type
Definition: core.h:528
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
Unload getUnload() const