Exemplo n.º 1
0
        public List <Connection> GetConnections(PlanetNode node)
        {
            if (nodeDictionary.ContainsKey(node.GetKeyPoint()))
            {
                return(GetConnections(nodeDictionary[node.GetKeyPoint()]));
            }

            return(new List <Connection>());
        }
Exemplo n.º 2
0
        private void RenderConnections(PlanetNode node)
        {
            List <NeighbourTracker.Connection> connections = neighbourTracker.GetConnections(node);
            Color nodeQuadrantColor = Color.Red;

            if (neighbourTracker.nodeDictionary.ContainsKey(node.GetKeyPoint()))
            {
                NeighbourTrackerNode trackerNode = neighbourTracker.nodeDictionary[node.GetKeyPoint()];

                if (trackerNode.quadrant == NeighbourTrackerNode.Quadrant.ne)
                {
                    nodeQuadrantColor = Color.White;
                }
                if (trackerNode.quadrant == NeighbourTrackerNode.Quadrant.nw)
                {
                    nodeQuadrantColor = Color.Green;
                }
                if (trackerNode.quadrant == NeighbourTrackerNode.Quadrant.se)
                {
                    nodeQuadrantColor = Color.Pink;
                }
                if (trackerNode.quadrant == NeighbourTrackerNode.Quadrant.sw)
                {
                    nodeQuadrantColor = Color.Yellow;
                }

                DebugShapeRenderer.AddBoundingSphere(new BoundingSphere(node.GetSurfaceMidPoint(), 100f / trackerNode.depth), nodeQuadrantColor);
            }


            foreach (NeighbourTracker.Connection conn in connections)
            {
                DebugShapeRenderer.AddLine(node.GetSurfaceMidPoint(),
                                           Vector3.Transform(Vector3.Normalize(conn.node.keyPoint) * radius, Transform.AbsoluteTransform), Color.Blue);
            }
        }