Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::randomize

Random primitive generation helpers for Mundy geometric primitives. More...

Functions

template<typename Scalar, typename RNG>
Point< Scalarmundy::generate_random_point (const AABB< Scalar > &box, RNG &rng)
 Generate a random point within a given bounding box.
template<typename Scalar, typename RNG>
Point< Scalarmundy::generate_random_unit_vector (RNG &rng)
 Generate a random unit vector (uniformly distributed on the unit sphere).
template<typename Scalar, typename RNG>
Quaternion< Scalarmundy::generate_random_unit_quaternion (RNG &rng)
 Generate a random unit quaternion mapping the z-axis to a random unit vector via parallel transport.
template<typename Scalar, typename RNG>
Line< Scalarmundy::generate_random_line (const AABB< Scalar > &box, RNG &rng)
 Generate a random line with a center point within a given bounding box and a random direction.
template<typename Scalar, typename RNG>
LineSegment< Scalarmundy::generate_random_line_segment (const AABB< Scalar > &box, RNG &rng)
 Generate a random line segment with endpoints within a given bounding box.
template<typename Scalar, typename RNG>
LineSegment< Scalarmundy::generate_random_line_segment (const AABB< Scalar > &box, Scalar min_length, Scalar max_length, RNG &rng)
 Generate a random line segment with center in the given bounding box, random length within the given bounds, and random orientation.
template<typename Scalar, typename RNG>
VSegment< Scalarmundy::generate_random_vsegment (const AABB< Scalar > &box, RNG &rng)
 Generate a random v-segment with endpoints and middle point within a given bounding box.
template<typename Scalar, typename RNG>
VSegment< Scalarmundy::generate_random_vsegment (const AABB< Scalar > &box, Scalar min_length, Scalar max_length, RNG &rng)
 Generate a random v-segment with center in the given bounding box, random edge lengths within the given bounds, and random edge orientations.
template<typename Scalar, typename RNG>
Circle3D< Scalarmundy::generate_random_circle3D (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, RNG &rng)
 Generate a random circle3D with center point within a given bounding box, random radius, and random orientation.
template<typename Scalar, typename RNG>
AABB< Scalarmundy::generate_random_aabb (const AABB< Scalar > &box, RNG &rng)
 Generate a random AABB within a given bounding box with both points inside the box.
template<typename Scalar, typename RNG>
AABB< Scalarmundy::generate_random_aabb (const AABB< Scalar > &box, const Vector3< Scalar > &min_sizes, const Vector3< Scalar > &max_sizes, RNG &rng)
 Generate a random AABB with random size and center point inside the box.
template<typename Scalar, typename RNG>
Sphere< Scalarmundy::generate_random_sphere (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, RNG &rng)
 Generate a random sphere with center point within a given bounding box and random radius.
template<typename Scalar, typename RNG>
Spherocylinder< Scalarmundy::generate_random_spherocylinder (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, RNG &rng)
 Generate a random spherocylinder with endpoints within a given bounding box and random radius.
template<typename Scalar, typename RNG>
Spherocylinder< Scalarmundy::generate_random_spherocylinder (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, Scalar min_length, Scalar max_length, RNG &rng)
 Generate a random spherocylinder with center point within a given bounding box, random radius, random length, and random orientation.
template<typename Scalar, typename RNG>
SpherocylinderSegment< Scalarmundy::generate_random_spherocylinder_segment (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, RNG &rng)
 Generate a random spherocylinder segment with endpoints within a given bounding box and random radius.
template<typename Scalar, typename RNG>
SpherocylinderSegment< Scalarmundy::generate_random_spherocylinder_segment (const AABB< Scalar > &box, Scalar min_radius, Scalar max_radius, Scalar min_length, Scalar max_length, RNG &rng)
 Generate a random spherocylinder segment with center point within a given bounding box, random radius, random length, and random orientation.
template<typename Scalar, typename RNG>
Ring< Scalarmundy::generate_random_ring (const AABB< Scalar > &box, Scalar min_major_radius, Scalar max_major_radius, Scalar min_minor_radius, Scalar max_minor_radius, RNG &rng)
 Generate a random ring with center point within a given bounding box, random major and minor radii, and random orientation.
template<typename Scalar, typename RNG>
Ellipsoid< Scalarmundy::generate_random_ellipsoid (const AABB< Scalar > &box, const Vector3< Scalar > &min_radii, const Vector3< Scalar > &max_radii, RNG &rng)
 Generate a random ellipsoid with center point within a given bounding box, random semi-axis radii, and random orientation.

Detailed Description

Function Documentation

◆ generate_random_point()

template<typename Scalar, typename RNG>
Point< Scalar > mundy::generate_random_point ( const AABB< Scalar > & box,
RNG & rng )

◆ generate_random_unit_vector()

template<typename Scalar, typename RNG>
Point< Scalar > mundy::generate_random_unit_vector ( RNG & rng)

◆ generate_random_unit_quaternion()

template<typename Scalar, typename RNG>
Quaternion< Scalar > mundy::generate_random_unit_quaternion ( RNG & rng)

◆ generate_random_line()

template<typename Scalar, typename RNG>
Line< Scalar > mundy::generate_random_line ( const AABB< Scalar > & box,
RNG & rng )

◆ generate_random_line_segment() [1/2]

template<typename Scalar, typename RNG>
LineSegment< Scalar > mundy::generate_random_line_segment ( const AABB< Scalar > & box,
RNG & rng )

◆ generate_random_line_segment() [2/2]

template<typename Scalar, typename RNG>
LineSegment< Scalar > mundy::generate_random_line_segment ( const AABB< Scalar > & box,
Scalar min_length,
Scalar max_length,
RNG & rng )

◆ generate_random_vsegment() [1/2]

template<typename Scalar, typename RNG>
VSegment< Scalar > mundy::generate_random_vsegment ( const AABB< Scalar > & box,
RNG & rng )

◆ generate_random_vsegment() [2/2]

template<typename Scalar, typename RNG>
VSegment< Scalar > mundy::generate_random_vsegment ( const AABB< Scalar > & box,
Scalar min_length,
Scalar max_length,
RNG & rng )

◆ generate_random_circle3D()

template<typename Scalar, typename RNG>
Circle3D< Scalar > mundy::generate_random_circle3D ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
RNG & rng )

◆ generate_random_aabb() [1/2]

template<typename Scalar, typename RNG>
AABB< Scalar > mundy::generate_random_aabb ( const AABB< Scalar > & box,
RNG & rng )

◆ generate_random_aabb() [2/2]

template<typename Scalar, typename RNG>
AABB< Scalar > mundy::generate_random_aabb ( const AABB< Scalar > & box,
const Vector3< Scalar > & min_sizes,
const Vector3< Scalar > & max_sizes,
RNG & rng )

◆ generate_random_sphere()

template<typename Scalar, typename RNG>
Sphere< Scalar > mundy::generate_random_sphere ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
RNG & rng )

◆ generate_random_spherocylinder() [1/2]

template<typename Scalar, typename RNG>
Spherocylinder< Scalar > mundy::generate_random_spherocylinder ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
RNG & rng )

◆ generate_random_spherocylinder() [2/2]

template<typename Scalar, typename RNG>
Spherocylinder< Scalar > mundy::generate_random_spherocylinder ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
Scalar min_length,
Scalar max_length,
RNG & rng )

◆ generate_random_spherocylinder_segment() [1/2]

template<typename Scalar, typename RNG>
SpherocylinderSegment< Scalar > mundy::generate_random_spherocylinder_segment ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
RNG & rng )

◆ generate_random_spherocylinder_segment() [2/2]

template<typename Scalar, typename RNG>
SpherocylinderSegment< Scalar > mundy::generate_random_spherocylinder_segment ( const AABB< Scalar > & box,
Scalar min_radius,
Scalar max_radius,
Scalar min_length,
Scalar max_length,
RNG & rng )

◆ generate_random_ring()

template<typename Scalar, typename RNG>
Ring< Scalar > mundy::generate_random_ring ( const AABB< Scalar > & box,
Scalar min_major_radius,
Scalar max_major_radius,
Scalar min_minor_radius,
Scalar max_minor_radius,
RNG & rng )

◆ generate_random_ellipsoid()

template<typename Scalar, typename RNG>
Ellipsoid< Scalar > mundy::generate_random_ellipsoid ( const AABB< Scalar > & box,
const Vector3< Scalar > & min_radii,
const Vector3< Scalar > & max_radii,
RNG & rng )