HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_MLExampleSerializePacked.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 <OP/OP_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_MLExampleSerializePackedEnums
24 {
25  enum class OutputMode
26  {
27  GEOMETRY = 0,
28  FILE
29  };
30 
32  getToken(OutputMode enum_value)
33  {
34  using namespace UT::Literal;
35  switch (enum_value) {
36  case OutputMode::GEOMETRY: return "geometry"_sh;
37  case OutputMode::FILE: return "file"_sh;
38  default: UT_ASSERT(false); return ""_sh;
39  }
40  }
41 
42  enum class InputType
43  {
44  POINT = 0,
45  VOLUME
46  };
47 
49  getToken(InputType enum_value)
50  {
51  using namespace UT::Literal;
52  switch (enum_value) {
53  case InputType::POINT: return "point"_sh;
54  case InputType::VOLUME: return "volume"_sh;
55  default: UT_ASSERT(false); return ""_sh;
56  }
57  }
58 
59  enum class TargetType
60  {
61  POINT = 0,
62  VOLUME
63  };
64 
66  getToken(TargetType enum_value)
67  {
68  using namespace UT::Literal;
69  switch (enum_value) {
70  case TargetType::POINT: return "point"_sh;
71  case TargetType::VOLUME: return "volume"_sh;
72  default: UT_ASSERT(false); return ""_sh;
73  }
74  }
75 
77  {
78  FLAT = 0,
80  };
81 
84  {
85  using namespace UT::Literal;
86  switch (enum_value) {
87  case ComponentLayoutEncoding::FLAT: return "flat"_sh;
88  case ComponentLayoutEncoding::STRUCTURED: return "structured"_sh;
89  default: UT_ASSERT(false); return ""_sh;
90  }
91  }
92 
93 }
94 
95 
97 {
98 public:
99  static int version() { return 1; }
100  struct Inputs
101  {
105 
106 
108  {
109  inputtype = 0;
110  inputpointattribute = "value"_UTsh;
111  inputvolumename = "density"_UTsh;
112 
113  }
114 
115  bool operator==(const Inputs &src) const
116  {
117  if (inputtype != src.inputtype) return false;
118  if (inputpointattribute != src.inputpointattribute) return false;
119  if (inputvolumename != src.inputvolumename) return false;
120 
121  return true;
122  }
123  bool operator!=(const Inputs &src) const
124  {
125  return !operator==(src);
126  }
127 
128  };
129 
131  {
133 
134  buf.strcat("[ ");
135  for (int i = 0; i < list.entries(); i++)
136  {
137  if (i)
138  buf.strcat(", ");
139  buf.strcat("( ");
140  buf.append("");
141  buf.appendSprintf("%d", (int) list(i).inputtype);
142  buf.append(", ");
143  { UT_String tmp; tmp = UT_StringWrap(list(i).inputpointattribute).makeQuotedString('"'); buf.strcat(tmp); }
144  buf.append(", ");
145  { UT_String tmp; tmp = UT_StringWrap(list(i).inputvolumename).makeQuotedString('"'); buf.strcat(tmp); }
146 
147  buf.strcat(" )");
148  }
149  buf.strcat(" ]");
150 
152  return result;
153  }
154  struct Targets
155  {
159 
160 
162  {
163  targettype = 0;
164  targetpointattribute = "value"_UTsh;
165  targetvolumename = "density"_UTsh;
166 
167  }
168 
169  bool operator==(const Targets &src) const
170  {
171  if (targettype != src.targettype) return false;
172  if (targetpointattribute != src.targetpointattribute) return false;
173  if (targetvolumename != src.targetvolumename) return false;
174 
175  return true;
176  }
177  bool operator!=(const Targets &src) const
178  {
179  return !operator==(src);
180  }
181 
182  };
183 
185  {
187 
188  buf.strcat("[ ");
189  for (int i = 0; i < list.entries(); i++)
190  {
191  if (i)
192  buf.strcat(", ");
193  buf.strcat("( ");
194  buf.append("");
195  buf.appendSprintf("%d", (int) list(i).targettype);
196  buf.append(", ");
197  { UT_String tmp; tmp = UT_StringWrap(list(i).targetpointattribute).makeQuotedString('"'); buf.strcat(tmp); }
198  buf.append(", ");
199  { UT_String tmp; tmp = UT_StringWrap(list(i).targetvolumename).makeQuotedString('"'); buf.strcat(tmp); }
200 
201  buf.strcat(" )");
202  }
203  buf.strcat(" ]");
204 
206  return result;
207  }
208 
210  {
211  myOutputMode = 0;
212  myInputDimensionAttribute = "inputdimension"_UTsh;
213  myTargetDimensionAttribute = "targetdimension"_UTsh;
214  mySerialAttribute = "value"_UTsh;
215  myOutputFile = "$HIP/ml/data_set/data_set.raw"_UTsh;
216  raw_myOutputFile = "$HIP/ml/data_set/data_set.raw"_UTsh;
217  myInputs.setSize(1);
218  myTargets.setSize(1);
219  myComponentLayoutEncoding = 0;
220 
221  }
222 
227 
229 
231  {
232  if (myOutputMode != src.myOutputMode) return false;
233  if (myInputDimensionAttribute != src.myInputDimensionAttribute) return false;
234  if (myTargetDimensionAttribute != src.myTargetDimensionAttribute) return false;
235  if (mySerialAttribute != src.mySerialAttribute) return false;
236  if (myOutputFile != src.myOutputFile) return false;
237  if (raw_myOutputFile != src.raw_myOutputFile) return false;
238  if (myInputs != src.myInputs) return false;
239  if (myTargets != src.myTargets) return false;
240  if (myComponentLayoutEncoding != src.myComponentLayoutEncoding) return false;
241 
242 
243  if (baseGetSignature() != src.baseGetSignature()) return false;
244 
245  return true;
246  }
248  {
249  return !operator==(src);
250  }
255 
256 
257 
258  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
259  {
260  myOutputMode = 0;
261  if (true)
262  graph->evalOpParm(myOutputMode, nodeidx, "outputmode", time, graph->isDirect()?nullptr:depnode);
263  myInputDimensionAttribute = "inputdimension"_UTsh;
264  if (true && ( (true&&!(((int64(getOutputMode())!=0)))) ) )
265  graph->evalOpParm(myInputDimensionAttribute, nodeidx, "inputdimensionattribute", time, graph->isDirect()?nullptr:depnode);
266  myTargetDimensionAttribute = "targetdimension"_UTsh;
267  if (true && ( (true&&!(((int64(getOutputMode())!=0)))) ) )
268  graph->evalOpParm(myTargetDimensionAttribute, nodeidx, "targetdimensionattribute", time, graph->isDirect()?nullptr:depnode);
269  mySerialAttribute = "value"_UTsh;
270  if (true && ( (true&&!(((int64(getOutputMode())!=0)))) ) )
271  graph->evalOpParm(mySerialAttribute, nodeidx, "serialattribute", time, graph->isDirect()?nullptr:depnode);
272  myOutputFile = "$HIP/ml/data_set/data_set.raw"_UTsh;
273  if (true && ( (true&&!(((int64(getOutputMode())!=1)))) ) )
274  graph->evalOpParm(myOutputFile, nodeidx, "sopoutput", time, graph->isDirect()?nullptr:depnode);
275  raw_myOutputFile = "$HIP/ml/data_set/data_set.raw"_UTsh;
276  if (true && ( (true&&!(((int64(getOutputMode())!=1)))) ) )
277  graph->evalOpParmRaw(raw_myOutputFile, nodeidx, "sopoutput", time, graph->isDirect()?nullptr:depnode);
278  if (true)
279  {
280  int64 length = 0;
281  graph->evalOpParm(length, nodeidx, "inputs", time, graph->isDirect()?nullptr:depnode);
282  if (length < 0) length = 0;
283  myInputs.setSize(length);
284  for (exint i = 0; i < length; i++)
285  {
286  int parmidx[1];
287  int offsets[1];
288  parmidx[0] = i+1;
289  offsets[0] = 1;
290  auto && _curentry = myInputs(i);
291  (void) _curentry;
292  _curentry.inputtype = 0;
293  if (true)
294  graph->evalOpParmInst(_curentry.inputtype, nodeidx, "inputtype#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
295  _curentry.inputpointattribute = "value"_UTsh;
296  if (true && ( (true&&!(((_curentry.inputtype!=0)))) ) )
297  graph->evalOpParmInst(_curentry.inputpointattribute, nodeidx, "inputpointattribute#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
298  _curentry.inputvolumename = "density"_UTsh;
299  if (true && ( (true&&!(((_curentry.inputtype!=1)))) ) )
300  graph->evalOpParmInst(_curentry.inputvolumename, nodeidx, "inputvolumename#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
301 
302  }
303  }
304  else
305  myInputs.clear();
306  if (true)
307  {
308  int64 length = 0;
309  graph->evalOpParm(length, nodeidx, "targets", time, graph->isDirect()?nullptr:depnode);
310  if (length < 0) length = 0;
311  myTargets.setSize(length);
312  for (exint i = 0; i < length; i++)
313  {
314  int parmidx[1];
315  int offsets[1];
316  parmidx[0] = i+1;
317  offsets[0] = 1;
318  auto && _curentry = myTargets(i);
319  (void) _curentry;
320  _curentry.targettype = 0;
321  if (true)
322  graph->evalOpParmInst(_curentry.targettype, nodeidx, "targettype#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
323  _curentry.targetpointattribute = "value"_UTsh;
324  if (true && ( (true&&!(((_curentry.targettype!=0)))) ) )
325  graph->evalOpParmInst(_curentry.targetpointattribute, nodeidx, "targetpointattribute#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
326  _curentry.targetvolumename = "density"_UTsh;
327  if (true && ( (true&&!(((_curentry.targettype!=1)))) ) )
328  graph->evalOpParmInst(_curentry.targetvolumename, nodeidx, "targetvolumename#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
329 
330  }
331  }
332  else
333  myTargets.clear();
334  myComponentLayoutEncoding = 0;
335  if (true)
336  graph->evalOpParm(myComponentLayoutEncoding, nodeidx, "componentlayoutencoding", time, graph->isDirect()?nullptr:depnode);
337 
338  }
339 
340 
341  void loadFromOpSubclass(const LoadParms &loadparms) override
342  {
343  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
344  }
345 
346 
347  void copyFrom(const OP_NodeParms *src) override
348  {
349  *this = *((const SOP_MLExampleSerializePackedParms *)src);
350  }
351 
352  template <typename T>
353  void
354  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
355  {
356  if (idx.size() < 1)
357  return;
358  UT_ASSERT(idx.size() == instance.size()+1);
359  if (idx.size() != instance.size()+1)
360  return;
361  switch (idx[0])
362  {
363  case 0:
364  coerceValue(value, myOutputMode);
365  break;
366  case 1:
367  coerceValue(value, myInputDimensionAttribute);
368  break;
369  case 2:
370  coerceValue(value, myTargetDimensionAttribute);
371  break;
372  case 3:
373  coerceValue(value, mySerialAttribute);
374  break;
375  case 4:
376  coerceValue(value, myOutputFile);
377  break;
378  case 5:
379  if (idx.size() == 1)
380  coerceValue(value, myInputs.entries());
381  else if (instance[0] < myInputs.entries())
382  {
383  auto && _data = myInputs(instance[0]);
384  switch (idx[1])
385  {
386  case 0:
387  coerceValue(value, _data.inputtype);
388  break;
389  case 1:
390  coerceValue(value, _data.inputpointattribute);
391  break;
392  case 2:
393  coerceValue(value, _data.inputvolumename);
394  break;
395 
396  }
397  }
398  break;
399  case 6:
400  if (idx.size() == 1)
401  coerceValue(value, myTargets.entries());
402  else if (instance[0] < myTargets.entries())
403  {
404  auto && _data = myTargets(instance[0]);
405  switch (idx[1])
406  {
407  case 0:
408  coerceValue(value, _data.targettype);
409  break;
410  case 1:
411  coerceValue(value, _data.targetpointattribute);
412  break;
413  case 2:
414  coerceValue(value, _data.targetvolumename);
415  break;
416 
417  }
418  }
419  break;
420  case 7:
421  coerceValue(value, myComponentLayoutEncoding);
422  break;
423 
424  }
425  }
426 
427  bool isParmColorRamp(exint idx) const override
428  {
429  switch (idx)
430  {
431 
432  }
433  return false;
434  }
435 
436  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
437  { doGetParmValue(idx, instance, value); }
438  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
439  { doGetParmValue(idx, instance, value); }
440  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
441  { doGetParmValue(idx, instance, value); }
442  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
443  { doGetParmValue(idx, instance, value); }
444  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
445  { doGetParmValue(idx, instance, value); }
446  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
447  { doGetParmValue(idx, instance, value); }
448  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
449  { doGetParmValue(idx, instance, value); }
450  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
451  { doGetParmValue(idx, instance, value); }
452  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
453  { doGetParmValue(idx, instance, value); }
454  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
455  { doGetParmValue(idx, instance, value); }
456  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
457  { doGetParmValue(idx, instance, value); }
458 
459  template <typename T>
460  void
461  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
462  {
463  if (idx.size() < 1)
464  return;
465  UT_ASSERT(idx.size() == instance.size()+1);
466  if (idx.size() != instance.size()+1)
467  return;
468  switch (idx[0])
469  {
470  case 0:
471  coerceValue(myOutputMode, clampMinValue(0, clampMaxValue(1, value ) ));
472  break;
473  case 1:
474  coerceValue(myInputDimensionAttribute, ( ( value ) ));
475  break;
476  case 2:
477  coerceValue(myTargetDimensionAttribute, ( ( value ) ));
478  break;
479  case 3:
480  coerceValue(mySerialAttribute, ( ( value ) ));
481  break;
482  case 4:
483  coerceValue(myOutputFile, ( ( value ) ));
484  break;
485  case 5:
486  if (idx.size() == 1)
487  {
488  exint newsize;
489  coerceValue(newsize, value);
490  if (newsize < 0) newsize = 0;
491  myInputs.setSize(newsize);
492  }
493  else
494  {
495  if (instance[0] < 0)
496  return;
497  myInputs.setSizeIfNeeded(instance[0]+1);
498  auto && _data = myInputs(instance[0]);
499  switch (idx[1])
500  {
501  case 0:
502  coerceValue(_data.inputtype, value);
503  break;
504  case 1:
505  coerceValue(_data.inputpointattribute, value);
506  break;
507  case 2:
508  coerceValue(_data.inputvolumename, value);
509  break;
510 
511  }
512  }
513  break;
514  case 6:
515  if (idx.size() == 1)
516  {
517  exint newsize;
518  coerceValue(newsize, value);
519  if (newsize < 0) newsize = 0;
520  myTargets.setSize(newsize);
521  }
522  else
523  {
524  if (instance[0] < 0)
525  return;
526  myTargets.setSizeIfNeeded(instance[0]+1);
527  auto && _data = myTargets(instance[0]);
528  switch (idx[1])
529  {
530  case 0:
531  coerceValue(_data.targettype, value);
532  break;
533  case 1:
534  coerceValue(_data.targetpointattribute, value);
535  break;
536  case 2:
537  coerceValue(_data.targetvolumename, value);
538  break;
539 
540  }
541  }
542  break;
543  case 7:
544  coerceValue(myComponentLayoutEncoding, clampMinValue(0, clampMaxValue(1, value ) ));
545  break;
546 
547  }
548  }
549 
550  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
551  { doSetParmValue(idx, instance, value); }
552  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
553  { doSetParmValue(idx, instance, value); }
554  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
555  { doSetParmValue(idx, instance, value); }
556  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
557  { doSetParmValue(idx, instance, value); }
558  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
559  { doSetParmValue(idx, instance, value); }
560  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
561  { doSetParmValue(idx, instance, value); }
562  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
563  { doSetParmValue(idx, instance, value); }
564  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
565  { doSetParmValue(idx, instance, value); }
566  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
567  { doSetParmValue(idx, instance, value); }
568  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
569  { doSetParmValue(idx, instance, value); }
570  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
571  { doSetParmValue(idx, instance, value); }
572 
573  exint getNestNumParms(TempIndex idx) const override
574  {
575  if (idx.size() == 0)
576  return 8;
577  switch (idx[0])
578  {
579  case 5:
580  return 3;
581  case 6:
582  return 3;
583 
584  }
585  // Invalid
586  return 0;
587  }
588 
589  const char *getNestParmName(TempIndex fieldnum) const override
590  {
591  if (fieldnum.size() < 1)
592  return 0;
593  switch (fieldnum[0])
594  {
595  case 0:
596  return "outputmode";
597  case 1:
598  return "inputdimensionattribute";
599  case 2:
600  return "targetdimensionattribute";
601  case 3:
602  return "serialattribute";
603  case 4:
604  return "sopoutput";
605  case 5:
606  if (fieldnum.size() == 1)
607  return "inputs";
608  switch (fieldnum[1])
609  {
610  case 0:
611  return "inputtype#";
612  case 1:
613  return "inputpointattribute#";
614  case 2:
615  return "inputvolumename#";
616 
617  }
618  return 0;
619  case 6:
620  if (fieldnum.size() == 1)
621  return "targets";
622  switch (fieldnum[1])
623  {
624  case 0:
625  return "targettype#";
626  case 1:
627  return "targetpointattribute#";
628  case 2:
629  return "targetvolumename#";
630 
631  }
632  return 0;
633  case 7:
634  return "componentlayoutencoding";
635 
636  }
637  return 0;
638  }
639 
640  ParmType getNestParmType(TempIndex fieldnum) const override
641  {
642  if (fieldnum.size() < 1)
643  return PARM_UNSUPPORTED;
644  switch (fieldnum[0])
645  {
646  case 0:
647  return PARM_INTEGER;
648  case 1:
649  return PARM_STRING;
650  case 2:
651  return PARM_STRING;
652  case 3:
653  return PARM_STRING;
654  case 4:
655  return PARM_STRING;
656  case 5:
657  if (fieldnum.size() == 1)
658  return PARM_MULTIPARM;
659  switch (fieldnum[1])
660  {
661  case 0:
662  return PARM_INTEGER;
663  case 1:
664  return PARM_STRING;
665  case 2:
666  return PARM_STRING;
667 
668  }
669  return PARM_UNSUPPORTED;
670  case 6:
671  if (fieldnum.size() == 1)
672  return PARM_MULTIPARM;
673  switch (fieldnum[1])
674  {
675  case 0:
676  return PARM_INTEGER;
677  case 1:
678  return PARM_STRING;
679  case 2:
680  return PARM_STRING;
681 
682  }
683  return PARM_UNSUPPORTED;
684  case 7:
685  return PARM_INTEGER;
686 
687  }
688  return PARM_UNSUPPORTED;
689  }
690 
691  // Boiler plate to load individual types.
692  static void loadData(UT_IStream &is, int64 &v)
693  { is.bread(&v, 1); }
694  static void loadData(UT_IStream &is, bool &v)
695  { int64 iv; is.bread(&iv, 1); v = iv; }
696  static void loadData(UT_IStream &is, fpreal64 &v)
697  { is.bread<fpreal64>(&v, 1); }
698  static void loadData(UT_IStream &is, UT_Vector2D &v)
699  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
700  static void loadData(UT_IStream &is, UT_Vector3D &v)
701  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
702  is.bread<fpreal64>(&v.z(), 1); }
703  static void loadData(UT_IStream &is, UT_Vector4D &v)
704  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
705  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
706  static void loadData(UT_IStream &is, UT_Matrix2D &v)
707  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
708  static void loadData(UT_IStream &is, UT_Matrix3D &v)
709  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
710  static void loadData(UT_IStream &is, UT_Matrix4D &v)
711  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
712  static void loadData(UT_IStream &is, UT_Vector2I &v)
713  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
714  static void loadData(UT_IStream &is, UT_Vector3I &v)
715  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
716  is.bread<int64>(&v.z(), 1); }
717  static void loadData(UT_IStream &is, UT_Vector4I &v)
718  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
719  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
721  { is.bread(v); }
723  { UT_StringHolder rampdata;
724  loadData(is, rampdata);
725  if (rampdata.isstring())
726  {
727  v.reset(new UT_Ramp());
728  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
729  v->load(istr);
730  }
731  else v.reset();
732  }
735  loadData(is, data);
736  if (data.isstring())
737  {
738  // Find the data type.
739  const char *colon = UT_StringWrap(data).findChar(':');
740  if (colon)
741  {
742  int typelen = colon - data.buffer();
744  type.strncpy(data.buffer(), typelen);
745  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
746 
747  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
748  }
749  }
750  else v.reset();
751  }
752 
753  static void saveData(std::ostream &os, int64 v)
754  { UTwrite(os, &v); }
755  static void saveData(std::ostream &os, bool v)
756  { int64 iv = v; UTwrite(os, &iv); }
757  static void saveData(std::ostream &os, fpreal64 v)
758  { UTwrite<fpreal64>(os, &v); }
759  static void saveData(std::ostream &os, UT_Vector2D v)
760  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
761  static void saveData(std::ostream &os, UT_Vector3D v)
762  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
763  UTwrite<fpreal64>(os, &v.z()); }
764  static void saveData(std::ostream &os, UT_Vector4D v)
765  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
766  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
767  static void saveData(std::ostream &os, UT_Matrix2D v)
769  static void saveData(std::ostream &os, UT_Matrix3D v)
771  static void saveData(std::ostream &os, UT_Matrix4D v)
773  static void saveData(std::ostream &os, UT_StringHolder s)
774  { UT_StringWrap(s).saveBinary(os); }
775  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
777  UT_OStringStream ostr;
778  if (s) s->save(ostr);
779  result = ostr.str();
780  saveData(os, result);
781  }
782  static void saveData(std::ostream &os, PRM_DataItemHandle s)
784  UT_OStringStream ostr;
785  if (s)
786  {
787  ostr << s->getDataTypeToken();
788  ostr << ":";
789  s->saveBinary(ostr);
790  }
791  result = ostr.str();
792  saveData(os, result);
793  }
794 
795 
796  void save(std::ostream &os) const
797  {
798  int32 v = version();
799  UTwrite(os, &v);
800  saveData(os, myOutputMode);
801  saveData(os, myInputDimensionAttribute);
802  saveData(os, myTargetDimensionAttribute);
803  saveData(os, mySerialAttribute);
804  saveData(os, myOutputFile);
805  saveData(os, raw_myOutputFile);
806  {
807  int64 length = myInputs.entries();
808  UTwrite(os, &length);
809  for (exint i = 0; i < length; i++)
810  {
811  auto && _curentry = myInputs(i);
812  (void) _curentry;
813  saveData(os, _curentry.inputtype);
814  saveData(os, _curentry.inputpointattribute);
815  saveData(os, _curentry.inputvolumename);
816 
817  }
818  }
819  {
820  int64 length = myTargets.entries();
821  UTwrite(os, &length);
822  for (exint i = 0; i < length; i++)
823  {
824  auto && _curentry = myTargets(i);
825  (void) _curentry;
826  saveData(os, _curentry.targettype);
827  saveData(os, _curentry.targetpointattribute);
828  saveData(os, _curentry.targetvolumename);
829 
830  }
831  }
832  saveData(os, myComponentLayoutEncoding);
833 
834  }
835 
836  bool load(UT_IStream &is)
837  {
838  int32 v;
839  is.bread(&v, 1);
840  if (version() != v)
841  {
842  // Fail incompatible versions
843  return false;
844  }
845  loadData(is, myOutputMode);
846  loadData(is, myInputDimensionAttribute);
847  loadData(is, myTargetDimensionAttribute);
848  loadData(is, mySerialAttribute);
849  loadData(is, myOutputFile);
850  loadData(is, raw_myOutputFile);
851  {
852  int64 length;
853  is.read(&length, 1);
854  myInputs.setSize(length);
855  for (exint i = 0; i < length; i++)
856  {
857  auto && _curentry = myInputs(i);
858  (void) _curentry;
859  loadData(is, _curentry.inputtype);
860  loadData(is, _curentry.inputpointattribute);
861  loadData(is, _curentry.inputvolumename);
862 
863  }
864  }
865  {
866  int64 length;
867  is.read(&length, 1);
868  myTargets.setSize(length);
869  for (exint i = 0; i < length; i++)
870  {
871  auto && _curentry = myTargets(i);
872  (void) _curentry;
873  loadData(is, _curentry.targettype);
874  loadData(is, _curentry.targetpointattribute);
875  loadData(is, _curentry.targetvolumename);
876 
877  }
878  }
879  loadData(is, myComponentLayoutEncoding);
880 
881  return true;
882  }
883 
884  OutputMode getOutputMode() const { return OutputMode(myOutputMode); }
885  void setOutputMode(OutputMode val) { myOutputMode = int64(val); }
887  {
888  SOP_Node *thissop = cookparms.getNode();
889  if (!thissop) return getOutputMode();
890  int64 result;
891  OP_Utils::evalOpParm(result, thissop, "outputmode", cookparms.getCookTime(), 0);
892  return OutputMode(result);
893  }
894  const UT_StringHolder & getInputDimensionAttribute() const { return myInputDimensionAttribute; }
895  void setInputDimensionAttribute(const UT_StringHolder & val) { myInputDimensionAttribute = val; }
897  {
898  SOP_Node *thissop = cookparms.getNode();
899  if (!thissop) return getInputDimensionAttribute();
901  OP_Utils::evalOpParm(result, thissop, "inputdimensionattribute", cookparms.getCookTime(), 0);
902  return result;
903  }
904  const UT_StringHolder & getTargetDimensionAttribute() const { return myTargetDimensionAttribute; }
905  void setTargetDimensionAttribute(const UT_StringHolder & val) { myTargetDimensionAttribute = val; }
907  {
908  SOP_Node *thissop = cookparms.getNode();
909  if (!thissop) return getTargetDimensionAttribute();
911  OP_Utils::evalOpParm(result, thissop, "targetdimensionattribute", cookparms.getCookTime(), 0);
912  return result;
913  }
914  const UT_StringHolder & getSerialAttribute() const { return mySerialAttribute; }
915  void setSerialAttribute(const UT_StringHolder & val) { mySerialAttribute = val; }
917  {
918  SOP_Node *thissop = cookparms.getNode();
919  if (!thissop) return getSerialAttribute();
921  OP_Utils::evalOpParm(result, thissop, "serialattribute", cookparms.getCookTime(), 0);
922  return result;
923  }
924  const UT_StringHolder & getOutputFile() const { return myOutputFile; }
925  void setOutputFile(const UT_StringHolder & val) { myOutputFile = val; }
927  {
928  SOP_Node *thissop = cookparms.getNode();
929  if (!thissop) return getOutputFile();
931  OP_Utils::evalOpParm(result, thissop, "sopoutput", cookparms.getCookTime(), 0);
932  return result;
933  }
934  const UT_StringHolder & raw_getOutputFile() const { return raw_myOutputFile; }
935  void raw_setOutputFile(const UT_StringHolder & val) { raw_myOutputFile = val; }
937  {
938  SOP_Node *thissop = cookparms.getNode();
939  if (!thissop) return raw_getOutputFile();
941  OP_Utils::evalOpParmRaw(result, thissop, "sopoutput", cookparms.getCookTime(), 0);
942  return result;
943  }
944  const UT_Array<Inputs> &getInputs() const { return myInputs; }
945 void setInputs(const UT_Array<Inputs> &val) { myInputs = val; }
946  exint opInputs(const SOP_NodeVerb::CookParms &cookparms) const
947  {
948  SOP_Node *thissop = cookparms.getNode();
949  if (!thissop) return getInputs().entries();
950  exint result;
951  OP_Utils::evalOpParm(result, thissop, "inputs", cookparms.getCookTime(), 0);
952  return result;
953  }
954  int64 opInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
955  { return opinstInputs_inputtype(cookparms, &_idx); }
956  int64 opinstInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
957  {
958  SOP_Node *thissop = cookparms.getNode();
959  if (!thissop) return (myInputs(_idx[0]).inputtype);
960  int _parmidx[2-1];
961  _parmidx[1-1] = _idx[1-1] + 1;
962 
963  int64 result;
964  OP_Utils::evalOpParmInst(result, thissop, "inputtype#", _parmidx, cookparms.getCookTime(), 0, 2-1);
965  return (result);
966  }
968  { return opinstInputs_inputpointattribute(cookparms, &_idx); }
970  {
971  SOP_Node *thissop = cookparms.getNode();
972  if (!thissop) return (myInputs(_idx[0]).inputpointattribute);
973  int _parmidx[2-1];
974  _parmidx[1-1] = _idx[1-1] + 1;
975 
977  OP_Utils::evalOpParmInst(result, thissop, "inputpointattribute#", _parmidx, cookparms.getCookTime(), 0, 2-1);
978  return (result);
979  }
981  { return opinstInputs_inputvolumename(cookparms, &_idx); }
983  {
984  SOP_Node *thissop = cookparms.getNode();
985  if (!thissop) return (myInputs(_idx[0]).inputvolumename);
986  int _parmidx[2-1];
987  _parmidx[1-1] = _idx[1-1] + 1;
988 
990  OP_Utils::evalOpParmInst(result, thissop, "inputvolumename#", _parmidx, cookparms.getCookTime(), 0, 2-1);
991  return (result);
992  }
993 
994  const UT_Array<Targets> &getTargets() const { return myTargets; }
995 void setTargets(const UT_Array<Targets> &val) { myTargets = val; }
996  exint opTargets(const SOP_NodeVerb::CookParms &cookparms) const
997  {
998  SOP_Node *thissop = cookparms.getNode();
999  if (!thissop) return getTargets().entries();
1000  exint result;
1001  OP_Utils::evalOpParm(result, thissop, "targets", cookparms.getCookTime(), 0);
1002  return result;
1003  }
1004  int64 opTargets_targettype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1005  { return opinstTargets_targettype(cookparms, &_idx); }
1006  int64 opinstTargets_targettype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1007  {
1008  SOP_Node *thissop = cookparms.getNode();
1009  if (!thissop) return (myTargets(_idx[0]).targettype);
1010  int _parmidx[2-1];
1011  _parmidx[1-1] = _idx[1-1] + 1;
1012 
1013  int64 result;
1014  OP_Utils::evalOpParmInst(result, thissop, "targettype#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1015  return (result);
1016  }
1018  { return opinstTargets_targetpointattribute(cookparms, &_idx); }
1020  {
1021  SOP_Node *thissop = cookparms.getNode();
1022  if (!thissop) return (myTargets(_idx[0]).targetpointattribute);
1023  int _parmidx[2-1];
1024  _parmidx[1-1] = _idx[1-1] + 1;
1025 
1027  OP_Utils::evalOpParmInst(result, thissop, "targetpointattribute#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1028  return (result);
1029  }
1031  { return opinstTargets_targetvolumename(cookparms, &_idx); }
1033  {
1034  SOP_Node *thissop = cookparms.getNode();
1035  if (!thissop) return (myTargets(_idx[0]).targetvolumename);
1036  int _parmidx[2-1];
1037  _parmidx[1-1] = _idx[1-1] + 1;
1038 
1040  OP_Utils::evalOpParmInst(result, thissop, "targetvolumename#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1041  return (result);
1042  }
1043 
1044  ComponentLayoutEncoding getComponentLayoutEncoding() const { return ComponentLayoutEncoding(myComponentLayoutEncoding); }
1045  void setComponentLayoutEncoding(ComponentLayoutEncoding val) { myComponentLayoutEncoding = int64(val); }
1047  {
1048  SOP_Node *thissop = cookparms.getNode();
1049  if (!thissop) return getComponentLayoutEncoding();
1050  int64 result;
1051  OP_Utils::evalOpParm(result, thissop, "componentlayoutencoding", cookparms.getCookTime(), 0);
1052  return ComponentLayoutEncoding(result);
1053  }
1054 
1055 private:
1056  int64 myOutputMode;
1057  UT_StringHolder myInputDimensionAttribute;
1058  UT_StringHolder myTargetDimensionAttribute;
1059  UT_StringHolder mySerialAttribute;
1060  UT_StringHolder myOutputFile;
1061  UT_StringHolder raw_myOutputFile;
1062  UT_Array<Inputs> myInputs;
1063  UT_Array<Targets> myTargets;
1064  int64 myComponentLayoutEncoding;
1065 
1066 };
type
Definition: core.h:556
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2540
ComponentLayoutEncoding getComponentLayoutEncoding() const
void loadFromOpSubclass(const LoadParms &loadparms) override
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
UT_StringHolder opinstTargets_targetpointattribute(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, fpreal64 &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void
Definition: png.h:1083
UT_StringHolder opSerialAttribute(const SOP_NodeVerb::CookParms &cookparms) const
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
void setTargetDimensionAttribute(const UT_StringHolder &val)
fpreal getTime() const
Definition: OP_Context.h:63
GLsizei const GLfloat * value
Definition: glcorearb.h:824
UT_StringHolder opInputDimensionAttribute(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
UT_StringHolder opOutputFile(const SOP_NodeVerb::CookParms &cookparms) const
void setSerialAttribute(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
virtual void evalOpParmRaw(UT_StringHolder &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
static void saveData(std::ostream &os, PRM_DataItemHandle s)
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:622
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
static void saveData(std::ostream &os, bool v)
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.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
ComponentLayoutEncoding opComponentLayoutEncoding(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glcorearb.h:2621
UT_StringHolder opInputs_inputvolumename(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
double fpreal64
Definition: SYS_Types.h:201
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
const UT_StringHolder & getTargetDimensionAttribute() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
static void loadData(UT_IStream &is, bool &v)
UT_StringHolder opinstInputs_inputvolumename(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
OutputMode opOutputMode(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_MLExampleSerializePackedParms &src) const
void setInputs(const UT_Array< Inputs > &val)
ParmType getNestParmType(TempIndex fieldnum) const override
exint length() const
UT_StringHolder opTargets_targetvolumename(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
int64 opinstTargets_targettype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
UT_StringHolder opinstInputs_inputpointattribute(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:276
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
exint opTargets(const SOP_NodeVerb::CookParms &cookparms) const
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void raw_setOutputFile(const UT_StringHolder &val)
UT_StringHolder opInputs_inputpointattribute(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opTargets_targetpointattribute(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const UT_StringHolder & getInputDimensionAttribute() const
static void saveData(std::ostream &os, int64 v)
static void saveData(std::ostream &os, UT_Vector3D v)
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
long long int64
Definition: SYS_Types.h:116
UT_StringHolder createString(const UT_Array< Inputs > &list) const
const char * getNestParmName(TempIndex fieldnum) const override
static void saveData(std::ostream &os, fpreal64 v)
const UT_Array< Inputs > & getInputs() const
static void saveData(std::ostream &os, UT_Matrix3D v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setInputDimensionAttribute(const UT_StringHolder &val)
UT_StringHolder createString(const UT_Array< Targets > &list) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setComponentLayoutEncoding(ComponentLayoutEncoding val)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:655
bool operator==(const SOP_MLExampleSerializePackedParms &src) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder raw_opOutputFile(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
int64 opinstInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setTargets(const UT_Array< Targets > &val)
SYS_FORCE_INLINE UT_StringHolder getToken(OutputMode enum_value)
fpreal64 fpreal
Definition: SYS_Types.h:278
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
static void loadData(UT_IStream &is, UT_Matrix4D &v)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
SYS_FORCE_INLINE void append(char character)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
GLuint GLfloat * val
Definition: glcorearb.h:1608
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
#define SOP_API
Definition: SOP_API.h:10
const UT_Array< Targets > & getTargets() const
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
static void saveData(std::ostream &os, UT_Vector4D v)
int64 opTargets_targettype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
const UT_StringHolder & raw_getOutputFile() const
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
exint opInputs(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1222
UT_StringHolder opTargetDimensionAttribute(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_StringHolder opinstTargets_targetvolumename(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_Vector4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
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 UT_SharedPtr< UT_Ramp > &value) override
exint getNestNumParms(TempIndex idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const UT_StringHolder & getSerialAttribute() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663