Commit Graph

46 Commits

Author SHA1 Message Date
Campbell Barton
2005f7c6c0 style cleanup: also some typos 2013-02-11 00:49:00 +00:00
Campbell Barton
852a41fb0e style cleanup, also remove redundant call to set_listbasepointers in free_main(). 2012-11-07 01:02:28 +00:00
Sergey Sharybin
1231232169 Partial revert of own rev44548.
That was more like workaround which solved particular issue with freestyle
rendering, but introduced some more uncontrollable issues, main of which is
recursive fracture would likely suffer from non-manifolds results of previous
step.

Boolean operation is not the only way to generate zero-area face, it could
also happen with character animation and it's indeed better be solved from
freestule side.

This should fix: #33041 Boolean difference sometimes produces meshes with holes
2012-11-05 12:11:43 +00:00
Campbell Barton
7579a9ec37 code cleanup: double promotions 2012-11-04 10:20:16 +00:00
Campbell Barton
25591e958d style cleanup: tabs & whitespace 2012-11-03 15:35:03 +00:00
Sergey Sharybin
862decfc82 Booleans: epsilon for planar checks seems a bit too small for single precision math
This could solve issue #32748: Boolean Modifiers Making unneeded edges?
2012-10-05 07:31:30 +00:00
Sergey Sharybin
1a5998bc4e Remove old boolean operation module
Carve proved it's a way to go, so the time have came to get rid of old
boolean operation module which isn't used anymore.

Still kept BOP interface but move it to BSP module. At some point it
could be cleaned up further (like perhaps removed extra abstraction
level or so) but would be nice to combine such a refactor with making
BSP aware of NGons.

Tested on linux using both cmake and scons, possible regressions on
windows/osx. Would check windoes build just after commit.
2012-08-02 16:42:30 +00:00
Campbell Barton
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
Campbell Barton
5189356d58 style cleanup 2012-06-04 20:11:09 +00:00
Campbell Barton
47c373c7a9 style cleanup (mostly whitespace) 2012-02-27 10:35:39 +00:00
Campbell Barton
6ca7d82932 code cleanup: white space, spelling & ';;' end of lines. 2012-02-25 16:04:03 +00:00
Campbell Barton
2b7ca2304a unify include guard defines, __$FILENAME__
without the underscores these clogged up the namespace for autocompleation which was annoying.
2012-02-17 18:59:41 +00:00
Campbell Barton
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
Campbell Barton
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Nathan Letwory
2401fad12a doxygen: intern/bsp tagged 2011-02-25 10:44:20 +00:00
Campbell Barton
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
Campbell Barton
8f1500da00 remove config.h references, was added for automake build system rev around 124-126 but isnt used by any build systems now. 2010-04-18 10:28:37 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Campbell Barton
86414f4880 from freakabcd to compile with MSVC10 (beta) 2010-01-16 22:03:26 +00:00
Campbell Barton
b0f87935a8 spelling errors, no real changes to code. 2010-01-14 10:59:42 +00:00
Daniel Genrich
8a19adeb58 Win64 fix: if you disable enough things in CMakeList.txt blender compiles on win64 now using cmake --> *BUT* it doesn't say anything about if it works with MEM>4GB (that's next thing to explore!) 2008-07-13 18:29:07 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
Kent Mein
4e2143f639 This commit fixes up a bunch of svn properties to hopefully make things a little nicer for everyone.
Patch provied by gsrb3d

bug tracker #7061

Kent
2007-08-28 10:07:08 +00:00
Ken Hughes
37b5472dd2 Tools
-----
Bugfixes for #6816 and #6988: Under Windows, Blender would crash if boolean
operations were done on objects which resulted in an empty mesh.  Problem was
"iterators" created for ConvertCSGDescriptorsToDerivedMesh() tried to access
invalid memory.
2007-08-03 21:34:13 +00:00
Brecht Van Lommel
011f531359 Modified the way booleans preserve face data, and cleaned up some
duplicate code. Also removed redundant files from the bsp module,
that where replaced by boolop last year, no sense in updating them
for these changes. On the user level things should still work the
same, this is only preparation work.

Not counting the removed files, -1501 lines of code, not too bad :)
2006-11-08 20:14:04 +00:00
Kent Mein
0360be49f5 This patch is the first of many to follow that deals with various
problems reported by klockwork.com who was very nice and has offered to
provide free source code analisys for us.

This one deals with freeing memory for an object when there is an
error.  (The function allocated memory intending to return it but
then ran into problems, and was forgetting to free it before it returned
NULL)

Kent
2006-10-24 15:17:39 +00:00
Ken Hughes
7fcc5800ae ===Tools===
Adding back some code to booleans that got lost in the Orange merge.

I've also added back the code which checked that meshes were solid
("manifolds") but have the actual check in
intern/boolop/intern/BOP_Interface.cpp, since from my testing it was
not causing crashes or hangs.  It *can* give odd results depending on
what you're trying to intersect, but seems useful.  Additionally, since
existing bugs in the current code can create non-solid/non-manifold
meshes, seems hypocritical to create a mesh that can't later be used in
another boolean operation.
2006-06-10 15:47:19 +00:00
Ken Hughes
5c95302043 ===Tools===
Previous patch for "problems with STL iterators/vectors that only show up under
Visual Studio 2005" could cause a crash when object used as a boolean modifier
was changed (for example, flipping all the normals).  The problem is that result
of boolean operations (apparently) can result in empty meshes.  Patched to
use the vector::size operator to check for empty vectors before trying to
check the iterator.
2006-06-08 03:10:26 +00:00
Erwin Coumans
abd8fba47f applied patch [ #4207 ] Boolean operations fix
Also fixed other problems with STL iterators/vectors, that only show up under Visual Studio 2005.

See also http://projects.blender.org/pipermail/bf-committers/2006-May/014608.html
2006-06-02 18:17:40 +00:00
Kent Mein
e544723e63 Fix some of Stealth Apprent's warnings/errors and some extra little stuff.
here is a quick summary...

Kent

intern/bsp/intern/BSP_CSGMesh_CFIterator.h
removed tri_index (unused variable)

intern/bsp/intern/CSG_BooleanOps.cpp
removed extra ;

intern/string/intern/STR_String.cpp
added <ctype.h>

source/blender/blenkernel/BKE_writeavi.h
moved things around so not doing forward declarations

source/blender/renderconverter/intern/convertBlenderScene.c
changed render.h to render_types.h

source/blender/src/blenderbuttons.c
source/blender/src/editgroup.c
source/blender/src/meshtools.c
added newline

source/gameengine/Ketsji/KX_KetsjiEngine.cpp
commented out include "PIL_time.h" code that requires it is commented out

reading blender/src/writeavicodec.c
(struct keyword to a couple of lines that needed it)
and added:
extern struct Render R;

blender/renderconverter/intern/convertBlenderScene.c
added extern Render R;
added #include "rendercore.h" to get rid of undeclared shade_material_loop
        (Not sure if this is right but it fixes it.
Did not fix this problem, is it alright to just pass NULL here or should we chan
ge it to something else:
        init_render_materials' : too few

gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
removed argument to dHashSpaceCreate
commented out dWorldQuickStep since it does not exist
2006-01-29 15:15:34 +00:00
Alexander Ewering
767bae35f2 (Hopefully) last part of Booleans commit.
Please update, compile (make) and test.
2005-10-28 20:18:56 +00:00
Jean-Luc Peurière
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
Kent Mein
aa317a8281 removed 4 unused vars...
Kent
2004-09-01 13:33:24 +00:00
Kent Mein
abede3ca04 A little more cleanup, removed a bunch of unused vars in the code.
Trying to get rid of some of the extra warnings we can ignore ;)

Kent
2003-08-14 15:18:45 +00:00
Francis Laurence
c6a905f7e9 Hello,
*Fixed boolean buglet in the bsp lib. I have not committed any libraries so you'll
have to do this to see the changes in blender.
*Got the bsp test program working again with the new GHOST createWindow
interface.
*(Visual C++) Modfied some of the dsp in the intern library to NOT prompt when
overwirting old libs and header files. This is the /Y option after XCOPY
Cheers
Laurence.
2003-01-12 19:48:53 +00:00
Kent Mein
f2aaeb8f5b Two small updates to fix warnings.
The first is renaming fv_data to fv_data2 to get rid of a shadow warning
second is an unused var that was an extra uneeded call to fabs.

Diff included:

Kent
--
mein@cs.umn.edu

Index: BSP_CSGMeshBuilder.cpp
===================================================================
RCS file: /cvsroot/bf-blender/blender/intern/bsp/intern/BSP_CSGMeshBuilder.cpp,v
retrieving revision 1.3
diff -u -r1.3 BSP_CSGMeshBuilder.cpp
--- BSP_CSGMeshBuilder.cpp      25 Nov 2002 09:52:48 -0000      1.3
+++ BSP_CSGMeshBuilder.cpp      3 Jan 2003 15:47:15 -0000
@@ -89,13 +89,13 @@
        }

        if (props.user_face_vertex_data_size) {
-               char * fv_data = NULL;
-               fv_data = new char[4 * props.user_face_vertex_data_size];
+               char * fv_data2 = NULL;
+               fv_data2 = new char[4 * props.user_face_vertex_data_size];

-               face.user_face_vertex_data[0] = fv_data;
-               face.user_face_vertex_data[1] = fv_data + props.user_face_vertex
_data_size;
-               face.user_face_vertex_data[2] = fv_data + 2*props.user_face_vert
ex_data_size;
-               face.user_face_vertex_data[3] = fv_data + 3*props.user_face_vert
ex_data_size;
+               face.user_face_vertex_data[0] = fv_data2;
+               face.user_face_vertex_data[1] = fv_data2 + props.user_face_verte
x_data_size;
+               face.user_face_vertex_data[2] = fv_data2 + 2*props.user_face_ver
tex_data_size;
+               face.user_face_vertex_data[3] = fv_data2 + 3*props.user_face_ver
tex_data_size;
        } else {
                face.user_face_vertex_data[0] = NULL;
                face.user_face_vertex_data[1] = NULL;
[9:47] ~/blender/intern/bsp/intern(mein@captcrab) % cvs diff BSP_MeshFragment.cp
p
Index: BSP_MeshFragment.cpp
===================================================================
RCS file: /cvsroot/bf-blender/blender/intern/bsp/intern/BSP_MeshFragment.cpp,v
retrieving revision 1.3
diff -u -r1.3 BSP_MeshFragment.cpp
--- BSP_MeshFragment.cpp        25 Nov 2002 09:52:48 -0000      1.3
+++ BSP_MeshFragment.cpp        3 Jan 2003 15:47:21 -0000
@@ -106,8 +106,6 @@
                if (BSP_Classification(vert.OpenTag()) == e_unclassified)
                {
                        MT_Scalar sdistance = plane.signedDistance(vert.m_pos);
-                       MT_Scalar fsdistance = fabs(sdistance);
-
                        if (fabs(sdistance) <= BSP_SPLIT_EPSILON) {
                                // this vertex is on
                                vert.SetOpenTag(e_classified_on);
2003-01-03 15:53:46 +00:00
Chris Want
9c18b6cff7 While building with gcc on Irix one is confronted by the message:
---------------------------->8----------------------------------------------
g++ -DHAVE_CONFIG_H -I. -I../../../blender/intern/bsp -I../.. -I../../../blender/intern/container -I../../../blender/intern/moto/include -I../../../blender/intern/memutil -I/usr/freeware/include -g -funsigned-char -c ../../../blender/intern/bsp/intern/BSP_CSGMesh.cpp -MT BSP_CSGMesh.lo -MD -MP -MF .deps/BSP_CSGMesh.TPlo  -DPIC -o .libs/BSP_CSGMesh.lo
/usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.0.4/include/g++/bits/stl_iterator.h: In
   constructor `std::__normal_iterator<_Iterator,
   _Container>::__normal_iterator(const std::__normal_iterator<_Iter,
   _Container>&) [with _Iter = const BSP_MFace*, _Iterator = BSP_MFace*,
   _Container = std::vector<BSP_MFace, std::allocator<BSP_MFace> >]':
../../../blender/intern/bsp/intern/BSP_CSGMesh.cpp:270:   instantiated from here
/usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.0.4/include/g++/bits/stl_iterator.h:474: cannot
   convert `const BSP_MFace* const' to `BSP_MFace*' in initialization
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
---------------------------->8----------------------------------------------

The line in question that causes the error is the middle one in this group:

	vector<BSP_MFace>::const_iterator f_it_end = FaceSet().end();
	vector<BSP_MFace>::const_iterator f_it_begin = FaceSet().begin();
	vector<BSP_MFace>::iterator f_it = FaceSet().begin();

Dropping the 'const_' from that middle line enables gcc to compile the
file correctly (this is also consistent with what is going on with other
parts of the file, i.e., stuff that is returned from a begin() method is
declared as vector<BSP_MFace>::iterator instead of
vector<BSP_MFace>::const_iterator.

But I'll be honest: I have no idea what this code does, so if somebody with
better C++ skills wants to check it, then please do.

This change was also tested to compile and run on debian linux/x86
(well, booleans are broken right now, so I wasn't able to do too much
testing).

Chris
2002-12-29 15:59:51 +00:00
Chris Want
9e3c814e72 Reverted changes to bsp code so that the code will compile
under gcc 3.x. A better solution should be found as this
breaks booleans.

Chris
2002-12-28 17:55:24 +00:00
Kent Mein
f78de74b20 WooHoo me again ;)
I took out the following from the includes in the intern dir that still had
it:
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif

Kent
--
mein@cs.umn.edu
2002-12-26 18:25:17 +00:00
Chris Want
f8b3f65d85 Some changes made to the bsp code in early November
(to stop gcc compiler warnings) caused segfaults when
performing intersections (and possibly while doing other
boolean operations). I felt it was best to revert these
changes (I also got rid of the DOS line terminators in
the files). Some more info about the matter can be found
in the first 10 or so posts for Novembor on the old
mailing list:

http://www.soze.com/mailman/private/bf-committers/2002-November/date.html

Chris (Merry Christmas!)
2002-12-25 08:35:08 +00:00
Kent Mein
782a5b573d Back at it ;)
Removed an unused var...
Here is the cvs diff.

Kent

Index: bsp/intern/BSP_CSGUserData.cpp
===================================================================
RCS file: /cvs01/blender/intern/bsp/intern/BSP_CSGUserData.cpp,v
retrieving revision 1.4
diff -u -r1.4 BSP_CSGUserData.cpp
--- BSP_CSGUserData.cpp 2002/11/25 09:52:48     1.4
+++ BSP_CSGUserData.cpp 2002/12/20 09:37:58
@@ -79,7 +79,6 @@
        int record_index
 ){
        if (m_width) {
-               int output = Size();
                IncSize();
2002-12-20 09:39:02 +00:00
Kent Mein
0fbadc8eb7 Yes I did it again ;)
added the following 3 lines to everything in the intern dir:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

Kent
--
mein@cs.umn.edu
2002-11-25 09:53:07 +00:00
Kent Mein
0e8f81f48a Again I had to modify things like mesh->FaceSet().begin();
to &mesh->FaceSet()[0];

mein@cs.umn.edu
2002-11-01 21:39:56 +00:00
Kent Mein
92a0254c8a Ok since I didn't hear anything I committed the indexing changes I made
to these two files.
Basically change edge_set.begin() to &edge_set[0] etc...

mein@cs.umn.edu
2002-11-01 13:54:50 +00:00
Kent Mein
01bff70383 fixed spacing in the headers to get rid of some warnings and some other
little minor spacing issues.
2002-10-30 02:07:20 +00:00
Hans Lambermont
12315f4d0e Initial revision 2002-10-12 11:37:38 +00:00