74 geometry =
"Geometry"_UTsh;
101 if (intval != src.
intval)
return false;
102 if (fval != src.
fval)
return false;
103 if (v3val != src.
v3val)
return false;
104 if (v4val != src.
v4val)
return false;
105 if (timescale != src.
timescale)
return false;
106 if (fieldname != src.
fieldname)
return false;
108 if (ramp != src.
ramp)
109 {
if (!ramp || !src.
ramp || !(*ramp == *src.
ramp))
return false; }
110 if (rampsize != src.
rampsize)
return false;
111 if (geometry != src.
geometry)
return false;
114 if (attribtype != src.
attribtype)
return false;
115 if (attribsize != src.
attribsize)
return false;
116 if (volume != src.
volume)
return false;
117 if (vdbtype != src.
vdbtype)
return false;
119 if (voxelsize != src.
voxelsize)
return false;
123 if (readable != src.
readable)
return false;
124 if (writeable != src.
writeable)
return false;
125 if (optional != src.
optional)
return false;
126 if (defval != src.
defval)
return false;
127 if (dataname != src.
dataname)
return false;
128 if (optionname != src.
optionname)
return false;
129 if (optiontype != src.
optiontype)
return false;
130 if (optionsize != src.
optionsize)
return false;
146 for (
int i = 0; i < list.
entries(); i++)
160 buf.
appendSprintf(
"(%f, %f, %f)", list(i).v3val.x(), list(i).v3val.y(), list(i).v3val.z());
162 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).v4val.x(), list(i).v4val.y(), list(i).v4val.z(), list(i).v4val.w());
168 buf.
appendSprintf(
"%s", (list(i).fieldoffsets) ?
"true" :
"false");
174 list(i).ramp->save(os);
198 buf.
appendSprintf(
"%s", (list(i).voxelsize) ?
"true" :
"false");
200 buf.
appendSprintf(
"%s", (list(i).xformtoworld) ?
"true" :
"false");
202 buf.
appendSprintf(
"%s", (list(i).xformtovoxel) ?
"true" :
"false");
206 buf.
appendSprintf(
"%s", (list(i).readable) ?
"true" :
"false");
208 buf.
appendSprintf(
"%s", (list(i).writeable) ?
"true" :
"false");
210 buf.
appendSprintf(
"%s", (list(i).optional) ?
"true" :
"false");
212 buf.
appendSprintf(
"%s", (list(i).defval) ?
"true" :
"false");
235 myKernelName =
"kernelName"_UTsh;
236 myKernelFile =
""_UTsh;
237 myKernelCode =
""_UTsh;
239 myKernelOptions =
""_UTsh;
240 myOptionAttribute =
""_UTsh;
248 myFlushAttributes =
false;
253 myWorksetsGeometry =
""_UTsh;
254 myWorksetsBeginAttr =
""_UTsh;
255 myWorksetsLengthAttr =
""_UTsh;
257 myErrorMismatchedPoint =
false;
258 myErrorMismatchedPrim =
false;
259 mySingleWorkgroup = 0;
273 if (myRunOver != src.myRunOver)
return false;
274 if (myAlign != src.myAlign)
return false;
275 if (myUseCode != src.myUseCode)
return false;
276 if (myKernelName != src.myKernelName)
return false;
277 if (myKernelFile != src.myKernelFile)
return false;
278 if (myKernelCode != src.myKernelCode)
return false;
279 if (myAtBinding != src.myAtBinding)
return false;
280 if (myKernelOptions != src.myKernelOptions)
return false;
281 if (myOptionAttribute != src.myOptionAttribute)
return false;
282 if (myRecompile != src.myRecompile)
return false;
283 if (myOrigin != src.myOrigin)
return false;
284 if (mySize != src.mySize)
return false;
285 if (myVoxelSize != src.myVoxelSize)
return false;
286 if (myTime != src.myTime)
return false;
287 if (myFrame != src.myFrame)
return false;
288 if (myTimeInc != src.myTimeInc)
return false;
289 if (myFlushAttributes != src.myFlushAttributes)
return false;
290 if (myFinish != src.myFinish)
return false;
291 if (myTimeScale != src.myTimeScale)
return false;
292 if (myTimeMethod != src.myTimeMethod)
return false;
293 if (myXNoise != src.myXNoise)
return false;
294 if (myWorksetsGeometry != src.myWorksetsGeometry)
return false;
295 if (myWorksetsBeginAttr != src.myWorksetsBeginAttr)
return false;
296 if (myWorksetsLengthAttr != src.myWorksetsLengthAttr)
return false;
297 if (myWarnMissing != src.myWarnMissing)
return false;
298 if (myErrorMismatchedPoint != src.myErrorMismatchedPoint)
return false;
299 if (myErrorMismatchedPrim != src.myErrorMismatchedPrim)
return false;
300 if (mySingleWorkgroup != src.mySingleWorkgroup)
return false;
301 if (myPrecision != src.myPrecision)
return false;
302 if (myBindings != src.myBindings)
return false;
323 {
return !strcmp(recordtype,
"Params"); }
328 if (recordtypenum == 0)
return "Params";
333 if (isMyRecord(recordtype))
return 1;
338 if (isMyRecord(recordtype))
344 int fieldnum)
const override
346 if (!isMyRecord(recordtype))
366 return "kerneloptions";
368 return "kerneloptionattrib";
384 return "flushattrib";
394 return "worksets_geo";
396 return "worksets_begin";
398 return "worksets_length";
400 return "warnmissing";
402 return "errormismatchedpoint";
404 return "errormismatchedprim";
406 return "singleworkgroup";
416 int fieldnum)
const override
418 if (!isMyRecord(recordtype))
490 const char *fieldname,
493 if (!isMyRecord(recordtype))
499 if (!strcmp(fieldname,
"runover"))
501 result = UTmakeUnique<UT_OptionInt>(myParms.myRunOver);
504 if (!strcmp(fieldname,
"align"))
506 result = UTmakeUnique<UT_OptionBool>(myParms.myAlign);
509 if (!strcmp(fieldname,
"usecode"))
511 result = UTmakeUnique<UT_OptionBool>(myParms.myUseCode);
514 if (!strcmp(fieldname,
"kernelname"))
516 result = UTmakeUnique<UT_OptionString>(myParms.myKernelName);
519 if (!strcmp(fieldname,
"kernelfile"))
521 result = UTmakeUnique<UT_OptionString>(myParms.myKernelFile);
524 if (!strcmp(fieldname,
"kernelcode"))
526 result = UTmakeUnique<UT_OptionString>(myParms.myKernelCode);
529 if (!strcmp(fieldname,
"atbinding"))
531 result = UTmakeUnique<UT_OptionBool>(myParms.myAtBinding);
534 if (!strcmp(fieldname,
"kerneloptions"))
536 result = UTmakeUnique<UT_OptionString>(myParms.myKernelOptions);
539 if (!strcmp(fieldname,
"kerneloptionattrib"))
541 result = UTmakeUnique<UT_OptionString>(myParms.myOptionAttribute);
544 if (!strcmp(fieldname,
"recompile"))
546 result = UTmakeUnique<UT_OptionBool>(myParms.myRecompile);
549 if (!strcmp(fieldname,
"origin"))
551 result = UTmakeUnique<UT_OptionBool>(myParms.myOrigin);
554 if (!strcmp(fieldname,
"size"))
556 result = UTmakeUnique<UT_OptionBool>(myParms.mySize);
559 if (!strcmp(fieldname,
"voxelsize"))
561 result = UTmakeUnique<UT_OptionBool>(myParms.myVoxelSize);
564 if (!strcmp(fieldname,
"time"))
566 result = UTmakeUnique<UT_OptionBool>(myParms.myTime);
569 if (!strcmp(fieldname,
"frame"))
571 result = UTmakeUnique<UT_OptionBool>(myParms.myFrame);
574 if (!strcmp(fieldname,
"timeinc"))
576 result = UTmakeUnique<UT_OptionBool>(myParms.myTimeInc);
579 if (!strcmp(fieldname,
"flushattrib"))
581 result = UTmakeUnique<UT_OptionBool>(myParms.myFlushAttributes);
584 if (!strcmp(fieldname,
"finish"))
586 result = UTmakeUnique<UT_OptionBool>(myParms.myFinish);
589 if (!strcmp(fieldname,
"timescale"))
591 result = UTmakeUnique<UT_OptionFpreal>(myParms.myTimeScale);
594 if (!strcmp(fieldname,
"timemethod"))
596 result = UTmakeUnique<UT_OptionInt>(myParms.myTimeMethod);
599 if (!strcmp(fieldname,
"xnoise"))
601 result = UTmakeUnique<UT_OptionBool>(myParms.myXNoise);
604 if (!strcmp(fieldname,
"worksets_geo"))
606 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsGeometry);
609 if (!strcmp(fieldname,
"worksets_begin"))
611 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsBeginAttr);
614 if (!strcmp(fieldname,
"worksets_length"))
616 result = UTmakeUnique<UT_OptionString>(myParms.myWorksetsLengthAttr);
619 if (!strcmp(fieldname,
"warnmissing"))
621 result = UTmakeUnique<UT_OptionBool>(myParms.myWarnMissing);
624 if (!strcmp(fieldname,
"errormismatchedpoint"))
626 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPoint);
629 if (!strcmp(fieldname,
"errormismatchedprim"))
631 result = UTmakeUnique<UT_OptionBool>(myParms.myErrorMismatchedPrim);
634 if (!strcmp(fieldname,
"singleworkgroup"))
636 result = UTmakeUnique<UT_OptionInt>(myParms.mySingleWorkgroup);
639 if (!strcmp(fieldname,
"precision"))
641 result = UTmakeUnique<UT_OptionInt>(myParms.myPrecision);
644 if (!strcmp(fieldname,
"bindings"))
646 result = UTmakeUnique<UT_OptionString>(myParms.createString(myParms.myBindings));
658 {
return new Query(owner, *
this); }
679 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
681 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
683 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
696 loadData(is, rampdata);
714 int typelen = colon - data.
buffer();
728 {
int64 iv =
v; UTwrite(os, &iv); }
730 { UTwrite<fpreal64>(os, &
v); }
732 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
734 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
735 UTwrite<fpreal64>(os, &v.
z()); }
737 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
738 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
750 if (s) s->save(ostr);
752 saveData(os, result);
759 ostr << s->getDataTypeToken();
764 saveData(os, result);
768 void save(std::ostream &os)
const
772 saveData(os, myRunOver);
773 saveData(os, myAlign);
774 saveData(os, myUseCode);
775 saveData(os, myKernelName);
776 saveData(os, myKernelFile);
777 saveData(os, myKernelCode);
778 saveData(os, myAtBinding);
779 saveData(os, myKernelOptions);
780 saveData(os, myOptionAttribute);
781 saveData(os, myRecompile);
782 saveData(os, myOrigin);
783 saveData(os, mySize);
784 saveData(os, myVoxelSize);
785 saveData(os, myTime);
786 saveData(os, myFrame);
787 saveData(os, myTimeInc);
788 saveData(os, myFlushAttributes);
789 saveData(os, myFinish);
790 saveData(os, myTimeScale);
791 saveData(os, myTimeMethod);
792 saveData(os, myXNoise);
793 saveData(os, myWorksetsGeometry);
794 saveData(os, myWorksetsBeginAttr);
795 saveData(os, myWorksetsLengthAttr);
796 saveData(os, myWarnMissing);
797 saveData(os, myErrorMismatchedPoint);
798 saveData(os, myErrorMismatchedPrim);
799 saveData(os, mySingleWorkgroup);
800 saveData(os, myPrecision);
803 UTwrite(os, &length);
806 auto && _curentry = myBindings(i);
808 saveData(os, _curentry.name);
809 saveData(os, _curentry.type);
810 saveData(os, _curentry.intval);
811 saveData(os, _curentry.fval);
812 saveData(os, _curentry.v3val);
813 saveData(os, _curentry.v4val);
814 saveData(os, _curentry.timescale);
815 saveData(os, _curentry.fieldname);
816 saveData(os, _curentry.fieldoffsets);
817 saveData(os, _curentry.ramp);
818 saveData(os, _curentry.rampsize);
819 saveData(os, _curentry.geometry);
820 saveData(os, _curentry.attribute);
821 saveData(os, _curentry.attribclass);
822 saveData(os, _curentry.attribtype);
823 saveData(os, _curentry.attribsize);
824 saveData(os, _curentry.volume);
825 saveData(os, _curentry.vdbtype);
826 saveData(os, _curentry.resolution);
827 saveData(os, _curentry.voxelsize);
828 saveData(os, _curentry.xformtoworld);
829 saveData(os, _curentry.xformtovoxel);
830 saveData(os, _curentry.precision);
831 saveData(os, _curentry.readable);
832 saveData(os, _curentry.writeable);
833 saveData(os, _curentry.optional);
834 saveData(os, _curentry.defval);
835 saveData(os, _curentry.dataname);
836 saveData(os, _curentry.optionname);
837 saveData(os, _curentry.optiontype);
838 saveData(os, _curentry.optionsize);
854 loadData(is, myRunOver);
855 loadData(is, myAlign);
856 loadData(is, myUseCode);
857 loadData(is, myKernelName);
858 loadData(is, myKernelFile);
859 loadData(is, myKernelCode);
860 loadData(is, myAtBinding);
861 loadData(is, myKernelOptions);
862 loadData(is, myOptionAttribute);
863 loadData(is, myRecompile);
864 loadData(is, myOrigin);
865 loadData(is, mySize);
866 loadData(is, myVoxelSize);
867 loadData(is, myTime);
868 loadData(is, myFrame);
869 loadData(is, myTimeInc);
870 loadData(is, myFlushAttributes);
871 loadData(is, myFinish);
872 loadData(is, myTimeScale);
873 loadData(is, myTimeMethod);
874 loadData(is, myXNoise);
875 loadData(is, myWorksetsGeometry);
876 loadData(is, myWorksetsBeginAttr);
877 loadData(is, myWorksetsLengthAttr);
878 loadData(is, myWarnMissing);
879 loadData(is, myErrorMismatchedPoint);
880 loadData(is, myErrorMismatchedPrim);
881 loadData(is, mySingleWorkgroup);
882 loadData(is, myPrecision);
886 myBindings.setSize(length);
889 auto && _curentry = myBindings(i);
891 loadData(is, _curentry.name);
892 loadData(is, _curentry.type);
893 loadData(is, _curentry.intval);
894 loadData(is, _curentry.fval);
895 loadData(is, _curentry.v3val);
896 loadData(is, _curentry.v4val);
897 loadData(is, _curentry.timescale);
898 loadData(is, _curentry.fieldname);
899 loadData(is, _curentry.fieldoffsets);
900 loadData(is, _curentry.ramp);
901 loadData(is, _curentry.rampsize);
902 loadData(is, _curentry.geometry);
903 loadData(is, _curentry.attribute);
904 loadData(is, _curentry.attribclass);
905 loadData(is, _curentry.attribtype);
906 loadData(is, _curentry.attribsize);
907 loadData(is, _curentry.volume);
908 loadData(is, _curentry.vdbtype);
909 loadData(is, _curentry.resolution);
910 loadData(is, _curentry.voxelsize);
911 loadData(is, _curentry.xformtoworld);
912 loadData(is, _curentry.xformtovoxel);
913 loadData(is, _curentry.precision);
914 loadData(is, _curentry.readable);
915 loadData(is, _curentry.writeable);
916 loadData(is, _curentry.optional);
917 loadData(is, _curentry.defval);
918 loadData(is, _curentry.dataname);
919 loadData(is, _curentry.optionname);
920 loadData(is, _curentry.optiontype);
921 loadData(is, _curentry.optionsize);
1007 bool myFlushAttributes;
1016 bool myErrorMismatchedPoint;
1017 bool myErrorMismatchedPrim;
1018 int64 mySingleWorkgroup;
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
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)
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)
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)
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)
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)
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