Struct libreda_db::prelude::RegularRepetition
pub struct RegularRepetition<T>where
T: CoordinateType,{
a: Vector<T>,
b: Vector<T>,
n: u32,
m: u32,
}Expand description
Describe a equi-spaced n*m two-dimensional repetition as a lattice.
The offsets are computed as (i*a, j*b) for i in 0..n and j in 0..m.
a and b the distance vectors between two neighbouring points.
Fields§
§a: Vector<T>§b: Vector<T>§n: u32§m: u32Implementations§
§impl<T> RegularRepetition<T>where
T: CoordinateType,
impl<T> RegularRepetition<T>where T: CoordinateType,
pub fn new(a: Vector<T>, b: Vector<T>, n: u32, m: u32) -> RegularRepetition<T>
pub fn new(a: Vector<T>, b: Vector<T>, n: u32, m: u32) -> RegularRepetition<T>
Create a new lattice based repetition.
Parameters
a, b: Lattice vectors.n, m: Number of repetitions in directionsaandb.
pub fn new_rectilinear(
spacing_x: T,
spacing_y: T,
num_x: u32,
num_y: u32
) -> RegularRepetition<T>
pub fn new_rectilinear( spacing_x: T, spacing_y: T, num_x: u32, num_y: u32 ) -> RegularRepetition<T>
Create a repetition along the x and y axis.
Example
use iron_shapes::prelude::RegularRepetition;
let rep = RegularRepetition::new_rectilinear(1, 1, 1, 2);
assert_eq!(rep.len(), 2);
let offsets: Vec<_> = rep.iter().collect();
assert_eq!(offsets, [(0, 0).into(), (0, 1).into()]);Trait Implementations§
§impl<T> Clone for RegularRepetition<T>where
T: Clone + CoordinateType,
impl<T> Clone for RegularRepetition<T>where T: Clone + CoordinateType,
§fn clone(&self) -> RegularRepetition<T>
fn clone(&self) -> RegularRepetition<T>
Returns a copy 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 more§impl<T> Debug for RegularRepetition<T>where
T: Debug + CoordinateType,
impl<T> Debug for RegularRepetition<T>where T: Debug + CoordinateType,
§impl<'de, T> Deserialize<'de> for RegularRepetition<T>where
T: CoordinateType + Deserialize<'de>,
impl<'de, T> Deserialize<'de> for RegularRepetition<T>where T: CoordinateType + Deserialize<'de>,
§fn deserialize<__D>(
__deserializer: __D
) -> Result<RegularRepetition<T>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>( __deserializer: __D ) -> Result<RegularRepetition<T>, <__D as Deserializer<'de>>::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl<T> Hash for RegularRepetition<T>where
T: Hash + CoordinateType,
impl<T> Hash for RegularRepetition<T>where T: Hash + CoordinateType,
§impl<T> PartialEq<RegularRepetition<T>> for RegularRepetition<T>where
T: PartialEq<T> + CoordinateType,
impl<T> PartialEq<RegularRepetition<T>> for RegularRepetition<T>where T: PartialEq<T> + CoordinateType,
§fn eq(&self, other: &RegularRepetition<T>) -> bool
fn eq(&self, other: &RegularRepetition<T>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.§impl<T> Serialize for RegularRepetition<T>where
T: CoordinateType + Serialize,
impl<T> Serialize for RegularRepetition<T>where T: CoordinateType + Serialize,
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where __S: Serializer,
Serialize this value into the given Serde serializer. Read more