HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_TangentFieldDeform.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_TangentFieldDeformEnums
24 {
25  enum class Fieldscalemode
26  {
27  PRESCALED = 0,
28  NORMALIZED,
29  NONE
30  };
31 
33  getToken(Fieldscalemode enum_value)
34  {
35  using namespace UT::Literal;
36  switch (enum_value) {
37  case Fieldscalemode::PRESCALED: return "prescaled"_sh;
38  case Fieldscalemode::NORMALIZED: return "normalized"_sh;
39  case Fieldscalemode::NONE: return "none"_sh;
40  default: UT_ASSERT(false); return ""_sh;
41  }
42  }
43 
44 }
45 
46 
48 {
49 public:
50  static int version() { return 1; }
51 
53  {
54  myGroup = ""_UTsh;
55  myFirstFieldAttrib = "field0"_UTsh;
56  mySecondFieldAttrib = "field1"_UTsh;
57  myWeight = .5;
58  myOutFieldAttrib = "xfield"_UTsh;
59  myHardFeaturePoints = ""_UTsh;
60  myHardFeatureEdges = ""_UTsh;
61  myShowField = true;
62  myShowInputField = true;
63  myFieldscalemode = 0;
64  myFieldscale = 1;
65 
66  }
67 
68  explicit SOP_TangentFieldDeformParms(const SOP_TangentFieldDeformParms &) = default;
71  SOP_TangentFieldDeformParms &operator=(SOP_TangentFieldDeformParms &&) noexcept = default;
72 
74 
76  {
77  if (myGroup != src.myGroup) return false;
78  if (myFirstFieldAttrib != src.myFirstFieldAttrib) return false;
79  if (mySecondFieldAttrib != src.mySecondFieldAttrib) return false;
80  if (myWeight != src.myWeight) return false;
81  if (myOutFieldAttrib != src.myOutFieldAttrib) return false;
82  if (myHardFeaturePoints != src.myHardFeaturePoints) return false;
83  if (myHardFeatureEdges != src.myHardFeatureEdges) return false;
84  if (myShowField != src.myShowField) return false;
85  if (myShowInputField != src.myShowInputField) return false;
86  if (myFieldscalemode != src.myFieldscalemode) return false;
87  if (myFieldscale != src.myFieldscale) return false;
88 
89 
90  if (baseGetSignature() != src.baseGetSignature()) return false;
91 
92  return true;
93  }
95  {
96  return !operator==(src);
97  }
99 
100 
101 
102  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
103  {
104  myGroup = ""_UTsh;
105  if (true)
106  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
107  myFirstFieldAttrib = "field0"_UTsh;
108  if (true)
109  graph->evalOpParm(myFirstFieldAttrib, nodeidx, "firstfieldattrib", time, graph->isDirect()?nullptr:depnode);
110  mySecondFieldAttrib = "field1"_UTsh;
111  if (true)
112  graph->evalOpParm(mySecondFieldAttrib, nodeidx, "secondfieldattrib", time, graph->isDirect()?nullptr:depnode);
113  myWeight = .5;
114  if (true)
115  graph->evalOpParm(myWeight, nodeidx, "weight", time, graph->isDirect()?nullptr:depnode);
116  myOutFieldAttrib = "xfield"_UTsh;
117  if (true)
118  graph->evalOpParm(myOutFieldAttrib, nodeidx, "outfieldattrib", time, graph->isDirect()?nullptr:depnode);
119  myHardFeaturePoints = ""_UTsh;
120  if (true)
121  graph->evalOpParm(myHardFeaturePoints, nodeidx, "hardfeaturepoints", time, graph->isDirect()?nullptr:depnode);
122  myHardFeatureEdges = ""_UTsh;
123  if (true)
124  graph->evalOpParm(myHardFeatureEdges, nodeidx, "hardfeatureedges", time, graph->isDirect()?nullptr:depnode);
125  myShowField = true;
126  if (true)
127  graph->evalOpParm(myShowField, nodeidx, "showfield", time, graph->isDirect()?nullptr:depnode);
128  myShowInputField = true;
129  if (true)
130  graph->evalOpParm(myShowInputField, nodeidx, "showinputfield", time, graph->isDirect()?nullptr:depnode);
131  myFieldscalemode = 0;
132  if (true && ( (true&&!(((getShowField()==0)))) ) )
133  graph->evalOpParm(myFieldscalemode, nodeidx, "fieldscalemode", time, graph->isDirect()?nullptr:depnode);
134  myFieldscale = 1;
135  if (true && ( (true&&!(((int64(getFieldscalemode())==1))||((getShowField()==0)))) ) )
136  graph->evalOpParm(myFieldscale, nodeidx, "fieldscale", time, graph->isDirect()?nullptr:depnode);
137 
138  }
139 
140 
141  void loadFromOpSubclass(const LoadParms &loadparms) override
142  {
143  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
144  }
145 
146 
147  void copyFrom(const OP_NodeParms *src) override
148  {
149  *this = *((const SOP_TangentFieldDeformParms *)src);
150  }
151 
152  template <typename T>
153  void
154  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
155  {
156  if (idx.size() < 1)
157  return;
158  UT_ASSERT(idx.size() == instance.size()+1);
159  if (idx.size() != instance.size()+1)
160  return;
161  switch (idx[0])
162  {
163  case 0:
164  coerceValue(value, myGroup);
165  break;
166  case 1:
167  coerceValue(value, myFirstFieldAttrib);
168  break;
169  case 2:
170  coerceValue(value, mySecondFieldAttrib);
171  break;
172  case 3:
173  coerceValue(value, myWeight);
174  break;
175  case 4:
176  coerceValue(value, myOutFieldAttrib);
177  break;
178  case 5:
179  coerceValue(value, myHardFeaturePoints);
180  break;
181  case 6:
182  coerceValue(value, myHardFeatureEdges);
183  break;
184  case 7:
185  coerceValue(value, myShowField);
186  break;
187  case 8:
188  coerceValue(value, myShowInputField);
189  break;
190  case 9:
191  coerceValue(value, myFieldscalemode);
192  break;
193  case 10:
194  coerceValue(value, myFieldscale);
195  break;
196 
197  }
198  }
199 
200  bool isParmColorRamp(exint idx) const override
201  {
202  switch (idx)
203  {
204 
205  }
206  return false;
207  }
208 
209  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
210  { doGetParmValue(idx, instance, value); }
211  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
212  { doGetParmValue(idx, instance, value); }
213  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
214  { doGetParmValue(idx, instance, value); }
215  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
216  { doGetParmValue(idx, instance, value); }
217  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
218  { doGetParmValue(idx, instance, value); }
219  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
220  { doGetParmValue(idx, instance, value); }
221  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
222  { doGetParmValue(idx, instance, value); }
223  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
224  { doGetParmValue(idx, instance, value); }
225  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
226  { doGetParmValue(idx, instance, value); }
227  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
228  { doGetParmValue(idx, instance, value); }
229  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
230  { doGetParmValue(idx, instance, value); }
231 
232  template <typename T>
233  void
234  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
235  {
236  if (idx.size() < 1)
237  return;
238  UT_ASSERT(idx.size() == instance.size()+1);
239  if (idx.size() != instance.size()+1)
240  return;
241  switch (idx[0])
242  {
243  case 0:
244  coerceValue(myGroup, ( ( value ) ));
245  break;
246  case 1:
247  coerceValue(myFirstFieldAttrib, ( ( value ) ));
248  break;
249  case 2:
250  coerceValue(mySecondFieldAttrib, ( ( value ) ));
251  break;
252  case 3:
253  coerceValue(myWeight, ( ( value ) ));
254  break;
255  case 4:
256  coerceValue(myOutFieldAttrib, ( ( value ) ));
257  break;
258  case 5:
259  coerceValue(myHardFeaturePoints, ( ( value ) ));
260  break;
261  case 6:
262  coerceValue(myHardFeatureEdges, ( ( value ) ));
263  break;
264  case 7:
265  coerceValue(myShowField, ( ( value ) ));
266  break;
267  case 8:
268  coerceValue(myShowInputField, ( ( value ) ));
269  break;
270  case 9:
271  coerceValue(myFieldscalemode, clampMinValue(0, clampMaxValue(2, value ) ));
272  break;
273  case 10:
274  coerceValue(myFieldscale, clampMinValue(0, ( value ) ));
275  break;
276 
277  }
278  }
279 
280  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
281  { doSetParmValue(idx, instance, value); }
282  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
283  { doSetParmValue(idx, instance, value); }
284  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
285  { doSetParmValue(idx, instance, value); }
286  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
287  { doSetParmValue(idx, instance, value); }
288  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
289  { doSetParmValue(idx, instance, value); }
290  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
291  { doSetParmValue(idx, instance, value); }
292  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
293  { doSetParmValue(idx, instance, value); }
294  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
295  { doSetParmValue(idx, instance, value); }
296  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
297  { doSetParmValue(idx, instance, value); }
298  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
299  { doSetParmValue(idx, instance, value); }
300  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
301  { doSetParmValue(idx, instance, value); }
302 
303  exint getNestNumParms(TempIndex idx) const override
304  {
305  if (idx.size() == 0)
306  return 11;
307  switch (idx[0])
308  {
309 
310  }
311  // Invalid
312  return 0;
313  }
314 
315  const char *getNestParmName(TempIndex fieldnum) const override
316  {
317  if (fieldnum.size() < 1)
318  return 0;
319  switch (fieldnum[0])
320  {
321  case 0:
322  return "group";
323  case 1:
324  return "firstfieldattrib";
325  case 2:
326  return "secondfieldattrib";
327  case 3:
328  return "weight";
329  case 4:
330  return "outfieldattrib";
331  case 5:
332  return "hardfeaturepoints";
333  case 6:
334  return "hardfeatureedges";
335  case 7:
336  return "showfield";
337  case 8:
338  return "showinputfield";
339  case 9:
340  return "fieldscalemode";
341  case 10:
342  return "fieldscale";
343 
344  }
345  return 0;
346  }
347 
348  ParmType getNestParmType(TempIndex fieldnum) const override
349  {
350  if (fieldnum.size() < 1)
351  return PARM_UNSUPPORTED;
352  switch (fieldnum[0])
353  {
354  case 0:
355  return PARM_STRING;
356  case 1:
357  return PARM_STRING;
358  case 2:
359  return PARM_STRING;
360  case 3:
361  return PARM_FLOAT;
362  case 4:
363  return PARM_STRING;
364  case 5:
365  return PARM_STRING;
366  case 6:
367  return PARM_STRING;
368  case 7:
369  return PARM_INTEGER;
370  case 8:
371  return PARM_INTEGER;
372  case 9:
373  return PARM_INTEGER;
374  case 10:
375  return PARM_FLOAT;
376 
377  }
378  return PARM_UNSUPPORTED;
379  }
380 
381  // Boiler plate to load individual types.
382  static void loadData(UT_IStream &is, int64 &v)
383  { is.bread(&v, 1); }
384  static void loadData(UT_IStream &is, bool &v)
385  { int64 iv; is.bread(&iv, 1); v = iv; }
386  static void loadData(UT_IStream &is, fpreal64 &v)
387  { is.bread<fpreal64>(&v, 1); }
388  static void loadData(UT_IStream &is, UT_Vector2D &v)
389  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
390  static void loadData(UT_IStream &is, UT_Vector3D &v)
391  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
392  is.bread<fpreal64>(&v.z(), 1); }
393  static void loadData(UT_IStream &is, UT_Vector4D &v)
394  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
395  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
396  static void loadData(UT_IStream &is, UT_Matrix2D &v)
397  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
398  static void loadData(UT_IStream &is, UT_Matrix3D &v)
399  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
400  static void loadData(UT_IStream &is, UT_Matrix4D &v)
401  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
402  static void loadData(UT_IStream &is, UT_Vector2I &v)
403  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
404  static void loadData(UT_IStream &is, UT_Vector3I &v)
405  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
406  is.bread<int64>(&v.z(), 1); }
407  static void loadData(UT_IStream &is, UT_Vector4I &v)
408  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
409  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
411  { is.bread(v); }
413  { UT_StringHolder rampdata;
414  loadData(is, rampdata);
415  if (rampdata.isstring())
416  {
417  v.reset(new UT_Ramp());
418  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
419  v->load(istr);
420  }
421  else v.reset();
422  }
425  loadData(is, data);
426  if (data.isstring())
427  {
428  // Find the data type.
429  const char *colon = UT_StringWrap(data).findChar(':');
430  if (colon)
431  {
432  int typelen = colon - data.buffer();
434  type.strncpy(data.buffer(), typelen);
435  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
436 
437  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
438  }
439  }
440  else v.reset();
441  }
442 
443  static void saveData(std::ostream &os, int64 v)
444  { UTwrite(os, &v); }
445  static void saveData(std::ostream &os, bool v)
446  { int64 iv = v; UTwrite(os, &iv); }
447  static void saveData(std::ostream &os, fpreal64 v)
448  { UTwrite<fpreal64>(os, &v); }
449  static void saveData(std::ostream &os, UT_Vector2D v)
450  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
451  static void saveData(std::ostream &os, UT_Vector3D v)
452  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
453  UTwrite<fpreal64>(os, &v.z()); }
454  static void saveData(std::ostream &os, UT_Vector4D v)
455  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
456  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
457  static void saveData(std::ostream &os, UT_Matrix2D v)
459  static void saveData(std::ostream &os, UT_Matrix3D v)
461  static void saveData(std::ostream &os, UT_Matrix4D v)
463  static void saveData(std::ostream &os, UT_StringHolder s)
464  { UT_StringWrap(s).saveBinary(os); }
465  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
467  UT_OStringStream ostr;
468  if (s) s->save(ostr);
469  result = ostr.str();
470  saveData(os, result);
471  }
472  static void saveData(std::ostream &os, PRM_DataItemHandle s)
474  UT_OStringStream ostr;
475  if (s)
476  {
477  ostr << s->getDataTypeToken();
478  ostr << ":";
479  s->saveBinary(ostr);
480  }
481  result = ostr.str();
482  saveData(os, result);
483  }
484 
485 
486  void save(std::ostream &os) const
487  {
488  int32 v = version();
489  UTwrite(os, &v);
490  saveData(os, myGroup);
491  saveData(os, myFirstFieldAttrib);
492  saveData(os, mySecondFieldAttrib);
493  saveData(os, myWeight);
494  saveData(os, myOutFieldAttrib);
495  saveData(os, myHardFeaturePoints);
496  saveData(os, myHardFeatureEdges);
497  saveData(os, myShowField);
498  saveData(os, myShowInputField);
499  saveData(os, myFieldscalemode);
500  saveData(os, myFieldscale);
501 
502  }
503 
504  bool load(UT_IStream &is)
505  {
506  int32 v;
507  is.bread(&v, 1);
508  if (version() != v)
509  {
510  // Fail incompatible versions
511  return false;
512  }
513  loadData(is, myGroup);
514  loadData(is, myFirstFieldAttrib);
515  loadData(is, mySecondFieldAttrib);
516  loadData(is, myWeight);
517  loadData(is, myOutFieldAttrib);
518  loadData(is, myHardFeaturePoints);
519  loadData(is, myHardFeatureEdges);
520  loadData(is, myShowField);
521  loadData(is, myShowInputField);
522  loadData(is, myFieldscalemode);
523  loadData(is, myFieldscale);
524 
525  return true;
526  }
527 
528  const UT_StringHolder & getGroup() const { return myGroup; }
529  void setGroup(const UT_StringHolder & val) { myGroup = val; }
531  {
532  SOP_Node *thissop = cookparms.getNode();
533  if (!thissop) return getGroup();
535  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
536  return result;
537  }
538  const UT_StringHolder & getFirstFieldAttrib() const { return myFirstFieldAttrib; }
539  void setFirstFieldAttrib(const UT_StringHolder & val) { myFirstFieldAttrib = val; }
541  {
542  SOP_Node *thissop = cookparms.getNode();
543  if (!thissop) return getFirstFieldAttrib();
545  OP_Utils::evalOpParm(result, thissop, "firstfieldattrib", cookparms.getCookTime(), 0);
546  return result;
547  }
548  const UT_StringHolder & getSecondFieldAttrib() const { return mySecondFieldAttrib; }
549  void setSecondFieldAttrib(const UT_StringHolder & val) { mySecondFieldAttrib = val; }
551  {
552  SOP_Node *thissop = cookparms.getNode();
553  if (!thissop) return getSecondFieldAttrib();
555  OP_Utils::evalOpParm(result, thissop, "secondfieldattrib", cookparms.getCookTime(), 0);
556  return result;
557  }
558  fpreal64 getWeight() const { return myWeight; }
559  void setWeight(fpreal64 val) { myWeight = val; }
560  fpreal64 opWeight(const SOP_NodeVerb::CookParms &cookparms) const
561  {
562  SOP_Node *thissop = cookparms.getNode();
563  if (!thissop) return getWeight();
565  OP_Utils::evalOpParm(result, thissop, "weight", cookparms.getCookTime(), 0);
566  return result;
567  }
568  const UT_StringHolder & getOutFieldAttrib() const { return myOutFieldAttrib; }
569  void setOutFieldAttrib(const UT_StringHolder & val) { myOutFieldAttrib = val; }
571  {
572  SOP_Node *thissop = cookparms.getNode();
573  if (!thissop) return getOutFieldAttrib();
575  OP_Utils::evalOpParm(result, thissop, "outfieldattrib", cookparms.getCookTime(), 0);
576  return result;
577  }
578  const UT_StringHolder & getHardFeaturePoints() const { return myHardFeaturePoints; }
579  void setHardFeaturePoints(const UT_StringHolder & val) { myHardFeaturePoints = val; }
581  {
582  SOP_Node *thissop = cookparms.getNode();
583  if (!thissop) return getHardFeaturePoints();
585  OP_Utils::evalOpParm(result, thissop, "hardfeaturepoints", cookparms.getCookTime(), 0);
586  return result;
587  }
588  const UT_StringHolder & getHardFeatureEdges() const { return myHardFeatureEdges; }
589  void setHardFeatureEdges(const UT_StringHolder & val) { myHardFeatureEdges = val; }
591  {
592  SOP_Node *thissop = cookparms.getNode();
593  if (!thissop) return getHardFeatureEdges();
595  OP_Utils::evalOpParm(result, thissop, "hardfeatureedges", cookparms.getCookTime(), 0);
596  return result;
597  }
598  bool getShowField() const { return myShowField; }
599  void setShowField(bool val) { myShowField = val; }
600  bool opShowField(const SOP_NodeVerb::CookParms &cookparms) const
601  {
602  SOP_Node *thissop = cookparms.getNode();
603  if (!thissop) return getShowField();
604  bool result;
605  OP_Utils::evalOpParm(result, thissop, "showfield", cookparms.getCookTime(), 0);
606  return result;
607  }
608  bool getShowInputField() const { return myShowInputField; }
609  void setShowInputField(bool val) { myShowInputField = val; }
610  bool opShowInputField(const SOP_NodeVerb::CookParms &cookparms) const
611  {
612  SOP_Node *thissop = cookparms.getNode();
613  if (!thissop) return getShowInputField();
614  bool result;
615  OP_Utils::evalOpParm(result, thissop, "showinputfield", cookparms.getCookTime(), 0);
616  return result;
617  }
618  Fieldscalemode getFieldscalemode() const { return Fieldscalemode(myFieldscalemode); }
619  void setFieldscalemode(Fieldscalemode val) { myFieldscalemode = int64(val); }
621  {
622  SOP_Node *thissop = cookparms.getNode();
623  if (!thissop) return getFieldscalemode();
624  int64 result;
625  OP_Utils::evalOpParm(result, thissop, "fieldscalemode", cookparms.getCookTime(), 0);
626  return Fieldscalemode(result);
627  }
628  fpreal64 getFieldscale() const { return myFieldscale; }
629  void setFieldscale(fpreal64 val) { myFieldscale = val; }
631  {
632  SOP_Node *thissop = cookparms.getNode();
633  if (!thissop) return getFieldscale();
635  OP_Utils::evalOpParm(result, thissop, "fieldscale", cookparms.getCookTime(), 0);
636  return result;
637  }
638 
639 private:
640  UT_StringHolder myGroup;
641  UT_StringHolder myFirstFieldAttrib;
642  UT_StringHolder mySecondFieldAttrib;
643  fpreal64 myWeight;
644  UT_StringHolder myOutFieldAttrib;
645  UT_StringHolder myHardFeaturePoints;
646  UT_StringHolder myHardFeatureEdges;
647  bool myShowField;
648  bool myShowInputField;
649  int64 myFieldscalemode;
650  fpreal64 myFieldscale;
651 
652 };
type
Definition: core.h:556
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, fpreal64 &v)
Fieldscalemode opFieldscalemode(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
UT_StringHolder opFirstFieldAttrib(const SOP_NodeVerb::CookParms &cookparms) const
ParmType getNestParmType(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
UT_StringHolder opSecondFieldAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
exint bread(int32 *buffer, exint asize=1)
const UT_StringHolder & getHardFeatureEdges() const
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
SYS_FORCE_INLINE UT_StringHolder getToken(Fieldscalemode enum_value)
static void saveData(std::ostream &os, bool v)
fpreal getTime() const
Definition: OP_Context.h:63
void setFirstFieldAttrib(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
GLsizei const GLfloat * value
Definition: glcorearb.h:824
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_StringHolder opHardFeatureEdges(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector3D v)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
static void saveData(std::ostream &os, UT_Matrix2D v)
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
const UT_StringHolder & getHardFeaturePoints() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
**But if you need a result
Definition: thread.h:622
void setFieldscalemode(Fieldscalemode val)
fpreal64 opFieldscale(const SOP_NodeVerb::CookParms &cookparms) const
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 loadFromOpSubclass(const LoadParms &loadparms) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
double fpreal64
Definition: SYS_Types.h:201
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
const UT_StringHolder & getSecondFieldAttrib() const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool opShowField(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
static void saveData(std::ostream &os, int64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder opHardFeaturePoints(const SOP_NodeVerb::CookParms &cookparms) const
exint length() const
static void saveData(std::ostream &os, UT_Vector4D v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void loadData(UT_IStream &is, UT_Vector3D &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, fpreal64 v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
long long int64
Definition: SYS_Types.h:116
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, UT_Vector2D v)
void setOutFieldAttrib(const UT_StringHolder &val)
void setHardFeatureEdges(const UT_StringHolder &val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
bool operator!=(const SOP_TangentFieldDeformParms &src) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
GT_API const UT_StringHolder version
bool isParmColorRamp(exint idx) const override
static void loadData(UT_IStream &is, bool &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
const UT_StringHolder & getFirstFieldAttrib() const
void setGroup(const UT_StringHolder &val)
const char * getNestParmName(TempIndex fieldnum) const override
fpreal64 opWeight(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool operator==(const SOP_TangentFieldDeformParms &src) const
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
fpreal64 fpreal
Definition: SYS_Types.h:278
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
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
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
void save(std::ostream &os) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
bool opShowInputField(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
GLboolean r
Definition: glcorearb.h:1222
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
UT_StringHolder opOutFieldAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOutFieldAttrib() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void setSecondFieldAttrib(const UT_StringHolder &val)
void setHardFeaturePoints(const UT_StringHolder &val)