mirror of
https://github.com/bulletphysics/bullet3
synced 2024-12-16 14:40:05 +00:00
ba8964c4ac
This change adds support for calculating Jacobians and dot(Jacobian)*u terms, along with the required support for the 3xN matrices in the standalone math library. It also adds functions to compute kinematics only (position, velocity, accel). To facilitate tests, the Cl also adds a RandomTreeCreator to create randomized multibody trees. Thanks to Thomas Buschmann for this contribution!
37 lines
1.5 KiB
C++
37 lines
1.5 KiB
C++
#ifndef ID_RANDOM_UTIL_HPP_
|
|
#define ID_RANDOM_UTIL_HPP_
|
|
#include "BulletInverseDynamics/IDConfig.hpp"
|
|
namespace btInverseDynamics {
|
|
/// seed random number generator using time()
|
|
void randomInit();
|
|
/// seed random number generator with identical value to get repeatable results
|
|
void randomInit(unsigned seed);
|
|
/// Generate (not quite) uniformly distributed random integers in [low, high]
|
|
/// Note: this is a low-quality implementation using only rand(), as
|
|
/// C++11 <random> is not supported in bullet.
|
|
/// The results will *not* be perfectly uniform.
|
|
/// \param low is the lower bound (inclusive)
|
|
/// \param high is the lower bound (inclusive)
|
|
/// \return a random number within [\param low, \param high]
|
|
int randomInt(int low, int high);
|
|
/// Generate a (not quite) uniformly distributed random floats in [low, high]
|
|
/// Note: this is a low-quality implementation using only rand(), as
|
|
/// C++11 <random> is not supported in bullet.
|
|
/// The results will *not* be perfectly uniform.
|
|
/// \param low is the lower bound (inclusive)
|
|
/// \param high is the lower bound (inclusive)
|
|
/// \return a random number within [\param low, \param high]
|
|
float randomFloat(float low, float high);
|
|
|
|
/// generate a random valid mass value
|
|
/// \returns random mass
|
|
float randomMass();
|
|
/// generate a random valid vector of principal moments of inertia
|
|
vec3 randomInertiaPrincipal();
|
|
/// generate a random valid moment of inertia matrix
|
|
mat33 randomInertiaMatrix();
|
|
/// generate a random unit vector
|
|
vec3 randomAxis();
|
|
}
|
|
#endif
|