예제 #1
0
        public static void CheckSurfaceForErrors()
        {
            try
            {
                var theSurfaces = SurfaceManager.GetSurfacesList();

                //PGA.SportVision.Program.RegisterPolys();

                foreach (var theSurface in theSurfaces)
                {
                    var t   = SurfaceManager.GetTerrainSurfaceProperties(theSurface);
                    var tin = SurfaceManager.GetTinSurfaceProperties(theSurface);


                    SurfaceManager.gCount     = 0;
                    SurfaceManager.gError     = 0;
                    SurfaceManager.gOuterArea = t?.SurfaceArea2D ?? 0.0;

                    COMS.MessengerManager.AddLog
                        ("Audit Zero Areas: " + theSurface.Name);

                    SurfaceManager.ProcessSurfaceOps(theSurface);
                    // SurfaceManager.DisableSurface(theSurface);
                    // SurfaceManager.DisableSurfaceByArea(theSurface);

                    theSurface.Rebuild();
                }
                Active.Editor.Regen();
            }

            catch (System.Exception ex)
            {
                COMS.MessengerManager.LogException(ex);
            }
        }
예제 #2
0
        public void SetSmallTrianglesAllSurfaces()
        {
            var surfaces = SurfaceManager.GetSurfacesList();

            foreach (var surface in surfaces)
            {
                try
                {
                    // Filter List

                    if (surface.Name.Contains("GREEN") ||
                        surface.Name.Contains("COLLAR") ||
                        surface.Name.Contains("BUNKER") ||
                        surface.Name.Contains("BRIDGE") ||
                        surface.Name.Contains("INTERMEDIATE-ROUGH"))
                    {
                        surface.BuildOptions.MaximumTriangleLength    = Math.Sqrt((Math.Pow(0.5, 2)) + Math.Pow(0.5, 2));
                        surface.BuildOptions.UseMaximumTriangleLength = true;
                    }
                }
                catch (System.Exception ex)
                {
                    PGA.MessengerManager.MessengerManager.AddLog(
                        String.Format("SetSmallTrianglesAllSurfaces All Failed {0}", ex));
                }
            }
        }
예제 #3
0
        public void SmoothAllSurfaces()
        {
            var surfaces = SurfaceManager.GetSurfacesList();

            foreach (var surface in surfaces)
            {
                try
                {
                    // Filter List

                    if (surface.Name.Contains("GREEN") ||
                        surface.Name.Contains("COLLAR") ||
                        surface.Name.Contains("BUNKER") ||
                        surface.Name.Contains("BRIDGE") ||
                        surface.Name.Contains("INTERMEDIATE-ROUGH"))
                    {
                        SetSmoothing(surface);
                    }
                }
                catch (Exception ex)
                {
                    PGA.MessengerManager.MessengerManager.AddLog(String.Format("Smoothing All Region Failed {0}", ex));
                }
            }
        }