#include <EditorJointOptimizer.h>
Inherits NumericalMethods::Optimization::Function.
Public Member Functions | |
void | SetLocalRotationSamples (const AZStd::vector< AZ::Quaternion > &localRotationSamples) |
void | SetChildLocalRotation (const AZ::Quaternion &childLocalRotation) |
void | SetInitialGuess (const AZ::Quaternion &parentLocalRotation, float swingYRadians, float swingZRadians) |
D6JointLimitConfiguration | GetFit (const AZ::Quaternion &childLocalRotation) |
AZ::Outcome< double, NumericalMethods::Optimization::FunctionOutcome > | GetObjective (const AZStd::vector< double > &x, bool debug=false) const |
Public Member Functions inherited from NumericalMethods::Optimization::Function | |
AZ::Outcome< double, FunctionOutcome > | Execute (const AZStd::vector< double > &x) const |
Used internally by solver routines to perform function evaluations. | |
virtual AZ::u32 | GetDimension () const =0 |
Additional Inherited Members | |
virtual AZ::Outcome< double, FunctionOutcome > | ExecuteImpl (const AZStd::vector< double > &x) const =0 |
Used to optimize the orientation and limit values of a PhysX D6 joint, based on sample joint rotations. The fitter attempts to find an optimal limit cone using an objective function which penalizes violations of the limit cone by the sample rotations, while simultaneously trying to minimize the size of the cone. Double precision is used because the BFGS optimization routine may not converge in single precision.