20 using namespace UT::Literal;
60 enabledirguide =
false;
71 if (srcvdb != src.
srcvdb)
return false;
72 if (srcweight != src.
srcweight)
return false;
75 if (operation != src.
operation)
return false;
77 if (noneg != src.
noneg)
return false;
99 for (
int i = 0; i < list.
entries(); i++)
119 buf.
appendSprintf(
"%s", (list(i).useveclength) ?
"true" :
"false");
127 buf.
appendSprintf(
"%s", (list(i).enabledirguide) ?
"true" :
"false");
145 myDopGeometry =
""_sh;
148 myUseInstances =
false;
149 myInstanceGeo =
""_sh;
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;
187 {
return !strcmp(recordtype,
"Params"); }
192 if (recordtypenum == 0)
return "Params";
197 if (isMyRecord(recordtype))
return 1;
202 if (isMyRecord(recordtype))
208 int fieldnum)
const override
210 if (!isMyRecord(recordtype))
234 int fieldnum)
const override
236 if (!isMyRecord(recordtype))
262 const char *fieldname,
265 if (!isMyRecord(recordtype))
271 if (!strcmp(fieldname,
"dopgeo"))
273 result = UTmakeUnique<UT_OptionString>(myParms.myDopGeometry);
276 if (!strcmp(fieldname,
"srcsuffix"))
278 result = UTmakeUnique<UT_OptionString>(myParms.mySrcSuffix);
281 if (!strcmp(fieldname,
"srctype"))
283 result = UTmakeUnique<UT_OptionInt>(myParms.mySourceType);
286 if (!strcmp(fieldname,
"useinst"))
288 result = UTmakeUnique<UT_OptionBool>(myParms.myUseInstances);
291 if (!strcmp(fieldname,
"instgeo"))
293 result = UTmakeUnique<UT_OptionString>(myParms.myInstanceGeo);
296 if (!strcmp(fieldname,
"loc"))
298 result = UTmakeUnique<UT_OptionVector3>(myParms.myPosition);
301 if (!strcmp(fieldname,
"sources"))
303 result = UTmakeUnique<UT_OptionString>(myParms.createString(myParms.mySources));
315 {
return new Query(owner, *
this); }
353 loadData(is, rampdata);
371 int typelen = colon - data.
buffer();
385 {
int64 iv =
v; UTwrite(os, &iv); }
387 { UTwrite<fpreal64>(os, &
v); }
389 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
391 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
392 UTwrite<fpreal64>(os, &v.
z()); }
394 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
395 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
407 if (s) s->save(ostr);
409 saveData(os, result);
416 ostr << s->getDataTypeToken();
421 saveData(os, result);
425 void save(std::ostream &os)
const
429 saveData(os, myDopGeometry);
430 saveData(os, mySrcSuffix);
431 saveData(os, mySourceType);
432 saveData(os, myUseInstances);
433 saveData(os, myInstanceGeo);
434 saveData(os, myPosition);
437 UTwrite(os, &length);
440 auto && _curentry = mySources(i);
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);
472 loadData(is, myDopGeometry);
473 loadData(is, mySrcSuffix);
474 loadData(is, mySourceType);
475 loadData(is, myUseInstances);
476 loadData(is, myInstanceGeo);
477 loadData(is, myPosition);
481 mySources.setSize(length);
484 auto && _curentry = mySources(i);
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);
bool isMyRecord(const char *recordtype) const
const SIM_OpenCLMergeVDBParms & myParms
static void loadData(UT_IStream &is, UT_Matrix2D &v)
~SIM_OpenCLMergeVDBParms()
SIM_OpenCLMergeVDBParms()
GLenum GLenum GLenum GLenum GLenum scale
static void saveData(std::ostream &os, UT_StringHolder s)
UT_StringHolder targetfield
static void loadData(UT_IStream &is, UT_Vector3I &v)
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)
void setUseInstances(bool val)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
constexpr SYS_FORCE_INLINE T & z() noexcept
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
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
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
int getNumRecordsSubclass(const char *recordtype) const override
UT_Vector3D getPosition() const
UT_OptionType getFieldTypeSubclass(const char *recordtype, int fieldnum) const override
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.
bool operator!=(const SIM_OpenCLMergeVDBParms &src) const
exint read(bool *array, exint sz=1)
bool operator==(const SIM_OpenCLMergeVDBParms &src) const
UT_StringHolder srcweight
int getNumFieldsSubclass(const char *recordtype) const override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool getUseInstances() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
const char * getFieldNameSubclass(const char *recordtype, int fieldnum) const override
bool load(UT_IStream &is)
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.
int64 getSourceType() const
static void saveData(std::ostream &os, UT_Vector4D v)
GT_API const UT_StringHolder version
GLenum GLuint GLenum GLsizei const GLchar * buf
exint entries() const
Alias of size(). size() is preferred.
GLuint GLsizei GLsizei * length
void save(std::ostream &os) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
Utility class for containing a color ramp.
size_t *lastDimSize unsigned int rank
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
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
static void loadData(UT_IStream &is, bool &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Query(const SIM_Data *owner, const SIM_OpenCLMergeVDBParms &parms)
const UT_StringHolder & getSrcSuffix() const
void setPosition(UT_Vector3D val)
void setSourceType(int64 val)
UT_StringHolder weightfield
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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
int getNumRecordTypesSubclass() const override