HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Rewire.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_NodeVerb.h>
7 #include <OP/OP_Utils.h>
8 #include <PRM/PRM_Parm.h>
9 #include <UT/UT_IStream.h>
10 #include <UT/UT_NTStreamUtil.h>
11 #include <UT/UT_Ramp.h>
12 #include <UT/UT_SharedPtr.h>
13 #include <UT/UT_StringHolder.h>
14 #include <UT/UT_StringStream.h>
15 #include <UT/UT_VectorTypes.h>
16 #include <SYS/SYS_Types.h>
17 
18 using namespace UT::Literal;
19 
20 class DEP_MicroNode;
21 namespace SOP_RewireEnums
22 {
23  enum class Grouptype
24  {
25  GUESS = 0,
26  VERTICES,
27  EDGES,
28  POINTS,
29  PRIMS
30  };
31 }
32 
33 
35 {
36 public:
37  static int version() { return 1; }
38 
40  {
41  myGroup = ""_sh;
42  myGrouptype = 0;
43  myAttrib = "rewire_to"_sh;
44  myRecurse = false;
45  myKeepunusedpoints = false;
46  myCreateorigattrib = false;
47  myOrigattrib = "rewired_from"_sh;
48 
49  }
50 
51  explicit SOP_RewireParms(const SOP_RewireParms &) = default;
52 
53  virtual ~SOP_RewireParms() {}
54 
55  bool operator==(const SOP_RewireParms &src) const
56  {
57  if (myGroup != src.myGroup) return false;
58  if (myGrouptype != src.myGrouptype) return false;
59  if (myAttrib != src.myAttrib) return false;
60  if (myRecurse != src.myRecurse) return false;
61  if (myKeepunusedpoints != src.myKeepunusedpoints) return false;
62  if (myCreateorigattrib != src.myCreateorigattrib) return false;
63  if (myOrigattrib != src.myOrigattrib) return false;
64 
65  return true;
66  }
67  bool operator!=(const SOP_RewireParms &src) const
68  {
69  return !operator==(src);
70  }
72 
73 
74 
75  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
76  {
77  if (true)
78  OP_Utils::evalOpParm(myGroup, node, "group", time, 0);
79  else myGroup = ""_sh;
80  if (true)
81  OP_Utils::evalOpParm(myGrouptype, node, "grouptype", time, 0);
82  else myGrouptype = 0;
83  if (true)
84  OP_Utils::evalOpParm(myAttrib, node, "attrib", time, 0);
85  else myAttrib = "rewire_to"_sh;
86  if (true)
87  OP_Utils::evalOpParm(myRecurse, node, "recurse", time, 0);
88  else myRecurse = false;
89  if (true)
90  OP_Utils::evalOpParm(myKeepunusedpoints, node, "keepunusedpoints", time, 0);
91  else myKeepunusedpoints = false;
92  if (true)
93  OP_Utils::evalOpParm(myCreateorigattrib, node, "createorigattrib", time, 0);
94  else myCreateorigattrib = false;
95  if (true && ( (!(((getCreateorigattrib()==0)))) ) )
96  OP_Utils::evalOpParm(myOrigattrib, node, "origattrib", time, 0);
97  else myOrigattrib = "rewired_from"_sh;
98 
99  }
100 
101 
102  virtual void loadFromOpSubclass(const LoadParms &loadparms)
103  {
104  buildFromOp(loadparms.node(), loadparms.context().getTime(), loadparms.depnode());
105  }
106 
107 
108  virtual void copyFrom(const SOP_NodeParms *src)
109  {
110  *this = *((const SOP_RewireParms *)src);
111  }
112 
113  template <typename T>
114  void
115  doGetParmValue(exint idx, T &value) const
116  {
117  switch (idx)
118  {
119  case 0:
120  coerceValue(value, myGroup);
121  break;
122  case 1:
123  coerceValue(value, myGrouptype);
124  break;
125  case 2:
126  coerceValue(value, myAttrib);
127  break;
128  case 3:
129  coerceValue(value, myRecurse);
130  break;
131  case 4:
132  coerceValue(value, myKeepunusedpoints);
133  break;
134  case 5:
135  coerceValue(value, myCreateorigattrib);
136  break;
137  case 6:
138  coerceValue(value, myOrigattrib);
139  break;
140 
141  }
142  }
143 
144  void getParmValue(exint idx, exint &value) const
145  { doGetParmValue(idx, value); }
146  void getParmValue(exint idx, fpreal &value) const
147  { doGetParmValue(idx, value); }
149  { doGetParmValue(idx, value); }
151  { doGetParmValue(idx, value); }
153  { doGetParmValue(idx, value); }
155  { doGetParmValue(idx, value); }
157  { doGetParmValue(idx, value); }
159  { doGetParmValue(idx, value); }
161  { doGetParmValue(idx, value); }
163  { doGetParmValue(idx, value); }
165  { doGetParmValue(idx, value); }
166 
167  template <typename T>
168  void
169  doSetParmValue(exint idx, const T &value)
170  {
171  switch (idx)
172  {
173  case 0:
174  coerceValue(myGroup, value);
175  break;
176  case 1:
177  coerceValue(myGrouptype, value);
178  break;
179  case 2:
180  coerceValue(myAttrib, value);
181  break;
182  case 3:
183  coerceValue(myRecurse, value);
184  break;
185  case 4:
186  coerceValue(myKeepunusedpoints, value);
187  break;
188  case 5:
189  coerceValue(myCreateorigattrib, value);
190  break;
191  case 6:
192  coerceValue(myOrigattrib, value);
193  break;
194 
195  }
196  }
197 
198  void setParmValue(exint idx, const exint &value)
199  { doSetParmValue(idx, value); }
200  void setParmValue(exint idx, const fpreal &value)
201  { doSetParmValue(idx, value); }
202  void setParmValue(exint idx, const UT_Vector2D &value)
203  { doSetParmValue(idx, value); }
204  void setParmValue(exint idx, const UT_Vector3D &value)
205  { doSetParmValue(idx, value); }
206  void setParmValue(exint idx, const UT_Vector4D &value)
207  { doSetParmValue(idx, value); }
208  void setParmValue(exint idx, const UT_Matrix2D &value)
209  { doSetParmValue(idx, value); }
210  void setParmValue(exint idx, const UT_Matrix3D &value)
211  { doSetParmValue(idx, value); }
212  void setParmValue(exint idx, const UT_Matrix4D &value)
213  { doSetParmValue(idx, value); }
215  { doSetParmValue(idx, value); }
217  { doSetParmValue(idx, value); }
219  { doSetParmValue(idx, value); }
220 
221  virtual exint getNumParms() const
222  {
223  return 7;
224  }
225 
226  virtual const char *getParmName(exint fieldnum) const
227  {
228  switch (fieldnum)
229  {
230  case 0:
231  return "group";
232  case 1:
233  return "grouptype";
234  case 2:
235  return "attrib";
236  case 3:
237  return "recurse";
238  case 4:
239  return "keepunusedpoints";
240  case 5:
241  return "createorigattrib";
242  case 6:
243  return "origattrib";
244 
245  }
246  return 0;
247  }
248 
249  virtual ParmType getParmType(exint fieldnum) const
250  {
251  switch (fieldnum)
252  {
253  case 0:
254  return PARM_STRING;
255  case 1:
256  return PARM_INTEGER;
257  case 2:
258  return PARM_STRING;
259  case 3:
260  return PARM_INTEGER;
261  case 4:
262  return PARM_INTEGER;
263  case 5:
264  return PARM_INTEGER;
265  case 6:
266  return PARM_STRING;
267 
268  }
269  return PARM_UNSUPPORTED;
270  }
271 
272  // Boiler plate to load individual types.
273  static void loadData(UT_IStream &is, int64 &v)
274  { is.bread(&v, 1); }
275  static void loadData(UT_IStream &is, bool &v)
276  { int64 iv; is.bread(&iv, 1); v = iv; }
277  static void loadData(UT_IStream &is, fpreal64 &v)
278  { is.bread<fpreal64>(&v, 1); }
279  static void loadData(UT_IStream &is, UT_Vector2D &v)
280  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
281  static void loadData(UT_IStream &is, UT_Vector3D &v)
282  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
283  is.bread<fpreal64>(&v.z(), 1); }
284  static void loadData(UT_IStream &is, UT_Vector4D &v)
285  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
286  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
287  static void loadData(UT_IStream &is, UT_Matrix2D &v)
288  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
289  static void loadData(UT_IStream &is, UT_Matrix3D &v)
290  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
291  static void loadData(UT_IStream &is, UT_Matrix4D &v)
292  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
293  static void loadData(UT_IStream &is, UT_Vector2I &v)
294  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
295  static void loadData(UT_IStream &is, UT_Vector3I &v)
296  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
297  is.bread<int64>(&v.z(), 1); }
298  static void loadData(UT_IStream &is, UT_Vector4I &v)
299  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
300  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
302  { is.bread(v); }
304  { UT_StringHolder rampdata;
305  loadData(is, rampdata);
306  if (rampdata.isstring())
307  {
308  v.reset(new UT_Ramp());
309  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
310  v->load(istr);
311  }
312  else v.reset();
313  }
316  loadData(is, data);
317  if (data.isstring())
318  {
319  // Find the data type.
320  char *colon = UT_StringWrap(data).findChar(':');
321  if (colon)
322  {
323  int typelen = colon - data.buffer();
325  type.strncpy(data.buffer(), typelen);
326  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
327 
328  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
329  }
330  }
331  else v.reset();
332  }
333 
334  static void saveData(std::ostream &os, int64 v)
335  { UTwrite(os, &v); }
336  static void saveData(std::ostream &os, bool v)
337  { int64 iv = v; UTwrite(os, &iv); }
338  static void saveData(std::ostream &os, fpreal64 v)
339  { UTwrite<fpreal64>(os, &v); }
340  static void saveData(std::ostream &os, UT_Vector2D v)
341  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
342  static void saveData(std::ostream &os, UT_Vector3D v)
343  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
344  UTwrite<fpreal64>(os, &v.z()); }
345  static void saveData(std::ostream &os, UT_Vector4D v)
346  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
347  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
348  static void saveData(std::ostream &os, UT_Matrix2D v)
350  static void saveData(std::ostream &os, UT_Matrix3D v)
352  static void saveData(std::ostream &os, UT_Matrix4D v)
354  static void saveData(std::ostream &os, UT_StringHolder s)
355  { UT_StringWrap(s).saveBinary(os); }
356  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
357  { UT_StringHolder result;
358  UT_OStringStream ostr;
359  if (s) s->save(ostr);
360  result = ostr.str();
361  saveData(os, result);
362  }
363  static void saveData(std::ostream &os, PRM_DataItemHandle s)
364  { UT_StringHolder result;
365  UT_OStringStream ostr;
366  if (s)
367  {
368  ostr << s->getDataTypeToken();
369  ostr << ":";
370  s->saveBinary(ostr);
371  }
372  result = ostr.str();
373  saveData(os, result);
374  }
375 
376 
377  void save(std::ostream &os) const
378  {
379  int32 v = version();
380  UTwrite(os, &v);
381  saveData(os, myGroup);
382  saveData(os, myGrouptype);
383  saveData(os, myAttrib);
384  saveData(os, myRecurse);
385  saveData(os, myKeepunusedpoints);
386  saveData(os, myCreateorigattrib);
387  saveData(os, myOrigattrib);
388 
389  }
390 
391  bool load(UT_IStream &is)
392  {
393  int32 v;
394  is.bread(&v, 1);
395  if (version() != v)
396  {
397  // Fail incompatible versions
398  return false;
399  }
400  loadData(is, myGroup);
401  loadData(is, myGrouptype);
402  loadData(is, myAttrib);
403  loadData(is, myRecurse);
404  loadData(is, myKeepunusedpoints);
405  loadData(is, myCreateorigattrib);
406  loadData(is, myOrigattrib);
407 
408  return true;
409  }
410 
411  const UT_StringHolder & getGroup() const { return myGroup; }
412  void setGroup(const UT_StringHolder & val) { myGroup = val; }
414  {
415  SOP_Node *thissop = cookparms.getNode();
416  if (!thissop) return getGroup();
417  UT_StringHolder result;
418  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
419  return result;
420  }
421  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
422  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
424  {
425  SOP_Node *thissop = cookparms.getNode();
426  if (!thissop) return getGrouptype();
427  int64 result;
428  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
429  return Grouptype(result);
430  }
431  const UT_StringHolder & getAttrib() const { return myAttrib; }
432  void setAttrib(const UT_StringHolder & val) { myAttrib = val; }
434  {
435  SOP_Node *thissop = cookparms.getNode();
436  if (!thissop) return getAttrib();
437  UT_StringHolder result;
438  OP_Utils::evalOpParm(result, thissop, "attrib", cookparms.getCookTime(), 0);
439  return result;
440  }
441  bool getRecurse() const { return myRecurse; }
442  void setRecurse(bool val) { myRecurse = val; }
443  bool opRecurse(const SOP_NodeVerb::CookParms &cookparms) const
444  {
445  SOP_Node *thissop = cookparms.getNode();
446  if (!thissop) return getRecurse();
447  bool result;
448  OP_Utils::evalOpParm(result, thissop, "recurse", cookparms.getCookTime(), 0);
449  return result;
450  }
451  bool getKeepunusedpoints() const { return myKeepunusedpoints; }
452  void setKeepunusedpoints(bool val) { myKeepunusedpoints = val; }
453  bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
454  {
455  SOP_Node *thissop = cookparms.getNode();
456  if (!thissop) return getKeepunusedpoints();
457  bool result;
458  OP_Utils::evalOpParm(result, thissop, "keepunusedpoints", cookparms.getCookTime(), 0);
459  return result;
460  }
461  bool getCreateorigattrib() const { return myCreateorigattrib; }
462  void setCreateorigattrib(bool val) { myCreateorigattrib = val; }
463  bool opCreateorigattrib(const SOP_NodeVerb::CookParms &cookparms) const
464  {
465  SOP_Node *thissop = cookparms.getNode();
466  if (!thissop) return getCreateorigattrib();
467  bool result;
468  OP_Utils::evalOpParm(result, thissop, "createorigattrib", cookparms.getCookTime(), 0);
469  return result;
470  }
471  const UT_StringHolder & getOrigattrib() const { return myOrigattrib; }
472  void setOrigattrib(const UT_StringHolder & val) { myOrigattrib = val; }
474  {
475  SOP_Node *thissop = cookparms.getNode();
476  if (!thissop) return getOrigattrib();
477  UT_StringHolder result;
478  OP_Utils::evalOpParm(result, thissop, "origattrib", cookparms.getCookTime(), 0);
479  return result;
480  }
481 
482 private:
483  UT_StringHolder myGroup;
484  int64 myGrouptype;
485  UT_StringHolder myAttrib;
486  bool myRecurse;
487  bool myKeepunusedpoints;
488  bool myCreateorigattrib;
489  UT_StringHolder myOrigattrib;
490 
491 };
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder opOrigattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_Matrix4D &value) const
void setParmValue(exint idx, const fpreal &value)
void setParmValue(exint idx, const UT_Matrix2D &value)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:494
void setAttrib(const UT_StringHolder &val)
T & z(void)
Definition: UT_Vector4.h:379
void setKeepunusedpoints(bool val)
bool operator==(const SOP_RewireParms &src) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
static void loadData(UT_IStream &is, fpreal64 &v)
virtual exint getNumParms() const
fpreal getTime() const
Definition: OP_Context.h:60
bool load(UT_IStream &is)
const GLdouble * v
Definition: glcorearb.h:836
void setGrouptype(Grouptype val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opRecurse(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
T & x(void)
Definition: UT_Vector2.h:285
void setParmValue(exint idx, const UT_Vector4D &value)
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
bool getCreateorigattrib() const
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:498
void doGetParmValue(exint idx, T &value) const
static void saveData(std::ostream &os, UT_Vector4D v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
bool opCreateorigattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const UT_Vector2D &value)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
virtual const char * getParmName(exint fieldnum) const
static void saveData(std::ostream &os, UT_StringHolder s)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:502
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
static void loadData(UT_IStream &is, UT_Vector4I &v)
long long int64
Definition: SYS_Types.h:107
static void saveData(std::ostream &os, PRM_DataItemHandle s)
const UT_StringHolder & getAttrib() const
void getParmValue(exint idx, fpreal &value) const
exint length() const
char * findChar(int c) const
Find first occurrance of character. Returns NULL upon failure.
Definition: UT_String.h:550
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
int64 exint
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void saveData(std::ostream &os, UT_Matrix2D v)
void setParmValue(exint idx, const PRM_DataItemHandle &value)
static void loadData(UT_IStream &is, UT_Vector2D &v)
const OP_Node * node() const
Definition: SOP_NodeVerb.h:104
double fpreal64
Definition: SYS_Types.h:192
UT_StringHolder opAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
void getParmValue(exint idx, UT_Vector2D &value) const
static void loadData(UT_IStream &is, int64 &v)
void setGroup(const UT_StringHolder &val)
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
static int version()
bool getKeepunusedpoints() const
virtual void copyFrom(const SOP_NodeParms *src)
void setParmValue(exint idx, const UT_Matrix3D &value)
void setParmValue(exint idx, const UT_Vector3D &value)
GLboolean * data
Definition: glcorearb.h:130
int int32
Definition: SYS_Types.h:35
T & y(void)
Definition: UT_Vector4.h:377
void getParmValue(exint idx, UT_StringHolder &value) const
void getParmValue(exint idx, UT_Matrix2D &value) const
const UT_StringHolder & getGroup() const
void getParmValue(exint idx, exint &value) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
virtual ~SOP_RewireParms()
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:111
void setCreateorigattrib(bool val)
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
static void saveData(std::ostream &os, int64 v)
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:500
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:270
static void saveData(std::ostream &os, UT_Matrix3D v)
void setParmValue(exint idx, const exint &value)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_Vector2D v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
Grouptype getGrouptype() const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
void setOrigattrib(const UT_StringHolder &val)
void setParmValue(exint idx, const UT_StringHolder &value)
GLuint GLfloat * val
Definition: glcorearb.h:1607
#define SOP_API
Definition: SOP_API.h:10
void setRecurse(bool val)
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getOrigattrib() const
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:501
T & x(void)
Definition: UT_Vector4.h:375
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool getRecurse() const
T & y(void)
Definition: UT_Vector2.h:287
void save(std::ostream &os) const
GLboolean r
Definition: glcorearb.h:1221
static void saveData(std::ostream &os, fpreal64 v)
void getParmValue(exint idx, UT_Vector4D &value) const
T & w(void)
Definition: UT_Vector4.h:381
static void saveData(std::ostream &os, UT_Matrix4D v)
static void loadData(UT_IStream &is, bool &v)
bool operator!=(const SOP_RewireParms &src) const
virtual void loadFromOpSubclass(const LoadParms &loadparms)
void setParmValue(exint idx, const UT_SharedPtr< UT_Ramp > &value)
void getParmValue(exint idx, PRM_DataItemHandle &value) const
const OP_Context & context() const
Definition: SOP_NodeVerb.h:109
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:88
static void loadData(UT_IStream &is, UT_Vector3I &v)
void getParmValue(exint idx, UT_Matrix3D &value) const
void getParmValue(exint idx, UT_SharedPtr< UT_Ramp > &value) const
void getParmValue(exint idx, UT_Vector3D &value) const
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, bool v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void doSetParmValue(exint idx, const T &value)
GLenum src
Definition: glcorearb.h:1792
virtual ParmType getParmType(exint fieldnum) const
void setParmValue(exint idx, const UT_Matrix4D &value)