Commit Graph

41 Commits

Author SHA1 Message Date
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
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
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
b8c6c1fdf0 ===Tools===
Bug "fix" for #3932, and possibly for #3799.  Booleans can get into an endless loop (at least until memory runs out); through triangulation somehow a face is repeatedly added to the list of faces to triangulate.  This patch checks the face list for duplicates prior to a list add and aborts if a dup is found.

The real issue is why the triangulation is creating the face in the first place, but that will take a more thorough (and longer) examination of the code.  If I can fix that issue that prior to the 2.42 release, then this code can be removed.
2006-06-06 17:43:57 +00:00
Kent Mein
42930c643c Added BOP_Mesh constructor to get rid of this:
BOP_Mesh.h:45: warning: ‘class BOP_Mesh’ only defines private constructors and h
as no friends

drawimasel.c initalized a variable so it didn't give warnings about it.
(wasn't really needed but if the code changes could be potential issue)

Kent
2006-03-29 16:47:56 +00:00
Nathan Letwory
3bb82a27fc == SCons ==
* This commit is all of the rewrite work done on the SCons system. For
  documentation see doc/blender-scons.txt and doc/blender-scons-dev.txt.
  Also http://mediawiki.blender.org/index.php/BlenderDev/SconsRefactoring
  contains valuable information, along with what still needs to be done.

    - linux, os x and windows compile now.
    - files are compiled to BF_INSTALLDIR (see config/(platform)-config.py)
        - NOTE: Jean-Luc P will commit sometime during the weekend proper
          appit() for OS X. For now, copy the resulting binary to an
          existing .app bundle.
    - features:
        - cleaner structure for better maintenance
        - cleaner output during compile
        - better handling of build options
        - general overall speed increase
        - see the wiki for more info

  Cygwin, FreeBSD and Solaris systems still need work. For these systems:
    1) copy a config/(platform)-config.py to ie. config/cygwin-config.py
    2) set the proper defaults for your platform
    3) mail me at jesterking at letwory dot net with you configuration. if
       you need any modifications to the system, do send a patch, too.

  I'll be giving first-aid today and tomorrow, after that it'll be all
  regular development work :)

  /Nathan
2006-02-04 14:15:10 +00:00
Kent Mein
8e9222ec21 More simple fixes to cleanup warnings and what not:
extern/bullet/BulletDynamics/ConstraintSolver/SimpleConstraintSolver.h
        added newline at end of file.
 intern/boolop/intern/BOP_Face2Face.cpp
        fixed indentation and had nested declarations of a varible i used
                for multiple for loops, changed it to just one declaration.
 source/blender/blenkernel/bad_level_call_stubs/stubs.c
        added prototypes and a couple other fixes.
 source/blender/include/BDR_drawobject.h
 source/blender/include/BSE_node.h
 source/blender/include/butspace.h
 source/blender/render/extern/include/RE_shader_ext.h
        added struct definitions
 source/blender/src/editmesh_mods.c
 source/gameengine/Ketsji/KX_BlenderMaterial.cpp
 source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
 source/gameengine/Ketsji/KX_RaySensor.cpp
        removed unused variables;
 source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
        changed format of case statements to avoid warnings in gcc.

Kent
2006-01-30 19:59:33 +00:00
Jens Ole Wund
40237b6e57 some more msvc6 magic 2005-11-16 23:39:49 +00:00
Alexander Ewering
6b8007a8a3 Bjornmose's fixes for making booleans compile on MSVC 6.
Thanks!
2005-11-11 23:10:10 +00:00
Jens Ole Wund
e25b7c519e special service for msvc6 projects
post build step for booleans --> copy boolop.lib to lib folder _foo_/lib/windows..

enabeling bullet for GE
wants to link with _foo_/lib/windows/bullet/lib/bullet3.lib
you have to build it with continuous.dsw in exten/bullet and copy it manually there
since bullet is exten i think no automagic in place here
2005-11-11 20:15:16 +00:00
Jens Ole Wund
e52c277423 adding msvc6 project to boolops 2005-11-09 19:27:25 +00:00
Joseph Gilbert
beece21d1f project file update
*Added the boolop project
2005-11-03 20:07:55 +00:00
Ken Hughes
881f3419c6 -- avoid some divide-by-zero errors/assertions in boolean modifiers which
caused "Trace/BPT trap" errors (don't normalize zero-length vectors)
2005-11-01 19:42:55 +00:00
Johnny Matthews
e6f5f9bf85 fixing case issue for blender_BOP.lib to blender_bop.lib 2005-10-29 13:47:41 +00:00
Johnny Matthews
1d366b3fe9 Scons files for Boolop
also a fix in BOP_Material so that MSVC won't complain about template issues
2005-10-29 13:26:31 +00:00
Alexander Ewering
d243bfb61e New files from new booleans 2005-10-28 20:17:27 +00:00