/// <summary> /// ³õʼ»¯graphNodeÕ¤¸ñÆ÷ /// </summary> public void InitRasterizer(int inCellSize = 4000) { if (this.graphs == null || this.graphs.Length == 0) { return; } rasterizer = new GraphNodeRasterizer(); Int2 min = new Int2(2147483647, 2147483647); Int2 max = new Int2(-2147483648, -2147483648); for (int j = 0; j < this.graphs.Length; j++) { RecastGraph recastGraph2 = this.graphs[j] as RecastGraph; if (recastGraph2 == null) { return; } recastGraph2.GetNodes(delegate(GraphNode node) { TriangleMeshNode triangleMeshNode = node as TriangleMeshNode; if (triangleMeshNode != null) { Int2 xz = triangleMeshNode.GetVertex(0).xz; Int2 xz2 = triangleMeshNode.GetVertex(1).xz; Int2 xz3 = triangleMeshNode.GetVertex(2).xz; min.Min(ref xz); min.Min(ref xz2); min.Min(ref xz3); max.Max(ref xz); max.Max(ref xz2); max.Max(ref xz3); } return(true); }); } rasterizer.Init(min, max.x - min.x, max.y - min.y, inCellSize); for (int k = 0; k < this.graphs.Length; k++) { RecastGraph recastGraph3 = this.graphs[k] as RecastGraph; if (recastGraph3 != null) { recastGraph3.GetNodes(delegate(GraphNode node) { TriangleMeshNode triangleMeshNode = node as TriangleMeshNode; if (triangleMeshNode != null) { Int2 xz = triangleMeshNode.GetVertex(0).xz; Int2 xz2 = triangleMeshNode.GetVertex(1).xz; Int2 xz3 = triangleMeshNode.GetVertex(2).xz; rasterizer.AddTriangle(ref xz, ref xz2, ref xz3, triangleMeshNode); } return(true); }); } } }
public GraphNodeRasterizer InitRasterizer(int inCellSize, bool bUseForceBoundsSize = false) { if (this.graphs == null || this.graphs.Length == 0) { return(null); } GraphNodeRasterizer r = new GraphNodeRasterizer(); VInt2 min = new VInt2(2147483647, 2147483647); VInt2 max = new VInt2(-2147483648, -2147483648); if (bUseForceBoundsSize) { for (int i = 0; i < this.graphs.Length; i++) { RecastGraph recastGraph = this.graphs[i] as RecastGraph; if (recastGraph == null) { return(null); } VInt2 vInt = new VInt2((int)(recastGraph.forcedBounds.min.x * 1000f), (int)(recastGraph.forcedBounds.min.z * 1000f)); VInt2 vInt2 = new VInt2((int)(recastGraph.forcedBounds.max.x * 1000f), (int)(recastGraph.forcedBounds.max.z * 1000f)); min.Min(ref vInt); max.Max(ref vInt2); } r.Init(min, max.x - min.x, max.y - min.y, inCellSize); } else { for (int j = 0; j < this.graphs.Length; j++) { RecastGraph recastGraph2 = this.graphs[j] as RecastGraph; if (recastGraph2 == null) { return(null); } recastGraph2.GetNodes(delegate(GraphNode node) { TriangleMeshNode triangleMeshNode = node as TriangleMeshNode; if (triangleMeshNode != null) { VInt2 xz = triangleMeshNode.GetVertex(0).xz; VInt2 xz2 = triangleMeshNode.GetVertex(1).xz; VInt2 xz3 = triangleMeshNode.GetVertex(2).xz; min.Min(ref xz); min.Min(ref xz2); min.Min(ref xz3); max.Max(ref xz); max.Max(ref xz2); max.Max(ref xz3); } return(true); }); } r.Init(min, max.x - min.x, max.y - min.y, inCellSize); } for (int k = 0; k < this.graphs.Length; k++) { RecastGraph recastGraph3 = this.graphs[k] as RecastGraph; if (recastGraph3 != null) { recastGraph3.GetNodes(delegate(GraphNode node) { TriangleMeshNode triangleMeshNode = node as TriangleMeshNode; if (triangleMeshNode != null) { VInt2 xz = triangleMeshNode.GetVertex(0).xz; VInt2 xz2 = triangleMeshNode.GetVertex(1).xz; VInt2 xz3 = triangleMeshNode.GetVertex(2).xz; r.AddTriangle(ref xz, ref xz2, ref xz3, triangleMeshNode); } return(true); }); } } return(r); }
private void RasterizeGraphNodesInternal() { this.rasterizer = this.InitRasterizer(4000, false); }