]> granicus.if.org Git - graphviz/commitdiff
xlable library edit
authorDwight Perry <dperry@research.att.com>
Tue, 22 Nov 2011 18:17:50 +0000 (13:17 -0500)
committerDwight Perry <dperry@research.att.com>
Tue, 22 Nov 2011 18:17:50 +0000 (13:17 -0500)
lib/gvc.def
lib/gvc.vcproj
lib/label/index.c
lib/label/node.c
lib/label/nrtmain.c
lib/label/rectangle.c
lib/label/rectangle.h
lib/label/split.q.c
lib/label/split.q.h
lib/label/xlabels.c

index cdb6aceddc09681807da8c38073479fa2ac30a09..4b44e74440df982693792f40fd02b39d33bc624c 100644 (file)
@@ -154,7 +154,8 @@ gvusershape_file_release
 gvwrite    
 htmlEntityUTF8    
 HTTPServerEnVar    
-Initial_dist    
+Initial_dist 
+EdgeLabelsDone   
 initMapData    
 inPS    
 insertPM
index da049e17f82f0b21942d77393b631e22228f2038..c73d164d78fa5b238633557f63d50ab56a562777 100644 (file)
@@ -40,7 +40,7 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(SolutionDir)/lib/xdot&quot;;&quot;C:\gtk\lib\glib-2.0\include&quot;;&quot;C:\gtk\include\glib-2.0&quot;;&quot;C:\gtk\include\pango-1.0\&quot;;C:\gtk\include\cairo;C:\gtk\include\freetype2;C:\gtk\include;&quot;$(SolutionDir)/libltdl&quot;;&quot;$(SolutionDir)/lib/neatogen&quot;;&quot;$(SolutionDir)/lib/agutil&quot;;&quot;$(SolutionDir)/windows/lib/cdt&quot;;&quot;$(SolutionDir)/&quot;;&quot;$(SolutionDir)/lib/graph&quot;;&quot;$(SolutionDir)/lib/vpsc&quot;;&quot;$(SolutionDir)/lib/vmalloc&quot;;&quot;$(SolutionDir)/lib/twopigen&quot;;&quot;$(SolutionDir)/lib/sparse&quot;;&quot;$(SolutionDir)/lib/sfio&quot;;&quot;$(SolutionDir)/lib/sfpdpgen&quot;;&quot;$(SolutionDir)/lib/rbtree&quot;;&quot;$(SolutionDir)/lib/pathplan&quot;;&quot;$(SolutionDir)/lib/patchwork&quot;;&quot;$(SolutionDir)/lib/pack&quot;;&quot;$(SolutionDir)/lib/ortho&quot;;&quot;$(SolutionDir)/lib/inkpot&quot;;&quot;$(SolutionDir)/lib/ingraphs&quot;;&quot;$(SolutionDir)/lib/gd&quot;;&quot;$(SolutionDir)/lib/filter&quot;;&quot;$(SolutionDir)/lib/fdpgen&quot;;&quot;$(SolutionDir)/lib/expr&quot;;&quot;$(SolutionDir)/lib/dotgen&quot;;&quot;$(SolutionDir)/lib/circogen&quot;;&quot;$(SolutionDir)/lib/ast&quot;;&quot;$(SolutionDir)/lib/agraph&quot;;&quot;$(SolutionDir)/lib/common&quot;;&quot;$(SolutionDir)/lib/gvc&quot;;&quot;$(SolutionDir)/lib/cdt&quot;;&quot;$(SolutionDir)/lib/cgraph&quot;;&quot;$(SolutionDir)/lib/regex_win32&quot;"\r
+                               AdditionalIncludeDirectories="./label;&quot;$(SolutionDir)/lib/xdot&quot;;&quot;C:\gtk\lib\glib-2.0\include&quot;;&quot;C:\gtk\include\glib-2.0&quot;;&quot;C:\gtk\include\pango-1.0\&quot;;C:\gtk\include\cairo;C:\gtk\include\freetype2;C:\gtk\include;&quot;$(SolutionDir)/libltdl&quot;;&quot;$(SolutionDir)/lib/neatogen&quot;;&quot;$(SolutionDir)/lib/agutil&quot;;&quot;$(SolutionDir)/windows/lib/cdt&quot;;&quot;$(SolutionDir)/&quot;;&quot;$(SolutionDir)/lib/graph&quot;;&quot;$(SolutionDir)/lib/vpsc&quot;;&quot;$(SolutionDir)/lib/vmalloc&quot;;&quot;$(SolutionDir)/lib/twopigen&quot;;&quot;$(SolutionDir)/lib/sparse&quot;;&quot;$(SolutionDir)/lib/sfio&quot;;&quot;$(SolutionDir)/lib/sfpdpgen&quot;;&quot;$(SolutionDir)/lib/rbtree&quot;;&quot;$(SolutionDir)/lib/pathplan&quot;;&quot;$(SolutionDir)/lib/patchwork&quot;;&quot;$(SolutionDir)/lib/pack&quot;;&quot;$(SolutionDir)/lib/ortho&quot;;&quot;$(SolutionDir)/lib/inkpot&quot;;&quot;$(SolutionDir)/lib/ingraphs&quot;;&quot;$(SolutionDir)/lib/gd&quot;;&quot;$(SolutionDir)/lib/filter&quot;;&quot;$(SolutionDir)/lib/fdpgen&quot;;&quot;$(SolutionDir)/lib/expr&quot;;&quot;$(SolutionDir)/lib/dotgen&quot;;&quot;$(SolutionDir)/lib/circogen&quot;;&quot;$(SolutionDir)/lib/ast&quot;;&quot;$(SolutionDir)/lib/agraph&quot;;&quot;$(SolutionDir)/lib/common&quot;;&quot;$(SolutionDir)/lib/gvc&quot;;&quot;$(SolutionDir)/lib/cdt&quot;;&quot;$(SolutionDir)/lib/cgraph&quot;;&quot;$(SolutionDir)/lib/regex_win32&quot;"\r
                                PreprocessorDefinitions="MSWIN32;WIN32;_DEBUG;_WINDOWS;_USRDLL;GVC_EXPORTS;WIN32_DLL;HAVE_CONFIG_H"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;C:\gtk\lib\glib-2.0\include&quot;;&quot;C:\gtk\include\glib-2.0&quot;;&quot;C:\gtk\include\pango-1.0\&quot;;C:\gtk\include\cairo;C:\gtk\include\freetype2;C:\gtk\include;&quot;$(SolutionDir)/libltdl&quot;;&quot;$(SolutionDir)/lib/neatogen&quot;;&quot;$(SolutionDir)/lib/agutil&quot;;&quot;$(SolutionDir)/windows/lib/cdt&quot;;&quot;$(SolutionDir)/&quot;;&quot;$(SolutionDir)/lib/graph&quot;;&quot;$(SolutionDir)/lib/xdot&quot;;&quot;$(SolutionDir)/lib/vpsc&quot;;&quot;$(SolutionDir)/lib/vmalloc&quot;;&quot;$(SolutionDir)/lib/twopigen&quot;;&quot;$(SolutionDir)/lib/sparse&quot;;&quot;$(SolutionDir)/lib/sfio&quot;;&quot;$(SolutionDir)/lib/sfpdpgen&quot;;&quot;$(SolutionDir)/lib/rbtree&quot;;&quot;$(SolutionDir)/lib/pathplan&quot;;&quot;$(SolutionDir)/lib/patchwork&quot;;&quot;$(SolutionDir)/lib/pack&quot;;&quot;$(SolutionDir)/lib/ortho&quot;;&quot;$(SolutionDir)/lib/inkpot&quot;;&quot;$(SolutionDir)/lib/ingraphs&quot;;&quot;$(SolutionDir)/lib/gd&quot;;&quot;$(SolutionDir)/lib/filter&quot;;&quot;$(SolutionDir)/lib/fdpgen&quot;;&quot;$(SolutionDir)/lib/expr&quot;;&quot;$(SolutionDir)/lib/dotgen&quot;;&quot;$(SolutionDir)/lib/circogen&quot;;&quot;$(SolutionDir)/lib/ast&quot;;&quot;$(SolutionDir)/lib/agraph&quot;;&quot;$(SolutionDir)/lib/common&quot;;&quot;$(SolutionDir)/lib/gvc&quot;;&quot;$(SolutionDir)/lib/cdt&quot;;&quot;$(SolutionDir)/lib/cgraph&quot;"\r
+                               AdditionalIncludeDirectories="./label;&quot;C:\gtk\lib\glib-2.0\include&quot;;&quot;C:\gtk\include\glib-2.0&quot;;&quot;C:\gtk\include\pango-1.0\&quot;;C:\gtk\include\cairo;C:\gtk\include\freetype2;C:\gtk\include;&quot;$(SolutionDir)/libltdl&quot;;&quot;$(SolutionDir)/lib/neatogen&quot;;&quot;$(SolutionDir)/lib/agutil&quot;;&quot;$(SolutionDir)/windows/lib/cdt&quot;;&quot;$(SolutionDir)/&quot;;&quot;$(SolutionDir)/lib/graph&quot;;&quot;$(SolutionDir)/lib/xdot&quot;;&quot;$(SolutionDir)/lib/vpsc&quot;;&quot;$(SolutionDir)/lib/vmalloc&quot;;&quot;$(SolutionDir)/lib/twopigen&quot;;&quot;$(SolutionDir)/lib/sparse&quot;;&quot;$(SolutionDir)/lib/sfio&quot;;&quot;$(SolutionDir)/lib/sfpdpgen&quot;;&quot;$(SolutionDir)/lib/rbtree&quot;;&quot;$(SolutionDir)/lib/pathplan&quot;;&quot;$(SolutionDir)/lib/patchwork&quot;;&quot;$(SolutionDir)/lib/pack&quot;;&quot;$(SolutionDir)/lib/ortho&quot;;&quot;$(SolutionDir)/lib/inkpot&quot;;&quot;$(SolutionDir)/lib/ingraphs&quot;;&quot;$(SolutionDir)/lib/gd&quot;;&quot;$(SolutionDir)/lib/filter&quot;;&quot;$(SolutionDir)/lib/fdpgen&quot;;&quot;$(SolutionDir)/lib/expr&quot;;&quot;$(SolutionDir)/lib/dotgen&quot;;&quot;$(SolutionDir)/lib/circogen&quot;;&quot;$(SolutionDir)/lib/ast&quot;;&quot;$(SolutionDir)/lib/agraph&quot;;&quot;$(SolutionDir)/lib/common&quot;;&quot;$(SolutionDir)/lib/gvc&quot;;&quot;$(SolutionDir)/lib/cdt&quot;;&quot;$(SolutionDir)/lib/cgraph&quot;"\r
                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GVC_EXPORTS;WIN32_DLL;HAVE_CONFIG_H"\r
                                RuntimeLibrary="2"\r
                                UsePrecompiledHeader="0"\r
                                RelativePath=".\common\splines.c"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath=".\common\taper.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath=".\common\timing.c"\r
                                >\r
index d3b673265c9d2b6436879f5bf45fab3245168e89..ceefc6c0ed4911fe7c13de355ad4b415d91c5ab7 100644 (file)
@@ -22,10 +22,8 @@ LeafList_t *RTreeNewLeafList(Leaf_t * lp)
 {
     LeafList_t *llp;
 
-    if ((llp = NEW(LeafList_t))) {
+    if ((llp = NEW(LeafList_t)))
        llp->leaf = lp;
-       llp->next = 0;
-    }
     return llp;
 }
 
@@ -48,7 +46,6 @@ void RTreeLeafListFree(LeafList_t * llp)
        free(llp);
        llp = tlp;
     }
-    free(llp);
     return;
 }
 
@@ -121,13 +118,9 @@ static int RTreeClose2(RTree_t * rtp, Node_t * n)
        for (i = 0; i < NODECARD; i++) {
            if (!n->branch[i].child)
                continue;
-           // free(n->branch[i].child);
            DisconBranch(n, i);
            rtp->EntryCount--;
-           if (rtp->StatFlag)
-               rtp->ElimCount++;
        }
-       //free(n);
     }
     return 0;
 }
@@ -136,7 +129,6 @@ static int RTreeClose2(RTree_t * rtp, Node_t * n)
 int RTreeClose(RTree_t * rtp)
 {
     RTreeClose2(rtp, rtp->root);
-    free(rtp->root);
     free(rtp);
     return 0;
 }
@@ -239,7 +231,7 @@ RTreeInsert(RTree_t * rtp, Rect_t * r, void *data, Node_t ** n, int level)
     /* RTreeInsert(RTree_t*rtp, Rect_t*r, int data, Node_t**n, int level) { */
     register int i;
     register Node_t *newroot;
-    Node_t *newnode=0;
+    Node_t *newnode;
     Branch_t b;
     int result = 0;
 
@@ -280,7 +272,6 @@ RTreeInsert(RTree_t * rtp, Rect_t * r, void *data, Node_t ** n, int level)
        b.child = newnode;
        AddBranch(rtp, &b, newroot, NULL);
        *n = newroot;
-       // rtp->root = newroot;
        rtp->EntryCount += 2;
        result = 1;
     }
@@ -304,9 +295,9 @@ RTreeInsert2(RTree_t * rtp, Rect_t * r, void *data,
     /* RTreeInsert2(RTree_t*rtp, Rect_t*r,
        int data, Node_t*n, Node_t**new, int level) {
      */
-    register int i=0;
+    register int i;
     Branch_t b;
-    Node_t *n2=0;
+    Node_t *n2;
 
     assert(r && n && new);
     assert(level >= 0 && level <= n->level);
@@ -475,7 +466,7 @@ RTreeDelete2(RTree_t * rtp, Rect_t * r, void *data, Node_t * n,
 */
 struct ListNode *NewListNode()
 {
-    return (struct ListNode *) NEW(sizeof(struct ListNode));
+    return (struct ListNode *) malloc(sizeof(struct ListNode));
 }
 
 #endif
index 0285ca03be3a2f1c524e7de19b3aca6bdb3d1ce5..4af16361c8954be890be79cf39c249b937fa5831 100644 (file)
@@ -119,11 +119,12 @@ Rect_t NodeCover(Node_t * n)
 */
 int PickBranch(Rect_t * r, Node_t * n)
 {
-    register Rect_t *rr=0;
-    register int i=0, flag=1, increase=0, bestIncr=0, area=0, bestArea=0;
-    int best=0;
+    register Rect_t *rr;
+    register int i, flag, increase, bestIncr, area, bestArea;
+    int best;
     assert(r && n);
 
+    flag = 1;
     for (i = 0; i < NODECARD; i++) {
        if (n->branch[i].child) {
            Rect_t rect;
index 40f43ab65e1138e93be14c16f61cb979308c04ba..d2f827218f954d16f95a3c1d551edf0a0e08ad24 100644 (file)
 
 #include <errno.h>
 #include <string.h>
-#include <unistd.h>
+//#include <unistd.h>
 
 #include <memory.h>
 #include <gvc.h>
 #include "xlabels.h"
 
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+#include "compat_getopt.h"
+#endif
+
+
 #if 0
 #define POINTS_PER_INCH 72
 #define N_NEW(n,t)       (t*)calloc((n),sizeof(t))
@@ -31,7 +38,7 @@ static char *progname;
 static int Verbose;
 extern pointf edgeMidpoint(graph_t * g, edge_t * e);
 
-static inline pointf pointfof(double x, double y)
+static  pointf pointfof(double x, double y)
 {
     pointf r;
 
index 94b06cc6a631cbaafd50aadfdc79836baf12d0b6..8413f04811098c2e6a780c0645f8f7f209c803a9 100644 (file)
@@ -13,7 +13,6 @@
 #include "index.h"
 #include <stdio.h>
 #include <assert.h>
-#include <limits.h>
 #include "logic.h"
 #include "arith.h"
 #include "rectangle.h"
@@ -116,30 +115,17 @@ void PrintRect(Rect_t * r)
 /*-----------------------------------------------------------------------------
 | Calculate the n-dimensional area of a rectangle
 -----------------------------------------------------------------------------*/
-unsigned int RectArea(Rect_t * r)
+int RectArea(Rect_t * r)
 {
-  register int i;
-  unsigned int area;
-  assert(r);
+    register int i, area;
+    assert(r);
 
     if (Undefined(r))
        return 0;
 
-    /*
-     * XXX add overflow checks
-     */
     area = 1;
     for (i = 0; i < NUMDIMS; i++) {
-#if 1  /* overflow check */
-      long long a_test = area * r->boundary[i + NUMDIMS] - r->boundary[i];
-      if( a_test > UINT_MAX) {
-       agerror("label: area too large for rtree\n");
-       return UINT_MAX;
-      }
-      area = a_test;
-#else
-      area *= r->boundary[i + NUMDIMS] - r->boundary[i];
-#endif
+       area *= r->boundary[i + NUMDIMS] - r->boundary[i];
     }
     return area;
 }
index dbda16f059c097e55f99ca6ce95fd1b68e929ce2..64fbd6fdef463125e257925e24e9d775e0ba30b0 100644 (file)
@@ -25,7 +25,7 @@ void InitRect(Rect_t * r);
 #ifdef RTDEBUG
 void PrintRect(Rect_t *);
 #endif
-unsigned int RectArea(Rect_t *);
+int RectArea(Rect_t *);
 int Overlap(Rect_t *, Rect_t *);
 int Contained(Rect_t *, Rect_t *);
 Rect_t CombineRect(Rect_t *, Rect_t *);
index 6cc593b118bf155831eae9e7c8e26350d7b0ba0c..c382f882817b80ea2deb459a9f8647084580386d 100644 (file)
@@ -218,16 +218,13 @@ static void MethodZero(RTree_t * rtp)
 -----------------------------------------------------------------------------*/
 static void PickSeeds(RTree_t * rtp)
 {
-  register int i, j;
-  unsigned int waste, worst;
-  int seed0, seed1;
-  unsigned int area[NODECARD + 1];
+    register int i, j, waste, worst, seed0, seed1;
+    int area[NODECARD + 1];
 
     for (i = 0; i < NODECARD + 1; i++)
        area[i] = RectArea(&rtp->split.BranchBuf[i].rect);
 
-    //worst = -rtp->split.CoverSplitArea - 1;
-    worst=0;
+    worst = -rtp->split.CoverSplitArea - 1;
     for (i = 0; i < NODECARD; i++) {
        for (j = i + 1; j < NODECARD + 1; j++) {
            Rect_t rect;
index 7279bb74cc4c929035349dddba9859341f05f9a3..ee341f3445ea8360831a683a791cba7dc837b814 100644 (file)
@@ -38,7 +38,7 @@ extern "C" {
 typedef struct split_q_s {
     struct Branch BranchBuf[NODECARD + 1];
     struct Rect CoverSplit;
-    unsigned int CoverSplitArea;
+    int CoverSplitArea;
     struct PartitionVars Partitions[METHODS];
 } SplitQ_t;
 
index 24d792866815e363c66d861e05e649a3c0a4a3a4..e2d13e42207b6c3da777f35bbdfe61a2e17f9dfe 100644 (file)
@@ -596,52 +596,33 @@ static int xlhdxload(XLabels_t * xlp)
 
        hp->key = hd_hil_s_from_xy(pi, order);
 
-#if 0
-       if (dtsearch(xlp->hdx, hp) != 0) {
-           free(hp);
+       if (dtsearch(xlp->hdx, hp) != 0)
            continue;
-       }
-#endif
        if (!(dtinsert(xlp->hdx, hp)))
            return -1;
     }
     return 0;
 }
 
-static void xlhdxunload(XLabels_t * xlp)
-{
-  int size=dtsize(xlp->hdx), freed=0;
-  while(dtsize(xlp->hdx) ) {
-    Void_t*vp=dtfinger(xlp->hdx);
-    assert(vp);
-    if(vp) {
-      dtdetach(xlp->hdx, vp);
-      free(vp);
-      freed++;
-    }
-  }
-  assert(size==freed);
-}
-
 static int xlspdxload(XLabels_t * xlp)
 {
-    HDict_t *op=0;
+    HDict_t *op;
 
     for (op = dtfirst(xlp->hdx); op; op = dtnext(xlp->hdx, op)) {
        /*          tree       rectangle    data        node             lvl */
-       RTreeInsert(xlp->spdx, &op->d.rect, op->d.data, &xlp->spdx->root, 0);
+       RTreeInsert(xlp->spdx, &op->d.rect, op->d.data, &xlp->spdx->root,
+                   0);
     }
     return 0;
 }
 
 static int xlinitialize(XLabels_t * xlp)
 {
-    int r=0;
+    int r;
     if ((r = xlhdxload(xlp)) < 0)
        return r;
     if ((r = xlspdxload(xlp)) < 0)
        return r;
-    xlhdxunload(xlp);
     return dtclose(xlp->hdx);
 }