Пример #1
0
 def _prepare(self):
     if not self.visual_backend and not self.store_positions:
         functions.warn(
             "No results are logged. Ensure you want a headless simulation."
         )
     # The order in which the following effects are added is important.
     for population in self.populations:
         self.on_step_functions.append(population.step)
     if 'repulsion' in self.effects:
         self.on_step_functions.append(self.effects['repulsion'].step)
     if 'fire' in self.effects:
         self.on_step_functions.append(self.effects['fire'].step)
     self.on_step_functions.append(self.scene.move)
     if 'separation' in self.effects:
         self.on_step_functions.append(self.effects['separation'].step)
     self.on_step_functions.append(self.scene.correct_for_geometry)
     self.on_step_functions.append(self.scene.find_finished)
     if self.store_positions:
         self.on_step_functions.append(self.logger.step)
     if self.visual_backend:
         self.vis = VisualScene(self.scene)
         self.on_step_functions.append(self.vis.loop)
     else:
         self.vis = NoVisualScene(self.scene)
     if self.inflow:
         self.on_step_functions.append(self._add_new_pedestrian_sometimes)
     self.vis.step_callback = self.step
     self.vis.finish_callback = self.finish
     self.scene.on_pedestrian_exit_functions.append(self._check_percentage)
     if self.params.max_time > 0:
         self.scene.on_pedestrian_exit_functions.append(
             self._check_max_time)