Browse Source

Fixing warning in the Delaunay triangulation library

BearishSun 8 years ago
parent
commit
8d0b60fa6a

+ 3 - 1
Source/BansheeUtility/Include/ThirdParty/TetGen/tetgen.h

@@ -17,10 +17,12 @@
 #ifndef tetgenH
 #define tetgenH
 
+#define _CRT_SECURE_NO_WARNINGS
+
 // To compile TetGen as a library instead of an executable program, define
 //   the TETLIBRARY symbol.
 
-// #define TETLIBRARY
+#define TETLIBRARY
 
 // Uncomment the following line to disable assert macros. These macros were
 //   inserted in the code where I hoped to catch bugs. They may slow down the

+ 30 - 29
Source/BansheeUtility/Source/ThirdParty/TetGen/tetgen.cxx

@@ -14,6 +14,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "TetGen/tetgen.h"
+#include <inttypes.h>
 
 //// io_cxx ///////////////////////////////////////////////////////////////////
 ////                                                                       ////
@@ -3194,7 +3195,7 @@ bool tetgenbehavior::parse_commandline(int argc, char **argv)
               k++;
             }
             workstring[k] = '\0';
-            hilbert_order = (REAL) strtod(workstring, (char **) NULL);
+            hilbert_order = (int)(REAL) strtod(workstring, (char **) NULL);
           }
         }
         if (brio_threshold == 0) { // -b0
@@ -10829,7 +10830,7 @@ void tetgenmesh::brio_multiscale_sort(point* vertexarray, int arraysize,
   middle = 0;
   if (arraysize >= threshold) {
     (*depth)++;
-    middle = arraysize * ratio;
+    middle = (int)(arraysize * ratio);
     brio_multiscale_sort(vertexarray, middle, threshold, ratio, depth);
   }
   // Sort the right-array (rnd-th round) using the Hilbert curve.
@@ -17603,7 +17604,7 @@ bool tetgenmesh::fillregion(arraypool* missingshs, arraypool* missingshbds,
 
   newshs->restart();
 
-  return success;
+  return success > 0 ? true : false;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -27130,10 +27131,10 @@ int tetgenmesh::checkshells()
       while ((nextsh.sh != NULL) && (nextsh.sh != shloop.sh)) {
         if (nextsh.sh[3] == NULL) {
           printf("  !! !! Wrong subface-subface connection (Dead subface).\n");
-          printf("    First: x%lx (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
+          printf("    First: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
                  pointmark(sorg(spinsh)), pointmark(sdest(spinsh)), 
                  pointmark(sapex(spinsh)));
-          printf("    Second: x%lx (DEAD)\n", (uintptr_t) nextsh.sh);
+          printf("    Second: x%" PRIxPTR " (DEAD)\n", (uintptr_t) nextsh.sh);
           horrors++;
           break;
         }
@@ -27141,10 +27142,10 @@ int tetgenmesh::checkshells()
         if (!(((sorg(nextsh) == pa) && (sdest(nextsh) == pb)) ||
               ((sorg(nextsh) == pb) && (sdest(nextsh) == pa)))) {
            printf("  !! !! Wrong subface-subface connection.\n");
-           printf("    First: x%lx (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
+           printf("    First: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
                   pointmark(sorg(spinsh)), pointmark(sdest(spinsh)), 
                   pointmark(sapex(spinsh)));
-           printf("    Scond: x%lx (%d, %d, %d).\n", (uintptr_t) nextsh.sh,
+           printf("    Scond: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) nextsh.sh,
                   pointmark(sorg(nextsh)), pointmark(sdest(nextsh)), 
                   pointmark(sapex(nextsh)));
            horrors++;
@@ -27153,10 +27154,10 @@ int tetgenmesh::checkshells()
         // Check they should not have the same apex.
         if (sapex(nextsh) == sapex(spinsh)) {
            printf("  !! !! Existing two duplicated subfaces.\n");
-           printf("    First: x%lx (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
+           printf("    First: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
                   pointmark(sorg(spinsh)), pointmark(sdest(spinsh)), 
                   pointmark(sapex(spinsh)));
-           printf("    Scond: x%lx (%d, %d, %d).\n", (uintptr_t) nextsh.sh,
+           printf("    Scond: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) nextsh.sh,
                   pointmark(sorg(nextsh)), pointmark(sdest(nextsh)), 
                   pointmark(sapex(nextsh)));
            horrors++;
@@ -27170,19 +27171,19 @@ int tetgenmesh::checkshells()
       if (checkseg.sh != NULL) {
         if (checkseg.sh[3] == NULL) {
           printf("  !! !! Wrong subface-subseg connection (Dead subseg).\n");
-          printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) shloop.sh,
+          printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) shloop.sh,
                  pointmark(sorg(shloop)), pointmark(sdest(shloop)), 
                  pointmark(sapex(shloop)));
-          printf("    Sub: x%lx (Dead)\n", (uintptr_t) checkseg.sh);
+          printf("    Sub: x%" PRIxPTR " (Dead)\n", (uintptr_t) checkseg.sh);
           horrors++;
         } else {
           if (!(((sorg(checkseg) == pa) && (sdest(checkseg) == pb)) ||
                 ((sorg(checkseg) == pb) && (sdest(checkseg) == pa)))) {
             printf("  !! !! Wrong subface-subseg connection.\n");
-            printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) shloop.sh,
+            printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) shloop.sh,
                    pointmark(sorg(shloop)), pointmark(sdest(shloop)), 
                    pointmark(sapex(shloop)));
-            printf("    Seg: x%lx (%d, %d).\n", (uintptr_t) checkseg.sh,
+            printf("    Seg: x%" PRIxPTR " (%d, %d).\n", (uintptr_t) checkseg.sh,
                    pointmark(sorg(checkseg)), pointmark(sdest(checkseg)));
             horrors++;
           }
@@ -27196,19 +27197,19 @@ int tetgenmesh::checkshells()
     if (neightet.tet != NULL) {
       if (neightet.tet[4] == NULL) {
         printf("  !! !! Wrong sub-to-tet connection (Dead tet)\n");
-        printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) shloop.sh,
+        printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) shloop.sh,
                pointmark(sorg(shloop)), pointmark(sdest(shloop)), 
                pointmark(sapex(shloop)));
-        printf("    Tet: x%lx (DEAD)\n", (uintptr_t) neightet.tet);
+        printf("    Tet: x%" PRIxPTR " (DEAD)\n", (uintptr_t) neightet.tet);
         horrors++;
       } else {
         if (!((sorg(shloop) == org(neightet)) && 
               (sdest(shloop) == dest(neightet)))) {
           printf("  !! !! Wrong sub-to-tet connection\n");
-          printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) shloop.sh,
+          printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) shloop.sh,
                  pointmark(sorg(shloop)), pointmark(sdest(shloop)), 
                  pointmark(sapex(shloop)));
-          printf("    Tet: x%lx (%d, %d, %d, %d).\n",
+          printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d).\n",
                  (uintptr_t) neightet.tet, pointmark(org(neightet)), 
                  pointmark(dest(neightet)), pointmark(apex(neightet)),
                  pointmark(oppo(neightet)));
@@ -27218,10 +27219,10 @@ int tetgenmesh::checkshells()
         if (!((sorg(spinsh) == org(neightet)) && 
               (sdest(spinsh) == dest(neightet)))) {
           printf("  !! !! Wrong tet-sub connection.\n");
-          printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
+          printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
                  pointmark(sorg(spinsh)), pointmark(sdest(spinsh)), 
                  pointmark(sapex(spinsh)));
-          printf("    Tet: x%lx (%d, %d, %d, %d).\n", 
+          printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d).\n", 
                  (uintptr_t) neightet.tet, pointmark(org(neightet)), 
                  pointmark(dest(neightet)), pointmark(apex(neightet)), 
                  pointmark(oppo(neightet)));
@@ -27233,10 +27234,10 @@ int tetgenmesh::checkshells()
           if (!((sorg(spinsh) == org(symtet)) && 
                 (sdest(spinsh) == dest(symtet)))) {
             printf("  !! !! Wrong tet-sub connection.\n");
-            printf("    Sub: x%lx (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
+            printf("    Sub: x%" PRIxPTR " (%d, %d, %d).\n", (uintptr_t) spinsh.sh,
                    pointmark(sorg(spinsh)), pointmark(sdest(spinsh)), 
                    pointmark(sapex(spinsh)));
-            printf("    Tet: x%lx (%d, %d, %d, %d).\n", 
+            printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d).\n", 
                    (uintptr_t) symtet.tet, pointmark(org(symtet)), 
                    pointmark(dest(symtet)), pointmark(apex(symtet)), 
                    pointmark(oppo(symtet)));
@@ -27318,7 +27319,7 @@ int tetgenmesh::checksegments()
           if (!(((org(tetloop) == pa) && (dest(tetloop) == pb)) ||
                 ((org(tetloop) == pb) && (dest(tetloop) == pa)))) {
             printf("  !! Wrong tet-seg connection.\n");
-            printf("    Tet: x%lx (%d, %d, %d, %d) - Seg: x%lx (%d, %d).\n", 
+            printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d) - Seg: x%" PRIxPTR " (%d, %d).\n", 
                    (uintptr_t) tetloop.tet, pointmark(org(tetloop)),
                    pointmark(dest(tetloop)), pointmark(apex(tetloop)),
                    pointmark(oppo(tetloop)), (uintptr_t) sseg.sh,
@@ -27331,12 +27332,12 @@ int tetgenmesh::checksegments()
               tsspivot1(neightet, checkseg);
               if (checkseg.sh != sseg.sh) {
                 printf("  !! Wrong tet->seg connection.\n");
-                printf("    Tet: x%lx (%d, %d, %d, %d) - ", 
+                printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d) - ", 
                        (uintptr_t) neightet.tet, pointmark(org(neightet)),
                        pointmark(dest(neightet)), pointmark(apex(neightet)),
                        pointmark(oppo(neightet)));
                 if (checkseg.sh != NULL) {
-                  printf("Seg x%lx (%d, %d).\n", (uintptr_t) checkseg.sh,
+                  printf("Seg x%" PRIxPTR " (%d, %d).\n", (uintptr_t) checkseg.sh,
                          pointmark(sorg(checkseg)),pointmark(sdest(checkseg))); 
                 } else {
                   printf("Seg: NULL.\n");
@@ -27355,7 +27356,7 @@ int tetgenmesh::checksegments()
             if (!(((org(neightet) == pa) && (dest(neightet) == pb)) ||
                 ((org(neightet) == pb) && (dest(neightet) == pa)))) {
               printf("  !! Wrong seg->tet connection (Wrong edge).\n");
-              printf("    Tet: x%lx (%d, %d, %d, %d) - Seg: x%lx (%d, %d).\n", 
+              printf("    Tet: x%" PRIxPTR " (%d, %d, %d, %d) - Seg: x%" PRIxPTR " (%d, %d).\n", 
                      (uintptr_t) neightet.tet, pointmark(org(neightet)),
                      pointmark(dest(neightet)), pointmark(apex(neightet)),
                      pointmark(oppo(neightet)), (uintptr_t) sseg.sh,
@@ -27372,7 +27373,7 @@ int tetgenmesh::checksegments()
       neightet.ver = edge2ver[i];
       if (edgemarked(neightet)) {
         // A possible bug. Report it.
-        printf("  !! A marked edge: (%d, %d, %d, %d) -- x%lx %d.\n",
+        printf("  !! A marked edge: (%d, %d, %d, %d) -- x%" PRIxPTR " %d.\n",
                pointmark(org(neightet)), pointmark(dest(neightet)),
                pointmark(apex(neightet)), pointmark(oppo(neightet)),
                (uintptr_t) neightet.tet, neightet.ver);
@@ -27381,7 +27382,7 @@ int tetgenmesh::checksegments()
         while (1) {
           fnextself(spintet);
           if (!edgemarked(spintet)) {
-            printf("  !! !! An unmarked edge (%d, %d, %d, %d) -- x%lx %d.\n",
+            printf("  !! !! An unmarked edge (%d, %d, %d, %d) -- x%" PRIxPTR " %d.\n",
                    pointmark(org(spintet)), pointmark(dest(spintet)),
                    pointmark(apex(spintet)), pointmark(oppo(spintet)),
                    (uintptr_t) spintet.tet, spintet.ver);
@@ -27427,7 +27428,7 @@ int tetgenmesh::checksegments()
             while (1) {
               tsspivot1(spintet, checkseg);
               if (checkseg.sh == NULL) {
-                printf("  !! !! No seg at tet (%d, %d, %d, %d) -- x%lx %d\n",
+                printf("  !! !! No seg at tet (%d, %d, %d, %d) -- x%" PRIxPTR " %d\n",
                        pointmark(org(spintet)), pointmark(dest(spintet)),
                        pointmark(apex(spintet)), pointmark(oppo(spintet)),
                        (uintptr_t) spintet.tet, spintet.ver);
@@ -27447,7 +27448,7 @@ int tetgenmesh::checksegments()
             } // while (1)
           }
         } else { 
-          printf("  !! Wrong seg-subface (%d, %d, %d) -- x%lx %d connect\n",
+          printf("  !! Wrong seg-subface (%d, %d, %d) -- x%" PRIxPTR " %d connect\n",
                  pointmark(sorg(spinsh)), pointmark(sdest(spinsh)),
                  pointmark(sapex(spinsh)), (uintptr_t) spinsh.sh,
                  spinsh.shver);