HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_AttribFill.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 namespace SOP_AttribFillEnums
24 {
25  enum class Mode
26  {
27  EIKONAL = 0,
28  POISSON,
29  HEAT
30  };
31 }
32 
33 
35 {
36 public:
37  static int version() { return 1; }
38 
40  {
41  myMode = 1;
42  myAttrib = ""_UTsh;
43  mySource = ""_UTsh;
44  myWeights = ""_UTsh;
45  mySpeed = ""_UTsh;
46  myBoundary = ""_UTsh;
47  myMindist = 1e-8;
48  myMinspeed = 1e-8;
49  myTimestep = 0.02;
50  myUnreachableval = -1;
51 
52  }
53 
54  explicit SOP_AttribFillParms(const SOP_AttribFillParms &) = default;
56  SOP_AttribFillParms(SOP_AttribFillParms &&) noexcept = default;
57  SOP_AttribFillParms &operator=(SOP_AttribFillParms &&) noexcept = default;
58 
59  ~SOP_AttribFillParms() override {}
60 
61  bool operator==(const SOP_AttribFillParms &src) const
62  {
63  if (myMode != src.myMode) return false;
64  if (myAttrib != src.myAttrib) return false;
65  if (mySource != src.mySource) return false;
66  if (myWeights != src.myWeights) return false;
67  if (mySpeed != src.mySpeed) return false;
68  if (myBoundary != src.myBoundary) return false;
69  if (myMindist != src.myMindist) return false;
70  if (myMinspeed != src.myMinspeed) return false;
71  if (myTimestep != src.myTimestep) return false;
72  if (myUnreachableval != src.myUnreachableval) return false;
73 
74  return true;
75  }
76  bool operator!=(const SOP_AttribFillParms &src) const
77  {
78  return !operator==(src);
79  }
81 
82 
83 
84  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
85  {
86  myMode = 1;
87  if (true)
88  graph->evalOpParm(myMode, nodeidx, "mode", time, 0);
89  myAttrib = ""_UTsh;
90  if (true)
91  graph->evalOpParm(myAttrib, nodeidx, "attrib", time, 0);
92  mySource = ""_UTsh;
93  if (true && ( (true&&!(((int64(getMode())!=1)))) ) )
94  graph->evalOpParm(mySource, nodeidx, "source", time, 0);
95  myWeights = ""_UTsh;
96  if (true && ( (true&&!(((int64(getMode())!=1)))) ) )
97  graph->evalOpParm(myWeights, nodeidx, "weights", time, 0);
98  mySpeed = ""_UTsh;
99  if (true && ( (true&&!(((int64(getMode())!=0)&&(int64(getMode())!=2)))) ) )
100  graph->evalOpParm(mySpeed, nodeidx, "speed", time, 0);
101  myBoundary = ""_UTsh;
102  if (true)
103  graph->evalOpParm(myBoundary, nodeidx, "boundary", time, 0);
104  myMindist = 1e-8;
105  if (true && ( (true&&!(((int64(getMode())!=1)&&(int64(getMode())!=2)))) ) )
106  graph->evalOpParm(myMindist, nodeidx, "mindist", time, 0);
107  myMinspeed = 1e-8;
108  if (true && ( (true&&!(((int64(getMode())!=2)))) ) )
109  graph->evalOpParm(myMinspeed, nodeidx, "minspeed", time, 0);
110  myTimestep = 0.02;
111  if (true && ( (true&&!(((int64(getMode())!=2)))) ) )
112  graph->evalOpParm(myTimestep, nodeidx, "timestep", time, 0);
113  myUnreachableval = -1;
114  if (true && ( (true&&!(((int64(getMode())!=0)))) ) )
115  graph->evalOpParm(myUnreachableval, nodeidx, "unreachableval", time, 0);
116 
117  }
118 
119 
120  void loadFromOpSubclass(const LoadParms &loadparms) override
121  {
122  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
123  }
124 
125 
126  void copyFrom(const OP_NodeParms *src) override
127  {
128  *this = *((const SOP_AttribFillParms *)src);
129  }
130 
131  template <typename T>
132  void
133  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
134  {
135  if (idx.size() < 1)
136  return;
137  UT_ASSERT(idx.size() == instance.size()+1);
138  if (idx.size() != instance.size()+1)
139  return;
140  switch (idx[0])
141  {
142  case 0:
143  coerceValue(value, myMode);
144  break;
145  case 1:
146  coerceValue(value, myAttrib);
147  break;
148  case 2:
149  coerceValue(value, mySource);
150  break;
151  case 3:
152  coerceValue(value, myWeights);
153  break;
154  case 4:
155  coerceValue(value, mySpeed);
156  break;
157  case 5:
158  coerceValue(value, myBoundary);
159  break;
160  case 6:
161  coerceValue(value, myMindist);
162  break;
163  case 7:
164  coerceValue(value, myMinspeed);
165  break;
166  case 8:
167  coerceValue(value, myTimestep);
168  break;
169  case 9:
170  coerceValue(value, myUnreachableval);
171  break;
172 
173  }
174  }
175 
176  bool isParmColorRamp(exint idx) const override
177  {
178  switch (idx)
179  {
180 
181  }
182  return false;
183  }
184 
185  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
186  { doGetParmValue(idx, instance, value); }
187  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
188  { doGetParmValue(idx, instance, value); }
189  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
190  { doGetParmValue(idx, instance, value); }
191  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
192  { doGetParmValue(idx, instance, value); }
193  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
194  { doGetParmValue(idx, instance, value); }
195  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
196  { doGetParmValue(idx, instance, value); }
197  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
198  { doGetParmValue(idx, instance, value); }
199  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
200  { doGetParmValue(idx, instance, value); }
201  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
202  { doGetParmValue(idx, instance, value); }
203  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
204  { doGetParmValue(idx, instance, value); }
205  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
206  { doGetParmValue(idx, instance, value); }
207 
208  template <typename T>
209  void
210  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
211  {
212  if (idx.size() < 1)
213  return;
214  UT_ASSERT(idx.size() == instance.size()+1);
215  if (idx.size() != instance.size()+1)
216  return;
217  switch (idx[0])
218  {
219  case 0:
220  coerceValue(myMode, clampMinValue(0, clampMaxValue(2, value ) ));
221  break;
222  case 1:
223  coerceValue(myAttrib, ( ( value ) ));
224  break;
225  case 2:
226  coerceValue(mySource, ( ( value ) ));
227  break;
228  case 3:
229  coerceValue(myWeights, ( ( value ) ));
230  break;
231  case 4:
232  coerceValue(mySpeed, ( ( value ) ));
233  break;
234  case 5:
235  coerceValue(myBoundary, ( ( value ) ));
236  break;
237  case 6:
238  coerceValue(myMindist, clampMinValue(0, ( value ) ));
239  break;
240  case 7:
241  coerceValue(myMinspeed, clampMinValue(0, ( value ) ));
242  break;
243  case 8:
244  coerceValue(myTimestep, clampMinValue(0, ( value ) ));
245  break;
246  case 9:
247  coerceValue(myUnreachableval, ( ( value ) ));
248  break;
249 
250  }
251  }
252 
253  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
254  { doSetParmValue(idx, instance, value); }
255  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
256  { doSetParmValue(idx, instance, value); }
257  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
258  { doSetParmValue(idx, instance, value); }
259  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
260  { doSetParmValue(idx, instance, value); }
261  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
262  { doSetParmValue(idx, instance, value); }
263  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
264  { doSetParmValue(idx, instance, value); }
265  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
266  { doSetParmValue(idx, instance, value); }
267  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
268  { doSetParmValue(idx, instance, value); }
269  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
270  { doSetParmValue(idx, instance, value); }
271  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
272  { doSetParmValue(idx, instance, value); }
273  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
274  { doSetParmValue(idx, instance, value); }
275 
276  exint getNestNumParms(TempIndex idx) const override
277  {
278  if (idx.size() == 0)
279  return 10;
280  switch (idx[0])
281  {
282 
283  }
284  // Invalid
285  return 0;
286  }
287 
288  const char *getNestParmName(TempIndex fieldnum) const override
289  {
290  if (fieldnum.size() < 1)
291  return 0;
292  switch (fieldnum[0])
293  {
294  case 0:
295  return "mode";
296  case 1:
297  return "attrib";
298  case 2:
299  return "source";
300  case 3:
301  return "weights";
302  case 4:
303  return "speed";
304  case 5:
305  return "boundary";
306  case 6:
307  return "mindist";
308  case 7:
309  return "minspeed";
310  case 8:
311  return "timestep";
312  case 9:
313  return "unreachableval";
314 
315  }
316  return 0;
317  }
318 
319  ParmType getNestParmType(TempIndex fieldnum) const override
320  {
321  if (fieldnum.size() < 1)
322  return PARM_UNSUPPORTED;
323  switch (fieldnum[0])
324  {
325  case 0:
326  return PARM_INTEGER;
327  case 1:
328  return PARM_STRING;
329  case 2:
330  return PARM_STRING;
331  case 3:
332  return PARM_STRING;
333  case 4:
334  return PARM_STRING;
335  case 5:
336  return PARM_STRING;
337  case 6:
338  return PARM_FLOAT;
339  case 7:
340  return PARM_FLOAT;
341  case 8:
342  return PARM_FLOAT;
343  case 9:
344  return PARM_FLOAT;
345 
346  }
347  return PARM_UNSUPPORTED;
348  }
349 
350  // Boiler plate to load individual types.
351  static void loadData(UT_IStream &is, int64 &v)
352  { is.bread(&v, 1); }
353  static void loadData(UT_IStream &is, bool &v)
354  { int64 iv; is.bread(&iv, 1); v = iv; }
355  static void loadData(UT_IStream &is, fpreal64 &v)
356  { is.bread<fpreal64>(&v, 1); }
357  static void loadData(UT_IStream &is, UT_Vector2D &v)
358  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
359  static void loadData(UT_IStream &is, UT_Vector3D &v)
360  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
361  is.bread<fpreal64>(&v.z(), 1); }
362  static void loadData(UT_IStream &is, UT_Vector4D &v)
363  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
364  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
365  static void loadData(UT_IStream &is, UT_Matrix2D &v)
366  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
367  static void loadData(UT_IStream &is, UT_Matrix3D &v)
368  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
369  static void loadData(UT_IStream &is, UT_Matrix4D &v)
370  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
371  static void loadData(UT_IStream &is, UT_Vector2I &v)
372  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
373  static void loadData(UT_IStream &is, UT_Vector3I &v)
374  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
375  is.bread<int64>(&v.z(), 1); }
376  static void loadData(UT_IStream &is, UT_Vector4I &v)
377  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
378  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
380  { is.bread(v); }
382  { UT_StringHolder rampdata;
383  loadData(is, rampdata);
384  if (rampdata.isstring())
385  {
386  v.reset(new UT_Ramp());
387  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
388  v->load(istr);
389  }
390  else v.reset();
391  }
394  loadData(is, data);
395  if (data.isstring())
396  {
397  // Find the data type.
398  const char *colon = UT_StringWrap(data).findChar(':');
399  if (colon)
400  {
401  int typelen = colon - data.buffer();
403  type.strncpy(data.buffer(), typelen);
404  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
405 
406  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
407  }
408  }
409  else v.reset();
410  }
411 
412  static void saveData(std::ostream &os, int64 v)
413  { UTwrite(os, &v); }
414  static void saveData(std::ostream &os, bool v)
415  { int64 iv = v; UTwrite(os, &iv); }
416  static void saveData(std::ostream &os, fpreal64 v)
417  { UTwrite<fpreal64>(os, &v); }
418  static void saveData(std::ostream &os, UT_Vector2D v)
419  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
420  static void saveData(std::ostream &os, UT_Vector3D v)
421  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
422  UTwrite<fpreal64>(os, &v.z()); }
423  static void saveData(std::ostream &os, UT_Vector4D v)
424  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
425  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
426  static void saveData(std::ostream &os, UT_Matrix2D v)
428  static void saveData(std::ostream &os, UT_Matrix3D v)
430  static void saveData(std::ostream &os, UT_Matrix4D v)
432  static void saveData(std::ostream &os, UT_StringHolder s)
433  { UT_StringWrap(s).saveBinary(os); }
434  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
436  UT_OStringStream ostr;
437  if (s) s->save(ostr);
438  result = ostr.str();
439  saveData(os, result);
440  }
441  static void saveData(std::ostream &os, PRM_DataItemHandle s)
443  UT_OStringStream ostr;
444  if (s)
445  {
446  ostr << s->getDataTypeToken();
447  ostr << ":";
448  s->saveBinary(ostr);
449  }
450  result = ostr.str();
451  saveData(os, result);
452  }
453 
454 
455  void save(std::ostream &os) const
456  {
457  int32 v = version();
458  UTwrite(os, &v);
459  saveData(os, myMode);
460  saveData(os, myAttrib);
461  saveData(os, mySource);
462  saveData(os, myWeights);
463  saveData(os, mySpeed);
464  saveData(os, myBoundary);
465  saveData(os, myMindist);
466  saveData(os, myMinspeed);
467  saveData(os, myTimestep);
468  saveData(os, myUnreachableval);
469 
470  }
471 
472  bool load(UT_IStream &is)
473  {
474  int32 v;
475  is.bread(&v, 1);
476  if (version() != v)
477  {
478  // Fail incompatible versions
479  return false;
480  }
481  loadData(is, myMode);
482  loadData(is, myAttrib);
483  loadData(is, mySource);
484  loadData(is, myWeights);
485  loadData(is, mySpeed);
486  loadData(is, myBoundary);
487  loadData(is, myMindist);
488  loadData(is, myMinspeed);
489  loadData(is, myTimestep);
490  loadData(is, myUnreachableval);
491 
492  return true;
493  }
494 
495  Mode getMode() const { return Mode(myMode); }
496  void setMode(Mode val) { myMode = int64(val); }
497  Mode opMode(const SOP_NodeVerb::CookParms &cookparms) const
498  {
499  SOP_Node *thissop = cookparms.getNode();
500  if (!thissop) return getMode();
501  int64 result;
502  OP_Utils::evalOpParm(result, thissop, "mode", cookparms.getCookTime(), 0);
503  return Mode(result);
504  }
505  const UT_StringHolder & getAttrib() const { return myAttrib; }
506  void setAttrib(const UT_StringHolder & val) { myAttrib = val; }
508  {
509  SOP_Node *thissop = cookparms.getNode();
510  if (!thissop) return getAttrib();
512  OP_Utils::evalOpParm(result, thissop, "attrib", cookparms.getCookTime(), 0);
513  return result;
514  }
515  const UT_StringHolder & getSource() const { return mySource; }
516  void setSource(const UT_StringHolder & val) { mySource = val; }
518  {
519  SOP_Node *thissop = cookparms.getNode();
520  if (!thissop) return getSource();
522  OP_Utils::evalOpParm(result, thissop, "source", cookparms.getCookTime(), 0);
523  return result;
524  }
525  const UT_StringHolder & getWeights() const { return myWeights; }
526  void setWeights(const UT_StringHolder & val) { myWeights = val; }
528  {
529  SOP_Node *thissop = cookparms.getNode();
530  if (!thissop) return getWeights();
532  OP_Utils::evalOpParm(result, thissop, "weights", cookparms.getCookTime(), 0);
533  return result;
534  }
535  const UT_StringHolder & getSpeed() const { return mySpeed; }
536  void setSpeed(const UT_StringHolder & val) { mySpeed = val; }
538  {
539  SOP_Node *thissop = cookparms.getNode();
540  if (!thissop) return getSpeed();
542  OP_Utils::evalOpParm(result, thissop, "speed", cookparms.getCookTime(), 0);
543  return result;
544  }
545  const UT_StringHolder & getBoundary() const { return myBoundary; }
546  void setBoundary(const UT_StringHolder & val) { myBoundary = val; }
548  {
549  SOP_Node *thissop = cookparms.getNode();
550  if (!thissop) return getBoundary();
552  OP_Utils::evalOpParm(result, thissop, "boundary", cookparms.getCookTime(), 0);
553  return result;
554  }
555  fpreal64 getMindist() const { return myMindist; }
556  void setMindist(fpreal64 val) { myMindist = val; }
558  {
559  SOP_Node *thissop = cookparms.getNode();
560  if (!thissop) return getMindist();
562  OP_Utils::evalOpParm(result, thissop, "mindist", cookparms.getCookTime(), 0);
563  return result;
564  }
565  fpreal64 getMinspeed() const { return myMinspeed; }
566  void setMinspeed(fpreal64 val) { myMinspeed = val; }
568  {
569  SOP_Node *thissop = cookparms.getNode();
570  if (!thissop) return getMinspeed();
572  OP_Utils::evalOpParm(result, thissop, "minspeed", cookparms.getCookTime(), 0);
573  return result;
574  }
575  fpreal64 getTimestep() const { return myTimestep; }
576  void setTimestep(fpreal64 val) { myTimestep = val; }
578  {
579  SOP_Node *thissop = cookparms.getNode();
580  if (!thissop) return getTimestep();
582  OP_Utils::evalOpParm(result, thissop, "timestep", cookparms.getCookTime(), 0);
583  return result;
584  }
585  fpreal64 getUnreachableval() const { return myUnreachableval; }
586  void setUnreachableval(fpreal64 val) { myUnreachableval = val; }
588  {
589  SOP_Node *thissop = cookparms.getNode();
590  if (!thissop) return getUnreachableval();
592  OP_Utils::evalOpParm(result, thissop, "unreachableval", cookparms.getCookTime(), 0);
593  return result;
594  }
595 
596 private:
597  int64 myMode;
598  UT_StringHolder myAttrib;
599  UT_StringHolder mySource;
600  UT_StringHolder myWeights;
601  UT_StringHolder mySpeed;
602  UT_StringHolder myBoundary;
603  fpreal64 myMindist;
604  fpreal64 myMinspeed;
605  fpreal64 myTimestep;
606  fpreal64 myUnreachableval;
607 
608 };
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 opMindist(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSpeed(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
fpreal64 opMinspeed(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const UT_StringHolder & getAttrib() const
static void saveData(std::ostream &os, UT_StringHolder s)
void setMinspeed(fpreal64 val)
Mode opMode(const SOP_NodeVerb::CookParms &cookparms) const
void setUnreachableval(fpreal64 val)
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
static void loadData(UT_IStream &is, UT_StringHolder &v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
bool load(UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
ParmType getNestParmType(TempIndex fieldnum) const override
void setMindist(fpreal64 val)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
int getSource() override
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
fpreal64 opUnreachableval(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_StringHolder opSource(const SOP_NodeVerb::CookParms &cookparms) const
GLdouble s
Definition: glad.h:3009
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool operator!=(const SOP_AttribFillParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
**But if you need a result
Definition: thread.h:613
T clampMinValue(fpreal minvalue, const T &src) const
Definition: OP_NodeParms.h:308
const UT_StringHolder & getBoundary() const
static void saveData(std::ostream &os, bool v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
exint getNestNumParms(TempIndex idx) const override
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
fpreal64 opTimestep(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, UT_Matrix3D &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
static void saveData(std::ostream &os, int64 v)
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
const UT_StringHolder & getWeights() const
static void loadData(UT_IStream &is, bool &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_Vector3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void save(std::ostream &os) const
UT_StringHolder opWeights(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
exint length() const
static void saveData(std::ostream &os, fpreal64 v)
fpreal64 getMindist() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
fpreal64 getUnreachableval() const
void setBoundary(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, int64 &v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
static void saveData(std::ostream &os, UT_Vector2D v)
bool operator==(const SOP_AttribFillParms &src) const
long long int64
Definition: SYS_Types.h:116
bool isParmColorRamp(exint idx) const override
const UT_StringHolder & getSpeed() const
fpreal64 getMinspeed() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setTimestep(fpreal64 val)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
GT_API const UT_StringHolder version
void setWeights(const UT_StringHolder &val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void copyFrom(const OP_NodeParms *src) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setSource(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setAttrib(const UT_StringHolder &val)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
static void saveData(std::ostream &os, UT_Matrix3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define SOP_API
Definition: SOP_API.h:10
UT_StringHolder opBoundary(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
const UT_StringHolder & getSource() const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void loadData(UT_IStream &is, UT_Vector3I &v)
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder opAttrib(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1222
fpreal64 getTimestep() const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
type
Definition: core.h:1059
void setSpeed(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, fpreal64 &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, UT_Vector4D v)
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
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663