76 geometry =
"Geometry"_UTsh;
103 if (intval != src.
intval)
return false;
104 if (fval != src.
fval)
return false;
105 if (v2val != src.
v2val)
return false;
106 if (v3val != src.
v3val)
return false;
107 if (v4val != src.
v4val)
return false;
108 if (timescale != src.
timescale)
return false;
109 if (fieldname != src.
fieldname)
return false;
111 if (ramp != src.
ramp)
112 {
if (!ramp || !src.
ramp || !(*ramp == *src.
ramp))
return false; }
113 if (rampsize != src.
rampsize)
return false;
114 if (geometry != src.
geometry)
return false;
117 if (attribtype != src.
attribtype)
return false;
118 if (attribsize != src.
attribsize)
return false;
119 if (volume != src.
volume)
return false;
120 if (vdbtype != src.
vdbtype)
return false;
122 if (voxelsize != src.
voxelsize)
return false;
126 if (readable != src.
readable)
return false;
127 if (writeable != src.
writeable)
return false;
128 if (optional != src.
optional)
return false;
129 if (defval != src.
defval)
return false;
130 if (dataname != src.
dataname)
return false;
131 if (optionname != src.
optionname)
return false;
132 if (optiontype != src.
optiontype)
return false;
133 if (optionsize != src.
optionsize)
return false;
149 for (
int i = 0; i < list.
entries(); i++)
163 buf.
appendSprintf(
"(%f, %f)", list(i).v2val.x(), list(i).v2val.y());
165 buf.
appendSprintf(
"(%f, %f, %f)", list(i).v3val.x(), list(i).v3val.y(), list(i).v3val.z());
167 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).v4val.x(), list(i).v4val.y(), list(i).v4val.z(), list(i).v4val.w());
173 buf.
appendSprintf(
"%s", (list(i).fieldoffsets) ?
"true" :
"false");
179 list(i).ramp->save(os);
203 buf.
appendSprintf(
"%s", (list(i).voxelsize) ?
"true" :
"false");
205 buf.
appendSprintf(
"%s", (list(i).xformtoworld) ?
"true" :
"false");
207 buf.
appendSprintf(
"%s", (list(i).xformtovoxel) ?
"true" :
"false");
211 buf.
appendSprintf(
"%s", (list(i).readable) ?
"true" :
"false");
213 buf.
appendSprintf(
"%s", (list(i).writeable) ?
"true" :
"false");
215 buf.
appendSprintf(
"%s", (list(i).optional) ?
"true" :
"false");
217 buf.
appendSprintf(
"%s", (list(i).defval) ?
"true" :
"false");
240 myKernelName =
"kernelName"_UTsh;
241 myKernelFile =
""_UTsh;
242 myKernelCode =
""_UTsh;
244 myKernelOptions =
""_UTsh;
245 myOptionAttribute =
""_UTsh;
253 myFlushAttributes =
false;
258 myWorksetsGeometry =
""_UTsh;
259 myWorksetsBeginAttr =
""_UTsh;
260 myWorksetsLengthAttr =
""_UTsh;
262 myErrorMismatchedPoint =
false;
263 myErrorMismatchedPrim =
false;
264 mySingleWorkgroup = 0;
266 myImportPrequel =
true;
279 if (myRunOver != src.myRunOver)
return false;
280 if (myAlign != src.myAlign)
return false;
281 if (myUseCode != src.myUseCode)
return false;
282 if (myKernelName != src.myKernelName)
return false;
283 if (myKernelFile != src.myKernelFile)
return false;
284 if (myKernelCode != src.myKernelCode)
return false;
285 if (myAtBinding != src.myAtBinding)
return false;
286 if (myKernelOptions != src.myKernelOptions)
return false;
287 if (myOptionAttribute != src.myOptionAttribute)
return false;
288 if (myRecompile != src.myRecompile)
return false;
289 if (myOrigin != src.myOrigin)
return false;
290 if (mySize != src.mySize)
return false;
291 if (myVoxelSize != src.myVoxelSize)
return false;
292 if (myTime != src.myTime)
return false;
293 if (myFrame != src.myFrame)
return false;
294 if (myTimeInc != src.myTimeInc)
return false;
295 if (myFlushAttributes != src.myFlushAttributes)
return false;
296 if (myFinish != src.myFinish)
return false;
297 if (myTimeScale != src.myTimeScale)
return false;
298 if (myTimeMethod != src.myTimeMethod)
return false;
299 if (myXNoise != src.myXNoise)
return false;
300 if (myWorksetsGeometry != src.myWorksetsGeometry)
return false;
301 if (myWorksetsBeginAttr != src.myWorksetsBeginAttr)
return false;
302 if (myWorksetsLengthAttr != src.myWorksetsLengthAttr)
return false;
303 if (myWarnMissing != src.myWarnMissing)
return false;
304 if (myErrorMismatchedPoint != src.myErrorMismatchedPoint)
return false;
305 if (myErrorMismatchedPrim != src.myErrorMismatchedPrim)
return false;
306 if (mySingleWorkgroup != src.mySingleWorkgroup)
return false;
307 if (myPrecision != src.myPrecision)
return false;
308 if (myImportPrequel != src.myImportPrequel)
return false;
309 if (myBindings != src.myBindings)
return false;
331 {
return !strcmp(recordtype,
"Params"); }
336 if (recordtypenum == 0)
return "Params";
341 if (isMyRecord(recordtype))
return 1;
346 if (isMyRecord(recordtype))
352 int fieldnum)
const override
354 if (!isMyRecord(recordtype))
374 return "kerneloptions";
376 return "kerneloptionattrib";
392 return "flushattrib";
402 return "worksets_geo";
404 return "worksets_begin";
406 return "worksets_length";
408 return "warnmissing";
410 return "errormismatchedpoint";
412 return "errormismatchedprim";
414 return "singleworkgroup";
418 return "importprequel";
426 int fieldnum)
const override
428 if (!isMyRecord(recordtype))
502 const char *fieldname,
505 if (!isMyRecord(recordtype))
511 if (!strcmp(fieldname,
"runover"))
513 result = UTmakeUnique<UT_OptionInt>(myParms.myRunOver);
516 if (!strcmp(fieldname,
"align"))
518 result = UTmakeUnique<UT_OptionBool>(myParms.myAlign);
521 if (!strcmp(fieldname,
"usecode"))
523 result = UTmakeUnique<UT_OptionBool>(myParms.myUseCode);
526 if (!strcmp(fieldname,
"kernelname"))
528 result = UTmakeUnique<UT_OptionString>(myParms.myKernelName);
531 if (!strcmp(fieldname,
"kernelfile"))
533 result = UTmakeUnique<UT_OptionString>(myParms.myKernelFile);
536 if (!strcmp(fieldname,
"kernelcode"))
538 result = UTmakeUnique<UT_OptionString>(myParms.myKernelCode);
541 if (!strcmp(fieldname,
"atbinding"))
543 result = UTmakeUnique<UT_OptionBool>(myParms.myAtBinding);
546 if (!strcmp(fieldname,
"kerneloptions"))
548 result = UTmakeUnique<UT_OptionString>(myParms.myKernelOptions);
551 if (!strcmp(fieldname,
"kerneloptionattrib"))
553 result = UTmakeUnique<UT_OptionString>(myParms.myOptionAttribute);
556 if (!strcmp(fieldname,
"recompile"))
558 result = UTmakeUnique<UT_OptionBool>(myParms.myRecompile);
561 if (!strcmp(fieldname,
"origin"))
563 result = UTmakeUnique<UT_OptionBool>(myParms.myOrigin);
566 if (!strcmp(fieldname,
"size"))
568 result = UTmakeUnique<UT_OptionBool>(myParms.mySize);
571 if (!strcmp(fieldname,
"voxelsize"))
573 result = UTmakeUnique<UT_OptionBool>(myParms.myVoxelSize);
576 if (!strcmp(fieldname,
"time"))
578 result = UTmakeUnique<UT_OptionBool>(myParms.myTime);
581 if (!strcmp(fieldname,
"frame"))
583 result = UTmakeUnique<UT_OptionBool>(myParms.myFrame);
586 if (!strcmp(fieldname,
"timeinc"))
588 result = UTmakeUnique<UT_OptionBool>(myParms.myTimeInc);
591 if (!strcmp(fieldname,
"flushattrib"))
593 result = UTmakeUnique<UT_OptionBool>(myParms.myFlushAttributes);
596 if (!strcmp(fieldname,
"finish"))
598 result = UTmakeUnique<UT_OptionBool>(myParms.myFinish);
601 if (!strcmp(fieldname,
"timescale"))
603 result = UTmakeUnique<UT_OptionFpreal>(myParms.myTimeScale);
606 if (!strcmp(fieldname,
"timemethod"))
608 result = UTmakeUnique<UT_OptionInt>(myParms.myTimeMethod);
611 if (!strcmp(fieldname,
"xnoise"))
613 result = UTmakeUnique<UT_OptionBool>(myParms.myXNoise);
616 if (!strcmp(fieldname,
"worksets_geo"))
618 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsGeometry);
621 if (!strcmp(fieldname,
"worksets_begin"))
623 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsBeginAttr);
626 if (!strcmp(fieldname,
"worksets_length"))
628 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsLengthAttr);
631 if (!strcmp(fieldname,
"warnmissing"))
633 result = UTmakeUnique<UT_OptionBool>(myParms.myWarnMissing);
636 if (!strcmp(fieldname,
"errormismatchedpoint"))
638 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPoint);
641 if (!strcmp(fieldname,
"errormismatchedprim"))
643 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPrim);
646 if (!strcmp(fieldname,
"singleworkgroup"))
648 result = UTmakeUnique<UT_OptionInt>(myParms.mySingleWorkgroup);
651 if (!strcmp(fieldname,
"precision"))
653 result = UTmakeUnique<UT_OptionInt>(myParms.myPrecision);
656 if (!strcmp(fieldname,
"importprequel"))
658 result = UTmakeUnique<UT_OptionBool>(myParms.myImportPrequel);
661 if (!strcmp(fieldname,
"bindings"))
663 result = UTmakeUnique<UT_OptionString>(myParms.createString(myParms.myBindings));
675 {
return new Query(owner, *
this); }
713 loadData(is, rampdata);
731 int typelen = colon - data.
buffer();
745 {
int64 iv =
v; UTwrite(os, &iv); }
747 { UTwrite<fpreal64>(os, &
v); }
749 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
751 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
752 UTwrite<fpreal64>(os, &v.
z()); }
754 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
755 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
767 if (s) s->save(ostr);
769 saveData(os, result);
776 ostr << s->getDataTypeToken();
781 saveData(os, result);
785 void save(std::ostream &os)
const
789 saveData(os, myRunOver);
790 saveData(os, myAlign);
791 saveData(os, myUseCode);
792 saveData(os, myKernelName);
793 saveData(os, myKernelFile);
794 saveData(os, myKernelCode);
795 saveData(os, myAtBinding);
796 saveData(os, myKernelOptions);
797 saveData(os, myOptionAttribute);
798 saveData(os, myRecompile);
799 saveData(os, myOrigin);
800 saveData(os, mySize);
801 saveData(os, myVoxelSize);
802 saveData(os, myTime);
803 saveData(os, myFrame);
804 saveData(os, myTimeInc);
805 saveData(os, myFlushAttributes);
806 saveData(os, myFinish);
807 saveData(os, myTimeScale);
808 saveData(os, myTimeMethod);
809 saveData(os, myXNoise);
810 saveData(os, myWorksetsGeometry);
811 saveData(os, myWorksetsBeginAttr);
812 saveData(os, myWorksetsLengthAttr);
813 saveData(os, myWarnMissing);
814 saveData(os, myErrorMismatchedPoint);
815 saveData(os, myErrorMismatchedPrim);
816 saveData(os, mySingleWorkgroup);
817 saveData(os, myPrecision);
818 saveData(os, myImportPrequel);
821 UTwrite(os, &length);
824 auto && _curentry = myBindings(i);
826 saveData(os, _curentry.name);
827 saveData(os, _curentry.type);
828 saveData(os, _curentry.intval);
829 saveData(os, _curentry.fval);
830 saveData(os, _curentry.v2val);
831 saveData(os, _curentry.v3val);
832 saveData(os, _curentry.v4val);
833 saveData(os, _curentry.timescale);
834 saveData(os, _curentry.fieldname);
835 saveData(os, _curentry.fieldoffsets);
836 saveData(os, _curentry.ramp);
837 saveData(os, _curentry.rampsize);
838 saveData(os, _curentry.geometry);
839 saveData(os, _curentry.attribute);
840 saveData(os, _curentry.attribclass);
841 saveData(os, _curentry.attribtype);
842 saveData(os, _curentry.attribsize);
843 saveData(os, _curentry.volume);
844 saveData(os, _curentry.vdbtype);
845 saveData(os, _curentry.resolution);
846 saveData(os, _curentry.voxelsize);
847 saveData(os, _curentry.xformtoworld);
848 saveData(os, _curentry.xformtovoxel);
849 saveData(os, _curentry.precision);
850 saveData(os, _curentry.readable);
851 saveData(os, _curentry.writeable);
852 saveData(os, _curentry.optional);
853 saveData(os, _curentry.defval);
854 saveData(os, _curentry.dataname);
855 saveData(os, _curentry.optionname);
856 saveData(os, _curentry.optiontype);
857 saveData(os, _curentry.optionsize);
873 loadData(is, myRunOver);
874 loadData(is, myAlign);
875 loadData(is, myUseCode);
876 loadData(is, myKernelName);
877 loadData(is, myKernelFile);
878 loadData(is, myKernelCode);
879 loadData(is, myAtBinding);
880 loadData(is, myKernelOptions);
881 loadData(is, myOptionAttribute);
882 loadData(is, myRecompile);
883 loadData(is, myOrigin);
884 loadData(is, mySize);
885 loadData(is, myVoxelSize);
886 loadData(is, myTime);
887 loadData(is, myFrame);
888 loadData(is, myTimeInc);
889 loadData(is, myFlushAttributes);
890 loadData(is, myFinish);
891 loadData(is, myTimeScale);
892 loadData(is, myTimeMethod);
893 loadData(is, myXNoise);
894 loadData(is, myWorksetsGeometry);
895 loadData(is, myWorksetsBeginAttr);
896 loadData(is, myWorksetsLengthAttr);
897 loadData(is, myWarnMissing);
898 loadData(is, myErrorMismatchedPoint);
899 loadData(is, myErrorMismatchedPrim);
900 loadData(is, mySingleWorkgroup);
901 loadData(is, myPrecision);
902 loadData(is, myImportPrequel);
906 myBindings.setSize(length);
909 auto && _curentry = myBindings(i);
911 loadData(is, _curentry.name);
912 loadData(is, _curentry.type);
913 loadData(is, _curentry.intval);
914 loadData(is, _curentry.fval);
915 loadData(is, _curentry.v2val);
916 loadData(is, _curentry.v3val);
917 loadData(is, _curentry.v4val);
918 loadData(is, _curentry.timescale);
919 loadData(is, _curentry.fieldname);
920 loadData(is, _curentry.fieldoffsets);
921 loadData(is, _curentry.ramp);
922 loadData(is, _curentry.rampsize);
923 loadData(is, _curentry.geometry);
924 loadData(is, _curentry.attribute);
925 loadData(is, _curentry.attribclass);
926 loadData(is, _curentry.attribtype);
927 loadData(is, _curentry.attribsize);
928 loadData(is, _curentry.volume);
929 loadData(is, _curentry.vdbtype);
930 loadData(is, _curentry.resolution);
931 loadData(is, _curentry.voxelsize);
932 loadData(is, _curentry.xformtoworld);
933 loadData(is, _curentry.xformtovoxel);
934 loadData(is, _curentry.precision);
935 loadData(is, _curentry.readable);
936 loadData(is, _curentry.writeable);
937 loadData(is, _curentry.optional);
938 loadData(is, _curentry.defval);
939 loadData(is, _curentry.dataname);
940 loadData(is, _curentry.optionname);
941 loadData(is, _curentry.optiontype);
942 loadData(is, _curentry.optionsize);
1030 bool myFlushAttributes;
1039 bool myErrorMismatchedPoint;
1040 bool myErrorMismatchedPrim;
1041 int64 mySingleWorkgroup;
1043 bool myImportPrequel;
bool getImportPrequel() const
bool operator!=(const Bindings &src) const
GLenum GLuint GLenum GLsizei const GLchar * buf
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getKernelName() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
bool operator==(const GAS_OpenCLParms &src) const
void setOptionAttribute(const UT_StringHolder &val)
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
void setTimeMethod(int64 val)
void setRunOver(int64 val)
bool getFlushAttributes() const
bool getErrorMismatchedPrim() const
const char * getFieldNameSubclass(const char *recordtype, int fieldnum) const override
exint bread(int32 *buffer, exint asize=1)
constexpr SYS_FORCE_INLINE T & y() noexcept
bool getErrorMismatchedPoint() const
UT_StringHolder createString(const UT_Array< Bindings > &list) const
bool isMyRecord(const char *recordtype) const
bool getWarnMissing() const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setWorksetsGeometry(const UT_StringHolder &val)
UT_OptionType getFieldTypeSubclass(const char *recordtype, int fieldnum) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
constexpr SYS_FORCE_INLINE T & z() noexcept
const UT_StringHolder & getWorksetsGeometry() const
static void saveData(std::ostream &os, fpreal64 v)
SYS_FORCE_INLINE const char * buffer() const
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
Query(const SIM_Data *owner, const GAS_OpenCLParms &parms)
const GAS_OpenCLParms & myParms
**But if you need a result
bool getRecompile() const
void setAtBinding(bool val)
static void saveData(std::ostream &os, UT_Vector4D v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setUseCode(bool val)
UT_StringHolder attribute
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void setTimeInc(bool val)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setImportPrequel(bool val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
bool getFieldRawSubclass(const char *recordtype, int recordnum, const char *fieldname, UT_OptionEntryPtr &result) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void saveData(std::ostream &os, int64 v)
GLint GLint GLsizei GLint GLenum GLenum type
void setBindings(const UT_Array< Bindings > &val)
bool load(UT_IStream &is)
SIM_Query * createQueryObject(const SIM_Data *owner) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void save(std::ostream &os) const
constexpr SYS_FORCE_INLINE T & z() noexcept
int64 getTimeMethod() const
UT_SharedPtr< UT_Ramp > ramp
exint read(bool *array, exint sz=1)
int64 getPrecision() const
static void loadData(UT_IStream &is, bool &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setErrorMismatchedPoint(bool val)
void setVoxelSize(bool val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool getAtBinding() const
HUSD_API const char * resolution()
static void saveData(std::ostream &os, UT_Vector2D v)
UT_StringHolder optionname
GLuint const GLchar * name
void setErrorMismatchedPrim(bool val)
const UT_Array< Bindings > & getBindings() const
static void saveData(std::ostream &os, UT_Matrix2D v)
const char * getRecordTypeNameSubclass(int recordtypenum) const override
int getNumRecordsSubclass(const char *recordtype) const override
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setRecompile(bool val)
const UT_StringHolder & getOptionAttribute() const
GT_API const UT_StringHolder version
GLenum GLint GLint * precision
exint entries() const
Alias of size(). size() is preferred.
const UT_StringHolder & getKernelFile() const
UT_StringHolder fieldname
void setPrecision(int64 val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setWorksetsLengthAttr(const UT_StringHolder &val)
GA_API const UT_StringHolder parms
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setTimeScale(fpreal64 val)
const UT_StringHolder & getKernelCode() const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
void setWorksetsBeginAttr(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Vector3D &v)
int getNumFieldsSubclass(const char *recordtype) const override
static void saveData(std::ostream &os, UT_StringHolder s)
OIIO_API bool attribute(string_view name, TypeDesc type, const void *val)
bool operator!=(const GAS_OpenCLParms &src) const
bool operator==(const Bindings &src) const
void setWarnMissing(bool val)
const UT_StringHolder & getKernelOptions() const
void setSingleWorkgroup(int64 val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
const char * findChar(int c) const
void setKernelName(const UT_StringHolder &val)
void setKernelCode(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
fpreal64 getTimeScale() const
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool getVoxelSize() const
constexpr SYS_FORCE_INLINE T & y() noexcept
void setKernelOptions(const UT_StringHolder &val)
int64 getSingleWorkgroup() const
const UT_StringHolder & getWorksetsLengthAttr() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setKernelFile(const UT_StringHolder &val)
void setFlushAttributes(bool val)
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, bool v)
int getNumRecordTypesSubclass() const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getWorksetsBeginAttr() const
constexpr SYS_FORCE_INLINE T & x() noexcept