AutoWeightInterface Implementation


maxon::AutoWeightInterface is the base interface for custom auto-weight algorithms. These algorithms are displayed in the Weight Manager an can be used with the CAWeightMgr class (see CAWeightMgr Manual).


The maxon::AutoWeightInterface allows to implement these methods:

Existing functionality (normalizing and smoothing) can be included by using the existing component maxon::AutoWeightComponents::BaseClass.

// This example shows an implementation of AutoWeightInterface.
class ExampleAutoWeightImpl : public maxon::Component<ExampleAutoWeightImpl, maxon::AutoWeightInterface>
MAXON_COMPONENT(NORMAL, maxon::AutoWeightComponents::BaseClass);
// get parameters
const maxon::Bool boolValue = self.GetOrDefault(maxonexample::ANIMATION::AUTOWEIGHT::EXAMPLE::ATTRIBUTE);
const maxon::Float floatvalue = self.GetOrDefault(maxonexample::ANIMATION::AUTOWEIGHT::EXAMPLE::OTHER_ATTRIBUTE);
DiagnosticOutput("Values: @, @", boolValue, floatvalue);
// resize weights array
const maxon::Int jointCnt = autoWeightPointJointSelections._jointCount;
weights.Resize(jointCnt) iferr_return;
for (maxon::Int jointIndex = 0; jointIndex < jointCnt; ++jointIndex)
weights[jointIndex].Resize(autoWeightPointJointSelections._pointCount) iferr_return;
// calculate weights
return maxon::OK;
MAXON_COMPONENT_CLASS_REGISTER(ExampleAutoWeightImpl, maxon::AutoWeightAlgos, "net.maxonexample.animation.autoweight.example");
Definition: c4d_basedocument.h:498
Definition: c4d_baseobject.h:1630
Definition: basearray.h:412
Definition: objectbase.h:2651
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:188
Float64 Float
Definition: apibase.h:197
bool Bool
boolean type, possible values are only false/true, 8 bit
Definition: apibase.h:181
return OK
Definition: apibase.h:2667
Samples the surface as the user moves over it the SculptObject and returns a new hit point and normal...
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:176
Definition: objectbase.h:2212
Definition: objectbase.h:2409
Definition: interfacebase.h:1001
Definition: autoweight.h:105
const char * doc
Definition: pyerrors.h:226
#define iferr_scope
Definition: resultbase.h:1374
#define iferr_return
Definition: resultbase.h:1465
PyObject * op
Definition: object.h:520
Definition: autoweight.h:25
Int32 _jointCount
The amount of points in the mesh.
Definition: autoweight.h:31
Int32 _pointCount
The lock joint selection.
Definition: autoweight.h:30


The custom description of the implementation must include "net.maxon.animation.autoweight.base". The name of the implementation is set using "".

Further Reading