1 #ifndef MATH3D_RANDOM_H 2 #define MATH3D_RANDOM_H 6 #include <KrisLibrary/math/complex.h> 39 inline void SampleSquare(Real d,Vector2& v)
44 inline void SampleCube(Real d,Vector3& v)
49 inline void SampleHyperCube(Real d,Vector4& v)
54 inline void SampleAABB(
const Vector2& bmin,
const Vector2& bmax,Vector2& v)
56 v.set(
Rand(bmin.x,bmax.x),
Rand(bmin.y,bmax.y));
59 inline void SampleAABB(
const Vector3& bmin,
const Vector3& bmax,Vector3& v)
61 v.set(
Rand(bmin.x,bmax.x),
Rand(bmin.y,bmax.y),
Rand(bmin.z,bmax.z));
64 inline void SampleAABB(
const Vector4& bmin,
const Vector4& bmax,Vector4& v)
66 v.set(
Rand(bmin.x,bmax.x),
Rand(bmin.y,bmax.y),
Rand(bmin.z,bmax.z),
Rand(bmin.w,bmax.w));
69 void RandRotation(Quaternion& q);
76 inline Vector2 SampleSquare(Real d) { Vector2 v; SampleSquare(d,v);
return v; }
77 inline Vector3 SampleCube(Real d) { Vector3 v; SampleCube(d,v);
return v; }
78 inline Vector4 SampleHyperCube(Real d) { Vector4 v; SampleHyperCube(d,v);
return v; }
79 inline Vector2 SampleAABB(
const Vector2& bmin,
const Vector2& bmax) { Vector2 v; SampleAABB(bmin,bmax,v);
return v; }
80 inline Vector3 SampleAABB(
const Vector3& bmin,
const Vector3& bmax) { Vector3 v; SampleAABB(bmin,bmax,v);
return v; }
81 inline Vector4 SampleAABB(
const Vector4& bmin,
const Vector4& bmax) { Vector4 v; SampleAABB(bmin,bmax,v);
return v; }
82 inline Quaternion RandRotation() { Quaternion q; RandRotation(q);
return q; }
void SampleBall(Real r, Real &x, Real &y, Real &z)
Uniform distribution on boundary of a sphere with radius r.
Definition: sample.cpp:189
Class declarations for useful 3D math types.
void SampleSphere(Real r, Real &x, Real &y, Real &z)
Uniform distribution inside a sphere with radius r.
Definition: sample.cpp:179
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:13
Real Rand()
Generates a random Real uniformly in [0,1].
Definition: math/random.h:36
Functions for random sampling of various sets.
void SampleDisk(Real r, Real &x, Real &y)
Uniform distribution inside a circle with radius r.
Definition: sample.cpp:159
void SampleCircle(Real r, Real &x, Real &y)
Uniform distribution on boundary of a circle with radius r.
Definition: sample.cpp:152
Defines a standard method for random floating-point number generation.