23 namespace SOP_PCAEnums
 
   34         using namespace UT::Literal;
 
   53         using namespace UT::Literal;
 
   77         myIncludeMeanWeight = 
true;
 
   96         if (myDataType != src.myDataType) 
return false;
 
   97         if (myAttribs != src.myAttribs) 
return false;
 
   98         if (myStride != src.myStride) 
return false;
 
   99         if (myMode != src.myMode) 
return false;
 
  100         if (myIncludeMeanWeight != src.myIncludeMeanWeight) 
return false;
 
  101         if (mySkip != src.mySkip) 
return false;
 
  102         if (myComp != src.myComp) 
return false;
 
  103         if (myXscale != src.myXscale) 
return false;
 
  104         if (myYscale != src.myYscale) 
return false;
 
  105         if (myPropcolor != src.myPropcolor) 
return false;
 
  106         if (myCumcolor != src.myCumcolor) 
return false;
 
  126             graph->
evalOpParm(myDataType, nodeidx, 
"datatype", time, graph->
isDirect()?
nullptr:depnode);
 
  127         myAttribs = 
"P"_UTsh;
 
  128         if (
true && ( (
true&&!(((
int64(getDataType())!=0)))) ) )
 
  129             graph->
evalOpParm(myAttribs, nodeidx, 
"attribs", time, graph->
isDirect()?
nullptr:depnode);
 
  131         if (
true && ( (
true&&!(((
int64(getDataType())!=0)))) ) )
 
  132             graph->
evalOpParm(myStride, nodeidx, 
"stride", time, graph->
isDirect()?
nullptr:depnode);
 
  136         myIncludeMeanWeight = 
true;
 
  137         if (
true && ( (
true&&!(((
int64(getMode())==0))||((
int64(getMode())==1)))) ) )
 
  138             graph->
evalOpParm(myIncludeMeanWeight, nodeidx, 
"includemeanweight", time, graph->
isDirect()?
nullptr:depnode);
 
  140         if (
true && ( (
true&&!(((
int64(getMode())!=1)))) ) )
 
  143         if (
true && ( (
true&&!(((
int64(getMode())!=0)&&(
int64(getMode())!=1)))) ) )
 
  146         if (
true && ( (
true&&!(((
int64(getMode())!=1)))) ) )
 
  147             graph->
evalOpParm(myXscale, nodeidx, 
"xscale", time, graph->
isDirect()?
nullptr:depnode);
 
  149         if (
true && ( (
true&&!(((
int64(getMode())!=1)))) ) )
 
  150             graph->
evalOpParm(myYscale, nodeidx, 
"yscale", time, graph->
isDirect()?
nullptr:depnode);
 
  152         if (
true && ( (
true&&!(((
int64(getMode())!=1)))) ) )
 
  153             graph->
evalOpParm(myPropcolor, nodeidx, 
"propcolor", time, graph->
isDirect()?
nullptr:depnode);
 
  155         if (
true && ( (
true&&!(((
int64(getMode())!=1)))) ) )
 
  156             graph->
evalOpParm(myCumcolor, nodeidx, 
"cumcolor", time, graph->
isDirect()?
nullptr:depnode);
 
  172     template <
typename T>
 
  179         if (idx.
size() != instance.
size()+1)
 
  184                 coerceValue(value, myDataType);
 
  187                 coerceValue(value, myAttribs);
 
  190                 coerceValue(value, myStride);
 
  193                 coerceValue(value, myMode);
 
  196                 coerceValue(value, myIncludeMeanWeight);
 
  199                 coerceValue(value, mySkip);
 
  202                 coerceValue(value, myComp);
 
  205                 coerceValue(value, myXscale);
 
  208                 coerceValue(value, myYscale);
 
  211                 coerceValue(value, myPropcolor);
 
  214                 coerceValue(value, myCumcolor);
 
  230     { doGetParmValue(idx, instance, value); }
 
  232     { doGetParmValue(idx, instance, value); }
 
  234     { doGetParmValue(idx, instance, value); }
 
  236     { doGetParmValue(idx, instance, value); }
 
  238     { doGetParmValue(idx, instance, value); }
 
  240     { doGetParmValue(idx, instance, value); }
 
  242     { doGetParmValue(idx, instance, value); }
 
  244     { doGetParmValue(idx, instance, value); }
 
  246     { doGetParmValue(idx, instance, value); }
 
  248     { doGetParmValue(idx, instance, value); }
 
  250     { doGetParmValue(idx, instance, value); }
 
  252     template <
typename T>
 
  259         if (idx.
size() != instance.
size()+1)
 
  264                 coerceValue(myDataType, clampMinValue(0,  clampMaxValue(1,  value ) ));
 
  267                 coerceValue(myAttribs, ( ( value ) ));
 
  270                 coerceValue(myStride, clampMinValue(1,  ( value ) ));
 
  273                 coerceValue(myMode, clampMinValue(0,  clampMaxValue(3,  value ) ));
 
  276                 coerceValue(myIncludeMeanWeight, ( ( value ) ));
 
  279                 coerceValue(mySkip, clampMinValue(0,  ( value ) ));
 
  282                 coerceValue(myComp, clampMinValue(0,  ( value ) ));
 
  285                 coerceValue(myXscale, clampMinValue(0,  ( value ) ));
 
  288                 coerceValue(myYscale, clampMinValue(0,  ( value ) ));
 
  291                 coerceValue(myPropcolor, ( ( value ) ));
 
  294                 coerceValue(myCumcolor, ( ( value ) ));
 
  301     { doSetParmValue(idx, instance, value); }
 
  303     { doSetParmValue(idx, instance, value); }
 
  305     { doSetParmValue(idx, instance, value); }
 
  307     { doSetParmValue(idx, instance, value); }
 
  309     { doSetParmValue(idx, instance, value); }
 
  311     { doSetParmValue(idx, instance, value); }
 
  313     { doSetParmValue(idx, instance, value); }
 
  315     { doSetParmValue(idx, instance, value); }
 
  317     { doSetParmValue(idx, instance, value); }
 
  319     { doSetParmValue(idx, instance, value); }
 
  321     { doSetParmValue(idx, instance, value); }
 
  337         if (fieldnum.
size() < 1)
 
  350                 return "includemeanweight";
 
  370         if (fieldnum.
size() < 1)
 
  371             return PARM_UNSUPPORTED;
 
  398         return PARM_UNSUPPORTED;
 
  434         loadData(is, rampdata);
 
  452                 int             typelen = colon - data.
buffer();
 
  466     { 
int64 iv = 
v; UTwrite(os, &iv); }
 
  468     { UTwrite<fpreal64>(os, &
v); }
 
  470     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
 
  472     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  473       UTwrite<fpreal64>(os, &v.
z()); }
 
  475     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  476       UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
 
  488         if (s) s->save(ostr);
 
  490         saveData(os, result);
 
  497             ostr << s->getDataTypeToken();
 
  502         saveData(os, result);
 
  506     void         save(std::ostream &os)
 const 
  510         saveData(os, myDataType);
 
  511         saveData(os, myAttribs);
 
  512         saveData(os, myStride);
 
  513         saveData(os, myMode);
 
  514         saveData(os, myIncludeMeanWeight);
 
  515         saveData(os, mySkip);
 
  516         saveData(os, myComp);
 
  517         saveData(os, myXscale);
 
  518         saveData(os, myYscale);
 
  519         saveData(os, myPropcolor);
 
  520         saveData(os, myCumcolor);
 
  533         loadData(is, myDataType);
 
  534         loadData(is, myAttribs);
 
  535         loadData(is, myStride);
 
  536         loadData(is, myMode);
 
  537         loadData(is, myIncludeMeanWeight);
 
  538         loadData(is, mySkip);
 
  539         loadData(is, myComp);
 
  540         loadData(is, myXscale);
 
  541         loadData(is, myYscale);
 
  542         loadData(is, myPropcolor);
 
  543         loadData(is, myCumcolor);
 
  553         if (!thissop) 
return getDataType();
 
  555         OP_Utils::evalOpParm(result, thissop, 
"datatype", cookparms.
getCookTime(), 0);
 
  563         if (!thissop) 
return getAttribs();
 
  565         OP_Utils::evalOpParm(result, thissop, 
"attribs", cookparms.
getCookTime(), 0);
 
  573         if (!thissop) 
return getStride();
 
  575         OP_Utils::evalOpParm(result, thissop, 
"stride", cookparms.
getCookTime(), 0);
 
  583         if (!thissop) 
return getMode();
 
  585         OP_Utils::evalOpParm(result, thissop, 
"mode", cookparms.
getCookTime(), 0);
 
  593         if (!thissop) 
return getIncludeMeanWeight();
 
  595         OP_Utils::evalOpParm(result, thissop, 
"includemeanweight", cookparms.
getCookTime(), 0);
 
  603         if (!thissop) 
return getSkip();
 
  605         OP_Utils::evalOpParm(result, thissop, 
"skip", cookparms.
getCookTime(), 0);
 
  613         if (!thissop) 
return getComp();
 
  615         OP_Utils::evalOpParm(result, thissop, 
"comp", cookparms.
getCookTime(), 0);
 
  623         if (!thissop) 
return getXscale();
 
  625         OP_Utils::evalOpParm(result, thissop, 
"xscale", cookparms.
getCookTime(), 0);
 
  633         if (!thissop) 
return getYscale();
 
  635         OP_Utils::evalOpParm(result, thissop, 
"yscale", cookparms.
getCookTime(), 0);
 
  643         if (!thissop) 
return getPropcolor();
 
  645         OP_Utils::evalOpParm(result, thissop, 
"propcolor", cookparms.
getCookTime(), 0);
 
  653         if (!thissop) 
return getCumcolor();
 
  655         OP_Utils::evalOpParm(result, thissop, 
"cumcolor", cookparms.
getCookTime(), 0);
 
  664     bool myIncludeMeanWeight;
 
static void loadData(UT_IStream &is, UT_Vector2D &v)
 
void copyFrom(const OP_NodeParms *src) override
 
static void saveData(std::ostream &os, UT_Vector4D v)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
 
static void loadData(UT_IStream &is, fpreal64 &v)
 
static void loadData(UT_IStream &is, UT_Vector2I &v)
 
const char * getNestParmName(TempIndex fieldnum) const override
 
SOP_Node * getNode() const 
 
static void saveData(std::ostream &os, UT_Vector3D v)
 
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const 
 
SYS_FORCE_INLINE UT_StringHolder getToken(DataType enum_value)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
 
bool operator!=(const SOP_PCAParms &src) const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
 
DataType getDataType() const 
 
void loadFromOpSubclass(const LoadParms &loadparms) override
 
static void loadData(UT_IStream &is, bool &v)
 
exint bread(int32 *buffer, exint asize=1)
 
GT_API const UT_StringHolder time
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
UT_Vector3D getCumcolor() const 
 
GLsizei const GLfloat * value
 
static void loadData(UT_IStream &is, UT_Matrix4D &v)
 
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
 
const OP_Context & context() const 
 
constexpr SYS_FORCE_INLINE T & z() noexcept
 
static void loadData(UT_IStream &is, UT_Matrix3D &v)
 
static void loadData(UT_IStream &is, UT_Vector3D &v)
 
SYS_FORCE_INLINE const char * buffer() const 
 
void setDataType(DataType val)
 
An output stream object that owns its own string buffer storage. 
 
bool operator==(const SOP_PCAParms &src) const 
 
**But if you need a result
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
 
const UT_StringHolder & getAttribs() const 
 
bool load(UT_IStream &is)
 
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
 
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer. 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
 
void setPropcolor(UT_Vector3D val)
 
void save(std::ostream &os) const 
 
DataType opDataType(const SOP_NodeVerb::CookParms &cookparms) const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
 
static void loadData(UT_IStream &is, UT_Vector3I &v)
 
exint getNestNumParms(TempIndex idx) const override
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
 
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
 
bool opIncludeMeanWeight(const SOP_NodeVerb::CookParms &cookparms) const 
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
 
bool isParmColorRamp(exint idx) const override
 
UT_Vector3D getPropcolor() const 
 
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
 
UT_Vector3D opPropcolor(const SOP_NodeVerb::CookParms &cookparms) const 
 
int64 opStride(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void saveData(std::ostream &os, UT_Vector2D v)
 
static void saveData(std::ostream &os, UT_StringHolder s)
 
fpreal64 opXscale(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setStride(int64 val)
 
static void loadData(UT_IStream &is, UT_Vector4D &v)
 
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
 
fpreal64 getYscale() const 
 
const OP_GraphProxy * graph() const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
 
UT_StringHolder opAttribs(const SOP_NodeVerb::CookParms &cookparms) const 
 
Mode opMode(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void loadData(UT_IStream &is, UT_Matrix2D &v)
 
UT_Vector3T< fpreal64 > UT_Vector3D
 
ParmType getNestParmType(TempIndex fieldnum) const override
 
int64 opComp(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
 
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
 
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
 
void setAttribs(const UT_StringHolder &val)
 
static void saveData(std::ostream &os, UT_Matrix4D v)
 
void saveBinary(std::ostream &os) const 
Save string to binary stream. 
 
static void saveData(std::ostream &os, PRM_DataItemHandle s)
 
static void saveData(std::ostream &os, bool v)
 
GT_API const UT_StringHolder version
 
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
 
static void saveData(std::ostream &os, UT_Matrix3D v)
 
static void loadData(UT_IStream &is, UT_StringHolder &v)
 
static void saveData(std::ostream &os, UT_Matrix2D v)
 
static void saveData(std::ostream &os, int64 v)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
 
void setYscale(fpreal64 val)
 
DEP_MicroNode * depnode() const 
 
fpreal64 opYscale(const SOP_NodeVerb::CookParms &cookparms) const 
 
LeafData & operator=(const LeafData &)=delete
 
Utility class for containing a color ramp. 
 
static void loadData(UT_IStream &is, UT_Vector4I &v)
 
constexpr SYS_FORCE_INLINE T & w() noexcept
 
static void loadData(UT_IStream &is, int64 &v)
 
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
 
virtual UT_StringHolder baseGetSignature() const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
 
fpreal getCookTime() const 
 
void setCumcolor(UT_Vector3D val)
 
int64 opSkip(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
 
const char * findChar(int c) const 
 
void setXscale(fpreal64 val)
 
fpreal64 getXscale() const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
 
static void saveData(std::ostream &os, fpreal64 v)
 
bool getIncludeMeanWeight() const 
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
 
virtual bool isDirect() const =0
Direct proxies mirror actual nodes: 
 
UT_Vector3D opCumcolor(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setIncludeMeanWeight(bool val)
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
SYS_FORCE_INLINE bool isstring() const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
 
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
 
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
 
constexpr SYS_FORCE_INLINE T & x() noexcept