Open 3D Engine PhysX Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
PhysX::JointLimitOptimizer::D6JointLimitFitter Class Reference

#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::FunctionOutcomeGetObjective (const AZStd::vector< double > &x, bool debug=false) const
 
- Public Member Functions inherited from NumericalMethods::Optimization::Function
AZ::Outcome< double, FunctionOutcomeExecute (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, FunctionOutcomeExecuteImpl (const AZStd::vector< double > &x) const =0
 

Detailed Description

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.


The documentation for this class was generated from the following file: