Synthia
Generic and flexible data structure generator
AreaMapPicker.java
Go to the documentation of this file.
1 package ca.uqac.lif.synthia.map;
2 
3 import ca.uqac.lif.synthia.Picker;
5 
6 import java.util.ArrayList;
7 import java.util.List;
8 
9 public class AreaMapPicker implements Picker<AreaMap>
10 {
16 
17 
18  public AreaMapPicker(Picker<Integer> width_picker, Picker<Integer> height_picker,
19  Picker<Integer> hubs_nb_picker, RandomInteger x_picker, RandomInteger y_picker)
20  {
21  this.m_widthPicker = width_picker;
22  this.m_heightPicker = height_picker;
23  this.m_hubsNbPicker = hubs_nb_picker;
24  this.m_xPicker = x_picker;
25  this.m_yPicker = y_picker;
26  }
27 
28  @Override public void reset()
29  {
33  m_xPicker.reset();
34  m_yPicker.reset();
35  }
36 
37  @Override public AreaMap pick()
38  {
39  int width = m_widthPicker.pick();
40  int height = m_heightPicker.pick();
41  int hubs_nb = m_hubsNbPicker.pick();
42 
43  m_xPicker.setInterval(0,width);
44  m_yPicker.setInterval(0,height);
45 
46 
47  return new AreaMap(width,height,generateHubList(hubs_nb));
48  }
49 
50  private List<Point> generateHubList(int hub_nb)
51  {
52  List<Point> hubs = new ArrayList<>();
53  for (int i = 0; i < hub_nb; i++)
54  {
55  hubs.add(new Point(m_xPicker.pick(),m_yPicker.pick()));
56  }
57 
58  return hubs;
59  }
60 
61  @Override public Picker<AreaMap> duplicate(boolean with_state)
62  {
63  return new AreaMapPicker(m_widthPicker.duplicate(with_state),
64  m_heightPicker.duplicate(with_state),
65  m_hubsNbPicker.duplicate(with_state),
66  m_xPicker.duplicate(with_state),
67  m_yPicker.duplicate(with_state));
68  }
69 
70  public void setSeed(int x_seed, int y_seed)
71  {
72  m_xPicker.setSeed(x_seed);
73  m_yPicker.setSeed(y_seed);
74  }
75 
76 }
ca.uqac.lif.synthia.Picker
Picks an object.
Definition: Picker.java:36
ca.uqac.lif.synthia.map.Point
Definition: Point.java:3
ca.uqac.lif.synthia.map.AreaMapPicker.setSeed
void setSeed(int x_seed, int y_seed)
Definition: AreaMapPicker.java:70
ca.uqac.lif.synthia.map.AreaMapPicker.m_xPicker
RandomInteger m_xPicker
Definition: AreaMapPicker.java:14
ca.uqac.lif.synthia.map.AreaMap
Definition: AreaMap.java:5
ca.uqac.lif.synthia.map.AreaMapPicker.AreaMapPicker
AreaMapPicker(Picker< Integer > width_picker, Picker< Integer > height_picker, Picker< Integer > hubs_nb_picker, RandomInteger x_picker, RandomInteger y_picker)
Definition: AreaMapPicker.java:18
ca.uqac.lif.synthia.map.AreaMapPicker.m_widthPicker
Picker< Integer > m_widthPicker
Definition: AreaMapPicker.java:11
ca.uqac
ca.uqac.lif.synthia.random
Pickers that produce pseudo-random objects such as numbers.
Definition: AffineTransform.java:19
ca.uqac.lif.synthia
Definition: Bounded.java:19
ca.uqac.lif.synthia.map.AreaMapPicker.reset
void reset()
Puts the picker back into its initial state.
Definition: AreaMapPicker.java:28
ca.uqac.lif.synthia.map.AreaMapPicker.m_heightPicker
Picker< Integer > m_heightPicker
Definition: AreaMapPicker.java:12
ca.uqac.lif.synthia.map.AreaMapPicker.m_yPicker
RandomInteger m_yPicker
Definition: AreaMapPicker.java:15
ca.uqac.lif.synthia.random.RandomInteger.setInterval
RandomInteger setInterval(int min, int max)
Sets the interval in which integers are picked.
Definition: RandomInteger.java:84
ca.uqac.lif
ca.uqac.lif.synthia.map.AreaMapPicker.duplicate
Picker< AreaMap > duplicate(boolean with_state)
Creates a copy of the picker.
Definition: AreaMapPicker.java:61
ca.uqac.lif.synthia.random.RandomPicker.reset
void reset()
Puts the picker back into its initial state.
Definition: RandomPicker.java:68
ca.uqac.lif.synthia.map.AreaMapPicker.m_hubsNbPicker
Picker< Integer > m_hubsNbPicker
Definition: AreaMapPicker.java:13
ca.uqac.lif.synthia.random.RandomInteger.setSeed
RandomInteger setSeed(int seed)
Definition: RandomInteger.java:102
ca.uqac.lif.synthia.random.RandomInteger
Picks an integer uniformly in an interval.
Definition: RandomInteger.java:31
ca.uqac.lif.synthia.random.RandomInteger.pick
Integer pick()
Picks a random integer.
Definition: RandomInteger.java:118
ca
ca.uqac.lif.synthia.random.RandomInteger.duplicate
RandomInteger duplicate(boolean with_state)
Creates a copy of the RandomInteger picker.
Definition: RandomInteger.java:133
ca.uqac.lif.synthia.Picker.pick
T pick()
Picks an object.
ca.uqac.lif.synthia.map.AreaMapPicker
Definition: AreaMapPicker.java:9
ca.uqac.lif.synthia.map.AreaMapPicker.pick
AreaMap pick()
Picks an object.
Definition: AreaMapPicker.java:37
ca.uqac.lif.synthia.Picker.duplicate
Picker< T > duplicate(boolean with_state)
Creates a copy of the picker.
ca.uqac.lif.synthia.Picker.reset
void reset()
Puts the picker back into its initial state.