コード例 #1
0
 public virtual void ReduceToEdgeLength(double minEdgeLen)
 {
     ReduceMode    = TargetModes.MinEdgeLength;
     TargetCount   = 1;
     MinEdgeLength = minEdgeLen;
     DoReduce();
 }
コード例 #2
0
 public virtual void ReduceToTriangleCount(int nCount)
 {
     ReduceMode    = TargetModes.TriangleCount;
     TargetCount   = Math.Max(1, nCount);
     MinEdgeLength = double.MaxValue;
     DoReduce();
 }
コード例 #3
0
 public virtual void ReduceToVertexCount(int nCount)
 {
     ReduceMode    = TargetModes.VertexCount;
     TargetCount   = Math.Max(3, nCount);
     MinEdgeLength = double.MaxValue;
     DoReduce();
 }
コード例 #4
0
 private static void DoWrite(string text, LogLevel level, TargetModes target)
 {
     lock (writeLock)
     {
         if (supressWrite)
         {
             return;
         }
         supressWrite = true;
         target       = target == TargetModes.UseGlobalSetting ? Target : target;
         if (target.HasFlag(TargetModes.File))
         {
             try
             {
                 System.IO.File.AppendAllText(GetLogfile().FullName, text);
             }
             catch (Exception) { }
         }
         if (target.HasFlag(TargetModes.Screen))
         {
             try
             {
                 var g = Game.GnomanEmpire.Instance;
                 if (g != null)
                 {
                     var w = g.World;
                     if (w != null)
                     {
                         var nm = w.NotificationManager;
                         if (nm != null)
                         {
                             if (g.Region != null)
                             {
                                 var guiMgr = g.GuiManager;
                                 if (guiMgr != null)
                                 {
                                     if (guiMgr.HUD != null)
                                     {
                                         nm.AddNotification(text, false);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             catch (Exception) { }
         }
         supressWrite = false;
     }
 }
コード例 #5
0
 public static void WriteText(string text, LogLevel level, TargetModes target)
 {
     DoWrite(text + Environment.NewLine, level, target);
 }
コード例 #6
0
            public static void WriteList <T>(IEnumerable <T> collection, LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting)
            {
                var list = collection as IList <T>;
                var pre  = new List <String>(1);

                if (list == null)
                {
                    pre.Add("Enumeration<" + typeof(T).FullName + ">: " + ObjectContentToString(collection));
                }
                else
                {
                    pre.Add("List<" + typeof(T).FullName + ">: " + ObjectContentToString(collection));
                }
                Write(collection == null ? pre : pre.Union(collection.Select(el => "> " + ObjectToString(el))), level, target);
            }
コード例 #7
0
 public static void Write(LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting, params object[] what)
 {
     Write(what.Select(el => ObjectToString(el)), level, target);
 }
コード例 #8
0
 public static void Write(Exception err, LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting)
 {
     if (SuppressDoubleExceptions && (err == lastException))
     {
         return;
     }
     lastException = err;
     Write((string)null, err /*ObjectContentToStringOrType(err)*/, level, target);
 }
コード例 #9
0
            public static void Write(string preText, Exception err, LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting)
            {
                lastException = err;
                string errText;

                try
                {
                    errText = ObjectContentToStringOrType(err);
                }
                catch (Exception toTextEx)
                {
                    try
                    {
                        errText = "Failed to retrieve error message: " + toTextEx.ToString();
                    }
                    catch (Exception)
                    {
                        errText = "Fatal error retrieving error message.";
                    }
                }
                Write((preText == null ? "" : preText + " ") + errText, level, target);
            }
コード例 #10
0
 public static void Write(string text, LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting)
 {
     Write(text.Yield(), level, target);
 }
コード例 #11
0
 public static void Write(LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting, params string[] texts)
 {
     Write((IEnumerable <string>)texts, level, target);
 }
コード例 #12
0
 public static void Write(IEnumerable <String> lines, LogLevel level = LogLevel.Normal, TargetModes target = TargetModes.UseGlobalSetting)
 {
     DoWrite(
         "Date: " + DateTime.Now.ToString()
         + Environment.NewLine
         + String.Join(Environment.NewLine, lines)
         + Environment.NewLine
         + Environment.NewLine,
         level,
         target
         );
 }