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.// 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" );The custom description of the implementation must include "net.maxon.animation.autoweight.base". The name of the implementation is set using "net.maxon.object.base.name".