Commit Graph

86 Commits

Author SHA1 Message Date
Robert Adams
9de3979f5b BulletSim: add gImpact shape type. Add logic to use gImpact shape
for prims that have cuts or holes. Default logic to 'off' as it
needs debugging.
2013-05-21 15:32:10 -07:00
Robert Adams
5d25bb3084 BulletSim: zero vehicle motion when changing vehicle type.
Rebuild compound linkset of any child in the linkset changes shape.
Comments and better detailed logging messages.
2013-05-03 14:23:53 -07:00
Robert Adams
4042c82a72 BulletSim: prims with no cuts created with single convex hull shape.
Parameter added to enable/disable this feature.
2013-05-02 12:27:30 -07:00
Robert Adams
d9c3947824 BulletSim: Rebuild physical body if physical shape changes for mesh and hull.
Properly rebuilds collision caches.
Release asset data fetched when building mesh or hulls.
2013-05-02 10:06:12 -07:00
Robert Adams
ed46b42fea BulletSim: fix crash when mesh asset wasn't available when meshing
the first time.
Debugging added for mesh/hull asset fetch.
2013-05-01 17:16:46 -07:00
Robert Adams
2da8e60b6d BulletSim: code for creating the avatar capsule shape. 2013-04-29 07:38:44 -07:00
Robert Adams
e5582939fd BulletSim: massive refactor of shape classes. Removed shape specific code from BSShapeCollection. Using BSShape* classes to hold references to shape. Simplified shape dependency callbacks. Remove 'PreferredShape' methods and have each class specify shape type. Disable compound shape linkset for a later commit that will simplify linkset implementation. 2013-04-29 07:38:40 -07:00
Robert Adams
890cb6a293 BulletSim: complete BSShape classes. 2013-04-29 07:38:35 -07:00
Robert Adams
c22a2ab7d2 BulletSim: partial addition of BSShape class code preparing for
different physical mesh representations (simplified convex meshes)
and avatar mesh.
2013-04-24 08:05:42 -07:00
Robert Adams
e1ac683154 BulletSim: fix crash when deleting llVolumeDetect enabled objects. Bullet's check for an object being linked into the world does not work for Bullet's ghost objects so BulletSim was deleting the object while it was still linked into the physical world structures. 2013-04-22 16:50:06 -07:00
Robert Adams
59135c9a31 BulletSim: add Bullet HACD library invocation. Turned off by default as not
totally debugged. Updated DLLs and SOs with more debugged HACD library code.
2013-04-09 18:00:23 -07:00
Robert Adams
abde0d4efb BulletSim: prevent asset fetching loop when the fetched asset fails to mesh.
Check for the case where the fetched mesh asset fails meshing (degenerate
triangles or no physical mesh). In this case, the asset is marked 'failed'
and BulletSim doesn't keep trying to fetch over-and-over trying to get a
good asset.
2013-03-26 15:02:10 -07:00
Robert Adams
953090fd62 BulletSim: fix possible race condition where an prim's asset can be requested quicker than the asset fetcher returns and thus falsely reporting that an asset was not fetched and defaulting the assset to a bounding box. 2013-03-25 15:40:43 -07:00
Robert Adams
f783b9169f BulletSim: parameterize C# HACD hull creation. Add feature of reducing max hull count for simple (non-cut prims) meshes. 2013-03-25 15:40:41 -07:00
Robert Adams
90b9121e66 BulletSim: change 'degenerate mesh' message from Error to Debug because there
seem to be lots of sculpties with this problem while the condition really doesn't
change region operation.
2013-03-19 17:15:24 -07:00
Robert Adams
efb5da0aa6 BulletSim: add OutOfBounds logic and some position sanity checking
to eliminate some of the "cannot find terrain height" warning messages.
2013-02-21 08:52:11 -08:00
Robert Adams
0baa2590be BulletSim: check for completely degenerate meshes (ones with all
triangles having zero width) and output an error rather than
throwing and exception.
2013-02-06 15:52:28 -08:00
Robert Adams
67d92e4e16 BulletSim: remove an exception which occurs if a physics mesh
asset is not found.
2013-02-06 14:00:27 -08:00
Robert Adams
3646361279 BulletSim: make removing zero width triangles from meshes optional
and, for the moment, default to 'off'.
2013-02-05 17:19:55 -08:00
Robert Adams
dce9e323f4 BulletSim: remove degenerate triangles from meshes. This fixes the
invisible barriers in sculptie doorways (Mantis 6529).
Bump up level-of-detail for physical meshes to 32 (the max). This
fixes the invisible barriers that showed up in prim cut arches.
NOTE: the default LOD values are removed from OpenSimDefaults.ini.
   If you don't change your OpenSimDefaults.ini, you will continue
   to see the arch problem.
2013-02-05 16:56:33 -08:00
Robert Adams
13233da66c BulletSim: add debugging looking for doorway sculpty problems 2013-02-05 16:56:28 -08:00
Robert Adams
75a05c16c5 BulletSim: fix crash caused when linksets were rebuilt. A problem added
when individual child pos/rot changes were implementated a week or so ago.
Remove some passing of inTaintTime flag when it was never false.
2013-01-31 15:56:10 -08:00
Robert Adams
ed71c939fc BulletSim: make sure vehicle physical properties are set when going
physical by delaying setting until pre-step time. Change vehicle.Refresh()
to schedule the pre-step setting.
Comments and updating of TODO list.
2013-01-31 15:56:02 -08:00
Robert Adams
5d098d8f17 BulletSim: don't modify angular parameters when doing LIMIT_MOTOR_UP.
It was a dumb idea to try and do a nose over feature for jumping cars anyway.
Add better logging of native shape creation/reuse so can  tell the difference.
2013-01-15 21:08:46 -08:00
Robert Adams
61ff79587b BulletSim: add debugging messages to know when assets for physical
objects have been fetched.
Update TODO list with more work.
2013-01-15 21:08:46 -08:00
Robert Adams
459fcd81c9 BulletSim: move center of gravity of linkset to its geometric center.
Necessitated allowing simulator and physical position of a body to
get out of sync since Bullet assumes that <0,0,0> is the center of mass.
Update DLLs and SOs for the UpdateChildTransform so positions of
  individual prim in a linkset can be implemented.
2013-01-11 16:47:53 -08:00
Robert Adams
2eba80a8cd BulletSim: fix problem where mesh shapes were physically just their bounding box and not the complete mesh. Fill mesh physical objects are back. 2013-01-04 17:06:52 -08:00
Robert Adams
9d840fd2ee BulletSim: move over and port the interface for BulletXNA.
Copied BulletSNPlugin.BulletSimAPI to a new
BulletSPlugin.BSAPIXNA.cs and then modifyed the latter to
comply with the BSAPITemplate definition. Not totally debugged
but the code is all there for an INI variable to select either
unmanaged C++ Bullet or the C# version of Bullet.
2013-01-01 17:27:33 -08:00
Robert Adams
04132d3af4 BulletSim: subclass Bullet[World|Body|Shape|Constraint] for unmanaged
to have pointers and managed to have objects.
Initial paste of XNA code. Commented out.
2013-01-01 17:27:32 -08:00
Robert Adams
c2a7af18b6 BulletSim: nearly complete in conversion from BulletSimAPI to BSAPITemplate. Only initialization and debug fuctions left. 2012-12-31 19:57:23 -08:00
Robert Adams
5379d6d112 BulletSim: remove all the debug printing of pointer formatting (.ToString(X)) and replace it with a method on BulletBody, BulletShape, ... 2012-12-31 19:57:22 -08:00
Robert Adams
9218748321 BulletSim: another round of conversion: dynamics world and collision object functions. 2012-12-31 19:57:22 -08:00
Robert Adams
48f718f39f BulletSim: first round of conversion from direct BulletSimAPI interfacing by BulletSim core to using the BulletSimAPITemplate. Physical object creation and destruction first. 2012-12-31 19:57:21 -08:00
Robert Adams
db6c0363f0 BulletSim: tweeking avatar capsule code in an attempt to have
asymmetrical avatar capsule work now that rotation is being passed
from the simulator. Turns out the Bullet capsule is just not very
functional: it doesn't scale properly, the implementation only half
does asymmetry and, in general, is hard to work with.
Avatar shape is about what it was before these changes.
Added initial data structures for avatar shape mesh.
2012-12-29 08:03:57 -08:00
Robert Adams
bbc5a5089f BulletSim: Rename some of the interface structures (BulletWorld, ...)
to get ready for...
Start creation of BulletAPITemplate. This defines the abstract interface
functions. Following commits will move over to the new interface.
This will enable switching between the managed and unmanaged version of
Bullet.
2012-12-24 20:18:06 -08:00
Robert Adams
ae4d932e7f BulletSim: Move all the parameter variables, tables and get and fetch logic to a separate, static class for easier addition and to remove all that bulk from the BSScene class. 2012-12-21 13:35:44 -08:00
Robert Adams
e1814aa827 BulletSim: fix problem of avatar's floating off the ground after unsitting. Reworked size/scale logic so physical scale is kept in Bullet and physObject scale is the preferred size -- usually same as size but avatars are computed differently. 2012-12-12 16:51:43 -08:00
Robert Adams
8b861e880a BulletSim: add ini file and command line parameters to control
dumping of physical vehicle parameters (out of Bullet) on each
simulation step and to optionally scale vehicle angular velocity
by the time step. The latter looks to be part of a difference
between angular parameters for ODE and BulletSim. SL docs say
angular velocity is measured in radians/timeScale. Not sure if this
is different than what ODE does.
2012-12-11 00:13:13 -08:00
Robert Adams
9df85eadf4 BulletSim: Fix crash on the destruction of physical linksets.
While fixing the above, add methods to physical body and shape pointer
wrapper so routines won't have to know that IntPtr.Zero means no
physical instance.
Fix problem with physical linksets failing after a few sits and
unsits by properly restoring child prom positions for compound
linksets after multiple selection and deselections.
2012-12-10 15:35:53 -08:00
Robert Adams
216c121935 BulletSim: fix small problem with setting size/scale of native shapes which caused the native shapes to be rebuilt when not necessary. 2012-12-08 09:14:34 -08:00
Robert Adams
18fe35906d BulletSim: add detail logging detail flag so I don't have to comment and uncomment the detail logging when changing the depth of logged info. 2012-12-06 09:30:57 -08:00
Robert Adams
0cd99c74a7 BulletSim: add expanded call to IMesher/Meshmerizer which enables/disables mesh caching. Since BulletSim caches and tracks the unmanaged memory version of meshes, the Meshmerizer itself does not need to cache built meshes once BulletSim has made the physical proxy mesh. 2012-11-29 09:24:53 -08:00
Melanie
3b2caa63b0 Rename BulletSim's PhysicsShapeType to BSPhysicsShapeType because it
conflicts with PhysicsShape type defined in later libOMV
2012-11-22 14:45:41 +00:00
Robert Adams
cbc7e7bf85 BulletSim: Make avatar capsule so it is not circular.
Simple attempt to make avatars better shaped.
Replace parameter 'avatarCapsuleRadius' with 'avatarCapsuleWidth'
and 'avatarCapsuleDepth'.
More tweeking to avatar height calculation. A little better but
short avatar's feet are above the terrain and tall avatar's feet
are a little below the ground.
2012-11-21 16:43:53 -08:00
Robert Adams
8dd5813889 BulletSim: rename SHAPE_AVATAR to SHAPE_CAPSULE with the eye to eventually having mesh avatars. 2012-11-21 16:43:06 -08:00
Robert Adams
65e55ada87 BulletSim: uplevel FixedShapeKey out of ShapeData structure (since it is getting simplified out of existance someday) and update all the references to same. 2012-11-21 16:42:58 -08:00
Robert Adams
d6db0d5740 BulletSim: uplevel PhysicsShapeType out of ShapeData structure (since it is getting simplified out of existance someday) and update all the references to that enum. 2012-11-21 16:42:50 -08:00
Robert Adams
4d29488216 BulletSim: change PositionSanityCheck to apply a force to correct position corrections (below ground and floating). 2012-11-21 16:42:42 -08:00
Robert Adams
79f7c466a1 BulletSim: fix compound linkset crash by not freeing shape of child prims.
Remove all compilation warnings (mostly 'protected' in sealed classes.)
Add the dynamicAabbEnable parameter to creation of compound shapes.
2012-11-03 21:16:02 -07:00
Robert Adams
894bb4893b BulletSim: search the mesh and hull lists to find shapes if type is not known. This makes sure the correct accounting is done for the particular shape. 2012-11-03 21:15:54 -07:00