23 namespace SOP_CapEnums
94 if (myGroup != src.myGroup)
return false;
95 if (myFirstU != src.myFirstU)
return false;
96 if (myDivsU1 != src.myDivsU1)
return false;
97 if (myScaleU1 != src.myScaleU1)
return false;
98 if (myLastU != src.myLastU)
return false;
99 if (myDivsU2 != src.myDivsU2)
return false;
100 if (myScaleU2 != src.myScaleU2)
return false;
101 if (myFirstV != src.myFirstV)
return false;
102 if (myDivsV1 != src.myDivsV1)
return false;
103 if (myScaleV1 != src.myScaleV1)
return false;
104 if (myLastV != src.myLastV)
return false;
105 if (myDivsV2 != src.myDivsV2)
return false;
106 if (myScaleV2 != src.myScaleV2)
return false;
107 if (myPShapeU != src.myPShapeU)
return false;
108 if (myPShapeV != src.myPShapeV)
return false;
127 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
130 graph->
evalOpParm(myFirstU, nodeidx,
"firstu", time, 0);
132 if (
true && ( (
true&&!(((
int64(getFirstU())<3)))) ) )
133 graph->
evalOpParm(myDivsU1, nodeidx,
"divsu1", time, 0);
135 if (
true && ( (
true&&!(((
int64(getFirstU())<3)))) ) )
136 graph->
evalOpParm(myScaleU1, nodeidx,
"scaleu1", time, 0);
139 graph->
evalOpParm(myLastU, nodeidx,
"lastu", time, 0);
141 if (
true && ( (
true&&!(((
int64(getLastU())<3)))) ) )
142 graph->
evalOpParm(myDivsU2, nodeidx,
"divsu2", time, 0);
144 if (
true && ( (
true&&!(((
int64(getLastU())<3)))) ) )
145 graph->
evalOpParm(myScaleU2, nodeidx,
"scaleu2", time, 0);
148 graph->
evalOpParm(myFirstV, nodeidx,
"firstv", time, 0);
150 if (
true && ( (
true&&!(((
int64(getFirstV())<3)))) ) )
151 graph->
evalOpParm(myDivsV1, nodeidx,
"divsv1", time, 0);
153 if (
true && ( (
true&&!(((
int64(getFirstV())<3)))) ) )
154 graph->
evalOpParm(myScaleV1, nodeidx,
"scalev1", time, 0);
157 graph->
evalOpParm(myLastV, nodeidx,
"lastv", time, 0);
159 if (
true && ( (
true&&!(((
int64(getLastV())<3)))) ) )
160 graph->
evalOpParm(myDivsV2, nodeidx,
"divsv2", time, 0);
162 if (
true && ( (
true&&!(((
int64(getLastV())<3)))) ) )
163 graph->
evalOpParm(myScaleV2, nodeidx,
"scalev2", time, 0);
165 if (
true && ( (
true&&!(((
int64(getFirstU())<3)&&(
int64(getLastU())<3)))) ) )
166 graph->
evalOpParm(myPShapeU, nodeidx,
"pshapeu", time, 0);
168 if (
true && ( (
true&&!(((
int64(getFirstV())<3)&&(
int64(getLastV())<3)))) ) )
169 graph->
evalOpParm(myPShapeV, nodeidx,
"pshapev", time, 0);
185 template <
typename T>
192 if (idx.
size() != instance.
size()+1)
255 { doGetParmValue(idx, instance, value); }
257 { doGetParmValue(idx, instance, value); }
259 { doGetParmValue(idx, instance, value); }
261 { doGetParmValue(idx, instance, value); }
263 { doGetParmValue(idx, instance, value); }
265 { doGetParmValue(idx, instance, value); }
267 { doGetParmValue(idx, instance, value); }
269 { doGetParmValue(idx, instance, value); }
271 { doGetParmValue(idx, instance, value); }
273 { doGetParmValue(idx, instance, value); }
275 { doGetParmValue(idx, instance, value); }
277 template <
typename T>
284 if (idx.
size() != instance.
size()+1)
338 { doSetParmValue(idx, instance, value); }
340 { doSetParmValue(idx, instance, value); }
342 { doSetParmValue(idx, instance, value); }
344 { doSetParmValue(idx, instance, value); }
346 { doSetParmValue(idx, instance, value); }
348 { doSetParmValue(idx, instance, value); }
350 { doSetParmValue(idx, instance, value); }
352 { doSetParmValue(idx, instance, value); }
354 { doSetParmValue(idx, instance, value); }
356 { doSetParmValue(idx, instance, value); }
358 { doSetParmValue(idx, instance, value); }
374 if (fieldnum.
size() < 1)
415 if (fieldnum.
size() < 1)
416 return PARM_UNSUPPORTED;
470 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
472 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
474 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
487 loadData(is, rampdata);
505 int typelen = colon - data.
buffer();
519 {
int64 iv =
v; UTwrite(os, &iv); }
521 { UTwrite<fpreal64>(os, &
v); }
523 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
525 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
526 UTwrite<fpreal64>(os, &v.
z()); }
528 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
529 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
541 if (s) s->save(ostr);
543 saveData(os, result);
550 ostr << s->getDataTypeToken();
555 saveData(os, result);
559 void save(std::ostream &os)
const
563 saveData(os, myGroup);
564 saveData(os, myFirstU);
565 saveData(os, myDivsU1);
566 saveData(os, myScaleU1);
567 saveData(os, myLastU);
568 saveData(os, myDivsU2);
569 saveData(os, myScaleU2);
570 saveData(os, myFirstV);
571 saveData(os, myDivsV1);
572 saveData(os, myScaleV1);
573 saveData(os, myLastV);
574 saveData(os, myDivsV2);
575 saveData(os, myScaleV2);
576 saveData(os, myPShapeU);
577 saveData(os, myPShapeV);
590 loadData(is, myGroup);
591 loadData(is, myFirstU);
592 loadData(is, myDivsU1);
593 loadData(is, myScaleU1);
594 loadData(is, myLastU);
595 loadData(is, myDivsU2);
596 loadData(is, myScaleU2);
597 loadData(is, myFirstV);
598 loadData(is, myDivsV1);
599 loadData(is, myScaleV1);
600 loadData(is, myLastV);
601 loadData(is, myDivsV2);
602 loadData(is, myScaleV2);
603 loadData(is, myPShapeU);
604 loadData(is, myPShapeV);
614 if (!thissop)
return getGroup();
616 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
624 if (!thissop)
return getFirstU();
626 OP_Utils::evalOpParm(result, thissop,
"firstu", cookparms.
getCookTime(), 0);
634 if (!thissop)
return getDivsU1();
636 OP_Utils::evalOpParm(result, thissop,
"divsu1", cookparms.
getCookTime(), 0);
644 if (!thissop)
return getScaleU1();
646 OP_Utils::evalOpParm(result, thissop,
"scaleu1", cookparms.
getCookTime(), 0);
654 if (!thissop)
return getLastU();
656 OP_Utils::evalOpParm(result, thissop,
"lastu", cookparms.
getCookTime(), 0);
657 return LastU(result);
664 if (!thissop)
return getDivsU2();
666 OP_Utils::evalOpParm(result, thissop,
"divsu2", cookparms.
getCookTime(), 0);
674 if (!thissop)
return getScaleU2();
676 OP_Utils::evalOpParm(result, thissop,
"scaleu2", cookparms.
getCookTime(), 0);
684 if (!thissop)
return getFirstV();
686 OP_Utils::evalOpParm(result, thissop,
"firstv", cookparms.
getCookTime(), 0);
694 if (!thissop)
return getDivsV1();
696 OP_Utils::evalOpParm(result, thissop,
"divsv1", cookparms.
getCookTime(), 0);
704 if (!thissop)
return getScaleV1();
706 OP_Utils::evalOpParm(result, thissop,
"scalev1", cookparms.
getCookTime(), 0);
714 if (!thissop)
return getLastV();
716 OP_Utils::evalOpParm(result, thissop,
"lastv", cookparms.
getCookTime(), 0);
717 return LastV(result);
724 if (!thissop)
return getDivsV2();
726 OP_Utils::evalOpParm(result, thissop,
"divsv2", cookparms.
getCookTime(), 0);
734 if (!thissop)
return getScaleV2();
736 OP_Utils::evalOpParm(result, thissop,
"scalev2", cookparms.
getCookTime(), 0);
744 if (!thissop)
return getPShapeU();
746 OP_Utils::evalOpParm(result, thissop,
"pshapeu", cookparms.
getCookTime(), 0);
754 if (!thissop)
return getPShapeV();
756 OP_Utils::evalOpParm(result, thissop,
"pshapev", cookparms.
getCookTime(), 0);
const char * getNestParmName(TempIndex fieldnum) const override
void loadFromOpSubclass(const LoadParms &loadparms) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
SOP_Node * getNode() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void saveData(std::ostream &os, UT_Vector2D v)
int64 opDivsU1(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, bool &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
T clampMaxValue(fpreal maxvalue, const T &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, fpreal64 v)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
fpreal64 getScaleU1() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
const OP_Context & context() const
void setGroup(const UT_StringHolder &val)
bool operator!=(const SOP_CapParms &src) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setFirstU(FirstU val)
SYS_FORCE_INLINE const char * buffer() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, int64 &v)
void setFirstV(FirstV val)
**But if you need a result
FirstV opFirstV(const SOP_NodeVerb::CookParms &cookparms) const
void setPShapeU(bool val)
fpreal64 opScaleV2(const SOP_NodeVerb::CookParms &cookparms) const
T clampMinValue(fpreal minvalue, const T &src) const
void copyFrom(const OP_NodeParms *src) override
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 getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
int64 opDivsU2(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setScaleU1(fpreal64 val)
fpreal64 opScaleU1(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
const UT_StringHolder & getGroup() const
exint getNestNumParms(TempIndex idx) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
fpreal64 getScaleU2() const
static void saveData(std::ostream &os, UT_Vector3D v)
void setScaleV1(fpreal64 val)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
constexpr SYS_FORCE_INLINE T & z() noexcept
FirstU opFirstU(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
const OP_GraphProxy * graph() const
void setScaleU2(fpreal64 val)
void setDivsV1(int64 val)
fpreal64 getScaleV2() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setDivsU2(int64 val)
static void saveData(std::ostream &os, UT_Vector4D v)
static void loadData(UT_IStream &is, fpreal64 &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool isParmColorRamp(exint idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
LastV opLastV(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void coerceValue(T &result, const S &src) const
static void saveData(std::ostream &os, UT_StringHolder s)
fpreal64 opScaleV1(const SOP_NodeVerb::CookParms &cookparms) const
void setDivsU1(int64 val)
void setScaleV2(fpreal64 val)
bool opPShapeU(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opScaleU2(const SOP_NodeVerb::CookParms &cookparms) const
int64 opDivsV2(const SOP_NodeVerb::CookParms &cookparms) const
DEP_MicroNode * depnode() const
static void saveData(std::ostream &os, UT_Matrix2D v)
Utility class for containing a color ramp.
void save(std::ostream &os) const
static void saveData(std::ostream &os, UT_Matrix3D v)
LastU opLastU(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setPShapeV(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
fpreal getCookTime() const
const char * findChar(int c) const
static void saveData(std::ostream &os, int64 v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setDivsV2(int64 val)
bool operator==(const SOP_CapParms &src) const
static void saveData(std::ostream &os, UT_Matrix4D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, bool v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool opPShapeV(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
int64 opDivsV1(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
OP_NodeParms & operator=(const OP_NodeParms &)=default
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void loadData(UT_IStream &is, UT_Vector3I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, UT_Vector3D &v)
fpreal64 getScaleV1() const