using System; namespace DbscanImplementation.Eventing { public class ComputeFinished { public Guid ComputeId { get; } public ComputeFinished(Guid computeId) { ComputeId = computeId; } } public class ComputeStarted { public Guid ComputeId { get; } public ComputeStarted(Guid computeId) { ComputeId = computeId; } } public class PointProcessFinished { public DbscanPoint Point { get; } public PointProcessFinished(DbscanPoint point) { Point = point; } } public class ClusteringFinished { public DbscanPoint Point { get; } public DbscanPoint[] NeighborPoints { get; } public int ClusterId { get; } public double Epsilon { get; } public int MinimumPoints { get; } public ClusteringFinished(DbscanPoint point, DbscanPoint[] neighborPoints, int clusterId, double epsilon, int minimumPoints) { Point = point; NeighborPoints = neighborPoints; ClusterId = clusterId; Epsilon = epsilon; MinimumPoints = minimumPoints; } } public class ClusteringStarted { public DbscanPoint Point { get; } public DbscanPoint[] NeighborPoints { get; } public int ClusterId { get; } public double Epsilon { get; } public int MinimumPoints { get; } public ClusteringStarted(DbscanPoint point, DbscanPoint[] neighborPoints, int clusterId, double epsilon, int minimumPoints) { Point = point; NeighborPoints = neighborPoints; ClusterId = clusterId; Epsilon = epsilon; MinimumPoints = minimumPoints; } } public class PointTypeAssigned { public DbscanPoint Point { get; } public PointType AssignedType { get; } public PointTypeAssigned(DbscanPoint point, PointType assignedType) { Point = point; AssignedType = assignedType; } } public class RegionQueryFinished { public DbscanPoint Point { get; } public DbscanPoint[] NeighborPoints { get; } public RegionQueryFinished(DbscanPoint point, DbscanPoint[] neighborPoints) { Point = point; NeighborPoints = neighborPoints; } } public class RegionQueryStarted { public DbscanPoint Point { get; private set; } public double Epsilon { get; } public int MinimumPoints { get; } public RegionQueryStarted(DbscanPoint point, double epsilon, int minimumPoints) { Point = point; Epsilon = epsilon; MinimumPoints = minimumPoints; } } public class PointAlreadyProcessed { public DbscanPoint Point { get; private set; } public PointAlreadyProcessed(DbscanPoint point) { Point = point; } } public class PointProcessStarted { public DbscanPoint Point { get; private set; } public PointProcessStarted(DbscanPoint point) { Point = point; } } }