Torque3D/Engine/lib/convexDecomp
2023-06-08 13:31:34 -05:00
..
CMakeLists.txt * BugFix: Correct convexDecomp compilation by setting the LINUX flag when necessary. 2022-05-30 16:32:45 -04:00
NvConcavityVolume.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvConcavityVolume.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvConvexDecomposition.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvConvexDecomposition.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvFloatMath.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvFloatMath.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvFloatMath.inl Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvHashMap.h Fixed compile errors on linux (obvious programming faults). 2016-06-10 10:34:00 +02:00
NvMeshIslandGeneration.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvMeshIslandGeneration.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvRayCast.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvRayCast.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvRemoveTjunctions.cpp bsd ready 2023-05-10 14:58:47 +02:00
NvRemoveTjunctions.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvSimpleTypes.h clean up 2023-05-12 11:42:06 +02:00
NvSplitMesh.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvSplitMesh.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvStanHull.cpp clean up 2023-05-12 11:42:06 +02:00
NvStanHull.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvThreadConfig.cpp clean up 2023-05-12 11:42:06 +02:00
NvThreadConfig.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
NvUserMemAlloc.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
readme.txt Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
wavefront.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
wavefront.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00

The ConvexDecomposition library was written by John W. Ratcliff mailto:jratcliffscarab@gmail.com

What is Convex Decomposition?

Convex Decomposition is when you take an arbitrarily complex triangle mesh and sub-divide it into
a collection of discrete compound pieces (each represented as a convex hull) to approximate
the original shape of the objet.

This is required since few physics engines can treat aribtrary triangle mesh objects as dynamic
objects.  Even those engines which can handle this use case incurr a huge performance and memory
penalty to do so.

By breaking a complex triangle mesh up into a discrete number of convex components you can greatly
improve performance for dynamic simulations.

--------------------------------------------------------------------------------

This code is released under the MIT license.

The code is functional but could use the following improvements:

(1) The convex hull generator, originally written by Stan Melax, could use some major code cleanup.

(2) The code to remove T-junctions appears to have a bug in it.  This code was working fine before,
	but I haven't had time to debug why it stopped working.

(3) Island generation once the mesh has been split is currently disabled due to the fact that the
	Remove Tjunctions functionality has a bug in it.

(4) The code to perform a raycast against a triangle mesh does not currently use any acceleration
	data structures.

(5) When a split is performed, the surface that got split is not 'capped'.  This causes a problem
	if you use a high recursion depth on your convex decomposition.  It will cause the object to
	be modelled as if it had a hollow interior.  A lot of work was done to solve this problem, but
	it hasn't been integrated into this code drop yet.