pub struct SphericalDisk {
pub disk_radius: PositiveReal,
pub point: Spherical<3>,
}Expand description
Randomly distribute points locally on a sphere.
SphericalDisk is a uniform distribution of points within distance r of
a point on the 2-sphere with a given radius.
§Example
use hoomd_manifold::{Spherical, SphericalDisk};
use hoomd_vector::{Cartesian, Metric};
use rand::{Rng, SeedableRng, distr::Distribution, rngs::StdRng};
let mut rng = StdRng::seed_from_u64(12);
let sample_disk =
SphericalDisk {
disk_radius: 0.5_f64.try_into()?,
point: Spherical::<3>::from_cartesian_coordinates(Cartesian::from(
[0.01, 0.01, -(1.0 - 2.0 * (0.01_f64).powi(2)).sqrt()],
)),
};
let random_point: Spherical<3> = sample_disk.sample(&mut rng);
let disk = SphericalDisk {
disk_radius: 0.1_f64.try_into()?,
point: random_point,
};
let transformed_random_point: Spherical<3> = disk.sample(&mut rng);
assert!(0.1 > random_point.distance(&transformed_random_point));
Fields§
§disk_radius: PositiveRealMax distance away from point.
point: Spherical<3>The center of the disk.
Trait Implementations§
Source§impl Clone for SphericalDisk
impl Clone for SphericalDisk
Source§fn clone(&self) -> SphericalDisk
fn clone(&self) -> SphericalDisk
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SphericalDisk
impl Debug for SphericalDisk
Source§impl<'de> Deserialize<'de> for SphericalDisk
impl<'de> Deserialize<'de> for SphericalDisk
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Distribution<Spherical<3>> for SphericalDisk
impl Distribution<Spherical<3>> for SphericalDisk
Source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Spherical<3>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Spherical<3>
Generate a random value of
T, using rng as the source of randomness.§fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>where
R: Rng,
Self: Sized,
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>where
R: Rng,
Self: Sized,
Create an iterator that generates random values of
T, using rng as
the source of randomness. Read moreSource§impl PartialEq for SphericalDisk
impl PartialEq for SphericalDisk
Source§impl Serialize for SphericalDisk
impl Serialize for SphericalDisk
impl StructuralPartialEq for SphericalDisk
Auto Trait Implementations§
impl Freeze for SphericalDisk
impl RefUnwindSafe for SphericalDisk
impl Send for SphericalDisk
impl Sync for SphericalDisk
impl Unpin for SphericalDisk
impl UnwindSafe for SphericalDisk
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more