From 6b8007a8a33d10d2458fa83b77cd77ae55d889eb Mon Sep 17 00:00:00 2001 From: Alexander Ewering Date: Fri, 11 Nov 2005 23:10:10 +0000 Subject: Bjornmose's fixes for making booleans compile on MSVC 6. Thanks! --- intern/boolop/intern/BOP_BSPNode.cpp | 4 +-- intern/boolop/intern/BOP_Face2Face.cpp | 34 +++++++++++++------------- intern/boolop/intern/BOP_MaterialContainer.cpp | 8 +++--- intern/boolop/intern/BOP_MathUtils.cpp | 2 +- intern/boolop/intern/BOP_Merge.cpp | 7 ++++++ intern/boolop/intern/BOP_Mesh.cpp | 28 +++++++++++---------- 6 files changed, 47 insertions(+), 36 deletions(-) (limited to 'intern/boolop') diff --git a/intern/boolop/intern/BOP_BSPNode.cpp b/intern/boolop/intern/BOP_BSPNode.cpp index afe48586d33..af5c40baad9 100644 --- a/intern/boolop/intern/BOP_BSPNode.cpp +++ b/intern/boolop/intern/BOP_BSPNode.cpp @@ -81,10 +81,10 @@ unsigned int BOP_BSPNode::addFace(const MT_Point3& p1, if ((tag & OUT_OUT_OUT) != 0){ if (m_outChild != NULL) - newDeep = max(newDeep, m_outChild->addFace(p1, p2, p3, plane) + 1); + newDeep = MT_max(newDeep, m_outChild->addFace(p1, p2, p3, plane) + 1); else { m_outChild = new BOP_BSPNode(plane); - newDeep = max(newDeep,(unsigned int)2); + newDeep = MT_max(newDeep,(unsigned int)2); } } diff --git a/intern/boolop/intern/BOP_Face2Face.cpp b/intern/boolop/intern/BOP_Face2Face.cpp index 6d7c671870d..08928935f33 100644 --- a/intern/boolop/intern/BOP_Face2Face.cpp +++ b/intern/boolop/intern/BOP_Face2Face.cpp @@ -502,8 +502,8 @@ void BOP_getPoints(BOP_Mesh* mesh, */ void BOP_mergeSort(MT_Point3 *points, unsigned int *face, unsigned int &size, bool &invertA, bool &invertB) { MT_Point3 sortedPoints[4]; - unsigned int sortedFaces[4]; - unsigned int position[4]; + unsigned int sortedFaces[4], position[4]; + unsigned int i; if (size == 2) { // Trivial case, only test the merge ... @@ -516,7 +516,7 @@ void BOP_mergeSort(MT_Point3 *points, unsigned int *face, unsigned int &size, bo // size is 3 or 4 // Get segment extreme points MT_Scalar maxDistance = -1; - for(unsigned int i=0;i maxDistance){ @@ -529,7 +529,7 @@ void BOP_mergeSort(MT_Point3 *points, unsigned int *face, unsigned int &size, bo // Get segment inner points position[1] = position[2] = size; - for(unsigned int i=0;igetPlane(), faceB->getPlane(), - sA, sB, invert, segments); -} + void BOP_createXS(BOP_Mesh* mesh, + BOP_Face* faceA, + BOP_Face* faceB, + BOP_Segment sA, + BOP_Segment sB, + bool invert, + BOP_Segment* segments) { + BOP_createXS(mesh, faceA, faceB, faceA->getPlane(), faceB->getPlane(), + sA, sB, invert, segments); + } /** * Computes the x-segment of two segments (the shared interval). The segments needs to have sA.m_cfg1 > 0 && sB.m_cfg1 > 0 . diff --git a/intern/boolop/intern/BOP_MaterialContainer.cpp b/intern/boolop/intern/BOP_MaterialContainer.cpp index b8f38b35651..6ade5b0649f 100644 --- a/intern/boolop/intern/BOP_MaterialContainer.cpp +++ b/intern/boolop/intern/BOP_MaterialContainer.cpp @@ -114,6 +114,8 @@ char* BOP_MaterialContainer::getFaceVertexMaterial(BOP_Mesh *mesh, MT_Point3 point, char* faceVertexMaterial) { + unsigned int i; + if (originalFaceIndex>=m_materialList.size()) return NULL; BOP_Material& material = m_materialList[originalFaceIndex]; @@ -126,12 +128,12 @@ char* BOP_MaterialContainer::getFaceVertexMaterial(BOP_Mesh *mesh, if (!face1 || !face2) return NULL; // Search original point - for (unsigned int i=0;isize();i++) { + for (i=0;isize();i++) { if (point == mesh->getVertex(face1->getVertex(i))->getPoint()) { return material.getOriginalFaceVertexMaterial(face1->getVertex(i)); } } - for (unsigned int i=0;isize();i++) { + for (i=0;isize();i++) { if (point == mesh->getVertex(face2->getVertex(i))->getPoint()) { return material.getOriginalFaceVertexMaterial(face2->getVertex(i)); } @@ -158,7 +160,7 @@ char* BOP_MaterialContainer::getFaceVertexMaterial(BOP_Mesh *mesh, if (!face1) return NULL; // Search original point - for (unsigned int i=0;isize();i++) { + for (i=0;isize();i++) { if (point == mesh->getVertex(face1->getVertex(i))->getPoint()) return material.getOriginalFaceVertexMaterial(face1->getVertex(i)); } diff --git a/intern/boolop/intern/BOP_MathUtils.cpp b/intern/boolop/intern/BOP_MathUtils.cpp index 00c9515a486..7a0210247eb 100644 --- a/intern/boolop/intern/BOP_MathUtils.cpp +++ b/intern/boolop/intern/BOP_MathUtils.cpp @@ -338,7 +338,7 @@ MT_Point3 BOP_intersectPlane(const MT_Plane3& plane, const MT_Point3& p1, const // // coefA*((p2.x - p1.y)*lambda + p1.x) + ... + coefD = 0 - MT_Point3 intersection; + MT_Point3 intersection = MT_Point3(0,0,0); //never ever return anything undefined! MT_Scalar den = plane.x()*(p2.x()-p1.x()) + plane.y()*(p2.y()-p1.y()) + plane.z()*(p2.z()-p1.z()); diff --git a/intern/boolop/intern/BOP_Merge.cpp b/intern/boolop/intern/BOP_Merge.cpp index 1165ac10a8f..fb5bfbc0e7b 100644 --- a/intern/boolop/intern/BOP_Merge.cpp +++ b/intern/boolop/intern/BOP_Merge.cpp @@ -30,6 +30,13 @@ #include "BOP_Merge.h" + +#ifdef _MSC_VER +#if _MSC_VER < 1300 +#include +#endif +#endif + /** * SINGLETON (use method BOP_Merge.getInstance). */ diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp index d8193f9c4b0..24d5b3fb6a9 100644 --- a/intern/boolop/intern/BOP_Mesh.cpp +++ b/intern/boolop/intern/BOP_Mesh.cpp @@ -40,20 +40,20 @@ BOP_Mesh::~BOP_Mesh() { const BOP_IT_Vertexs vertexsEnd = m_vertexs.end(); - for(BOP_IT_Vertexs it=m_vertexs.begin();it!=vertexsEnd;it++){ - delete *it; + for(BOP_IT_Vertexs itv=m_vertexs.begin();itv!=vertexsEnd;itv++){ + delete *itv; } m_vertexs.clear(); const BOP_IT_Edges edgesEnd = m_edges.end(); - for(BOP_IT_Edges it=m_edges.begin();it!=edgesEnd;it++){ - delete *it; + for(BOP_IT_Edges ite=m_edges.begin();ite!=edgesEnd;ite++){ + delete *ite; } m_edges.clear(); const BOP_IT_Faces facesEnd = m_faces.end(); - for(BOP_IT_Faces it=m_faces.begin();it!=facesEnd;it++){ - delete *it; + for(BOP_IT_Faces itf=m_faces.begin();itf!=facesEnd;itf++){ + delete *itf; } m_faces.clear(); } @@ -482,6 +482,7 @@ unsigned int BOP_Mesh::getNumFaces(BOP_TAG tag) */ BOP_Index BOP_Mesh::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) { + BOP_IT_Indexs oldEdgeIndex; if (oldIndex==newIndex) return newIndex; // Update faces, edges and vertices @@ -494,7 +495,7 @@ BOP_Index BOP_Mesh::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) // Update faces to the newIndex BOP_IT_Indexs oldEdgesEnd = oldEdges.end(); - for(BOP_IT_Indexs oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd; + for(oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd; oldEdgeIndex++) { BOP_Edge *edge = m_edges[*oldEdgeIndex]; if ((edge->getVertex1()==oldIndex && edge->getVertex2()==newIndex) || @@ -524,7 +525,7 @@ BOP_Index BOP_Mesh::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) } oldEdgesEnd = oldEdges.end(); - for(BOP_IT_Indexs oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd; + for(oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd; oldEdgeIndex++) { BOP_Edge * edge = m_edges[*oldEdgeIndex]; BOP_Edge * edge2; @@ -564,13 +565,14 @@ BOP_Index BOP_Mesh::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) */ void BOP_Mesh::print() { + unsigned int i; cout << "--Faces--" << endl; - for(unsigned int i=0;igetPoint() << endl; } } @@ -677,8 +679,8 @@ void BOP_Mesh::testMesh() { BOP_Face* cares[10]; - unsigned int nedges=0; - for(unsigned int i=0;igetFaces(); unsigned int count = 0; @@ -700,7 +702,7 @@ void BOP_Mesh::testMesh() unsigned int duplFaces = 0; unsigned int wrongFaces = 0; - for(unsigned int i=0;igetTAG()==BROKEN) continue; -- cgit v1.2.3