Commit Graph

64 Commits

Author SHA1 Message Date
Nathan Letwory
bd610e942a doxygen: intern/boolop tagged 2011-02-25 10:32:33 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
Campbell Barton
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
Campbell Barton
5e382eb8e5 rename blenderlib to blender_add_lib 2010-12-22 23:09:30 +00:00
Campbell Barton
afacd18498 use lowercase for cmake builtin names and macros, remove contents in else() and endif() which is no longer needed. 2010-12-08 08:43:06 +00:00
Campbell Barton
e8397e6193 include headers in cmake source, added a script to check for consistency, reporting missing headers & C files.
this is important so IDE's using CMake integration always get blender headers. - QtCreator & MSVC for eg, probably others too.
2010-11-29 04:35:56 +00:00
Brecht Van Lommel
9a6fee750a Fix #24775: boolean modifier crash in rendering on Mac. Problem was that this
ran out of stack memory, now it passes some arguments by reference instead of
by value to use less stack space.
2010-11-26 03:26:57 +00:00
Campbell Barton
f383e2e0e6 Remove msvc build files which are not needed anymore. 2010-10-23 15:14:54 +00:00
Campbell Barton
c6976e7351 use explicit file paths for CMake rather then globing, This is recommended by cmake devs.
globbing vs explicit is discussed here.
http://www.cmake.org/pipermail/cmake/2008-December/025694.html

Practical implications are:
- developers need to keep CMakeLists.txt files up to date.
- Users wont get strange linking errors if they build after a file is added, since CMake detects CMakeLists.txt is modified and automatically reconfigure.
2010-10-23 04:05:55 +00:00
Campbell Barton
58683fa993 enable DEBUG define in CMake and scons, also change booleans debug option to BOP_DEBUG, which was used inconsistently, and had to add a define for superlu. 2010-10-18 11:21:22 +00:00
Campbell Barton
dea59cc5eb warning fixes and minor cmake changes. 2010-09-18 03:55:56 +00:00
Campbell Barton
4b40d73bfb rename most scons build targets to match cmake 2010-08-25 04:30:47 +00:00
Campbell Barton
6464718083 rename some cmake build targets 2010-08-24 04:29:23 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Matt Ebb
a657920fba Fix for [#20229] Booleans crash on edge case. 2009-12-04 00:54:40 +00:00
Benoit Bolsee
1483fafd13 Merge of itasc branch. Project files, scons and cmake should be working. Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library. 2009-09-24 21:22:24 +00:00
Brecht Van Lommel
874c29cea8 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD
Notes:
* blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
2009-04-20 15:06:46 +00:00
Chris Want
77e0199dc3 Makefile updates for Blender 2.5 (from GSR) 2009-03-19 01:50:45 +00:00
Nathan Letwory
93d9e7749d 2.5 / SCons
I did a very drastic cleanup for the different libgroups, there's now only a few left. It compiled with scons/msvc, will be testing in a bit on linux, too.
If you get any problems, please reply to this commit message on the taskforce ML.
2008-12-23 16:07:24 +00:00
Kent Mein
edc06b0b5b A couple of small fixes to clear up some warnings.
BOP_Merge2.cpp 
	had same variable name at different scopes so I renamed a couple.
resources.c 
	added include that was missing.  (This maybe was going to move? the old one
	was commented out)
ed_markers.c
	initalized a var that needed it.

Kent
2008-12-03 17:36:30 +00:00
Brecht Van Lommel
bdfe7d89e2 Merge of trunk into blender 2.5:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r12987:17416

Issues:
* GHOST/X11 had conflicting changes. Some code was added in 2.5, which was
  later added in trunk also, but reverted partially, specifically revision
  16683. I have left out this reversion in the 2.5 branch since I think it is
  needed there.
  http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16683
* Scons had various conflicting changes, I decided to go with trunk version
  for everything except priorities and some library renaming.
* In creator.c, there were various fixes and fixes for fixes related to the -w
  -W and -p options. In 2.5 -w and -W is not coded yet, and -p is done
  differently. Since this is changed so much, and I don't think those fixes
  would be needed in 2.5, I've left them out.
* Also in creator.c: there was code for a python bugfix where the screen was not
  initialized when running with -P. The code that initializes the screen there
  I had to disable, that can't work in 2.5 anymore but left it commented as a
  reminder.

Further I had to disable some new function calls. using src/ and python/, as
was done already in this branch, disabled function calls:
* bpath.c: error reporting
* BME_conversions.c: editmesh conversion functions.
* SHD_dynamic: disabled almost completely, there is no python/.
* KX_PythonInit.cpp and Ketsji/ build files: Mathutils is not there, disabled.
* text.c: clipboard copy call.
* object.c: OB_SUPPORT_MATERIAL.
* DerivedMesh.c and subsurf_ccg, stipple_quarttone.

Still to be done:
* Go over files and functions that were moved to a different location but could
  still use changes that were done in trunk.
2008-11-12 21:16:53 +00:00
Benoit Bolsee
61a83d2fba Add MSVC90 project files - part 3. Extern and Intern projects are merged in projectfiles_vc9\blender\blender.sln solution, you just need to open that solution to compile everything with VS2008. 2008-11-10 21:22:22 +00:00
Benoit Bolsee
8eec6cecc0 Add MSVC90 project files - part 1. 2008-11-10 15:36:58 +00:00
Benoit Bolsee
df2364ab1a Update MSVC project files for new Boolean Operation file (BOP_Merge2.cpp) 2008-08-03 21:57:52 +00:00
Campbell Barton
e632b966ec BKE_global.h include path wasnt correct. made boxpack2d.c a bit more
readable. no functionality changes.
2008-08-02 21:39:01 +00:00
Joshua Leung
451c00697f Scons - Mingw Compiling Fix:
When using BF_SPLIT_SRCS as a hack to get some of the larger libs compiled, there were some problems linking Blender related to some boolean calls. This commit tweaks the priorities for the boolean libs for the 'intern' group so that they get linked before the src libs are.
2008-08-02 00:25:50 +00:00
Ken Hughes
cb0aa467cd Tools
-----
New boolean merge algorithm.  The current code often does a poor job of merging tris and quads after the operation, resulting in many unnecessary faces.  This commit add a new algorithm which takes advantage of topology information saved in the interal BOP structures.

The file intern/boolop/intern/BOP_Misc.h has two #defines which control which algorithm(s) are compiled.  They are set now to compile both, with the new algorithm as the default.  The original algorithm can be enabled by setting the "rt" debugging button on the Scene panel (F10) to 100.

One note: the current boolean code still occasionally creates a non-manifold mesh from an operation on two manifold meshes.  The original merge algorithm would sometimes "close" these meshes and sometimes not.  The new algorithms behaves the same way, but sometimes closes a mesh the original would not and sometimes leaves open a mesh the original would close.  My fairly extensive tests did not indicate any significant difference in the percentage of final non-manifold meshes.
2008-07-31 18:37:03 +00:00
Ken Hughes
1b78333087 Tools
-----
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.
2008-07-30 21:52:02 +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
Nathan Letwory
15da2232f7 * tweak linking priorities - should help for GCC users
* some lib renaming
2008-01-08 09:47:44 +00:00
Chris Want
5e3cffc64a Patch to change license to GPL only, from GSR. 2008-01-07 19:13:47 +00:00
Ken Hughes
178dc73084 Tools
-----
More improvements to boolean tools.  The main change (although very little in
code) is changing fuzzy comparisons of floating point values.  For testing, a
new define is added in intern/boolop/intern/BOP_MathUtils.h called
VAR_EPSILON, which enables better comparisons.  This is turned on by default;
undefining it will revert to using the previous comparisons.  The downside of
these new comparisons is a loss in speed, but the resulting meshes are more
likely to be manifold (although still not always).

The other changes include speed improvements based on profiling results and
fixes for the improper creation of triangular faces with only two vertices.
2007-07-12 15:24:08 +00:00
Ken Hughes
676043c314 Tools:
------
Bugfix #6847: Previous fix for "spikes" when using booleans caused creation
of faces with only two unique vertices ("eekadoodles").  This patch cleans up
the test for triangles with near-colinear vertices so PHANTOM faces can be
used again, and also adds a hack for now which removes any eekadoodle faces.

I haven't figured out yet exactly how the faces are being created; if I can
do so and fix it the hack will be removed.
2007-06-30 21:32:24 +00:00
Kent Mein
7e85f4df5c a var was declared twice in the same function, just removing the
second declaration.

Kent
2007-06-26 18:15:45 +00:00
Ken Hughes
133c7fd7c7 Tools
-----
Bugfix #6847: Boolean code was marking some valid faces as "PHANTOM" when the
three vertices were nearly co-linear (according to its tests).  This
introduced holes into one or both meshes which could then result in either
holes in the final results and/or spurrious faces which should have been
split.

This commit removes the code in question until either an alternative test is
coded.
2007-06-21 21:58:04 +00:00
Ken Hughes
34341ce3f1 Fix for very old bug in Boolean code. BSP trees were calculated incorrectly,
which caused faces of convex objects to be classified wrongly.  Also removed
some dead code.  For convex objects, the BSP trees would also be literally
orders of magnitude larger than they were supposed to be (one test with a
5000 face torus reduced the BSP tree size from 5.96 million nodes to just 72.1
thousand).
2007-06-14 14:42:35 +00:00
Chris Want
6a53c0ae6a =Scons=
I should have talked to joeedh before committing last time...

This is an another attempt to fix the mingw long commandline
issue on all versions of windows (I didn't realize that the
2k in Win2k refered to the length of the commandline).

In this version, I break libsrc.a up so that no archive has
more than 30 object files (adjustable with one line of
code). I also fudge the priority numbers to ensure correct
linking. This was done in a "guess the number" way until
it worked, so please test and please check for correctness.
2006-11-28 21:12:31 +00:00
Jacques Beuarain
24f4440d05 CMake lists initial submission. Documentationand further verification for different platforms will follow soon. This was just tested against current CVS on MSVC 2005 with Verse, QuickTime, OpenEXR, Player all on. 2006-11-17 02:27:12 +00:00
Andrea Weikert
708e327b10 ==== MSVC 7 project files ====
boolop and bsplib cleanup
2006-11-09 20:55:13 +00:00
Jens Ole Wund
c1b05cace9 msvc6 sweeping the lints out off the corners 2006-11-09 13:25:57 +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
Ton Roosendaal
fde6fc6dd4 Bugfix #4540
Boolean crashed when using vertexcolors or UVs. The fix is disputable... it
just always returns a valid char * for "face vertex material", whatever
that may be... this fix seems not to break anything.

Also moved the report to Todo tracker, with message:

-> Need new Boolean maintainer!
2006-11-04 13:47:11 +00:00
Kent Mein
5fdd9bcb9e Another klockwork patch.
Check to make sure BOP_newEmptyMesh returns a mesh before trying to use it.

Kent
2006-10-25 19:47:21 +00:00
Andrea Weikert
857f7a66fa ==== MSVC 7 project files ===
maintenance work:
- added missing files in blenkernel
- updated Bullet in extern
- Python: SurfNurb.c
- removed compile and dependency of PHY_Ode
- made blenderplayer compile again (had to add pthreads lib)
2006-09-17 17:55:57 +00:00
Jens Ole Wund
b71a05227a adding include pathes 2006-09-15 19:21:11 +00:00
Ken Hughes
67ef2c05d8 Scons update for today's earlier boolean commit. 2006-09-08 02:36:44 +00:00
Kent Mein
4b5badf9cb Updated boolop Makefile so that it can find various headers it needs now.
Kent
2006-09-07 18:09:55 +00:00
Ken Hughes
d731945f01 ===Tools===
Experimental boolean tool optimization: for very large meshes a significant
amount of time is spend performing linear searches of edges.  This patch
implements a "hash" table (really more of a bucket table) to narrow the
search space.

If someone should need to disable this, just remove the "#define HASH" at
the beginning of BOP_Mesh.h
2006-09-07 17:22:57 +00:00
Stephen Swaney
43e776690f removed extra qualifier on class memeber bool BOP_Mesh::isClosedMesh(); 2006-06-10 17:50:52 +00:00
Ken Hughes
6d2adf66e5 ===Tools===
Another boolean bugfix: don't add faces which contain only two vertices
(actually, triangles with two identical vertices).
2006-06-10 16:00:38 +00:00