Beispiel #1
0
        public void Run(IAABBox startViewBox, IQuadTreeNode rootNode, IArrayBackgroundWorkerListener listener)
        {
            var visibleNodesCollector = new VisibleNodesCollector();

            rootNode.VisitVisibleNodes(startViewBox, visibleNodesCollector);
            var planetFactory = mPlanetFactoryCreator.CreatePlanetFactory();

            foreach (var curLeaf in visibleNodesCollector.GetVisibleLeaves())
            {
                // ReSharper disable once PossibleNullReferenceException
                curLeaf.SetPlanets(planetFactory.CreatePlanetsForSector());
            }

            var nodesInCameraCollector = new VisibleNodesCollector();

            rootNode.VisitVisibleNodes(new AABBox(0f, 0f, mConstants.GetMaxCameraSize(), mConstants.GetMaxCameraSize()), nodesInCameraCollector);

            mBackgroundWorker.AddListener(listener);
            mBackgroundWorker.Run(nodesInCameraCollector.GetVisibleLeaves(), mPlanetFactoryCreator);
        }
Beispiel #2
0
 public void AddListener(IArrayBackgroundWorkerListener listener)
 {
     mListeners.Add(listener);
 }