About
The CAPoseMorphTag class represents a pose morph tag. Such a tag stores multiple morphs that can be applied to the host object (and it's child objects) to modify and animate it. The class is defined in the lib_ca.h
header file.
CAPoseMorphTag objects are an instance of Tposemorph.
if (cube == nullptr)
if (poseMorphTag == nullptr)
if (baseMorph == nullptr)
if (morph == nullptr)
Access
A CAPoseMorphTag tag can be accessed like any other tag, see BaseTag and VariableTag Manual.
for (
Int32 i = 0; i < morphCount; ++i)
{
if (morph != nullptr)
{
}
}
Allocation/Deallocation
CAPoseMorphTag instances are created with the usual tools, see Entity Creation and Destruction Manual (Classic).
if (poseMorphTag == nullptr)
After creation, the tag must be initialized.
Properties
The parameters of CAPoseMorphTag can be edited with C4DAtom::SetParameter() and C4DAtom::GetParameter(). The parameter IDs are defined in tcaposemorph.h
.
- Note
- Several settings of the active morph must be set on the morph tag using C4DAtom::SetParameter().
Morphs
Any change to the morph data must be encompassed by the following functions:
The stored morphs are accessed with:
See also CAMorph Manual.
for (
Int32 i = 0; i < morphCount; ++i)
{
if (morph == nullptr)
if (i != 0)
{
}
}
PSD
Several Pose Space Deformation related settings can be edited with these functions:
See also CAReferencePSD Manual.
Mode
A CAPoseMorphTag can either be in "edit" or "animate" mode:
- Note
- To change the mode use C4DAtom::SetParameter() with DescID ID_CA_POSE_MODE.
Further Reading
static String FloatToString(Float32 v, Int32 vvk=-1, Int32 nnk=-3)
Definition: c4d_string.h:529
static CAPoseMorphTag * Alloc()
Definition: lib_ca.h:1631
Bool Store(BaseDocument *doc, CAPoseMorphTag *tag, CAMORPH_DATA_FLAGS flags)
@ ID_CA_POSE_MODE
Definition: tcaposemorph.h:18
void InsertObject(BaseObject *op, BaseObject *parent, BaseObject *pred, Bool checknames=false)
Definition: lib_ca.h:1617
Definition: c4d_baseobject.h:224
void SetActiveMorphIndex(Int32 index)
Definition: lib_description.h:327
maxon::Float Float
Definition: ge_sys_math.h:64
Definition: c4d_basetag.h:46
#define Ocube
Cube.
Definition: ge_prepass.h:1040
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:66
BaseTag * GetActiveTag(void)
Int32 GetActiveMorphIndex()
void RemoveMorph(Int32 index)
DescID GetMorphID(Int32 index)
void UpdateMorphs(BaseDocument *doc=nullptr)
Bool SetParameter(const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
#define Tposemorph
Pose morph.
Definition: ge_prepass.h:1277
Bool ExitEdit(BaseDocument *doc, Bool noapply)
@ ID_CA_POSE_PARAM
Definition: tcaposemorph.h:30
Int32 GetMorphIndex(CAMorph *morph)
Definition: lib_ca.h:1428
@ PRIM_CUBE_LEN
Definition: ocube.h:6
@ ID_CA_POSE_POINTS
Definition: tcaposemorph.h:34
Definition: c4d_gedata.h:82
@ ID_CA_POSE_MODE_ANIMATE
Definition: tcaposemorph.h:86
maxon::Int32 Int32
Definition: ge_sys_math.h:58
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:207
maxon::Vec3< maxon::Float64, 1 > Vector
Definition: ge_math.h:145
static BaseObject * Alloc(Int32 type)
void SetName(const String &name)
Bool SetPSDFeedbackColor(const Vector &color)
Bool IsInstanceOf(Int32 id) const
Definition: c4d_baselist.h:1373
Bool SetPSDFeedbackColorEnabled(Bool active)
CAMorph * GetMorph(Int32 index)
@ ID_CA_POSE_MIXING_DEFORMED
Definition: tcaposemorph.h:42
Bool GetParameter(const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
void InsertTag(BaseTag *tp, BaseTag *pred=nullptr)
Float GetFloat(void) const
Definition: c4d_gedata.h:439