HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_VolumeReduce.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_VolumeReduceEnums
24 {
25  enum class Reduction
26  {
27  MAX = 0,
28  MIN,
29  MAXABS,
30  MINABS,
31  AVERAGE,
32  MEDIAN,
33  SUM,
34  SUMABS,
35  SUMSQUARE,
36  RMS
37  };
38 
40  getToken(Reduction enum_value)
41  {
42  using namespace UT::Literal;
43  switch (enum_value) {
44  case Reduction::MAX: return "max"_sh;
45  case Reduction::MIN: return "min"_sh;
46  case Reduction::MAXABS: return "maxabs"_sh;
47  case Reduction::MINABS: return "minabs"_sh;
48  case Reduction::AVERAGE: return "average"_sh;
49  case Reduction::MEDIAN: return "median"_sh;
50  case Reduction::SUM: return "sum"_sh;
51  case Reduction::SUMABS: return "sumabs"_sh;
52  case Reduction::SUMSQUARE: return "sumsquare"_sh;
53  case Reduction::RMS: return "rms"_sh;
54  default: UT_ASSERT(false); return ""_sh;
55  }
56  }
57 
58  enum class Scaleby
59  {
60  NONE = 0,
61  LENGTH,
62  AREA,
63  VOLUME
64  };
65 
67  getToken(Scaleby enum_value)
68  {
69  using namespace UT::Literal;
70  switch (enum_value) {
71  case Scaleby::NONE: return "none"_sh;
72  case Scaleby::LENGTH: return "length"_sh;
73  case Scaleby::AREA: return "area"_sh;
74  case Scaleby::VOLUME: return "volume"_sh;
75  default: UT_ASSERT(false); return ""_sh;
76  }
77  }
78 
79  enum class Result
80  {
81  VOLUME = 0,
82  VERTEX,
83  POINT,
84  PRIM,
85  DETAIL
86  };
87 
89  getToken(Result enum_value)
90  {
91  using namespace UT::Literal;
92  switch (enum_value) {
93  case Result::VOLUME: return "volume"_sh;
94  case Result::VERTEX: return "vertex"_sh;
95  case Result::POINT: return "point"_sh;
96  case Result::PRIM: return "prim"_sh;
97  case Result::DETAIL: return "detail"_sh;
98  default: UT_ASSERT(false); return ""_sh;
99  }
100  }
101 
102 }
103 
104 
106 {
107 public:
108  static int version() { return 1; }
109 
111  {
112  myGroup = ""_UTsh;
113  myReduction = 0;
114  myPercentile = 50;
115  myScaleby = 0;
116  myResult = 0;
117  myResultattrib = "density"_UTsh;
118  myCreateVarMap = false;
119  myResultlvar = ""_UTsh;
120 
121  }
122 
123  explicit SOP_VolumeReduceParms(const SOP_VolumeReduceParms &) = default;
125  SOP_VolumeReduceParms(SOP_VolumeReduceParms &&) noexcept = default;
126  SOP_VolumeReduceParms &operator=(SOP_VolumeReduceParms &&) noexcept = default;
127 
128  ~SOP_VolumeReduceParms() override {}
129 
131  {
132  if (myGroup != src.myGroup) return false;
133  if (myReduction != src.myReduction) return false;
134  if (myPercentile != src.myPercentile) return false;
135  if (myScaleby != src.myScaleby) return false;
136  if (myResult != src.myResult) return false;
137  if (myResultattrib != src.myResultattrib) return false;
138  if (myCreateVarMap != src.myCreateVarMap) return false;
139  if (myResultlvar != src.myResultlvar) return false;
140 
141  return true;
142  }
144  {
145  return !operator==(src);
146  }
150 
151 
152 
153  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
154  {
155  myGroup = ""_UTsh;
156  if (true)
157  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
158  myReduction = 0;
159  if (true)
160  graph->evalOpParm(myReduction, nodeidx, "reduction", time, 0);
161  myPercentile = 50;
162  if (true && ( (true&&!(((int64(getReduction())!=5)))) ) )
163  graph->evalOpParm(myPercentile, nodeidx, "percentile", time, 0);
164  myScaleby = 0;
165  if (true)
166  graph->evalOpParm(myScaleby, nodeidx, "scaleby", time, 0);
167  myResult = 0;
168  if (true)
169  graph->evalOpParm(myResult, nodeidx, "result", time, 0);
170  myResultattrib = "density"_UTsh;
171  if (true && ( (true&&!(((int64(getResult())==0)))) ) )
172  graph->evalOpParm(myResultattrib, nodeidx, "resultattrib", time, 0);
173  myCreateVarMap = false;
174  if (true)
175  graph->evalOpParm(myCreateVarMap, nodeidx, "createvarmap", time, 0);
176  myResultlvar = ""_UTsh;
177  if (true && ( (true&&!(((getCreateVarMap()==0))||((int64(getResult())==0)))) ) )
178  graph->evalOpParm(myResultlvar, nodeidx, "resultlvar", time, 0);
179 
180  }
181 
182 
183  void loadFromOpSubclass(const LoadParms &loadparms) override
184  {
185  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
186  }
187 
188 
189  void copyFrom(const OP_NodeParms *src) override
190  {
191  *this = *((const SOP_VolumeReduceParms *)src);
192  }
193 
194  template <typename T>
195  void
196  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
197  {
198  if (idx.size() < 1)
199  return;
200  UT_ASSERT(idx.size() == instance.size()+1);
201  if (idx.size() != instance.size()+1)
202  return;
203  switch (idx[0])
204  {
205  case 0:
206  coerceValue(value, myGroup);
207  break;
208  case 1:
209  coerceValue(value, myReduction);
210  break;
211  case 2:
212  coerceValue(value, myPercentile);
213  break;
214  case 3:
215  coerceValue(value, myScaleby);
216  break;
217  case 4:
218  coerceValue(value, myResult);
219  break;
220  case 5:
221  coerceValue(value, myResultattrib);
222  break;
223  case 6:
224  coerceValue(value, myCreateVarMap);
225  break;
226  case 7:
227  coerceValue(value, myResultlvar);
228  break;
229 
230  }
231  }
232 
233  bool isParmColorRamp(exint idx) const override
234  {
235  switch (idx)
236  {
237 
238  }
239  return false;
240  }
241 
242  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
243  { doGetParmValue(idx, instance, value); }
244  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
245  { doGetParmValue(idx, instance, value); }
246  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
247  { doGetParmValue(idx, instance, value); }
248  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
249  { doGetParmValue(idx, instance, value); }
250  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
251  { doGetParmValue(idx, instance, value); }
252  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
253  { doGetParmValue(idx, instance, value); }
254  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
255  { doGetParmValue(idx, instance, value); }
256  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
257  { doGetParmValue(idx, instance, value); }
258  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
259  { doGetParmValue(idx, instance, value); }
260  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
261  { doGetParmValue(idx, instance, value); }
262  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
263  { doGetParmValue(idx, instance, value); }
264 
265  template <typename T>
266  void
267  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
268  {
269  if (idx.size() < 1)
270  return;
271  UT_ASSERT(idx.size() == instance.size()+1);
272  if (idx.size() != instance.size()+1)
273  return;
274  switch (idx[0])
275  {
276  case 0:
277  coerceValue(myGroup, ( ( value ) ));
278  break;
279  case 1:
280  coerceValue(myReduction, clampMinValue(0, clampMaxValue(9, value ) ));
281  break;
282  case 2:
283  coerceValue(myPercentile, clampMinValue(0, clampMaxValue(100, value ) ));
284  break;
285  case 3:
286  coerceValue(myScaleby, clampMinValue(0, clampMaxValue(3, value ) ));
287  break;
288  case 4:
289  coerceValue(myResult, clampMinValue(0, clampMaxValue(4, value ) ));
290  break;
291  case 5:
292  coerceValue(myResultattrib, ( ( value ) ));
293  break;
294  case 6:
295  coerceValue(myCreateVarMap, ( ( value ) ));
296  break;
297  case 7:
298  coerceValue(myResultlvar, ( ( value ) ));
299  break;
300 
301  }
302  }
303 
304  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
305  { doSetParmValue(idx, instance, value); }
306  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
307  { doSetParmValue(idx, instance, value); }
308  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
309  { doSetParmValue(idx, instance, value); }
310  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
311  { doSetParmValue(idx, instance, value); }
312  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
313  { doSetParmValue(idx, instance, value); }
314  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
315  { doSetParmValue(idx, instance, value); }
316  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
317  { doSetParmValue(idx, instance, value); }
318  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
319  { doSetParmValue(idx, instance, value); }
320  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
321  { doSetParmValue(idx, instance, value); }
322  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
323  { doSetParmValue(idx, instance, value); }
324  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
325  { doSetParmValue(idx, instance, value); }
326 
327  exint getNestNumParms(TempIndex idx) const override
328  {
329  if (idx.size() == 0)
330  return 8;
331  switch (idx[0])
332  {
333 
334  }
335  // Invalid
336  return 0;
337  }
338 
339  const char *getNestParmName(TempIndex fieldnum) const override
340  {
341  if (fieldnum.size() < 1)
342  return 0;
343  switch (fieldnum[0])
344  {
345  case 0:
346  return "group";
347  case 1:
348  return "reduction";
349  case 2:
350  return "percentile";
351  case 3:
352  return "scaleby";
353  case 4:
354  return "result";
355  case 5:
356  return "resultattrib";
357  case 6:
358  return "createvarmap";
359  case 7:
360  return "resultlvar";
361 
362  }
363  return 0;
364  }
365 
366  ParmType getNestParmType(TempIndex fieldnum) const override
367  {
368  if (fieldnum.size() < 1)
369  return PARM_UNSUPPORTED;
370  switch (fieldnum[0])
371  {
372  case 0:
373  return PARM_STRING;
374  case 1:
375  return PARM_INTEGER;
376  case 2:
377  return PARM_FLOAT;
378  case 3:
379  return PARM_INTEGER;
380  case 4:
381  return PARM_INTEGER;
382  case 5:
383  return PARM_STRING;
384  case 6:
385  return PARM_INTEGER;
386  case 7:
387  return PARM_STRING;
388 
389  }
390  return PARM_UNSUPPORTED;
391  }
392 
393  // Boiler plate to load individual types.
394  static void loadData(UT_IStream &is, int64 &v)
395  { is.bread(&v, 1); }
396  static void loadData(UT_IStream &is, bool &v)
397  { int64 iv; is.bread(&iv, 1); v = iv; }
398  static void loadData(UT_IStream &is, fpreal64 &v)
399  { is.bread<fpreal64>(&v, 1); }
400  static void loadData(UT_IStream &is, UT_Vector2D &v)
401  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
402  static void loadData(UT_IStream &is, UT_Vector3D &v)
403  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
404  is.bread<fpreal64>(&v.z(), 1); }
405  static void loadData(UT_IStream &is, UT_Vector4D &v)
406  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
407  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
408  static void loadData(UT_IStream &is, UT_Matrix2D &v)
409  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
410  static void loadData(UT_IStream &is, UT_Matrix3D &v)
411  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
412  static void loadData(UT_IStream &is, UT_Matrix4D &v)
413  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
414  static void loadData(UT_IStream &is, UT_Vector2I &v)
415  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
416  static void loadData(UT_IStream &is, UT_Vector3I &v)
417  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
418  is.bread<int64>(&v.z(), 1); }
419  static void loadData(UT_IStream &is, UT_Vector4I &v)
420  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
421  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
423  { is.bread(v); }
425  { UT_StringHolder rampdata;
426  loadData(is, rampdata);
427  if (rampdata.isstring())
428  {
429  v.reset(new UT_Ramp());
430  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
431  v->load(istr);
432  }
433  else v.reset();
434  }
437  loadData(is, data);
438  if (data.isstring())
439  {
440  // Find the data type.
441  const char *colon = UT_StringWrap(data).findChar(':');
442  if (colon)
443  {
444  int typelen = colon - data.buffer();
446  type.strncpy(data.buffer(), typelen);
447  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
448 
449  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
450  }
451  }
452  else v.reset();
453  }
454 
455  static void saveData(std::ostream &os, int64 v)
456  { UTwrite(os, &v); }
457  static void saveData(std::ostream &os, bool v)
458  { int64 iv = v; UTwrite(os, &iv); }
459  static void saveData(std::ostream &os, fpreal64 v)
460  { UTwrite<fpreal64>(os, &v); }
461  static void saveData(std::ostream &os, UT_Vector2D v)
462  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
463  static void saveData(std::ostream &os, UT_Vector3D v)
464  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
465  UTwrite<fpreal64>(os, &v.z()); }
466  static void saveData(std::ostream &os, UT_Vector4D v)
467  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
468  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
469  static void saveData(std::ostream &os, UT_Matrix2D v)
471  static void saveData(std::ostream &os, UT_Matrix3D v)
473  static void saveData(std::ostream &os, UT_Matrix4D v)
475  static void saveData(std::ostream &os, UT_StringHolder s)
476  { UT_StringWrap(s).saveBinary(os); }
477  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
479  UT_OStringStream ostr;
480  if (s) s->save(ostr);
481  result = ostr.str();
482  saveData(os, result);
483  }
484  static void saveData(std::ostream &os, PRM_DataItemHandle s)
486  UT_OStringStream ostr;
487  if (s)
488  {
489  ostr << s->getDataTypeToken();
490  ostr << ":";
491  s->saveBinary(ostr);
492  }
493  result = ostr.str();
494  saveData(os, result);
495  }
496 
497 
498  void save(std::ostream &os) const
499  {
500  int32 v = version();
501  UTwrite(os, &v);
502  saveData(os, myGroup);
503  saveData(os, myReduction);
504  saveData(os, myPercentile);
505  saveData(os, myScaleby);
506  saveData(os, myResult);
507  saveData(os, myResultattrib);
508  saveData(os, myCreateVarMap);
509  saveData(os, myResultlvar);
510 
511  }
512 
513  bool load(UT_IStream &is)
514  {
515  int32 v;
516  is.bread(&v, 1);
517  if (version() != v)
518  {
519  // Fail incompatible versions
520  return false;
521  }
522  loadData(is, myGroup);
523  loadData(is, myReduction);
524  loadData(is, myPercentile);
525  loadData(is, myScaleby);
526  loadData(is, myResult);
527  loadData(is, myResultattrib);
528  loadData(is, myCreateVarMap);
529  loadData(is, myResultlvar);
530 
531  return true;
532  }
533 
534  const UT_StringHolder & getGroup() const { return myGroup; }
535  void setGroup(const UT_StringHolder & val) { myGroup = val; }
537  {
538  SOP_Node *thissop = cookparms.getNode();
539  if (!thissop) return getGroup();
541  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
542  return result;
543  }
544  Reduction getReduction() const { return Reduction(myReduction); }
545  void setReduction(Reduction val) { myReduction = int64(val); }
547  {
548  SOP_Node *thissop = cookparms.getNode();
549  if (!thissop) return getReduction();
550  int64 result;
551  OP_Utils::evalOpParm(result, thissop, "reduction", cookparms.getCookTime(), 0);
552  return Reduction(result);
553  }
554  fpreal64 getPercentile() const { return myPercentile; }
555  void setPercentile(fpreal64 val) { myPercentile = val; }
557  {
558  SOP_Node *thissop = cookparms.getNode();
559  if (!thissop) return getPercentile();
561  OP_Utils::evalOpParm(result, thissop, "percentile", cookparms.getCookTime(), 0);
562  return result;
563  }
564  Scaleby getScaleby() const { return Scaleby(myScaleby); }
565  void setScaleby(Scaleby val) { myScaleby = int64(val); }
566  Scaleby opScaleby(const SOP_NodeVerb::CookParms &cookparms) const
567  {
568  SOP_Node *thissop = cookparms.getNode();
569  if (!thissop) return getScaleby();
570  int64 result;
571  OP_Utils::evalOpParm(result, thissop, "scaleby", cookparms.getCookTime(), 0);
572  return Scaleby(result);
573  }
574  Result getResult() const { return Result(myResult); }
575  void setResult(Result val) { myResult = int64(val); }
576  Result opResult(const SOP_NodeVerb::CookParms &cookparms) const
577  {
578  SOP_Node *thissop = cookparms.getNode();
579  if (!thissop) return getResult();
580  int64 result;
581  OP_Utils::evalOpParm(result, thissop, "result", cookparms.getCookTime(), 0);
582  return Result(result);
583  }
584  const UT_StringHolder & getResultattrib() const { return myResultattrib; }
585  void setResultattrib(const UT_StringHolder & val) { myResultattrib = val; }
587  {
588  SOP_Node *thissop = cookparms.getNode();
589  if (!thissop) return getResultattrib();
591  OP_Utils::evalOpParm(result, thissop, "resultattrib", cookparms.getCookTime(), 0);
592  return result;
593  }
594  bool getCreateVarMap() const { return myCreateVarMap; }
595  void setCreateVarMap(bool val) { myCreateVarMap = val; }
596  bool opCreateVarMap(const SOP_NodeVerb::CookParms &cookparms) const
597  {
598  SOP_Node *thissop = cookparms.getNode();
599  if (!thissop) return getCreateVarMap();
600  bool result;
601  OP_Utils::evalOpParm(result, thissop, "createvarmap", cookparms.getCookTime(), 0);
602  return result;
603  }
604  const UT_StringHolder & getResultlvar() const { return myResultlvar; }
605  void setResultlvar(const UT_StringHolder & val) { myResultlvar = val; }
607  {
608  SOP_Node *thissop = cookparms.getNode();
609  if (!thissop) return getResultlvar();
611  OP_Utils::evalOpParm(result, thissop, "resultlvar", cookparms.getCookTime(), 0);
612  return result;
613  }
614 
615 private:
616  UT_StringHolder myGroup;
617  int64 myReduction;
618  fpreal64 myPercentile;
619  int64 myScaleby;
620  int64 myResult;
621  UT_StringHolder myResultattrib;
622  bool myCreateVarMap;
623  UT_StringHolder myResultlvar;
624 
625 };
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool operator==(const SOP_VolumeReduceParms &src) const
static void saveData(std::ostream &os, UT_Vector2D v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
static void loadData(UT_IStream &is, UT_Vector3I &v)
const char * getNestParmName(TempIndex fieldnum) const override
const UT_StringHolder & getGroup() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setReduction(Reduction val)
const UT_StringHolder & getResultattrib() const
UT_StringHolder opResultattrib(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void saveData(std::ostream &os, bool v)
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
const UT_StringHolder & getResultlvar() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
An output stream object that owns its own string buffer storage.
void copyFrom(const OP_NodeParms *src) override
**But if you need a result
Definition: thread.h:613
static void saveData(std::ostream &os, UT_StringHolder s)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool opCreateVarMap(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool load(UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
bool operator!=(const SOP_VolumeReduceParms &src) const
double fpreal64
Definition: SYS_Types.h:201
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
SYS_FORCE_INLINE UT_StringHolder getToken(Reduction enum_value)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void saveData(std::ostream &os, UT_Matrix3D v)
exint length() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
UT_StringHolder opResultlvar(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
fpreal64 opPercentile(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
static void saveData(std::ostream &os, int64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void save(std::ostream &os) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
Reduction getReduction() const
long long int64
Definition: SYS_Types.h:116
ParmType getNestParmType(TempIndex fieldnum) const override
Reduction opReduction(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
GT_API const UT_StringHolder version
static void saveData(std::ostream &os, UT_Vector4D v)
Scaleby opScaleby(const SOP_NodeVerb::CookParms &cookparms) const
void setPercentile(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector3D v)
bool isParmColorRamp(exint idx) const override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, int64 &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 fpreal
Definition: SYS_Types.h:277
static void saveData(std::ostream &os, PRM_DataItemHandle s)
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:92
exint getNestNumParms(TempIndex idx) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define SOP_API
Definition: SOP_API.h:10
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
void setResultlvar(const UT_StringHolder &val)
const char * findChar(int c) const
Definition: UT_String.h:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal64 getPercentile() const
void setGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
GLboolean r
Definition: glcorearb.h:1222
static void loadData(UT_IStream &is, UT_Vector2D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
type
Definition: core.h:1059
static void saveData(std::ostream &os, UT_Matrix2D v)
void loadFromOpSubclass(const LoadParms &loadparms) override
void setResultattrib(const UT_StringHolder &val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, fpreal64 &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, bool &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
Result opResult(const SOP_NodeVerb::CookParms &cookparms) const