public override void AddPoint(ColoredPoint point) { if (pixels != null) { var x = (int)(point.X / pixelSize) + pixels.GetLength(0) / 2; var y = (int)(point.Y / pixelSize) + pixels.GetLength(1) / 2; if (x >= 0 && x < pixels.GetLength(0) && y >= 0 && y < pixels.GetLength(1)) { var currentPoint = pixels[x, y]; currentPoint.Color = new Vec3( ((currentPoint.Color.X * currentPoint.Count) + point.Color.X) / (currentPoint.Count + 1), ((currentPoint.Color.Y * currentPoint.Count) + point.Color.Y) / (currentPoint.Count + 1), ((currentPoint.Color.Z * currentPoint.Count) + point.Color.Z) / (currentPoint.Count + 1)); currentPoint.Count++; pixels[x, y] = currentPoint; } } }
public abstract void AddPoint(ColoredPoint point);