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)
void setInt(int parmi, int vectori, fpreal t, exint value)
void setIGNORESCALES(int ignore)
fpreal SEQUENCE(fpreal t)
bool updateParmsFlags() override
constexpr T pi()
Pi constant taken from Boost to match old behaviour.
exint evalInt(int pi, int vi, fpreal t) const
#define INT_OBJ_PARM(name, idx, vi, t)
virtual OP_ERROR lockInputs(OP_Context &context)