20 #define MAX_BLEND_PARENTS 4
58 #define FLOAT_OBJ_PARM(name, idx, vi, t) \
59 return evalFloat(name, &getIndirect()[idx], vi, t);
60 #define INT_OBJ_PARM(name, idx, vi, t) \
61 return evalInt(name, &getIndirect()[idx], vi, t);
62 #define STR_OBJ_PARM(name, idx, vi, t) \
63 evalString(str, name, &getIndirect()[idx], vi, t);
79 const char *inputLabel(
unsigned idx)
const override;
103 {
return BLENDTYPE() == BLEND_SEQUENCE?
"sequence_seq":
"sequence_con"; }
113 void keySEQUENCE(
fpreal t,
const char *expr,
145 {
return blendIndirect; }
165 bool USERESTANGLES(
fpreal t)
const
195 const char *
const blendrest[4]
196 = {
"blendrest1",
"blendrest2",
197 "blendrest3",
"blendrest4" };
198 const char *
const blendrestord[4]
199 = {
"blendrestord1",
"blendrestord2",
200 "blendrestord3",
"blendrestord4" };
201 const int indirects[4]
210 xyz =
evalInt(blendrestord[i], pi + 1, 0, t);
225 static int *blendIndirect;
227 int mySimpleInputIndex;
233 int myConstrainIndex;
236 int myFirstConstrain;
240 #undef FLOAT_OBJ_PARM
void setSEQUENCE(fpreal t, fpreal seq)
#define MAX_BLEND_PARENTS
fpreal BLENDW(int i, fpreal t)
UT_QuaternionT< fpreal > UT_QuaternionR
OBJ_OBJECT_TYPE getObjectType() const override
int * getIndirect() const override
GA_API const UT_StringHolder rot
virtual int applyInputDependentTransform(OP_Context &context, UT_DMatrix4 &mat)
void setBLENDTYPE(int parent_type)
int * getIndirect() const override
constexpr SYS_FORCE_INLINE const T * data() const noexcept
void resolveObsoleteParms(PRM_ParmList *obsolete_parms) override
void degToRad()
conversion between degrees and radians
static PRM_Template * getTemplateList(OBJ_ParmsStyle style)
virtual void unlockInput(unsigned idx)
virtual OP_ERROR lockInput(unsigned idx, OP_Context &context)
static PRM_Template * getObsolete()
const char * getSequenceName()
void ignore(T const &) VULKAN_HPP_NOEXCEPT
void evalFloats(int pi, fpreal64 *v, fpreal t) const
virtual OP_ERROR cookMyObj(OP_Context &context)
GLuint const GLchar * name
virtual void unlockInputs()
static OP_Node * myConstructor(OP_Network *net, const char *name, OP_Operator *entry)
static UT_XformOrder::xyzOrder getRotOrder(int xyz)
Translate a XYZ parameter menu index into the UT_XformOrder type.
#define FLOAT_OBJ_PARM(name, idx, vi, t)
OBJ_Blend * castToOBJBlend() override
virtual int isObjectRenderable(fpreal t) const
void setFloat(int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
void setInt(int parmi, int vectori, fpreal t, exint value)
void setIGNORESCALES(int ignore)
fpreal SEQUENCE(fpreal t)
bool updateParmsFlags() override
exint evalInt(int pi, int vi, fpreal t) const
#define INT_OBJ_PARM(name, idx, vi, t)
virtual OP_ERROR lockInputs(OP_Context &context)