public void UpdateWorkingGrid() { m_RenderView.SceneManager.ComputeBBox(); WorkingPlane wp = m_RenderView.Renderer.GetWorkingPlane(); GridNode gridNode = new GridNode(); Vector3 modelSize = m_RenderView.SceneManager.GetBBox().Size(); Vector2 cellSize = gridNode.GetCellSize(); int nCountX = (int)(modelSize.X / cellSize.X + 0.5f) + 1; int nCountY = (int)(modelSize.Y / cellSize.Y + 0.5f) + 1; if (nCountX < 2) { nCountX = 2; } if (nCountY < 2) { nCountY = 2; } gridNode.SetCellCount(nCountX, nCountY); LineStyle lineStyle = new LineStyle(); lineStyle.SetColor(new ColorValue(1.0f, 1.0f, 1.0f)); lineStyle.SetPatternStyle((int)EnumLinePattern.LP_DotLine); { //Z LineNode lineNode = new LineNode(); lineNode.Set(new Vector3(0, 0, -1000), new Vector3(0, 0, 1000)); lineNode.SetLineStyle(lineStyle); gridNode.AddNode(lineNode); } { //X LineNode lineNode = new LineNode(); lineNode.Set(new Vector3(-1000, 0, 0), new Vector3(1000, 0, 0)); lineNode.SetLineStyle(lineStyle); gridNode.AddNode(lineNode); } { //Y LineNode lineNode = new LineNode(); lineNode.Set(new Vector3(0, -1000, 0), new Vector3(0, 1000, 0)); lineNode.SetLineStyle(lineStyle); gridNode.AddNode(lineNode); } lineStyle = new LineStyle(); lineStyle.SetColor(new ColorValue(0.9f, 0.9f, 0.9f)); gridNode.SetLineStyle(lineStyle); for (int ii = -1; ii <= nCountX; ++ii) { if (ii == 0) { continue; } LineNode lineNode = new LineNode(); lineNode.Set(new Vector3(ii * cellSize.X, cellSize.Y, 0), new Vector3(ii * cellSize.X, -nCountY * cellSize.Y, 0)); gridNode.AddNode(lineNode); } for (int ii = -1; ii <= nCountY; ++ii) { if (ii == 0) { continue; } LineNode lineNode = new LineNode(); lineNode.Set(new Vector3(-cellSize.X, -ii * cellSize.Y, 0), new Vector3(nCountX * cellSize.X, -ii * cellSize.Y, 0)); gridNode.AddNode(lineNode); } gridNode.Update(); wp.SetGridNode(gridNode); m_RenderView.ShowWorkingGrid(true); }