aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSNPlugin/BSTerrainManager.cs (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-12-18* Merges BulletSim Updates to BulletSimN(BulletSNPlugin)teravus1-1/+2
2012-12-23* Initial commit of BulletSimN (BulletSNPlugin). Purely C# implementation ↵teravus1-2/+1
of BulletSim. This is designed to be /as close as possible/ to the BulletSim plugin while still being entirely in the managed space to make keeping it up to date easy as possible (no thinking work). This implementation is /slower/ then the c++ version just because it's fully managed, so it's not appropriate for huge sims, but it will run small ones OK. At the moment, it supports all known features of BulletSim. Think of it like.. POS but everything works. To use this plugin, set the physics plugin to BulletSimN.
2012-12-21BulletSim: Move all the parameter variables, tables and get and fetch logic ↵Robert Adams1-5/+5
to a separate, static class for easier addition and to remove all that bulk from the BSScene class.
2012-12-16BulletSim: refactor to combine common terrain height testing code. Add ↵Robert Adams1-38/+48
function to test if a position is over known terrain.
2012-12-16BulletSim: remove some errors on shutdown by moving terrain destruction ↵Robert Adams1-1/+9
until after physical object destruction. TerrainManager also made disposable and that feature used.
2012-12-13BulletSim: Add 'BulletSimData' which separates structures createdRobert Adams1-2/+2
for the operation of BulletSim and those defintiions/structures defined so they can be used in the unmanaged world. Consolidate setting of collision flags so implementation is not scattered.
2012-12-10BulletSim: Fix crash on the destruction of physical linksets.Robert Adams1-2/+2
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-03BulletSim: Reduce idle region physics overhead where there are MANYRobert Adams1-2/+2
static objects by more restrictive selection of objects that collide with static objects. Rename collision mask fuctions from 'filter' to 'group' so it is clear what is being set. Rename BulletSimAPI.SetCollisionFilterMask() to SetCollisionGroupMask to match above. Restore passing of time step to linear and angular motion component routines. Use buffering vehicle physical parameter get/set routines consistantly. Make range enforcement clearer by using ClampInRange() function for parameter setting. Remove commented out experimental vehicle calculations.
2012-11-28BulletSim: move GetWaterLevelAtXYZ from BSScene to BSPhysTerrain.Robert Adams1-2/+31
2012-11-25BulletSim: add parameter for terrain collision margin.Robert Adams1-49/+44
Add locking around unlikely but possible race conditions on terrain list.
2012-11-22Rename BulletSim's PhysicsShapeType to BSPhysicsShapeType because itMelanie1-1/+1
conflicts with PhysicsShape type defined in later libOMV
2012-11-21BulletSim: Make avatar capsule so it is not circular.Robert Adams1-1/+1
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-21BulletSim: Properly position mesh terrain on creation (fixes terrain not ↵Robert Adams1-39/+35
appearing to be working). Centralize terrain shape creation logic. Remove very chatty detail log messages.
2012-11-21BulletSim: add terrainImplementation parameter with default to Mesh.Robert Adams1-5/+40
2012-11-21BulletSim: enablement and debugging of mesh terrain.Robert Adams1-8/+18
2012-11-21BulletSim: pull heightmap implementation out of the terrain manager so a ↵Robert Adams1-179/+78
mesh terrain can be implemented.
2012-11-21BulletSim: uplevel PhysicsShapeType out of ShapeData structure (since it is ↵Robert Adams1-2/+2
getting simplified out of existance someday) and update all the references to that enum.
2012-11-03BulletSim: debugging of compound shape implementation of linksets.Robert Adams1-17/+4
Add compound shape creation and freeing in shape manager. Add optional taint-time execution method and update code to use it. Add API2 linkage for more compound shape methods (get num, get/remove by index, ...) Modify perferred shape return so linkset children can have differet shapes than root. Add Position and Orientation calls to linksets so children can be moved around by the linkset by its own calculation. Allows for very general linkset implementations.
2012-11-03BulletSim: Add banking and other new code to vechile dynamics. Add third ↵Robert Adams1-1/+1
party license and contributor in for for Aurora-Sim project for physics code.
2012-10-23BulletSim: fix problem with avatars sinking into the ground.Robert Adams1-2/+2
Change terrain activation state to DISABLE_SIMULATION for better performance.
2012-10-22BulletSim: fix bug that caused error (and a crash on 32 bit Linux) when mesh ↵Robert Adams1-3/+1
assets weren't already in the cache. Comment cleanups.
2012-10-19BulletSim: reorder avatar collision checking to eliminate double collision_end.Robert Adams1-0/+1
Various tweekings to avatar shape/mass/inertia/etc. Remove change from avatar radius to diameter. But still the avatar sinks. Collision_end now happens immediately rather than at the next subscription time.
2012-10-19BulletSim: remove code in ShapeCollection that hinted at shape sharing.Robert Adams1-1/+2
Add new function to ParameterDefn for calling BulletSimAPI to set values. Tweaking to BSCharacter parameter setting to try and have avatars stand.
2012-10-11BulletSim: Change defaults for constraint CFM and ERP to make large linksets ↵Robert Adams1-9/+6
more rigid. Remove mass calculation for terrain (it should stay a static object).
2012-10-11BulletSim: cosmetic changes (comments and renaming). Give mass to terrain to ↵Robert Adams1-6/+8
improve interactions.
2012-09-27BulletSim: remove the trailing spaces from lines to make git happierRobert Adams1-16/+16
2012-09-27BulletSim: Fix linkset crash. Caused by the different body and shapeRobert Adams1-1/+2
pointers at runtime and at taint-time. Now passes the body into the taint. Vehicles zero inertia when active to eliminate Bullet's contribution to vehicle motion.
2012-09-27BulletSim: Terrain sets proper collision flags on creation.Robert Adams1-10/+10
Static objects are set to ISLAND_SLEEPING rather than DISABLE_SIMULATION. Might reconsider this and, alternatively, have dynamic objects force activation. Clean up use of DetailLog().
2012-09-27BulletSim: btGhostObjects working to make 'volume detect' work.Robert Adams1-2/+10
Rearrangement and cleanup of shape collection code. Much more readable. Enabling and use of collision filters and masks. Addition of ID to body creation BulletSimAPI calls so always set in shape for collision reporting. Change default of ShouldSplitSimulationIslands and ShouldRandomizeSolverOrder from 'false' to 'true'. When 'false', this suppresses NO_CONTACT_RESPONSE which makes volume detect fail.
2012-09-27BulletSim: renamed members of BulletShape, BulletSim and BulletBodyRobert Adams1-23/+23
so the members case is consistant. Caused modifications everywhere. New logic in BSShapeCollection to track use and sharing of shapes. I just reslized, though, that shapes cannot be shared because the shape's UserPointer is the localID of the prim and is required for tracking collisions. More changes coming. Added DuplicateCollisionShape2() to API and changed BuildNativeShape2 to take a ShapeData structure so don't have to pass so many parameters. This matches the latest version of BulletSim.dll. Additions and removal of DetailLog() statements for debugging.
2012-09-27BulletSim: add class and infrastructure for shape and objectRobert Adams1-2/+5
tracking in the C# code. Needed for the changing body type (to and from GhostObjects) for volumeDetect.
2012-09-27BulletSim: Convert BSCharacter to use common BSPhysObject code and variables.Robert Adams1-33/+34
Fix avatar height calculation to properly account for the capsule ends. Rearrange some locking in TerrainManager to eliminate possible race conditions. Move DetailLog() definition into common BSPhysObject class. Some variable renaming to make usage clearer (refactor.rename makes this so easy).
2012-09-15BulletSim: Way too many changes in one commit.Robert Adams1-22/+38
Many changes to BSDynamic for readability and commentary. Linkset hacking for vehicles: don't over mass the root prim. Add parameter for link constraint solver iterations. Correct uses of timestep in timescale calculations for vehicles. Reorganize code/logic for making objects static and dynamic for readability and use of API2. Changed most calls in BSPrim to use API2 calls (the new way). Avatars do not generate default Bullet collision events but do call up to the simulator for every avatar. Reduces overhead. Objects added to collision list only if they are processing collisions. Reduces overhead especially for large numbers of avatars. Generalize call for water height to GetWaterHeightAtXYZ(). Catch and correct exception getting terrain height when out of bounds. Correct race condition in Terrain Manager where creation wasn't at taint-time. Add API calls for constructing compound shapes. Move NeedsMeshing() logic into object class. Reorganize logic for object meshing to reduce rebuilding of meshs/hulls.
2012-09-07BulletSim: Add Bullet body and shape to BSPhysObject and renameRobert Adams1-2/+2
'Body' to 'BSBody' for disambiguation when reading code. Complete the API2 interface so nearly all methods on bullet classes are available to the managed code. The efficient single call simulation step is kept in place while all other creation/destruction/parameterization can be done in the managed code.
2012-09-07BulletSim: Add some comments (gasp) and log messages.Robert Adams1-2/+2
2012-08-31BulletSim: Update BulletSimAPI to match the DLL interface.Robert Adams1-132/+224
Major rework of terrain management which finally makes mega-regions work. Update heightmap of terrain by rebuilding the terrain's body and shape. There is a problem with just replacing the shape so this workaround will do for the moment but it will need to be resolved for mesh and hull switching.
2012-08-31BulletSim: clean up some variable naming for consistancy.Robert Adams1-37/+102
Update DLL API for new terrain and shape/body pattern methods. Terrain creation and modification uses new shape/body pattern. Move debug logging callback set to initialization call so logging is per physics engine.
2012-08-31BulletSim: Changes to terrain storage and management so mega-regions work.Robert Adams1-0/+307
Moved all terrain code out of BSScene and into new BSTerrainManager. Added logic to manage multiple terrains for mega-regions. Added new functions to BulletSimAPI to match the library. Moved all of the terrain creation and setup logic from C++ code to C# code. The unused code has not yet been removed from either place. Soon. Moved checks for avatar above ground and in bounds into BSCharacter.