Fusion360-Addons/usr/Include/Core/pVehicle/pVTireFunction.h
2021-10-31 19:39:29 +01:00

113 lines
2.4 KiB
C++

#ifndef __P_V_TIRE_FUNCTION_H__
#define __P_V_TIRE_FUNCTION_H__
#include "vtPhysXBase.h"
/** \addtogroup Vehicle
@{
*/
/**
\brief cubic hermit spline coefficients describing the longitudinal tire force curve.
Force
^ extrema
| _*_
| ~ \ asymptote
| / \~__*______________
| /
|/
---------------------------> Slip
*/
class MODULE_API pTireFunction
{
public:
virtual ~pTireFunction(){};
/**
\brief extremal point of curve. Both values must be positive.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 1.0
*/
float extremumSlip;
/**
\brief extremal point of curve. Both values must be positive.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 0.02
*/
float extremumValue;
/**
\brief point on curve at which for all x > minumumX, function equals minimumY. Both values must be positive.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 2.0
*/
float asymptoteSlip;
/**
\brief point on curve at which for all x > minumumX, function equals minimumY. Both values must be positive.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 0.01
*/
float asymptoteValue;
/**
\brief Scaling factor for tire force.
This is an additional overall positive scaling that gets applied to the tire forces before passing
them to the solver. Higher values make for better grip. If you raise the *Values above, you may
need to lower this. A setting of zero will disable all friction in this direction.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 1000000.0 (quite stiff by default)
*/
float stiffnessFactor;
/**
\brief Scaling factor for tire force.
This is an additional overall positive scaling that gets applied to the tire forces before passing
them to the solver. Higher values make for better grip. If you raise the *Values above, you may
need to lower this. A setting of zero will disable all friction in this direction.
<b>Range:</b> (0,inf)<br>
<b>Default:</b> 1000000.0 (quite stiff by default)
*/
// float stiffnessFactor;
/**
constructor sets to default.
*/
pTireFunction();
/**
(re)sets the structure to the default.
*/
virtual void setToDefault();
/**
returns true if the current settings are valid
*/
virtual bool isValid() const;
/**
evaluates the Force(Slip) function
*/
float hermiteEval(float t) const;
int xmlLink;
};
/** @} */
#endif