UnityEditor.TerrainInspector.UpdatePreviewBrush C# (CSharp) Method

UpdatePreviewBrush() private method

private UpdatePreviewBrush ( ) : void
return void
        private void UpdatePreviewBrush()
        {
            if (!this.IsModificationToolActive() || (this.m_Terrain.terrainData == null))
            {
                this.DisableProjector();
            }
            else
            {
                Vector2 vector3;
                Vector3 vector4;
                Projector previewProjector = this.GetActiveBrush((int) this.m_Size).GetPreviewProjector();
                float num = 1f;
                float num2 = this.m_Terrain.terrainData.size.x / this.m_Terrain.terrainData.size.z;
                Transform transform = previewProjector.transform;
                bool flag = true;
                if (this.Raycast(out vector3, out vector4))
                {
                    if (this.selectedTool == TerrainTool.PlaceTree)
                    {
                        previewProjector.material.mainTexture = (Texture2D) EditorGUIUtility.Load(EditorResourcesUtility.brushesPath + "builtin_brush_4.png");
                        num = TreePainter.brushSize / 0.8f;
                        num2 = 1f;
                    }
                    else if (((this.selectedTool == TerrainTool.PaintHeight) || (this.selectedTool == TerrainTool.SetHeight)) || (this.selectedTool == TerrainTool.SmoothHeight))
                    {
                        if ((this.m_Size % 2) == null)
                        {
                            float num3 = 0.5f;
                            vector3.x = (Mathf.Floor(vector3.x * (this.m_Terrain.terrainData.heightmapWidth - 1)) + num3) / ((float) (this.m_Terrain.terrainData.heightmapWidth - 1));
                            vector3.y = (Mathf.Floor(vector3.y * (this.m_Terrain.terrainData.heightmapHeight - 1)) + num3) / ((float) (this.m_Terrain.terrainData.heightmapHeight - 1));
                        }
                        else
                        {
                            vector3.x = Mathf.Round(vector3.x * (this.m_Terrain.terrainData.heightmapWidth - 1)) / ((float) (this.m_Terrain.terrainData.heightmapWidth - 1));
                            vector3.y = Mathf.Round(vector3.y * (this.m_Terrain.terrainData.heightmapHeight - 1)) / ((float) (this.m_Terrain.terrainData.heightmapHeight - 1));
                        }
                        vector4.x = vector3.x * this.m_Terrain.terrainData.size.x;
                        vector4.z = vector3.y * this.m_Terrain.terrainData.size.z;
                        vector4 += this.m_Terrain.transform.position;
                        num = ((((float) this.m_Size) * 0.5f) / ((float) this.m_Terrain.terrainData.heightmapWidth)) * this.m_Terrain.terrainData.size.x;
                    }
                    else if ((this.selectedTool == TerrainTool.PaintTexture) || (this.selectedTool == TerrainTool.PaintDetail))
                    {
                        int alphamapWidth;
                        int alphamapHeight;
                        float num4 = ((this.m_Size % 2) != null) ? 0.5f : 0f;
                        if (this.selectedTool == TerrainTool.PaintTexture)
                        {
                            alphamapWidth = this.m_Terrain.terrainData.alphamapWidth;
                            alphamapHeight = this.m_Terrain.terrainData.alphamapHeight;
                        }
                        else
                        {
                            alphamapWidth = this.m_Terrain.terrainData.detailWidth;
                            alphamapHeight = this.m_Terrain.terrainData.detailHeight;
                        }
                        if ((alphamapWidth == 0) || (alphamapHeight == 0))
                        {
                            flag = false;
                        }
                        vector3.x = (Mathf.Floor(vector3.x * alphamapWidth) + num4) / ((float) alphamapWidth);
                        vector3.y = (Mathf.Floor(vector3.y * alphamapHeight) + num4) / ((float) alphamapHeight);
                        vector4.x = vector3.x * this.m_Terrain.terrainData.size.x;
                        vector4.z = vector3.y * this.m_Terrain.terrainData.size.z;
                        vector4 += this.m_Terrain.transform.position;
                        num = ((((float) this.m_Size) * 0.5f) / ((float) alphamapWidth)) * this.m_Terrain.terrainData.size.x;
                        num2 = ((float) alphamapWidth) / ((float) alphamapHeight);
                    }
                }
                else
                {
                    flag = false;
                }
                previewProjector.enabled = flag;
                if (flag)
                {
                    vector4.y = this.m_Terrain.SampleHeight(vector4);
                    transform.position = vector4 + new Vector3(0f, 50f, 0f);
                }
                previewProjector.orthographicSize = num / num2;
                previewProjector.aspectRatio = num2;
            }
        }