HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_OpenCLMergeVDBParms.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 <SIMZ/SIMZ_API.h>
7 #include <SIM/SIM_Query.h>
8 #include <OP/OP_Utils.h>
9 #include <PRM/PRM_Parm.h>
10 #include <UT/UT_IStream.h>
11 #include <UT/UT_NTStreamUtil.h>
12 #include <UT/UT_Ramp.h>
13 #include <UT/UT_SharedPtr.h>
14 #include <UT/UT_StringHolder.h>
15 #include <UT/UT_StringStream.h>
16 #include <UT/UT_VectorTypes.h>
17 #include <UT/UT_EnvControl.h>
18 #include <SYS/SYS_Types.h>
19 
20 using namespace UT::Literal;
21 
22 class DEP_MicroNode;
23 
25 {
26 public:
27  static int version() { return 0; }
28  struct Sources
29  {
38  bool noneg;
44  bool normalize;
45 
46 
48  {
49  activate = 0;
50  rank = 0;
51  srcvdb = ""_sh;
52  srcweight = ""_sh;
53  targetfield = ""_sh;
54  weightfield = ""_sh;
55  operation = 0;
56  useveclength = false;
57  noneg = false;
58  accguidestr = 0;
59  decguidestr = 0;
60  enabledirguide = false;
61  dirguidestr = 0;
62  scale = 0;
63  normalize = false;
64 
65  }
66 
67  bool operator==(const Sources &src) const
68  {
69  if (activate != src.activate) return false;
70  if (rank != src.rank) return false;
71  if (srcvdb != src.srcvdb) return false;
72  if (srcweight != src.srcweight) return false;
73  if (targetfield != src.targetfield) return false;
74  if (weightfield != src.weightfield) return false;
75  if (operation != src.operation) return false;
76  if (useveclength != src.useveclength) return false;
77  if (noneg != src.noneg) return false;
78  if (accguidestr != src.accguidestr) return false;
79  if (decguidestr != src.decguidestr) return false;
80  if (enabledirguide != src.enabledirguide) return false;
81  if (dirguidestr != src.dirguidestr) return false;
82  if (scale != src.scale) return false;
83  if (normalize != src.normalize) return false;
84 
85  return true;
86  }
87  bool operator!=(const Sources &src) const
88  {
89  return !operator==(src);
90  }
91 
92  };
93 
95  {
97 
98  buf.strcat("[ ");
99  for (int i = 0; i < list.entries(); i++)
100  {
101  if (i)
102  buf.strcat(", ");
103  buf.strcat("( ");
104  buf.append("");
105  buf.appendSprintf("%d", (int) list(i).activate);
106  buf.append(", ");
107  buf.appendSprintf("%d", (int) list(i).rank);
108  buf.append(", ");
109  { UT_String tmp; tmp = UT_StringWrap(list(i).srcvdb).makeQuotedString('"'); buf.strcat(tmp); }
110  buf.append(", ");
111  { UT_String tmp; tmp = UT_StringWrap(list(i).srcweight).makeQuotedString('"'); buf.strcat(tmp); }
112  buf.append(", ");
113  { UT_String tmp; tmp = UT_StringWrap(list(i).targetfield).makeQuotedString('"'); buf.strcat(tmp); }
114  buf.append(", ");
115  { UT_String tmp; tmp = UT_StringWrap(list(i).weightfield).makeQuotedString('"'); buf.strcat(tmp); }
116  buf.append(", ");
117  buf.appendSprintf("%d", (int) list(i).operation);
118  buf.append(", ");
119  buf.appendSprintf("%s", (list(i).useveclength) ? "true" : "false");
120  buf.append(", ");
121  buf.appendSprintf("%s", (list(i).noneg) ? "true" : "false");
122  buf.append(", ");
123  buf.appendSprintf("%f", (list(i).accguidestr));
124  buf.append(", ");
125  buf.appendSprintf("%f", (list(i).decguidestr));
126  buf.append(", ");
127  buf.appendSprintf("%s", (list(i).enabledirguide) ? "true" : "false");
128  buf.append(", ");
129  buf.appendSprintf("%f", (list(i).dirguidestr));
130  buf.append(", ");
131  buf.appendSprintf("%f", (list(i).scale));
132  buf.append(", ");
133  buf.appendSprintf("%s", (list(i).normalize) ? "true" : "false");
134 
135  buf.strcat(" )");
136  }
137  buf.strcat(" ]");
138 
140  return result;
141  }
142 
144  {
145  myDopGeometry = ""_sh;
146  mySrcSuffix = ""_sh;
147  mySourceType = 0;
148  myUseInstances = false;
149  myInstanceGeo = ""_sh;
150  myPosition = 0;
151 
152  }
153 
154  explicit SIM_OpenCLMergeVDBParms(const SIM_OpenCLMergeVDBParms &) = default;
155 
157 
159  {
160  if (myDopGeometry != src.myDopGeometry) return false;
161  if (mySrcSuffix != src.mySrcSuffix) return false;
162  if (mySourceType != src.mySourceType) return false;
163  if (myUseInstances != src.myUseInstances) return false;
164  if (myInstanceGeo != src.myInstanceGeo) return false;
165  if (myPosition != src.myPosition) return false;
166  if (mySources != src.mySources) return false;
167 
168  return true;
169  }
171  {
172  return !operator==(src);
173  }
174 
175 
176  class Query : public SIM_Query
177  {
178  public:
179  explicit Query(const SIM_Data *owner, const SIM_OpenCLMergeVDBParms &parms)
180  : SIM_Query(owner)
181  , myParms(parms)
182  { }
183  ~Query() override {}
184 
185  protected:
186  bool isMyRecord(const char *recordtype) const
187  { return !strcmp(recordtype, "Params"); }
188 
189  int getNumRecordTypesSubclass() const override { return 1; }
190  const char *getRecordTypeNameSubclass(int recordtypenum) const override
191  {
192  if (recordtypenum == 0) return "Params";
193  return 0;
194  }
195  int getNumRecordsSubclass(const char *recordtype) const override
196  {
197  if (isMyRecord(recordtype)) return 1;
198  return 0;
199  }
200  int getNumFieldsSubclass(const char *recordtype) const override
201  {
202  if (isMyRecord(recordtype))
203  return 7;
204  return 0;
205  }
206 
207  const char *getFieldNameSubclass(const char *recordtype,
208  int fieldnum) const override
209  {
210  if (!isMyRecord(recordtype))
211  return 0;
212 
213  switch (fieldnum)
214  {
215  case 0:
216  return "dopgeo";
217  case 1:
218  return "srcsuffix";
219  case 2:
220  return "srctype";
221  case 3:
222  return "useinst";
223  case 4:
224  return "instgeo";
225  case 5:
226  return "loc";
227  case 6:
228  return "sources";
229 
230  }
231  return 0;
232  }
233  UT_OptionType getFieldTypeSubclass(const char *recordtype,
234  int fieldnum) const override
235  {
236  if (!isMyRecord(recordtype))
237  return UT_OPTION_INVALID;
238 
239  switch (fieldnum)
240  {
241  case 0:
242  return UT_OPTION_STRING;
243  case 1:
244  return UT_OPTION_STRING;
245  case 2:
246  return UT_OPTION_INT;
247  case 3:
248  return UT_OPTION_BOOL;
249  case 4:
250  return UT_OPTION_STRING;
251  case 5:
252  return UT_OPTION_VECTOR3;
253  case 6:
254  return UT_OPTION_STRING;
255 
256  }
257  return UT_OPTION_INVALID;
258  }
259 
260  bool getFieldRawSubclass(const char *recordtype,
261  int recordnum,
262  const char *fieldname,
263  UT_OptionEntryPtr &result) const override
264  {
265  if (!isMyRecord(recordtype))
266  return false;
267  if (recordnum != 0)
268  return false;
269  // This is less optimal, but if we are in SIM_Query
270  // land we have already given up on performance.
271  if (!strcmp(fieldname, "dopgeo"))
272  {
273  result = UTmakeUnique<UT_OptionString>(myParms.myDopGeometry);
274  return true;
275  }
276  if (!strcmp(fieldname, "srcsuffix"))
277  {
278  result = UTmakeUnique<UT_OptionString>(myParms.mySrcSuffix);
279  return true;
280  }
281  if (!strcmp(fieldname, "srctype"))
282  {
283  result = UTmakeUnique<UT_OptionInt>(myParms.mySourceType);
284  return true;
285  }
286  if (!strcmp(fieldname, "useinst"))
287  {
288  result = UTmakeUnique<UT_OptionBool>(myParms.myUseInstances);
289  return true;
290  }
291  if (!strcmp(fieldname, "instgeo"))
292  {
293  result = UTmakeUnique<UT_OptionString>(myParms.myInstanceGeo);
294  return true;
295  }
296  if (!strcmp(fieldname, "loc"))
297  {
298  result = UTmakeUnique<UT_OptionVector3>(myParms.myPosition);
299  return true;
300  }
301  if (!strcmp(fieldname, "sources"))
302  {
303  result = UTmakeUnique<UT_OptionString>(myParms.createString(myParms.mySources));
304  return true;
305  }
306 
307  // Failed to find
308  return false;
309  }
310 
312  };
313 
314  SIM_Query *createQueryObject(const SIM_Data *owner) const
315  { return new Query(owner, *this); }
316 
317 
318 
319 
320  // Boiler plate to load individual types.
321  static void loadData(UT_IStream &is, int64 &v)
322  { is.bread(&v, 1); }
323  static void loadData(UT_IStream &is, bool &v)
324  { int64 iv; is.bread(&iv, 1); v = iv; }
325  static void loadData(UT_IStream &is, fpreal64 &v)
326  { is.bread<fpreal64>(&v, 1); }
327  static void loadData(UT_IStream &is, UT_Vector2D &v)
328  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
329  static void loadData(UT_IStream &is, UT_Vector3D &v)
330  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
331  is.bread<fpreal64>(&v.z(), 1); }
332  static void loadData(UT_IStream &is, UT_Vector4D &v)
333  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
334  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
335  static void loadData(UT_IStream &is, UT_Matrix2D &v)
336  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
337  static void loadData(UT_IStream &is, UT_Matrix3D &v)
338  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
339  static void loadData(UT_IStream &is, UT_Matrix4D &v)
340  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
341  static void loadData(UT_IStream &is, UT_Vector2I &v)
342  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
343  static void loadData(UT_IStream &is, UT_Vector3I &v)
344  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
345  is.bread<int64>(&v.z(), 1); }
346  static void loadData(UT_IStream &is, UT_Vector4I &v)
347  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
348  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
350  { is.bread(v); }
352  { UT_StringHolder rampdata;
353  loadData(is, rampdata);
354  if (rampdata.isstring())
355  {
356  v.reset(new UT_Ramp());
357  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
358  v->load(istr);
359  }
360  else v.reset();
361  }
364  loadData(is, data);
365  if (data.isstring())
366  {
367  // Find the data type.
368  const char *colon = UT_StringWrap(data).findChar(':');
369  if (colon)
370  {
371  int typelen = colon - data.buffer();
373  type.strncpy(data.buffer(), typelen);
374  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
375 
376  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
377  }
378  }
379  else v.reset();
380  }
381 
382  static void saveData(std::ostream &os, int64 v)
383  { UTwrite(os, &v); }
384  static void saveData(std::ostream &os, bool v)
385  { int64 iv = v; UTwrite(os, &iv); }
386  static void saveData(std::ostream &os, fpreal64 v)
387  { UTwrite<fpreal64>(os, &v); }
388  static void saveData(std::ostream &os, UT_Vector2D v)
389  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
390  static void saveData(std::ostream &os, UT_Vector3D v)
391  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
392  UTwrite<fpreal64>(os, &v.z()); }
393  static void saveData(std::ostream &os, UT_Vector4D v)
394  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
395  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
396  static void saveData(std::ostream &os, UT_Matrix2D v)
398  static void saveData(std::ostream &os, UT_Matrix3D v)
400  static void saveData(std::ostream &os, UT_Matrix4D v)
402  static void saveData(std::ostream &os, UT_StringHolder s)
403  { UT_StringWrap(s).saveBinary(os); }
404  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
406  UT_OStringStream ostr;
407  if (s) s->save(ostr);
408  result = ostr.str();
409  saveData(os, result);
410  }
411  static void saveData(std::ostream &os, PRM_DataItemHandle s)
413  UT_OStringStream ostr;
414  if (s)
415  {
416  ostr << s->getDataTypeToken();
417  ostr << ":";
418  s->saveBinary(ostr);
419  }
420  result = ostr.str();
421  saveData(os, result);
422  }
423 
424 
425  void save(std::ostream &os) const
426  {
427  int32 v = version();
428  UTwrite(os, &v);
429  saveData(os, myDopGeometry);
430  saveData(os, mySrcSuffix);
431  saveData(os, mySourceType);
432  saveData(os, myUseInstances);
433  saveData(os, myInstanceGeo);
434  saveData(os, myPosition);
435  {
436  int64 length = mySources.entries();
437  UTwrite(os, &length);
438  for (exint i = 0; i < length; i++)
439  {
440  auto && _curentry = mySources(i);
441  (void) _curentry;
442  saveData(os, _curentry.activate);
443  saveData(os, _curentry.rank);
444  saveData(os, _curentry.srcvdb);
445  saveData(os, _curentry.srcweight);
446  saveData(os, _curentry.targetfield);
447  saveData(os, _curentry.weightfield);
448  saveData(os, _curentry.operation);
449  saveData(os, _curentry.useveclength);
450  saveData(os, _curentry.noneg);
451  saveData(os, _curentry.accguidestr);
452  saveData(os, _curentry.decguidestr);
453  saveData(os, _curentry.enabledirguide);
454  saveData(os, _curentry.dirguidestr);
455  saveData(os, _curentry.scale);
456  saveData(os, _curentry.normalize);
457 
458  }
459  }
460 
461  }
462 
463  bool load(UT_IStream &is)
464  {
465  int32 v;
466  is.bread(&v, 1);
467  if (version() != v)
468  {
469  // Fail incompatible versions
470  return false;
471  }
472  loadData(is, myDopGeometry);
473  loadData(is, mySrcSuffix);
474  loadData(is, mySourceType);
475  loadData(is, myUseInstances);
476  loadData(is, myInstanceGeo);
477  loadData(is, myPosition);
478  {
479  int64 length;
480  is.read(&length, 1);
481  mySources.setSize(length);
482  for (exint i = 0; i < length; i++)
483  {
484  auto && _curentry = mySources(i);
485  (void) _curentry;
486  loadData(is, _curentry.activate);
487  loadData(is, _curentry.rank);
488  loadData(is, _curentry.srcvdb);
489  loadData(is, _curentry.srcweight);
490  loadData(is, _curentry.targetfield);
491  loadData(is, _curentry.weightfield);
492  loadData(is, _curentry.operation);
493  loadData(is, _curentry.useveclength);
494  loadData(is, _curentry.noneg);
495  loadData(is, _curentry.accguidestr);
496  loadData(is, _curentry.decguidestr);
497  loadData(is, _curentry.enabledirguide);
498  loadData(is, _curentry.dirguidestr);
499  loadData(is, _curentry.scale);
500  loadData(is, _curentry.normalize);
501 
502  }
503  }
504 
505  return true;
506  }
507 
508  const UT_StringHolder & getDopGeometry() const { return myDopGeometry; }
509  void setDopGeometry(const UT_StringHolder & val) { myDopGeometry = val; }
510  const UT_StringHolder & getSrcSuffix() const { return mySrcSuffix; }
511  void setSrcSuffix(const UT_StringHolder & val) { mySrcSuffix = val; }
512  int64 getSourceType() const { return mySourceType; }
513  void setSourceType(int64 val) { mySourceType = val; }
514  bool getUseInstances() const { return myUseInstances; }
515  void setUseInstances(bool val) { myUseInstances = val; }
516  const UT_StringHolder & getInstanceGeo() const { return myInstanceGeo; }
517  void setInstanceGeo(const UT_StringHolder & val) { myInstanceGeo = val; }
518  UT_Vector3D getPosition() const { return myPosition; }
519  void setPosition(UT_Vector3D val) { myPosition = val; }
520  const UT_Array<Sources> &getSources() const { return mySources; }
521 void setSources(const UT_Array<Sources> &val) { mySources = val; }
522 
523 private:
524  UT_StringHolder myDopGeometry;
525  UT_StringHolder mySrcSuffix;
526  int64 mySourceType;
527  bool myUseInstances;
528  UT_StringHolder myInstanceGeo;
529  UT_Vector3D myPosition;
530  UT_Array<Sources> mySources;
531 
532 };
bool isMyRecord(const char *recordtype) const
#define SIMZ_API
Definition: SIMZ_API.h:10
const SIM_OpenCLMergeVDBParms & myParms
static void loadData(UT_IStream &is, UT_Matrix2D &v)
int int32
Definition: SYS_Types.h:39
GLenum GLenum GLenum GLenum GLenum scale
Definition: glew.h:14163
static void saveData(std::ostream &os, UT_StringHolder s)
static void loadData(UT_IStream &is, UT_Vector3I &v)
void
Definition: png.h:1083
void setSources(const UT_Array< Sources > &val)
exint bread(int32 *buffer, exint asize=1)
static void saveData(std::ostream &os, UT_Vector2D v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
const GLfloat * c
Definition: glew.h:16631
UT_OptionType
Definition: UT_Options.h:44
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:657
int64 exint
Definition: SYS_Types.h:125
SIM_Query * createQueryObject(const SIM_Data *owner) const
SYS_FORCE_INLINE const char * buffer() const
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
An output stream object that owns its own string buffer storage.
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, int64 v)
const UT_Array< Sources > & getSources() const
GLenum src
Definition: glcorearb.h:1793
static void loadData(UT_IStream &is, UT_Vector3D &v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setInstanceGeo(const UT_StringHolder &val)
bool getFieldRawSubclass(const char *recordtype, int recordnum, const char *fieldname, UT_OptionEntryPtr &result) const override
double fpreal64
Definition: SYS_Types.h:201
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
GLuint64EXT * result
Definition: glew.h:14311
int getNumRecordsSubclass(const char *recordtype) const override
UT_OptionType getFieldTypeSubclass(const char *recordtype, int fieldnum) const override
exint length() const
static void loadData(UT_IStream &is, UT_Vector2I &v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
const GLdouble * v
Definition: glcorearb.h:837
bool operator!=(const SIM_OpenCLMergeVDBParms &src) const
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:288
bool operator==(const SIM_OpenCLMergeVDBParms &src) const
int getNumFieldsSubclass(const char *recordtype) const override
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
const char * getFieldNameSubclass(const char *recordtype, int fieldnum) const override
const char * getRecordTypeNameSubclass(int recordtypenum) const override
void setDopGeometry(const UT_StringHolder &val)
static void saveData(std::ostream &os, bool v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:287
static void saveData(std::ostream &os, UT_Vector4D v)
GT_API const UT_StringHolder version
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2540
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:611
GLboolean * data
Definition: glcorearb.h:131
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
GLuint GLfloat * val
Definition: glcorearb.h:1608
void save(std::ostream &os) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
size_t *lastDimSize unsigned int rank
Definition: wrapArray.h:335
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder createString(const UT_Array< Sources > &list) const
static void loadData(UT_IStream &is, int64 &v)
const char * findChar(int c) const
Definition: UT_String.h:1372
bool operator==(const Sources &src) const
static void saveData(std::ostream &os, UT_Matrix3D v)
bool operator!=(const Sources &src) const
static void saveData(std::ostream &os, UT_Vector3D v)
static void saveData(std::ostream &os, UT_Matrix2D v)
const UT_StringHolder & getDopGeometry() const
void activate(GridOrTree &, const typename GridOrTree::ValueType &value, const typename GridOrTree::ValueType &tolerance=zeroVal< typename GridOrTree::ValueType >(), const bool threaded=true)
Mark as active any inactive tiles or voxels in the given grid or tree whose values are equal to value...
Definition: Activate.h:175
static void loadData(UT_IStream &is, bool &v)
type
Definition: core.h:1059
GLboolean r
Definition: glcorearb.h:1222
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:655
GLdouble s
Definition: glew.h:1395
Query(const SIM_Data *owner, const SIM_OpenCLMergeVDBParms &parms)
const UT_StringHolder & getSrcSuffix() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
UT_UniquePtr< UT_OptionEntry > UT_OptionEntryPtr
SYS_FORCE_INLINE bool isstring() const
constexpr T normalize(UT_FixedVector< T, D > &a) noexcept
const UT_StringHolder & getInstanceGeo() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, fpreal64 v)
void setSrcSuffix(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:653