コード例 #1
0
ファイル: NavigationMesh.cs プロジェクト: KDSBest/StreamRTS
        public void Initialize(NavigationPolygons polygons)
        {
            Reset();

            this.polygons = polygons;

            Tesselation();
            for (int i = 0; i < this.tesselationAlgorithm.ElementCount; i++)
            {
                var v0 = this.tesselationAlgorithm.Vertices[this.tesselationAlgorithm.Elements[i * 3]].Position.ToIntPoint();
                var v1 = this.tesselationAlgorithm.Vertices[this.tesselationAlgorithm.Elements[i * 3 + 1]].Position.ToIntPoint();
                var v2 = this.tesselationAlgorithm.Vertices[this.tesselationAlgorithm.Elements[i * 3 + 2]].Position.ToIntPoint();

                var triangle = new NavigationTriangle(v0, v1, v2);
                AllTriangle.Add(triangle);
            }

            // Refine();

            foreach (var triangle in AllTriangle)
            {
                AddTriangleToPointMap(triangle.U, triangle);
                AddTriangleToPointMap(triangle.V, triangle);
                AddTriangleToPointMap(triangle.W, triangle);
                AddTriangleToPointMap(triangle.S0.Midpoint(), triangle);
                AddTriangleToPointMap(triangle.S1.Midpoint(), triangle);
                AddTriangleToPointMap(triangle.S2.Midpoint(), triangle);
            }
        }
コード例 #2
0
 private static void DrawPolygons(NavigationPolygons polygons, Color color)
 {
     foreach (var polygon in polygons)
     {
         DrawPolygon(polygon, color);
     }
 }
コード例 #3
0
        private void ProzessFloorAndStaticObjects(NavigationFloorComponent floorObject,
                                                  NavigationStaticObjectComponent[] staticObjects, out NavigationPolygons staticObjectsPoly, out NavigationPolygon floorObjectsPoly)
        {
            floorObjectsPoly = ToPolygon(floorObject.gameObject, 0);

            staticObjectsPoly = new NavigationPolygons();
            foreach (var staticObj in staticObjects)
            {
                staticObjectsPoly.Add(ToPolygon(staticObj.gameObject, 0));
            }
        }
コード例 #4
0
ファイル: AStar.cs プロジェクト: KDSBest/StreamRTS
 public AStar(NavigationMesh navMesh, NavigationPolygons constrainedEdgePolygons)
 {
     this.navMesh = navMesh;
     this.constrainedEdgePolygons = constrainedEdgePolygons;
 }