equal
deleted
inserted
replaced
1 mod outline; |
1 mod outline; |
2 pub mod outline_template; |
2 pub mod outline_template; |
3 pub mod template_based; |
3 pub mod template_based; |
|
4 pub mod wavefront_collapse; |
4 |
5 |
5 #[derive(Clone, Copy)] |
6 #[derive(Clone, Copy)] |
6 pub struct LandGenerationParameters<T> { |
7 pub struct LandGenerationParameters<T> { |
7 zero: T, |
8 zero: T, |
8 basic: T, |
9 basic: T, |
9 distance_divisor: u32, |
10 distance_divisor: u32, |
10 skip_distort: bool, |
11 skip_distort: bool, |
11 skip_bezier: bool, |
12 skip_bezier: bool, |
12 } |
13 } |
13 |
14 |
14 impl<T: Copy + PartialEq> LandGenerationParameters<T> { |
15 impl<T: Copy + PartialEq + Default> LandGenerationParameters<T> { |
15 pub fn new( |
16 pub fn new( |
16 zero: T, |
17 zero: T, |
17 basic: T, |
18 basic: T, |
18 distance_divisor: u32, |
19 distance_divisor: u32, |
19 skip_distort: bool, |
20 skip_distort: bool, |
36 self.basic |
37 self.basic |
37 } |
38 } |
38 } |
39 } |
39 |
40 |
40 pub trait LandGenerator { |
41 pub trait LandGenerator { |
41 fn generate_land<T: Copy + PartialEq, I: Iterator<Item = u32>>( |
42 fn generate_land<T: Copy + PartialEq + Default, I: Iterator<Item = u32>>( |
42 &self, |
43 &self, |
43 parameters: &LandGenerationParameters<T>, |
44 parameters: &LandGenerationParameters<T>, |
44 random_numbers: &mut I, |
45 random_numbers: &mut I, |
45 ) -> land2d::Land2D<T>; |
46 ) -> land2d::Land2D<T>; |
46 } |
47 } |
47 |
|
48 #[cfg(test)] |
|
49 mod tests { |
|
50 #[test] |
|
51 fn it_works() { |
|
52 assert_eq!(2 + 2, 4); |
|
53 } |
|
54 } |
|