UnityEditor.TerrainInspector.OnGetFrameBounds C# (CSharp) Method

OnGetFrameBounds() public method

public OnGetFrameBounds ( ) : Bounds
return UnityEngine.Bounds
        public Bounds OnGetFrameBounds()
        {
            Vector2 vector;
            Vector3 vector2;
            if (((Camera.current != null) && (this.m_Terrain.terrainData != null)) && this.Raycast(out vector, out vector2))
            {
                Vector3 vector3;
                if (SceneView.lastActiveSceneView != null)
                {
                    SceneView.lastActiveSceneView.viewIsLockedToObject = false;
                }
                Bounds bounds = new Bounds();
                float num = (this.selectedTool != TerrainTool.PlaceTree) ? ((float) this.m_Size) : TreePainter.brushSize;
                vector3.x = (num / ((float) this.m_Terrain.terrainData.heightmapWidth)) * this.m_Terrain.terrainData.size.x;
                vector3.z = (num / ((float) this.m_Terrain.terrainData.heightmapHeight)) * this.m_Terrain.terrainData.size.z;
                vector3.y = (vector3.x + vector3.z) * 0.5f;
                bounds.center = vector2;
                bounds.size = vector3;
                if ((this.selectedTool == TerrainTool.PaintDetail) && (this.m_Terrain.terrainData.detailWidth != 0))
                {
                    vector3.x = ((num / ((float) this.m_Terrain.terrainData.detailWidth)) * this.m_Terrain.terrainData.size.x) * 0.7f;
                    vector3.z = ((num / ((float) this.m_Terrain.terrainData.detailHeight)) * this.m_Terrain.terrainData.size.z) * 0.7f;
                    vector3.y = 0f;
                    bounds.size = vector3;
                }
                return bounds;
            }
            Vector3 position = this.m_Terrain.transform.position;
            if (this.m_Terrain.terrainData == null)
            {
                return new Bounds(position, Vector3.zero);
            }
            Vector3 size = this.m_Terrain.terrainData.size;
            float[,] numArray = this.m_Terrain.terrainData.GetHeights(0, 0, this.m_Terrain.terrainData.heightmapWidth, this.m_Terrain.terrainData.heightmapHeight);
            float minValue = float.MinValue;
            for (int i = 0; i < this.m_Terrain.terrainData.heightmapHeight; i++)
            {
                for (int j = 0; j < this.m_Terrain.terrainData.heightmapWidth; j++)
                {
                    minValue = Mathf.Max(minValue, numArray[j, i]);
                }
            }
            size.y = minValue * size.y;
            return new Bounds(position + ((Vector3) (size * 0.5f)), size);
        }