From d02d9e85ca66d33f43d9dfca949c6d30aa9b42b0 Mon Sep 17 00:00:00 2001
From: Raphael Boucherie <raphael.boucherie@inria.fr>
Date: Thu, 6 Apr 2017 16:02:55 +0200
Subject: [PATCH] Updated drawinf functions, added factorisation parameters,
 allowing to change color

---
 include/libdraw.h           |  5 ++---
 src/treedraw.c              | 42 ++++++++++++++++++++++++++++++-------
 testings/testing_treedraw.c | 11 +++++-----
 3 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/include/libdraw.h b/include/libdraw.h
index c25f14e..3425381 100644
--- a/include/libdraw.h
+++ b/include/libdraw.h
@@ -27,10 +27,9 @@ BEGIN_C_DECLS
  */
 
 void libhqr_writeheader(FILE *tree);
-void libhqr_writecss();
 void libhqr_writeend(FILE *tree);
-void libhqr_drawTT(int x, int y, int w, int h, FILE *tree);
-void libhqr_drawTS(int x, int y, int w, int h, FILE *tree);
+void libhqr_drawTT(int x, int y, int w, int h, int k, FILE *tree);
+void libhqr_drawTS(int x, int y, int w, int h, int k, FILE *tree);
 void libhqr_drawline(int x1, int y1, int x2, int y2, FILE *tree);
 
 END_C_DECLS
diff --git a/src/treedraw.c b/src/treedraw.c
index 63362ef..2fd52ff 100644
--- a/src/treedraw.c
+++ b/src/treedraw.c
@@ -28,14 +28,42 @@ void libhqr_writeheader(FILE *tree){
     if(fprintf(tree, "<svg width=\"2000\" height=\"2000\" version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\">\n") <0) return;
 }
 
-void libhqr_writecss();
-
-void libhqr_drawTT(int x, int y, int w, int h, FILE *tree){
-    if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return;
+void libhqr_drawTT(int x, int y, int w, int h, int k, FILE *tree){
+    switch (k % 4){
+    case 0 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 1 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"blue\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 2 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"green\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 3 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"black\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    default:
+        return;
+    }
 }
 
-void libhqr_drawTS(int x, int y, int w, int h, FILE *tree){
-    if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill =\"red\" /> \n", x, y, w, h) < 0 ) return;
+void libhqr_drawTS(int x, int y, int w, int h, int k, FILE *tree){
+    switch (k % 4){
+    case 0 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 1 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"blue\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 2 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"green\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    case 3 :
+        if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"black\" /> \n", x, y, w, h) < 0 ) return;
+        break;
+    default:
+        return;
+    }
     int x2 = x + (w / 4);
     int y2 = y + (h / 4);
     int w2 = (w / 2);
@@ -44,7 +72,7 @@ void libhqr_drawTS(int x, int y, int w, int h, FILE *tree){
 }
 
 void libhqr_drawline(int x1, int y1, int x2, int y2, FILE *tree){
-    if(fprintf(tree,"<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" /> \n", x1, y1, x2, y2) < 0 ) return;
+    if(fprintf(tree,"<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" style=\"fill:none;stroke:black;stroke-width:2px;\"/> \n", x1, y1, x2, y2) < 0 ) return;
 }
 
 void libhqr_writeend(FILE *tree){
diff --git a/testings/testing_treedraw.c b/testings/testing_treedraw.c
index f3cff63..f2fdd7b 100644
--- a/testings/testing_treedraw.c
+++ b/testings/testing_treedraw.c
@@ -19,20 +19,21 @@
 #include <string.h>
 #include "libdraw.h"
 
+#define WIDTH  50
+#define HEIGHT 50
+
 int
 main(int argc, char ** argv)
 {
   FILE *tree = fopen("tree.svg","w+");
-  int x,y,w,h,i,j;
-  w = 50;
-  h = 50;
+  int x,y,i,j;
   libhqr_writeheader(tree);
+  libhqr_drawline(125,100,125,800,tree);
   for (i = 1; i < 5; i++){
       for (j = 1; j < 9; j++){
           x = 100*i;
           y = 100*j;
-          libhqr_drawline(x,y,w,h,tree);
-          libhqr_drawTS(x,y,w,h,tree);
+          libhqr_drawTS(x,y,WIDTH,HEIGHT,1,tree);
       }
   }
   libhqr_writeend(tree);
-- 
GitLab