/**
  * @param pathForWorldDescription path to the world description file <b> without </b> file
  *     extension.
  * @throws IOException
  * @throws SAXException
  */
 public void init(
     Node root,
     Camera cam,
     DisplaySystem display,
     String pathToWorldDescription,
     String pathToModels)
     throws SAXException, IOException {
   this.display = display;
   this.root = root;
   loader = new ObjectLoader();
   loader.setObjectPath(pathToModels);
   sectionController = new SectionController(loader, pathToWorldDescription);
   worldDescr = loader.loadWorldDescription(pathToWorldDescription);
   if (visibilityRadius < 0) setVisibilityRadius(2000);
   preloadAndAddSections(cam.getLocation());
   // createSky();
   createFog();
   AsyncTaskQueue.getInstance().waitForEmptyQueue();
   logger.info("DynamicWorld finished initialization.");
 }
 public DynamicWorld() {
   super("DynamicWorld");
   // start the async task queue
   AsyncTaskQueue.getInstance();
 }
 /** Destroys all background processes initiated by DynamicTerain. */
 public void destroy() {
   AsyncTaskQueue.getInstance().shutdownQueueProcessor();
 }