20 using namespace UT::Literal;
99 if (intval != src.
intval)
return false;
100 if (fval != src.
fval)
return false;
101 if (v3val != src.
v3val)
return false;
102 if (v4val != src.
v4val)
return false;
103 if (timescale != src.
timescale)
return false;
104 if (fieldname != src.
fieldname)
return false;
106 if (ramp != src.
ramp)
107 {
if (!ramp || !src.
ramp || !(*ramp == *src.
ramp))
return false; }
108 if (rampsize != src.
rampsize)
return false;
109 if (geometry != src.
geometry)
return false;
112 if (attribtype != src.
attribtype)
return false;
113 if (attribsize != src.
attribsize)
return false;
114 if (volume != src.
volume)
return false;
116 if (voxelsize != src.
voxelsize)
return false;
120 if (readable != src.
readable)
return false;
121 if (writeable != src.
writeable)
return false;
122 if (optional != src.
optional)
return false;
123 if (dataname != src.
dataname)
return false;
124 if (optionname != src.
optionname)
return false;
125 if (optiontype != src.
optiontype)
return false;
126 if (optionsize != src.
optionsize)
return false;
142 for (
int i = 0; i < list.
entries(); i++)
156 buf.
appendSprintf(
"(%f, %f, %f)", list(i).v3val.x(), list(i).v3val.y(), list(i).v3val.z());
158 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).v4val.x(), list(i).v4val.y(), list(i).v4val.z(), list(i).v4val.w());
164 buf.
appendSprintf(
"%s", (list(i).fieldoffsets) ?
"true" :
"false");
170 list(i).ramp->save(os);
192 buf.
appendSprintf(
"%s", (list(i).voxelsize) ?
"true" :
"false");
194 buf.
appendSprintf(
"%s", (list(i).xformtoworld) ?
"true" :
"false");
196 buf.
appendSprintf(
"%s", (list(i).xformtovoxel) ?
"true" :
"false");
200 buf.
appendSprintf(
"%s", (list(i).readable) ?
"true" :
"false");
202 buf.
appendSprintf(
"%s", (list(i).writeable) ?
"true" :
"false");
204 buf.
appendSprintf(
"%s", (list(i).optional) ?
"true" :
"false");
227 myKernelName =
""_sh;
228 myKernelFile =
""_sh;
229 myKernelCode =
""_sh;
230 myKernelOptions =
""_sh;
231 myOptionAttribute =
""_sh;
239 myFlushAttributes =
false;
244 myWorksetsGeometry =
""_sh;
245 myWorksetsBeginAttr =
""_sh;
246 myWorksetsLengthAttr =
""_sh;
247 myWarnMissing =
false;
248 myErrorMismatchedPoint =
false;
249 myErrorMismatchedPrim =
false;
250 mySingleWorkgroup = 0;
261 if (myRunOver != src.myRunOver)
return false;
262 if (myAlign != src.myAlign)
return false;
263 if (myUseCode != src.myUseCode)
return false;
264 if (myKernelName != src.myKernelName)
return false;
265 if (myKernelFile != src.myKernelFile)
return false;
266 if (myKernelCode != src.myKernelCode)
return false;
267 if (myKernelOptions != src.myKernelOptions)
return false;
268 if (myOptionAttribute != src.myOptionAttribute)
return false;
269 if (myRecompile != src.myRecompile)
return false;
270 if (myOrigin != src.myOrigin)
return false;
271 if (mySize != src.mySize)
return false;
272 if (myVoxelSize != src.myVoxelSize)
return false;
273 if (myTime != src.myTime)
return false;
274 if (myFrame != src.myFrame)
return false;
275 if (myTimeInc != src.myTimeInc)
return false;
276 if (myFlushAttributes != src.myFlushAttributes)
return false;
277 if (myFinish != src.myFinish)
return false;
278 if (myTimeScale != src.myTimeScale)
return false;
279 if (myTimeMethod != src.myTimeMethod)
return false;
280 if (myXNoise != src.myXNoise)
return false;
281 if (myWorksetsGeometry != src.myWorksetsGeometry)
return false;
282 if (myWorksetsBeginAttr != src.myWorksetsBeginAttr)
return false;
283 if (myWorksetsLengthAttr != src.myWorksetsLengthAttr)
return false;
284 if (myWarnMissing != src.myWarnMissing)
return false;
285 if (myErrorMismatchedPoint != src.myErrorMismatchedPoint)
return false;
286 if (myErrorMismatchedPrim != src.myErrorMismatchedPrim)
return false;
287 if (mySingleWorkgroup != src.mySingleWorkgroup)
return false;
288 if (myPrecision != src.myPrecision)
return false;
289 if (myBindings != src.myBindings)
return false;
310 {
return !strcmp(recordtype,
"Params"); }
315 if (recordtypenum == 0)
return "Params";
320 if (isMyRecord(recordtype))
return 1;
325 if (isMyRecord(recordtype))
331 int fieldnum)
const override
333 if (!isMyRecord(recordtype))
351 return "kerneloptions";
353 return "kerneloptionattrib";
369 return "flushattrib";
379 return "worksets_geo";
381 return "worksets_begin";
383 return "worksets_length";
385 return "warnmissing";
387 return "errormismatchedpoint";
389 return "errormismatchedprim";
391 return "singleworkgroup";
401 int fieldnum)
const override
403 if (!isMyRecord(recordtype))
473 const char *fieldname,
476 if (!isMyRecord(recordtype))
482 if (!strcmp(fieldname,
"runover"))
484 result = UTmakeUnique<UT_OptionInt>(myParms.myRunOver);
487 if (!strcmp(fieldname,
"align"))
489 result = UTmakeUnique<UT_OptionBool>(myParms.myAlign);
492 if (!strcmp(fieldname,
"usecode"))
494 result = UTmakeUnique<UT_OptionBool>(myParms.myUseCode);
497 if (!strcmp(fieldname,
"kernelname"))
499 result = UTmakeUnique<UT_OptionString>(myParms.myKernelName);
502 if (!strcmp(fieldname,
"kernelfile"))
504 result = UTmakeUnique<UT_OptionString>(myParms.myKernelFile);
507 if (!strcmp(fieldname,
"kernelcode"))
509 result = UTmakeUnique<UT_OptionString>(myParms.myKernelCode);
512 if (!strcmp(fieldname,
"kerneloptions"))
514 result = UTmakeUnique<UT_OptionString>(myParms.myKernelOptions);
517 if (!strcmp(fieldname,
"kerneloptionattrib"))
519 result = UTmakeUnique<UT_OptionString>(myParms.myOptionAttribute);
522 if (!strcmp(fieldname,
"recompile"))
524 result = UTmakeUnique<UT_OptionBool>(myParms.myRecompile);
527 if (!strcmp(fieldname,
"origin"))
529 result = UTmakeUnique<UT_OptionBool>(myParms.myOrigin);
532 if (!strcmp(fieldname,
"size"))
534 result = UTmakeUnique<UT_OptionBool>(myParms.mySize);
537 if (!strcmp(fieldname,
"voxelsize"))
539 result = UTmakeUnique<UT_OptionBool>(myParms.myVoxelSize);
542 if (!strcmp(fieldname,
"time"))
544 result = UTmakeUnique<UT_OptionBool>(myParms.myTime);
547 if (!strcmp(fieldname,
"frame"))
549 result = UTmakeUnique<UT_OptionBool>(myParms.myFrame);
552 if (!strcmp(fieldname,
"timeinc"))
554 result = UTmakeUnique<UT_OptionBool>(myParms.myTimeInc);
557 if (!strcmp(fieldname,
"flushattrib"))
559 result = UTmakeUnique<UT_OptionBool>(myParms.myFlushAttributes);
562 if (!strcmp(fieldname,
"finish"))
564 result = UTmakeUnique<UT_OptionBool>(myParms.myFinish);
567 if (!strcmp(fieldname,
"timescale"))
569 result = UTmakeUnique<UT_OptionFpreal>(myParms.myTimeScale);
572 if (!strcmp(fieldname,
"timemethod"))
574 result = UTmakeUnique<UT_OptionInt>(myParms.myTimeMethod);
577 if (!strcmp(fieldname,
"xnoise"))
579 result = UTmakeUnique<UT_OptionBool>(myParms.myXNoise);
582 if (!strcmp(fieldname,
"worksets_geo"))
584 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsGeometry);
587 if (!strcmp(fieldname,
"worksets_begin"))
589 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsBeginAttr);
592 if (!strcmp(fieldname,
"worksets_length"))
594 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsLengthAttr);
597 if (!strcmp(fieldname,
"warnmissing"))
599 result = UTmakeUnique<UT_OptionBool>(myParms.myWarnMissing);
602 if (!strcmp(fieldname,
"errormismatchedpoint"))
604 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPoint);
607 if (!strcmp(fieldname,
"errormismatchedprim"))
609 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPrim);
612 if (!strcmp(fieldname,
"singleworkgroup"))
614 result = UTmakeUnique<UT_OptionInt>(myParms.mySingleWorkgroup);
617 if (!strcmp(fieldname,
"precision"))
619 result = UTmakeUnique<UT_OptionInt>(myParms.myPrecision);
622 if (!strcmp(fieldname,
"bindings"))
624 result = UTmakeUnique<UT_OptionString>(myParms.createString(myParms.myBindings));
636 {
return new Query(owner, *
this); }
674 loadData(is, rampdata);
692 int typelen = colon - data.
buffer();
706 {
int64 iv =
v; UTwrite(os, &iv); }
708 { UTwrite<fpreal64>(os, &
v); }
710 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
712 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
713 UTwrite<fpreal64>(os, &v.
z()); }
715 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
716 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
728 if (s) s->save(ostr);
730 saveData(os, result);
737 ostr << s->getDataTypeToken();
742 saveData(os, result);
746 void save(std::ostream &os)
const
750 saveData(os, myRunOver);
751 saveData(os, myAlign);
752 saveData(os, myUseCode);
753 saveData(os, myKernelName);
754 saveData(os, myKernelFile);
755 saveData(os, myKernelCode);
756 saveData(os, myKernelOptions);
757 saveData(os, myOptionAttribute);
758 saveData(os, myRecompile);
759 saveData(os, myOrigin);
760 saveData(os, mySize);
761 saveData(os, myVoxelSize);
762 saveData(os, myTime);
763 saveData(os, myFrame);
764 saveData(os, myTimeInc);
765 saveData(os, myFlushAttributes);
766 saveData(os, myFinish);
767 saveData(os, myTimeScale);
768 saveData(os, myTimeMethod);
769 saveData(os, myXNoise);
770 saveData(os, myWorksetsGeometry);
771 saveData(os, myWorksetsBeginAttr);
772 saveData(os, myWorksetsLengthAttr);
773 saveData(os, myWarnMissing);
774 saveData(os, myErrorMismatchedPoint);
775 saveData(os, myErrorMismatchedPrim);
776 saveData(os, mySingleWorkgroup);
777 saveData(os, myPrecision);
780 UTwrite(os, &length);
783 auto && _curentry = myBindings(i);
785 saveData(os, _curentry.name);
786 saveData(os, _curentry.type);
787 saveData(os, _curentry.intval);
788 saveData(os, _curentry.fval);
789 saveData(os, _curentry.v3val);
790 saveData(os, _curentry.v4val);
791 saveData(os, _curentry.timescale);
792 saveData(os, _curentry.fieldname);
793 saveData(os, _curentry.fieldoffsets);
794 saveData(os, _curentry.ramp);
795 saveData(os, _curentry.rampsize);
796 saveData(os, _curentry.geometry);
797 saveData(os, _curentry.attribute);
798 saveData(os, _curentry.attribclass);
799 saveData(os, _curentry.attribtype);
800 saveData(os, _curentry.attribsize);
801 saveData(os, _curentry.volume);
802 saveData(os, _curentry.resolution);
803 saveData(os, _curentry.voxelsize);
804 saveData(os, _curentry.xformtoworld);
805 saveData(os, _curentry.xformtovoxel);
806 saveData(os, _curentry.precision);
807 saveData(os, _curentry.readable);
808 saveData(os, _curentry.writeable);
809 saveData(os, _curentry.optional);
810 saveData(os, _curentry.dataname);
811 saveData(os, _curentry.optionname);
812 saveData(os, _curentry.optiontype);
813 saveData(os, _curentry.optionsize);
829 loadData(is, myRunOver);
830 loadData(is, myAlign);
831 loadData(is, myUseCode);
832 loadData(is, myKernelName);
833 loadData(is, myKernelFile);
834 loadData(is, myKernelCode);
835 loadData(is, myKernelOptions);
836 loadData(is, myOptionAttribute);
837 loadData(is, myRecompile);
838 loadData(is, myOrigin);
839 loadData(is, mySize);
840 loadData(is, myVoxelSize);
841 loadData(is, myTime);
842 loadData(is, myFrame);
843 loadData(is, myTimeInc);
844 loadData(is, myFlushAttributes);
845 loadData(is, myFinish);
846 loadData(is, myTimeScale);
847 loadData(is, myTimeMethod);
848 loadData(is, myXNoise);
849 loadData(is, myWorksetsGeometry);
850 loadData(is, myWorksetsBeginAttr);
851 loadData(is, myWorksetsLengthAttr);
852 loadData(is, myWarnMissing);
853 loadData(is, myErrorMismatchedPoint);
854 loadData(is, myErrorMismatchedPrim);
855 loadData(is, mySingleWorkgroup);
856 loadData(is, myPrecision);
860 myBindings.setSize(length);
863 auto && _curentry = myBindings(i);
865 loadData(is, _curentry.name);
866 loadData(is, _curentry.type);
867 loadData(is, _curentry.intval);
868 loadData(is, _curentry.fval);
869 loadData(is, _curentry.v3val);
870 loadData(is, _curentry.v4val);
871 loadData(is, _curentry.timescale);
872 loadData(is, _curentry.fieldname);
873 loadData(is, _curentry.fieldoffsets);
874 loadData(is, _curentry.ramp);
875 loadData(is, _curentry.rampsize);
876 loadData(is, _curentry.geometry);
877 loadData(is, _curentry.attribute);
878 loadData(is, _curentry.attribclass);
879 loadData(is, _curentry.attribtype);
880 loadData(is, _curentry.attribsize);
881 loadData(is, _curentry.volume);
882 loadData(is, _curentry.resolution);
883 loadData(is, _curentry.voxelsize);
884 loadData(is, _curentry.xformtoworld);
885 loadData(is, _curentry.xformtovoxel);
886 loadData(is, _curentry.precision);
887 loadData(is, _curentry.readable);
888 loadData(is, _curentry.writeable);
889 loadData(is, _curentry.optional);
890 loadData(is, _curentry.dataname);
891 loadData(is, _curentry.optionname);
892 loadData(is, _curentry.optiontype);
893 loadData(is, _curentry.optionsize);
976 bool myFlushAttributes;
985 bool myErrorMismatchedPoint;
986 bool myErrorMismatchedPrim;
987 int64 mySingleWorkgroup;
bool operator!=(const Bindings &src) const
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)
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
An output stream object that owns its own string buffer storage.
Query(const SIM_Data *owner, const GAS_OpenCLParms &parms)
const GAS_OpenCLParms & myParms
GLuint const GLchar * name
bool getRecompile() const
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)
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)
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
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)
HUSD_API const char * resolution()
static void saveData(std::ostream &os, UT_Vector2D v)
UT_StringHolder optionname
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 GLuint GLenum GLsizei const GLchar * buf
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)
GLuint GLsizei GLsizei * length
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setWorksetsLengthAttr(const UT_StringHolder &val)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setTimeScale(fpreal64 val)
const UT_StringHolder & getKernelCode() const
Utility class for containing a color ramp.
void setWorksetsBeginAttr(const UT_StringHolder &val)
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)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setKernelFile(const UT_StringHolder &val)
void setFlushAttributes(bool val)
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