diff Core/Images/ImageProcessing.h @ 2489:e91bab2d8c75

Bresenham's line algorithm
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 13 Mar 2018 21:14:21 +0100
parents 345725b9350c
children 8ed9893c9230
line wrap: on
line diff
--- a/Core/Images/ImageProcessing.h	Tue Mar 13 17:02:30 2018 +0100
+++ b/Core/Images/ImageProcessing.h	Tue Mar 13 21:14:21 2018 +0100
@@ -39,49 +39,65 @@
 
 namespace Orthanc
 {
-  class ImageProcessing
+  namespace ImageProcessing
   {
-  public:
-    static void Copy(ImageAccessor& target,
-                     const ImageAccessor& source);
+    void Copy(ImageAccessor& target,
+              const ImageAccessor& source);
 
-    static void Convert(ImageAccessor& target,
-                        const ImageAccessor& source);
+    void Convert(ImageAccessor& target,
+                 const ImageAccessor& source);
 
-    static void Set(ImageAccessor& image,
-                    int64_t value);
+    void Set(ImageAccessor& image,
+             int64_t value);
 
-    static void Set(ImageAccessor& image,
-                    uint8_t red,
-                    uint8_t green,
-                    uint8_t blue,
-                    uint8_t alpha);
+    void Set(ImageAccessor& image,
+             uint8_t red,
+             uint8_t green,
+             uint8_t blue,
+             uint8_t alpha);
 
-    static void ShiftRight(ImageAccessor& target,
-                           unsigned int shift);
+    void ShiftRight(ImageAccessor& target,
+                    unsigned int shift);
 
-    static void GetMinMaxIntegerValue(int64_t& minValue,
-                                      int64_t& maxValue,
-                                      const ImageAccessor& image);
+    void GetMinMaxIntegerValue(int64_t& minValue,
+                               int64_t& maxValue,
+                               const ImageAccessor& image);
 
-    static void GetMinMaxFloatValue(float& minValue,
-                                    float& maxValue,
-                                    const ImageAccessor& image);
+    void GetMinMaxFloatValue(float& minValue,
+                             float& maxValue,
+                             const ImageAccessor& image);
 
-    static void AddConstant(ImageAccessor& image,
-                            int64_t value);
+    void AddConstant(ImageAccessor& image,
+                     int64_t value);
 
     // "useRound" is expensive
-    static void MultiplyConstant(ImageAccessor& image,
-                                 float factor,
-                                 bool useRound);
+    void MultiplyConstant(ImageAccessor& image,
+                          float factor,
+                          bool useRound);
 
     // "useRound" is expensive
-    static void ShiftScale(ImageAccessor& image,
-                           float offset,
-                           float scaling,
-                           bool useRound);
+    void ShiftScale(ImageAccessor& image,
+                    float offset,
+                    float scaling,
+                    bool useRound);
+
+    void Invert(ImageAccessor& image);
 
-    static void Invert(ImageAccessor& image);
+    void DrawLineSegment(ImageAccessor& image,
+                         int x0,
+                         int y0,
+                         int x1,
+                         int y1,
+                         int64_t value);
+
+    void DrawLineSegment(ImageAccessor& image,
+                         int x0,
+                         int y0,
+                         int x1,
+                         int y1,
+                         uint8_t red,
+                         uint8_t green,
+                         uint8_t blue,
+                         uint8_t alpha);
   };
 }