Tools
authorKen Hughes <khughes@pacific.edu>
Wed, 30 Jul 2008 21:52:02 +0000 (21:52 +0000)
committerKen Hughes <khughes@pacific.edu>
Wed, 30 Jul 2008 21:52:02 +0000 (21:52 +0000)
-----
Minor changes to boolean code; add an new include file to gather various
#defines global to the boolean system.  Currently, this just allows control
of whether some debugging code is compiled or not.

This is a precursor commit for some other boolean optimizations/cleanups.
But in case that commit is later reverted, this code should still remain.

intern/boolop/intern/BOP_Edge.cpp
intern/boolop/intern/BOP_Edge.h
intern/boolop/intern/BOP_Face.cpp
intern/boolop/intern/BOP_Face.h
intern/boolop/intern/BOP_Mesh.cpp
intern/boolop/intern/BOP_Mesh.h
intern/boolop/intern/BOP_Misc.h [new file with mode: 0644]
intern/boolop/intern/BOP_Vertex.cpp
intern/boolop/intern/BOP_Vertex.h

index ac302b530dfa3eefca4d0b7419211de791be1300..dc6222fcd4eb44bf970c694be1e1d888267b8fce 100644 (file)
@@ -75,4 +75,19 @@ void BOP_Edge::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex)
        else if (m_vertexs[1] == oldIndex) m_vertexs[1] = newIndex;
 }
 
+#ifdef BOP_DEBUG
+
+#include <iostream>
+using namespace std;
+
+/**
+ * Implements operator <<.
+ */
+ostream &operator<<(ostream &stream, BOP_Edge *e)
+{
+       stream << "Edge[" << e->getVertex1() << "," << e->getVertex2();
+       return stream;
+}
+#endif
+
 
index 13426f6e63ce935d69230ff1dc98e233b1d3b846..fb352620c177cd0b50ec41c2d919d762514fe3fc 100644 (file)
@@ -29,6 +29,7 @@
 #define BOP_EDGE_H
 
 #include "BOP_Indexs.h"
+#include "BOP_Misc.h"
 
 class BOP_Edge
 {
@@ -47,6 +48,10 @@ public:
        inline unsigned int getNumFaces(){return m_faces.size();};
        inline BOP_Indexs &getFaces(){return m_faces;};
        void addFace(BOP_Index face);
+#ifdef BOP_DEBUG
+       friend ostream &operator<<(ostream &stream, BOP_Edge *e);
+#endif
+
 };
 
 #endif
index 12c94624517d3555d791608781d336a84a49ec0d..01308de3e5de50c867287877ec7226eca9195830 100644 (file)
@@ -402,6 +402,7 @@ bool BOP_Face4::getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e)
        return  true;
 }  
 
+#ifdef BOP_DEBUG
 /**
  * Implements operator <<.
  */
@@ -421,3 +422,4 @@ ostream &operator<<(ostream &stream, BOP_Face *f)
 
        return stream;
 }
+#endif
index e16425f78b320d2f07c84ec9c6ce1749e0817f4d..965882db7320b200654670f49eb2970f7c6da614 100644 (file)
@@ -32,6 +32,7 @@
 #include "MT_Plane3.h"
 #include "BOP_Indexs.h"
 #include "BOP_BBox.h"
+#include "BOP_Misc.h"
 #include <iostream>
 #include <vector>
 using namespace std;
@@ -80,7 +81,9 @@ public:
        virtual void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) = 0;
        virtual bool containsVertex(BOP_Index v) = 0;
                
+#ifdef BOP_DEBUG
        friend ostream &operator<<(ostream &stream, BOP_Face *f);
+#endif
 };
 
 class BOP_Face3: public BOP_Face 
index 5659cd62a3ff00f4e5d955e8b7fc388bd8db3eea..685478fae39799a166d3506dbe299da6f9c31c1c 100644 (file)
@@ -794,7 +794,8 @@ bool BOP_Mesh::isClosedMesh()
 }
 
 
-/** ***************************************************************************
+#ifdef BOP_DEBUG
+/******************************************************************************
  * DEBUG METHODS                                                              * 
  * This functions are used to test the mesh state and debug program errors.   *
  ******************************************************************************/
@@ -1075,3 +1076,4 @@ void BOP_Mesh::updatePlanes()
        }
 }
 
+#endif
index 9abff52545fe8457dd009cfc41e901f3cda7463c..46c8fa53d2086fbb26d7c77c6d187f6e3ec34f30 100644 (file)
@@ -1,10 +1,3 @@
-/*
- * TEMPORARY defines to enable hashing support
- */
-
-#define HASH(x) ((x) >> 5)             /* each "hash" covers 32 indices */
-// #define HASH_PRINTF_DEBUG   /* uncomment to enable debug output */
-
 /**
  *
  * $Id$
diff --git a/intern/boolop/intern/BOP_Misc.h b/intern/boolop/intern/BOP_Misc.h
new file mode 100644 (file)
index 0000000..0e009d8
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ *
+ * $Id: BOP_Misc.h 14444 2008-04-16 22:40:48Z khughes $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Ken Hughes
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+/*
+ * This file contains various definitions used across the modules
+ */
+
+/*
+ * define operator>> for faces, edges and vertices, and also add some
+ * debugging functions for displaying various internal data structures
+ */
+
+// #define     BOP_DEBUG
+
+#define HASH(x) ((x) >> 5)             /* each "hash" covers 32 indices */
+// #define HASH_PRINTF_DEBUG   /* uncomment to enable debug output */
index a429c26d204bc94b775fd0ef5fd132b694c8dc53..edb53ea6a59c06da697530ee8690827c0fc48604 100644 (file)
@@ -89,3 +89,22 @@ bool BOP_Vertex::containsEdge(BOP_Index i)
        
        return false;
 }
+
+#ifdef BOP_DEBUG
+/**
+ * Implements operator <<.
+ */
+#include <iomanip>
+
+ostream &operator<<(ostream &stream, BOP_Vertex *v)
+{
+       char aux[20];
+       BOP_stringTAG(v->m_tag,aux);
+       MT_Point3 point = v->getPoint();
+       stream << setprecision(6) << showpoint << fixed;
+       stream << "Vertex[" << point[0] << "," << point[1] << ",";
+       stream << point[2] << "] ("  <<  aux  <<  ")";
+       return stream;
+}
+#endif
+
index 3a9895df6d3abb28cfcb0b231a3ac823c74f32a2..18b2f168f8c0f710401dff67b4411882dd4720e9 100644 (file)
@@ -31,6 +31,7 @@
 #include "BOP_Tag.h"
 #include "BOP_Indexs.h"
 #include "MT_Point3.h"
+#include "BOP_Misc.h"
 
 class BOP_Vertex 
 {
@@ -52,6 +53,10 @@ public:
        inline MT_Point3 getPoint() const { return m_point;};
        inline BOP_TAG getTAG() { return m_tag;};
        inline void setTAG(BOP_TAG t) { m_tag = t;};
+#ifdef BOP_DEBUG
+       friend ostream &operator<<(ostream &stream, BOP_Vertex *v);
+#endif
+
 };
 
 #endif