[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43643] trunk/blender/intern/boolop/intern /BOP_CarveInterface.cpp: Carve booleans: code and style cleanup
Sergey Sharybin
sergey.vfx at gmail.com
Mon Jan 23 18:44:06 CET 2012
Revision: 43643
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43643
Author: nazgul
Date: 2012-01-23 17:44:05 +0000 (Mon, 23 Jan 2012)
Log Message:
-----------
Carve booleans: code and style cleanup
Modified Paths:
--------------
trunk/blender/intern/boolop/intern/BOP_CarveInterface.cpp
Modified: trunk/blender/intern/boolop/intern/BOP_CarveInterface.cpp
===================================================================
--- trunk/blender/intern/boolop/intern/BOP_CarveInterface.cpp 2012-01-23 17:43:41 UTC (rev 43642)
+++ trunk/blender/intern/boolop/intern/BOP_CarveInterface.cpp 2012-01-23 17:44:05 UTC (rev 43643)
@@ -38,6 +38,7 @@
#include <iostream>
+using namespace carve::mesh;
typedef unsigned int uint;
#define MAX(x,y) ((x)>(y)?(x):(y))
@@ -63,38 +64,38 @@
return 1;
}
-static carve::mesh::MeshSet<3> *Carve_meshSetFromMeshes(std::vector<carve::mesh::MeshSet<3>::mesh_t*> &meshes)
+static MeshSet<3> *Carve_meshSetFromMeshes(std::vector<MeshSet<3>::mesh_t*> &meshes)
{
- std::vector<carve::mesh::MeshSet<3>::mesh_t*> new_meshes;
+ std::vector<MeshSet<3>::mesh_t*> new_meshes;
- std::vector<carve::mesh::MeshSet<3>::mesh_t*>::iterator it = meshes.begin();
+ std::vector<MeshSet<3>::mesh_t*>::iterator it = meshes.begin();
for(; it!=meshes.end(); it++) {
- carve::mesh::MeshSet<3>::mesh_t *mesh = *it;
- carve::mesh::MeshSet<3>::mesh_t *new_mesh = new carve::mesh::MeshSet<3>::mesh_t(mesh->faces);
+ MeshSet<3>::mesh_t *mesh = *it;
+ MeshSet<3>::mesh_t *new_mesh = new MeshSet<3>::mesh_t(mesh->faces);
new_meshes.push_back(new_mesh);
}
- return new carve::mesh::MeshSet<3>(new_meshes);
+ return new MeshSet<3>(new_meshes);
}
-static void Carve_getIntersectedOperandMeshes(std::vector<carve::mesh::MeshSet<3>::mesh_t*> &meshes,
- std::vector<carve::mesh::MeshSet<3>::aabb_t> &precomputedAABB,
- carve::mesh::MeshSet<3>::aabb_t &otherAABB,
- std::vector<carve::mesh::MeshSet<3>::mesh_t*> &operandMeshes)
+static void Carve_getIntersectedOperandMeshes(std::vector<MeshSet<3>::mesh_t*> &meshes,
+ std::vector<MeshSet<3>::aabb_t> &precomputedAABB,
+ MeshSet<3>::aabb_t &otherAABB,
+ std::vector<MeshSet<3>::mesh_t*> &operandMeshes)
{
- std::vector<carve::mesh::MeshSet<3>::mesh_t*>::iterator it = meshes.begin();
- std::vector<carve::mesh::MeshSet<3>::aabb_t>::iterator aabb_it = precomputedAABB.begin();
- std::vector<carve::mesh::MeshSet<3>::aabb_t> usedAABB;
+ std::vector<MeshSet<3>::mesh_t*>::iterator it = meshes.begin();
+ std::vector<MeshSet<3>::aabb_t>::iterator aabb_it = precomputedAABB.begin();
+ std::vector<MeshSet<3>::aabb_t> usedAABB;
while(it != meshes.end()) {
- carve::mesh::MeshSet<3>::mesh_t *mesh = *it;
- carve::mesh::MeshSet<3>::aabb_t aabb = mesh->getAABB();
+ MeshSet<3>::mesh_t *mesh = *it;
+ MeshSet<3>::aabb_t aabb = mesh->getAABB();
bool isIntersect = false;
- std::vector<carve::mesh::MeshSet<3>::aabb_t>::iterator used_it = usedAABB.begin();
+ std::vector<MeshSet<3>::aabb_t>::iterator used_it = usedAABB.begin();
for(; used_it!=usedAABB.end(); used_it++) {
- carve::mesh::MeshSet<3>::aabb_t usedAABB = *used_it;
+ MeshSet<3>::aabb_t usedAABB = *used_it;
if(usedAABB.intersects(aabb) && usedAABB.intersects(otherAABB)) {
isIntersect = true;
@@ -116,20 +117,20 @@
}
}
-static carve::mesh::MeshSet<3> *Carve_getIntersectedOperand(std::vector<carve::mesh::MeshSet<3>::mesh_t*> &meshes,
- std::vector<carve::mesh::MeshSet<3>::aabb_t> &precomputedAABB,
- carve::mesh::MeshSet<3>::aabb_t &otherAABB)
+static MeshSet<3> *Carve_getIntersectedOperand(std::vector<MeshSet<3>::mesh_t*> &meshes,
+ std::vector<MeshSet<3>::aabb_t> &precomputedAABB,
+ MeshSet<3>::aabb_t &otherAABB)
{
- std::vector<carve::mesh::MeshSet<3>::mesh_t*> operandMeshes;
+ std::vector<MeshSet<3>::mesh_t*> operandMeshes;
Carve_getIntersectedOperandMeshes(meshes, precomputedAABB, otherAABB, operandMeshes);
return Carve_meshSetFromMeshes(operandMeshes);
}
-static carve::mesh::MeshSet<3> *Carve_unionIntersectingMeshes(carve::mesh::MeshSet<3> *poly,
- std::vector<carve::mesh::MeshSet<3>::aabb_t> &precomputedAABB,
- carve::mesh::MeshSet<3>::aabb_t &otherAABB,
- carve::interpolate::FaceAttr<uint> &oface_num)
+static MeshSet<3> *Carve_unionIntersectingMeshes(MeshSet<3> *poly,
+ std::vector<MeshSet<3>::aabb_t> &precomputedAABB,
+ MeshSet<3>::aabb_t &otherAABB,
+ carve::interpolate::FaceAttr<uint> &oface_num)
{
if(poly->meshes.size()<=1)
return poly;
@@ -139,15 +140,17 @@
oface_num.installHooks(csg);
csg.hooks.registerHook(new carve::csg::CarveTriangulator, carve::csg::CSG::Hooks::PROCESS_OUTPUT_FACE_BIT);
- std::vector<carve::mesh::MeshSet<3>::mesh_t*> orig_meshes = std::vector<carve::mesh::MeshSet<3>::mesh_t*>(poly->meshes.begin(), poly->meshes.end());
+ std::vector<MeshSet<3>::mesh_t*> orig_meshes =
+ std::vector<MeshSet<3>::mesh_t*>(poly->meshes.begin(), poly->meshes.end());
- carve::mesh::MeshSet<3> *left = Carve_getIntersectedOperand(orig_meshes, precomputedAABB, otherAABB);
+ MeshSet<3> *left = Carve_getIntersectedOperand(orig_meshes, precomputedAABB, otherAABB);
while(orig_meshes.size()) {
- carve::mesh::MeshSet<3> *right = Carve_getIntersectedOperand(orig_meshes, precomputedAABB, otherAABB);
+ MeshSet<3> *right = Carve_getIntersectedOperand(orig_meshes, precomputedAABB, otherAABB);
try {
- carve::mesh::MeshSet<3> *result = csg.compute(left, right, carve::csg::CSG::UNION, NULL, carve::csg::CSG::CLASSIFY_EDGE);
+ MeshSet<3> *result = csg.compute(left, right, carve::csg::CSG::UNION, NULL, carve::csg::CSG::CLASSIFY_EDGE);
+
delete left;
delete right;
@@ -169,15 +172,15 @@
return left;
}
-static carve::mesh::MeshSet<3>::aabb_t Carve_computeAABB(carve::mesh::MeshSet<3> *poly,
- std::vector<carve::mesh::MeshSet<3>::aabb_t> &precomputedAABB)
+static MeshSet<3>::aabb_t Carve_computeAABB(MeshSet<3> *poly,
+ std::vector<MeshSet<3>::aabb_t> &precomputedAABB)
{
- carve::mesh::MeshSet<3>::aabb_t overallAABB;
- std::vector<carve::mesh::MeshSet<3>::mesh_t*>::iterator it = poly->meshes.begin();
+ MeshSet<3>::aabb_t overallAABB;
+ std::vector<MeshSet<3>::mesh_t*>::iterator it = poly->meshes.begin();
for(; it!=poly->meshes.end(); it++) {
- carve::mesh::MeshSet<3>::aabb_t aabb;
- carve::mesh::MeshSet<3>::mesh_t *mesh = *it;
+ MeshSet<3>::aabb_t aabb;
+ MeshSet<3>::mesh_t *mesh = *it;
aabb = mesh->getAABB();
precomputedAABB.push_back(aabb);
@@ -188,16 +191,16 @@
return overallAABB;
}
-static void Carve_prepareOperands(carve::mesh::MeshSet<3> **left_r, carve::mesh::MeshSet<3> **right_r,
+static void Carve_prepareOperands(MeshSet<3> **left_r, MeshSet<3> **right_r,
carve::interpolate::FaceAttr<uint> &oface_num)
{
- carve::mesh::MeshSet<3> *left, *right;
+ MeshSet<3> *left, *right;
- std::vector<carve::mesh::MeshSet<3>::aabb_t> left_precomputedAABB;
- std::vector<carve::mesh::MeshSet<3>::aabb_t> right_precomputedAABB;
+ std::vector<MeshSet<3>::aabb_t> left_precomputedAABB;
+ std::vector<MeshSet<3>::aabb_t> right_precomputedAABB;
- carve::mesh::MeshSet<3>::aabb_t leftAABB = Carve_computeAABB(*left_r, left_precomputedAABB);
- carve::mesh::MeshSet<3>::aabb_t rightAABB = Carve_computeAABB(*right_r, right_precomputedAABB);
+ MeshSet<3>::aabb_t leftAABB = Carve_computeAABB(*left_r, left_precomputedAABB);
+ MeshSet<3>::aabb_t rightAABB = Carve_computeAABB(*right_r, right_precomputedAABB);
left = Carve_unionIntersectingMeshes(*left_r, left_precomputedAABB, rightAABB, oface_num);
right = Carve_unionIntersectingMeshes(*right_r, right_precomputedAABB, leftAABB, oface_num);
@@ -212,10 +215,10 @@
*right_r = right;
}
-static carve::mesh::MeshSet<3> *Carve_addMesh(CSG_FaceIteratorDescriptor& face_it,
- CSG_VertexIteratorDescriptor& vertex_it,
- carve::interpolate::FaceAttr<uint> &oface_num,
- uint &num_origfaces)
+static MeshSet<3> *Carve_addMesh(CSG_FaceIteratorDescriptor &face_it,
+ CSG_VertexIteratorDescriptor &vertex_it,
+ carve::interpolate::FaceAttr<uint> &oface_num,
+ uint &num_origfaces)
{
CSG_IVertex vertex;
std::vector<carve::geom3d::Vector> vertices;
@@ -277,12 +280,12 @@
}
}
- carve::mesh::MeshSet<3> *poly = new carve::mesh::MeshSet<3> (vertices, numfaces, f);
+ MeshSet<3> *poly = new MeshSet<3> (vertices, numfaces, f);
uint i;
- carve::mesh::MeshSet<3>::face_iter face_iter = poly->faceBegin();
+ MeshSet<3>::face_iter face_iter = poly->faceBegin();
for (i = 0; face_iter != poly->faceEnd(); ++face_iter, ++i) {
- carve::mesh::MeshSet<3>::face_t *face = *face_iter;
+ MeshSet<3>::face_t *face = *face_iter;
oface_num.setAttribute(face, forig[i]);
}
@@ -290,8 +293,8 @@
}
// check whether two faces share an edge, and if so merge them
-static uint quadMerge(std::map<carve::mesh::MeshSet<3>::vertex_t*, uint> *vertexToIndex_map,
- carve::mesh::MeshSet<3>::face_t *f1, carve::mesh::MeshSet<3>::face_t *f2,
+static uint quadMerge(std::map<MeshSet<3>::vertex_t*, uint> *vertexToIndex_map,
+ MeshSet<3>::face_t *f1, MeshSet<3>::face_t *f2,
uint v, uint quad[4])
{
uint current, n1, p1, n2, p2;
@@ -339,23 +342,23 @@
return 0;
}
-static BSP_CSGMesh* Carve_exportMesh(carve::mesh::MeshSet<3>* &poly, carve::interpolate::FaceAttr<uint> &oface_num,
+static BSP_CSGMesh *Carve_exportMesh(MeshSet<3>* &poly, carve::interpolate::FaceAttr<uint> &oface_num,
uint num_origfaces)
{
uint i;
- BSP_CSGMesh* outputMesh = BSP_CSGMesh::New();
+ BSP_CSGMesh *outputMesh = BSP_CSGMesh::New();
if (outputMesh == NULL)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list