diff --git a/src/MeshExplorer/FormLog.cs b/src/MeshExplorer/FormLog.cs
index 6797065..ec6d9a5 100644
--- a/src/MeshExplorer/FormLog.cs
+++ b/src/MeshExplorer/FormLog.cs
@@ -42,7 +42,7 @@ namespace MeshExplorer
private ListViewItem CreateListViewItem(LogItem item)
{
- ListViewItem lvi = new ListViewItem(new string[] { item.Message, item.Info });
+ ListViewItem lvi = new ListViewItem(new string[] { item.Message, item.Details });
if (item.Level == LogLevel.Error)
{
diff --git a/src/Triangle/Log.cs b/src/Triangle/Log.cs
index 16ad278..57c10f2 100644
--- a/src/Triangle/Log.cs
+++ b/src/Triangle/Log.cs
@@ -6,28 +6,87 @@
namespace TriangleNet
{
+ using System;
using System.Collections.Generic;
- using TriangleNet.Logging;
+
+ public enum LogLevel { Info, Warning, Error }
+
+ ///
+ /// Represents an item stored in the log.
+ ///
+ public class LogItem
+ {
+ private readonly DateTime time;
+ private readonly LogLevel level;
+ private readonly string message;
+ private readonly string details;
+
+ ///
+ /// Gets the the item was logged.
+ ///
+ public DateTime Time => time;
+
+ ///
+ /// Gets the .
+ ///
+ public LogLevel Level => level;
+
+ ///
+ /// Gets the log message.
+ ///
+ public string Message => message;
+
+ ///
+ /// Gets further details of the log message.
+ ///
+ public string Details => details;
+
+ ///
+ /// Creates a new instance of the class.
+ ///
+ /// The log level.
+ /// The log message.
+ public LogItem(LogLevel level, string message)
+ : this(level, message, "")
+ { }
+
+ ///
+ /// Creates a new instance of the class.
+ ///
+ /// The log level.
+ /// The log message.
+ /// The message details.
+ public LogItem(LogLevel level, string message, string details)
+ {
+ time = DateTime.Now;
+
+ this.level = level;
+ this.message = message;
+ this.details = details;
+ }
+ }
///
/// A simple logger, which logs messages to a List.
- ///
- /// Using singleton pattern as proposed by Jon Skeet.
- /// http://csharpindepth.com/Articles/General/Singleton.aspx
- ///
- public sealed class Log : ILog
+ public sealed class Log
{
///
/// Log detailed information.
///
public static bool Verbose { get; set; }
- private List log = new List();
+ ///
+ /// Gets all log messages.
+ ///
+ public IList Data => data;
- private LogLevel level = LogLevel.Info;
+ private readonly List data = new List();
#region Singleton pattern
+ // Singleton pattern as proposed by Jon Skeet:
+ // https://csharpindepth.com/Articles/Singleton
+
private static readonly Log instance = new Log();
// Explicit static constructor to tell C# compiler
@@ -36,7 +95,7 @@ namespace TriangleNet
private Log() { }
- public static ILog Instance
+ public static Log Instance
{
get
{
@@ -46,39 +105,50 @@ namespace TriangleNet
#endregion
+ ///
+ /// Adds a to the log.
+ ///
+ ///
public void Add(LogItem item)
{
- log.Add(item);
+ data.Add(item);
}
+ ///
+ /// Clear all messages from the log.
+ ///
public void Clear()
{
- log.Clear();
+ data.Clear();
}
+ ///
+ /// Log info message.
+ ///
+ /// The message.
public void Info(string message)
{
- log.Add(new LogItem(LogLevel.Info, message));
+ data.Add(new LogItem(LogLevel.Info, message));
}
- public void Warning(string message, string location)
+ ///
+ /// Log warning message.
+ ///
+ /// The message.
+ /// Message details, for example the code location where the error occured (class, method).
+ public void Warning(string message, string details)
{
- log.Add(new LogItem(LogLevel.Warning, message, location));
+ data.Add(new LogItem(LogLevel.Warning, message, details));
}
- public void Error(string message, string location)
+ ///
+ /// Log error message.
+ ///
+ /// The message.
+ /// Message details, for example the code location where the error occured (class, method).
+ public void Error(string message, string details)
{
- log.Add(new LogItem(LogLevel.Error, message, location));
- }
-
- public IList Data
- {
- get { return log; }
- }
-
- public LogLevel Level
- {
- get { return level; }
+ data.Add(new LogItem(LogLevel.Error, message, details));
}
}
}
diff --git a/src/Triangle/Logging/ILog.cs b/src/Triangle/Logging/ILog.cs
deleted file mode 100644
index 0128514..0000000
--- a/src/Triangle/Logging/ILog.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// -----------------------------------------------------------------------
-//
-// Triangle.NET code by Christian Woltering, http://triangle.codeplex.com/
-//
-// -----------------------------------------------------------------------
-
-namespace TriangleNet.Logging
-{
- using System.Collections.Generic;
-
- public enum LogLevel
- {
- Info = 0,
- Warning = 1,
- Error = 2
- }
-
- ///
- /// A basic log interface.
- ///
- public interface ILog where T : ILogItem
- {
- void Add(T item);
- void Clear();
-
- void Info(string message);
- void Error(string message, string info);
- void Warning(string message, string info);
-
- IList Data { get; }
-
- LogLevel Level { get; }
- }
-}
diff --git a/src/Triangle/Logging/ILogItem.cs b/src/Triangle/Logging/ILogItem.cs
deleted file mode 100644
index 777e7d8..0000000
--- a/src/Triangle/Logging/ILogItem.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// -----------------------------------------------------------------------
-//
-// Triangle.NET code by Christian Woltering, http://triangle.codeplex.com/
-//
-// -----------------------------------------------------------------------
-
-namespace TriangleNet.Logging
-{
- using System;
-
- ///
- /// A basic log item interface.
- ///
- public interface ILogItem
- {
- DateTime Time { get; }
- LogLevel Level { get; }
- string Message { get; }
- string Info { get; }
- }
-}
diff --git a/src/Triangle/Logging/LogItem.cs b/src/Triangle/Logging/LogItem.cs
deleted file mode 100644
index 8eb55ab..0000000
--- a/src/Triangle/Logging/LogItem.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-// -----------------------------------------------------------------------
-//
-// Triangle.NET code by Christian Woltering, http://triangle.codeplex.com/
-//
-// -----------------------------------------------------------------------
-
-namespace TriangleNet.Logging
-{
- using System;
-
- ///
- /// Represents an item stored in the log.
- ///
- public class LogItem : ILogItem
- {
- DateTime time;
- LogLevel level;
- string message;
- string info;
-
- public DateTime Time
- {
- get { return time; }
- }
-
- public LogLevel Level
- {
- get { return level; }
- }
-
- public string Message
- {
- get { return message; }
- }
-
- public string Info
- {
- get { return info; }
- }
-
- public LogItem(LogLevel level, string message)
- : this(level, message, "")
- { }
-
- public LogItem(LogLevel level, string message, string info)
- {
- this.time = DateTime.Now;
- this.level = level;
- this.message = message;
- this.info = info;
- }
- }
-}
diff --git a/src/Triangle/Mesh.cs b/src/Triangle/Mesh.cs
index dd27cc9..94b2706 100644
--- a/src/Triangle/Mesh.cs
+++ b/src/Triangle/Mesh.cs
@@ -10,7 +10,6 @@ namespace TriangleNet
using System;
using System.Collections.Generic;
using TriangleNet.Geometry;
- using TriangleNet.Logging;
using TriangleNet.Meshing;
using TriangleNet.Meshing.Data;
using TriangleNet.Meshing.Iterators;
@@ -26,7 +25,7 @@ namespace TriangleNet
IPredicates predicates;
- ILog logger;
+ Log logger = Log.Instance;
QualityMesher qualityMesher;
@@ -236,8 +235,6 @@ namespace TriangleNet
{
Initialize();
- logger = Log.Instance;
-
behavior = new Behavior();
vertices = new Dictionary();
diff --git a/src/Triangle/Meshing/ConstraintMesher.cs b/src/Triangle/Meshing/ConstraintMesher.cs
index a5b5824..1d6e512 100644
--- a/src/Triangle/Meshing/ConstraintMesher.cs
+++ b/src/Triangle/Meshing/ConstraintMesher.cs
@@ -10,7 +10,6 @@ namespace TriangleNet.Meshing
using System;
using System.Collections.Generic;
using TriangleNet.Geometry;
- using TriangleNet.Logging;
using TriangleNet.Meshing.Iterators;
using TriangleNet.Topology;
@@ -24,7 +23,7 @@ namespace TriangleNet.Meshing
List viri;
- ILog logger;
+ Log logger = Log.Instance;
public ConstraintMesher(Mesh mesh, Configuration config)
{
@@ -35,8 +34,6 @@ namespace TriangleNet.Meshing
this.locator = mesh.locator;
this.viri = new List();
-
- logger = Log.Instance;
}
diff --git a/src/Triangle/Meshing/QualityMesher.cs b/src/Triangle/Meshing/QualityMesher.cs
index e8e1194..b1bae3f 100644
--- a/src/Triangle/Meshing/QualityMesher.cs
+++ b/src/Triangle/Meshing/QualityMesher.cs
@@ -10,7 +10,6 @@ namespace TriangleNet.Meshing
using System;
using System.Collections.Generic;
using TriangleNet.Geometry;
- using TriangleNet.Logging;
using TriangleNet.Meshing.Data;
using TriangleNet.Topology;
@@ -28,7 +27,7 @@ namespace TriangleNet.Meshing
NewLocation newLocation;
- ILog logger;
+ Log logger = Log.Instance;
// Stores the vertices of the triangle that contains newvertex
// in SplitTriangle method.
@@ -36,8 +35,6 @@ namespace TriangleNet.Meshing
public QualityMesher(Mesh mesh, Configuration config)
{
- logger = Log.Instance;
-
badsubsegs = new Queue();
queue = new BadTriQueue();
diff --git a/src/Triangle/Topology/DCEL/Face.cs b/src/Triangle/Topology/DCEL/Face.cs
index 0a1f6cc..f62e752 100644
--- a/src/Triangle/Topology/DCEL/Face.cs
+++ b/src/Triangle/Topology/DCEL/Face.cs
@@ -29,6 +29,7 @@ namespace TriangleNet.Topology.DCEL
internal int id;
internal int mark;
+ // If the face is a Voronio cell, this is the point that generates the cell.
internal Point generator;
internal HalfEdge edge;