33 myColliderGeo =
""_UTsh;
34 mySurfaceVDB =
""_UTsh;
35 myVelocityVDB =
""_UTsh;
36 myVDBNameSuffix =
""_UTsh;
37 myUseInstances =
false;
38 myInstanceGeo =
""_UTsh;
51 if (myColliderType != src.myColliderType)
return false;
52 if (myField != src.myField)
return false;
53 if (myVelField != src.myVelField)
return false;
54 if (myWindVelocity != src.myWindVelocity)
return false;
55 if (myColliderGeo != src.myColliderGeo)
return false;
56 if (mySurfaceVDB != src.mySurfaceVDB)
return false;
57 if (myVelocityVDB != src.myVelocityVDB)
return false;
58 if (myVDBNameSuffix != src.myVDBNameSuffix)
return false;
59 if (myUseInstances != src.myUseInstances)
return false;
60 if (myInstanceGeo != src.myInstanceGeo)
return false;
81 {
return !strcmp(recordtype,
"Params"); }
86 if (recordtypenum == 0)
return "Params";
91 if (isMyRecord(recordtype))
return 1;
96 if (isMyRecord(recordtype))
102 int fieldnum)
const override
104 if (!isMyRecord(recordtype))
110 return "collidertype";
118 return "collidergeo";
134 int fieldnum)
const override
136 if (!isMyRecord(recordtype))
168 const char *fieldname,
171 if (!isMyRecord(recordtype))
177 if (!strcmp(fieldname,
"collidertype"))
179 result = UTmakeUnique<UT_OptionInt>(myParms.myColliderType);
182 if (!strcmp(fieldname,
"field"))
184 result = UTmakeUnique<UT_OptionString>(myParms.myField);
187 if (!strcmp(fieldname,
"velocity"))
189 result = UTmakeUnique<UT_OptionString>(myParms.myVelField);
192 if (!strcmp(fieldname,
"wind"))
194 result = UTmakeUnique<UT_OptionVector3>(myParms.myWindVelocity);
197 if (!strcmp(fieldname,
"collidergeo"))
199 result = UTmakeUnique<UT_OptionString>(myParms.myColliderGeo);
202 if (!strcmp(fieldname,
"surfvdb"))
204 result = UTmakeUnique<UT_OptionString>(myParms.mySurfaceVDB);
207 if (!strcmp(fieldname,
"velvdb"))
209 result = UTmakeUnique<UT_OptionString>(myParms.myVelocityVDB);
212 if (!strcmp(fieldname,
"vdbsuffix"))
214 result = UTmakeUnique<UT_OptionString>(myParms.myVDBNameSuffix);
217 if (!strcmp(fieldname,
"useinst"))
219 result = UTmakeUnique<UT_OptionBool>(myParms.myUseInstances);
222 if (!strcmp(fieldname,
"instgeo"))
224 result = UTmakeUnique<UT_OptionString>(myParms.myInstanceGeo);
236 {
return new Query(owner, *
this); }
274 loadData(is, rampdata);
292 int typelen = colon - data.
buffer();
306 {
int64 iv =
v; UTwrite(os, &iv); }
308 { UTwrite<fpreal64>(os, &
v); }
310 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
312 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
313 UTwrite<fpreal64>(os, &v.
z()); }
315 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
316 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
328 if (s) s->save(ostr);
330 saveData(os, result);
337 ostr << s->getDataTypeToken();
342 saveData(os, result);
346 void save(std::ostream &os)
const
350 saveData(os, myColliderType);
351 saveData(os, myField);
352 saveData(os, myVelField);
353 saveData(os, myWindVelocity);
354 saveData(os, myColliderGeo);
355 saveData(os, mySurfaceVDB);
356 saveData(os, myVelocityVDB);
357 saveData(os, myVDBNameSuffix);
358 saveData(os, myUseInstances);
359 saveData(os, myInstanceGeo);
372 loadData(is, myColliderType);
373 loadData(is, myField);
374 loadData(is, myVelField);
375 loadData(is, myWindVelocity);
376 loadData(is, myColliderGeo);
377 loadData(is, mySurfaceVDB);
378 loadData(is, myVelocityVDB);
379 loadData(is, myVDBNameSuffix);
380 loadData(is, myUseInstances);
381 loadData(is, myInstanceGeo);
408 int64 myColliderType;
const UT_StringHolder & getVelField() const
bool operator==(const SIM_OpenCLEnforceBoundaryParms &src) const
UT_OptionType getFieldTypeSubclass(const char *recordtype, int fieldnum) const override
void setColliderGeo(const UT_StringHolder &val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool getUseInstances() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
int getNumRecordTypesSubclass() const override
exint bread(int32 *buffer, exint asize=1)
static void saveData(std::ostream &os, bool v)
constexpr SYS_FORCE_INLINE T & y() noexcept
int getNumFieldsSubclass(const char *recordtype) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
SYS_FORCE_INLINE const char * buffer() const
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
**But if you need a result
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_Matrix4D &v)
static void saveData(std::ostream &os, fpreal64 v)
bool isMyRecord(const char *recordtype) const
constexpr SYS_FORCE_INLINE T & x() noexcept
const UT_StringHolder & getSurfaceVDB() const
const UT_StringHolder & getVelocityVDB() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool operator!=(const SIM_OpenCLEnforceBoundaryParms &src) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
const SIM_OpenCLEnforceBoundaryParms & myParms
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getVDBNameSuffix() const
SIM_OpenCLEnforceBoundaryParms()
static void saveData(std::ostream &os, int64 v)
UT_Vector3D getWindVelocity() const
const char * getRecordTypeNameSubclass(int recordtypenum) const override
void setWindVelocity(UT_Vector3D val)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
constexpr SYS_FORCE_INLINE T & z() noexcept
void setField(const UT_StringHolder &val)
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, UT_Vector3I &v)
const UT_StringHolder & getField() const
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, UT_Vector2D v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
int getNumRecordsSubclass(const char *recordtype) const override
void save(std::ostream &os) const
void setVDBNameSuffix(const UT_StringHolder &val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
LeafData & operator=(const LeafData &)=delete
void setColliderType(int64 val)
Utility class for containing a color ramp.
const UT_StringHolder & getColliderGeo() const
int64 getColliderType() const
static void saveData(std::ostream &os, UT_StringHolder s)
constexpr SYS_FORCE_INLINE T & w() noexcept
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setVelocityVDB(const UT_StringHolder &val)
static void loadData(UT_IStream &is, bool &v)
void setSurfaceVDB(const UT_StringHolder &val)
const char * findChar(int c) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setVelField(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Vector4D v)
const UT_StringHolder & getInstanceGeo() const
constexpr SYS_FORCE_INLINE T & y() noexcept
void setInstanceGeo(const UT_StringHolder &val)
void setUseInstances(bool val)
const char * getFieldNameSubclass(const char *recordtype, int fieldnum) const override
static void loadData(UT_IStream &is, UT_Vector3D &v)
Query(const SIM_Data *owner, const SIM_OpenCLEnforceBoundaryParms &parms)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_UniquePtr< UT_OptionEntry > UT_OptionEntryPtr
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Matrix2D v)
SIM_Query * createQueryObject(const SIM_Data *owner) const
bool getFieldRawSubclass(const char *recordtype, int recordnum, const char *fieldname, UT_OptionEntryPtr &result) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept