Time of impact configuration. More...
#include <playrho/ToiConf.hpp>
Public Types | |
using | dist_iter_type = std::remove_const_t< decltype(DefaultMaxDistanceIters)> |
Distance iteration type. | |
using | root_iter_type = std::remove_const_t< decltype(DefaultMaxToiRootIters)> |
Root iteration type. | |
using | toi_iter_type = std::remove_const_t< decltype(DefaultMaxToiIters)> |
TOI iteration type. | |
Public Member Functions | |
constexpr ToiConf & | UseMaxDistIters (dist_iter_type value) noexcept |
Uses the given max distance iterations value. | |
constexpr ToiConf & | UseMaxRootIters (root_iter_type value) noexcept |
Uses the given max root iterations value. | |
constexpr ToiConf & | UseMaxToiIters (toi_iter_type value) noexcept |
Uses the given max TOI iterations value. | |
constexpr ToiConf & | UseTargetDepth (NonNegative< Length > value) noexcept |
Uses the given target depth value. | |
constexpr ToiConf & | UseTimeMax (UnitInterval< Real > value) noexcept |
Uses the given time max value. | |
constexpr ToiConf & | UseTolerance (NonNegative< Length > value) noexcept |
Uses the given tolerance value. | |
Public Attributes | |
dist_iter_type | maxDistIters = DefaultMaxDistanceIters |
Max distance iterations. | |
root_iter_type | maxRootIters = DefaultMaxToiRootIters |
Maximum number of root finder iterations. More... | |
toi_iter_type | maxToiIters = DefaultMaxToiIters |
Max time of impact iterations. | |
NonNegative< Length > | targetDepth = DefaultTargetDepth |
Targeted depth of impact. More... | |
UnitInterval< Real > | timeMax = DefaultTimeMax |
Time max expressed as a unit interval between 0 and 1 inclusive. | |
NonNegative< Length > | tolerance = DefaultTolerance |
Tolerance. More... | |
Static Public Attributes | |
static constexpr auto | DefaultTargetDepth = NonNegative<Length>{DefaultLinearSlop * Real(3)} |
Default target depth. | |
static constexpr auto | DefaultTimeMax = UnitIntervalFF<Real>(Real(1)) |
Default time max. | |
static constexpr auto | DefaultTolerance = NonNegative<Length>{DefaultLinearSlop / Real(4)} |
Default tolerance. | |
Related Functions | |
(Note that these are not member functions.) | |
constexpr auto | GetDefaultToiConf () |
Gets the default time of impact configuration. | |
ToiConf | GetToiConf (const StepConf &conf) noexcept |
Gets the time of impact configuration for the given step configuration. | |
Time of impact configuration.
These parameters effect time of impact calculations by limiting the definitions of time and impact. If total radius is expressed as TR, and target depth as TD, then: the max target distance is (TR - TD) + tolerance; and the min target distance is (TR - TD) - tolerance.
totalRadius - DefaultLinearSlop * x
where x is <= 1
is increasingly slower as x goes below 1. root_iter_type playrho::ToiConf::maxRootIters = DefaultMaxToiRootIters |
Maximum number of root finder iterations.
This is the maximum number of iterations for calculating the 1-dimensional root of f(t) - (totalRadius - targetDepth) < tolerance
where f(t)
is the distance between the shapes at time t
, and totalRadius
is the sum of the vertex radiuses of 2 distance proxies.
Referenced by playrho::ToiOutput::GetToiViaSat().
NonNegative<Length> playrho::ToiConf::targetDepth = DefaultTargetDepth |
Targeted depth of impact.
Referenced by playrho::ToiOutput::GetToiViaSat().
NonNegative<Length> playrho::ToiConf::tolerance = DefaultTolerance |
Tolerance.
Provides a +/- range from the target depth that defines a minimum and maximum target depth within which inclusively, time of impact calculating code is expected to return a "touching" status.
Referenced by playrho::ToiOutput::GetToiViaSat().