Robert Adams
67d5dbbb49
BulletSim: add classes for physics motors. Eventually these will replace the manual code for vehicles and add PID functionality to avatar movement.
2012-11-07 15:28:06 -08:00
Robert Adams
ee00c5c885
BulletSim: many changes to tune vehicles for BulletSim.
...
The problem left is that the vehicle sitting on something needs
to press down for gravity and what its sitting on pushes up
so the vehicle does not penetrate. The effect is Bullet calculates
a lot of random angular motion for the vehicle. Various schemes
of damping and zeroing has not resolved the problem.
2012-11-06 18:16:47 -08:00
Robert Adams
76cc303031
BulletSim: Add ZeroAngularMotion method to physical objects. Add inTaint flag to ZeroMotion method. Update the references to those functions.
2012-11-06 18:16:35 -08:00
Robert Adams
e2130817e5
BulletSim: remove limit on taints that can happen before a step. Remove some debugging code (detail log flushing).
2012-11-06 18:16:23 -08:00
Robert Adams
f70a3099b5
BulletSim: recalculate the compound shape bounding box when built.
2012-11-06 18:16:12 -08:00
Robert Adams
702fd1e094
BulletSim: only compute linkset mass when membership changes rather than everytime someone asks for it.
2012-11-06 18:16:00 -08:00
Robert Adams
36d77fe27c
BulletSim: Add separate linear and angular damping function calls. Add function for recalculating compound shape bounding box.
2012-11-06 18:15:48 -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
Robert Adams
498ea76e63
BulletSim: Move construction of compound linkset from ShapeCollection
...
into LinksetCompound where it should be.
Create meshes for native shapes when part of a compound linkset because
scale is currently per object and not per collision shape.
Don't schedule a LinksetCompound refresh if just changing properties.
2012-11-03 21:15:46 -07:00
Robert Adams
1dc23b2b97
BulletSim: parameterize selection of linkset implementation
2012-11-03 21:15:39 -07:00
Robert Adams
b0eccd5044
BulletSim: debugging of compound shape implementation of linksets.
...
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-03 21:15:30 -07:00
Robert Adams
f53b4e7a21
BulletSim: Add RawPosition and RawOrientation to BSPhysObject and rename MassRaw to RawMass. Fix BSShapeCollection to use Raw* for creating the body to eliminate exception from referencing the physical body before it has been created.
2012-11-03 21:15:22 -07:00
Robert Adams
39c02dcc8c
BulletSim: Remove use of shapeData in ShapeCollection and rely on the available BSPhysObject varaiables. Fix line endings in BSLinksetCompound.
2012-11-03 21:15:14 -07:00
Robert Adams
364a7c3088
BulletSim: rename BSBody and BSShape to PhysBody and PhysShape. Add skeleton of BSLinksetCompound.
2012-11-03 21:15:06 -07:00
Robert Adams
28e2cd3fa2
BulletSim: vehicle tweeking.
...
Add AddTorque() method to BSPrim. Remove some manual motor actions
in computing angular force (will eventually be replaced with motor class).
Remove some experimental changes.
2012-11-03 21:14:58 -07:00
Robert Adams
52be581f71
BulletSim: remove center-of-mass setting for linksets because it causes the constraint calculation to pull the objects together.
2012-11-03 21:14:49 -07:00
Robert Adams
93fe384cce
BulletSim: Use the PostTaints operation to build the linkset once before the next simulation step. This eliminates the management of children vs taintChildren and simplifies the constratin creation code.
2012-11-03 21:14:41 -07:00
Robert Adams
42d65840c8
BulletSim: Add gravity force to vehicle. Some debugging additions.
2012-11-03 21:14:33 -07:00
Robert Adams
dae038a117
BulletSim: fix problem with multiple linksets stepping on each other if they are built at the same time.
2012-11-03 21:14:25 -07:00
Robert Adams
4cfa3be4ef
BulletSim: add definitions for linkset collision mask
2012-11-03 21:14:16 -07:00
Robert Adams
bc43c7007d
BulletSim: code rearrangement
2012-11-03 21:14:08 -07:00
Robert Adams
8c9e4c1f7b
BulletSim: Use Refresh/PostTaints to cause recomputing of constraint variables before the simulation step. Update logging and messages to properly name LinksetConstraints. Use UpdatePhysicalMassProperties to put the whole linkset mass into all the physical linkset members so they have the inertia to move the whole linkset.
2012-11-03 21:14:00 -07:00
Robert Adams
9568f24c26
BulletSim: add post taint taints and post step taints. The post taints operation is most useful and is used by linksets to build and rebuild only once before the simulation step.
2012-11-03 21:13:52 -07:00
Robert Adams
2f25f70316
BulletSim: remove unneeded parameter from Refresh().
2012-11-03 21:13:44 -07:00
Robert Adams
e20bad12cc
BulletSim: centralize mass/inertia computation with UpdatePhysicalMassProperties() function. Didn't add setMassRaw because assignment with side effect is dirty.
2012-11-03 21:13:35 -07:00
Robert Adams
7af28724ac
BulletSim: rename constraint classes so they show up together alphabetically.
2012-11-03 21:13:27 -07:00
Robert Adams
92d3c611e5
BulletSim: many small changes for vehicles simulation.
2012-11-03 21:13:19 -07:00
Robert Adams
2b75035aef
BulletSim: add ForEachMember(action) call for linkset.
2012-11-03 21:13:11 -07:00
Robert Adams
8fa83cf430
BulletSim: Add activations after vehicle properties change. Problem was the vehicle was going to sleep while waiting for commands. Make AddAngularForce work the same way as AddForce -- accumulates values and pushes them once into Bullet.
2012-11-03 21:13:03 -07:00
Robert Adams
b83449ae9a
BulletSim: correct spelling of Bullet call. It's 'swept' not 'sweep'.
2012-11-03 21:12:54 -07:00
Robert Adams
804b332d45
BulletSim: Add banking and other new code to vechile dynamics. Add third party license and contributor in for for Aurora-Sim project for physics code.
2012-11-03 21:12:46 -07:00
Dan Lake
ffe4d738fb
Add TargetVelocity to PhysicsActor interface to support distributed physics. No change to existing functions.
2012-10-31 17:13:18 -07:00
Justin Clark-Casey (justincc)
ff6c69000e
Log warning if mesh/sculpt asset couldn't be found by ODEPrim.MeshAssetReceived() callback.
...
Presumably this is now more useful if the false positive from the old method of loading mesh assets have been eliminated.
2012-10-30 01:40:59 +00:00
Justin Clark-Casey (justincc)
cccf695327
Add asset != null check to ODEPrim.MeshAssetReceived instead of throwing exception.
...
In some cases (such as failure to receive response from asset service), it is possible for a null to be returned from IAssetService.Get(string, object, AssetRetrieved).
2012-10-30 01:14:48 +00:00
Justin Clark-Casey (justincc)
37de965233
Make MeshAssetReceived private.
...
Keep methods private unless they need to be opened up to external callers. Reduces analysis complexity.
2012-10-30 01:08:00 +00:00
Justin Clark-Casey (justincc)
aeeed29d62
correct ODEPrim.MeshAssetReveived -> MeshAssetReceived
2012-10-30 01:07:14 +00:00
Robert Adams
b6fc5bad00
BulletSim: fix problem with avatars sinking into the ground.
...
Change terrain activation state to DISABLE_SIMULATION for better performance.
2012-10-23 17:30:43 -07:00
Robert Adams
b49f8a377b
BulletSim: minor change to insure avatar body recreation when shape changes.
2012-10-23 08:02:26 -07:00
Robert Adams
36bfd3667c
BulletSim: remove chatty debug message.
2012-10-22 22:25:06 -07:00
Robert Adams
14eeb8b31b
BulletSim: fix bug that caused error (and a crash on 32 bit Linux) when mesh assets weren't already in the cache. Comment cleanups.
2012-10-22 22:24:59 -07:00
Robert Adams
7272a4cae8
BulletSim: fix problem of not rebuilding shape by clearing last rebuild failed flag in BSPrim.ForceBodyShapeRebuild()
2012-10-22 22:24:51 -07:00
Robert Adams
65c131c4a3
BulletSim: remove trailing spaces to make git happy.
2012-10-22 22:24:44 -07:00
Robert Adams
c245178eee
BulletSim: encorporate UBit's suggestion to save a copy of mesh raw data.
2012-10-22 22:24:37 -07:00
Robert Adams
a61f20ac74
BulletSim: Create LinkSet abstract class and sparate constraint based linksets into own subclass. Will eventually add manual movement linkset subclass.
2012-10-22 22:24:30 -07:00
Justin Clark-Casey (justincc)
5bc07a15f5
minor: remove unnecessary bit of method doc from OdePrim.BadMeshAssetCollideBits that monodevelop inserted automatically
2012-10-20 02:52:38 +01:00
Justin Clark-Casey (justincc)
d2b19f00da
Fix minor issues from commit 28483150
...
Fix spelling of collide, change to more self-documenting property BadMeshAssetCollideBits, add method doc, change to private to reduce code analysis complexity
2012-10-20 02:49:16 +01:00
Robert Adams
d94c4646cc
BulletSim: add asset fetching so BulletSim works with new physics asset handling.
...
Refactor some names to make them available for the asset tracking and fetching.
2012-10-19 15:43:31 -07:00
Robert Adams
f422b9b388
BulletSim: reorder avatar collision checking to eliminate double collision_end.
...
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-19 10:52:31 -07:00
Robert Adams
e87a179c89
BulletSim: change nonimal physics frame rate to 55 to give same numbers as ODE.
...
Change character scaling to represent size of capsule (diameter rather than radius)
Modify create capsule call to pass radius and height.
Eliminate errors when calculating shape inertia (should have some type checking).
2012-10-19 10:52:23 -07:00
Robert Adams
fc33afddd3
BulletSim: remove code in ShapeCollection that hinted at shape sharing.
...
Add new function to ParameterDefn for calling BulletSimAPI to set values.
Tweaking to BSCharacter parameter setting to try and have avatars stand.
2012-10-19 10:52:14 -07:00
Robert Adams
eaccfa6d99
BulletSim: Fix small problems with last patch: BSScene.World properly initialized and setting of C++ parameters commented out. Comments and logging added.
2012-10-19 10:52:06 -07:00
Robert Adams
fd7a097849
BulletSim: Update BSCharacter to use API2 interface.
...
Add capsule shape to BSShapeCollection().
Remember last updated values so inter frame diffs can be computed.
Parameterize avatarStandingFriction and reduce to 10 from 999.
The latter high value made avatars very hard to push.
Set CCD parameters for prims and characters of specified.
2012-10-19 10:51:58 -07:00
UbitUmarov
28483150e2
[UNTESTED] core Ode: let broken mesh physical prims collide with land as
...
the defaul basic box so they don't go off world.
2012-10-19 01:19:48 +01:00
UbitUmarov
b058ba5859
[UNTESTED] core Ode: stop trying to load a broken asset. Make broken
...
assets behave like phantom by Nebadon request
2012-10-19 00:30:48 +01:00
UbitUmarov
de44e93aa2
missing changed file
...
Signed-off-by: Melanie <melanie@t-data.com>
2012-10-18 20:58:34 +01:00
UbitUmarov
1e7fb2dc36
i update core ode plugin and make it load is meshs (i hope)
...
Signed-off-by: Melanie <melanie@t-data.com>
2012-10-18 20:58:12 +01:00
Robert Adams
8c40215834
BulletSim: only use native sphere shape if it is a sphere.
2012-10-12 07:41:31 -07:00
Robert Adams
87a87ebb9a
BulletSim: fix problem with some shapes (like cylinders) being implemented as cubes.
2012-10-11 17:37:27 -07:00
Robert Adams
b24190ec98
BulletSim: remove some unused API2 calls because they were removed from Bullet 2.81
2012-10-11 14:01:29 -07:00
Robert Adams
5b82f18d64
BulletSim: normalize physics FPS to 45 (for real this time).
2012-10-11 14:01:25 -07:00
Robert Adams
a86fedd25f
BulletSim: normalize physics FPS to 45.
2012-10-11 14:01:22 -07:00
Robert Adams
3a458e2a36
BulletSim: Use full linkset mass when computing vehicle gravity force. Add taint-time specification to new AddForce().
2012-10-11 14:01:18 -07:00
Robert Adams
919569f6ec
BulletSim: Change defaults for constraint CFM and ERP to make large linksets more rigid. Remove mass calculation for terrain (it should stay a static object).
2012-10-11 14:01:14 -07:00
Robert Adams
a791620622
BulletSim: cosmetic changes (comments and renaming). Give mass to terrain to improve interactions.
2012-10-11 14:01:10 -07:00
Robert Adams
68698975f1
BulletSim: Add Force* operations to objects to allow direct push to engine.
...
Update BSDynamics to use same (don't want to delay updates til next taint-time.
Suppress queuing a taint update for position and orientation calls if value
does not change.
Move Bullet timing statistics call from C# back to C++ code.
Throttle taints per simulation step and add parameter to set.
By default, don't create hulls for physical objects. Add a
parameter to turn on and off.
2012-10-11 14:01:07 -07:00
Robert Adams
87825b0abe
BulletSim: Fix crash when linking large physical linksets.
...
Properly remove and restore linkage constraints when upgrading
a prim's mesh to a hull.
Lots more debug logging.
Definitions and use of Bullet structure dumping.
Centralize detail logging so a Flush() can be added for debugging.
2012-10-11 14:01:03 -07:00
teravus
7e90ea3551
av_av_collisions_off = false OdePhysics Settings in OpenSimDefaults.ini - No Avatar Avatar Collisions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment.
2012-10-09 10:41:16 -04:00
teravus
764270a0d8
Add config option to plant avatar where they are reducing avatar avatar 'pushability' av_planted see OpenSimDefaults.ini. Use when you have unruly visitors that rudely push each other around. Still allows a small amount of movement based on the avatar movement PID controller settings. You can increase the spring tension in the PID controller and really prevent any movement if you would like.
2012-10-09 09:26:11 -04:00
teravus
a2ab3b88de
Soliciting for comments on smoothness of physics objects for this build.
...
This introduces expected contact point hints to the ODE Collider to better determine when to throttle updates as excessive. This /should/ smooth physics objects out again, however, I cannot know every configuration of OpenSimulator, so I'm requesting that testers please examine this change on their build.
Thanks!
2012-10-03 18:30:44 -04:00
teravus
e56ef2720e
I propose that 0.5m/step change for linear velocity is too big of a change to control the reporting of a new angular velocity. I think that this could be here for one of two reasons, 1. vehicles and llMoveToTarget with axis lock, or 2. To attempt to make things look more stable in the physics scene then they really are, however, this also really affects the angular velocity reporting negatively causing things to spin wildly and jump back into place repeatedly. To compromise, if the prim is a vehicle or is being used as a motor target, the original functionality is still applied. If that's not the case, angular velocity is reported with a linear velocity of 0.02m/step. To be clear on the effect of the physical world... When you push things, there's still a lag time where you walk into the object but once the object is in motion, it begins to move as you would expect so results in slightly more realistic motion.
2012-10-03 02:30:23 -04:00
teravus
df3d1d1301
Minor Modification, switch /2 to 0.5f in ODEPrim.Velocity
2012-10-02 23:14:35 -04:00
Robert Adams
210f227fe6
BulletSim: Make parameter value defaults match what should be the default and what is in OpenSimDefaults.ini. Comment and debug printout changes.
2012-10-02 11:14:15 -07:00
Robert Adams
ce47d0c454
BulletSim: Add ForcePosition and ForceOrientation to BSPhysObject and to its children of BSPrim and BSCharacter.
2012-10-02 11:14:09 -07:00
Robert Adams
d8a786870b
BulletSim: Fix problem where box shapes were not being rebuilt if the shape type changed.
2012-10-02 11:14:03 -07:00
Robert Adams
ce97ebdc88
BulletSim: Fix linkset problem where delayed manipulations of child objects was using the child shape address at call time rather than the one created at taint time.
2012-10-02 11:13:57 -07:00
Robert Adams
b6b505163c
BulletSim: call ForcePosition and ForceOrientation in BSDynamics so there is no lag between what the vehicle code sees and what the physics engine is using.
2012-10-02 11:13:51 -07:00
Robert Adams
f2c78281ce
BulletSim: fix the FloatOnWater code so avatars can normally go underwater.
2012-10-02 11:13:39 -07:00
Robert Adams
33617e09a1
BulletSim: impliment FloatOnWater OS function.
2012-10-02 11:13:32 -07:00
Robert Adams
c1740a2903
Correct my name in CONTRIBUTORS.txt
2012-10-02 11:13:26 -07:00
Robert Adams
5221f2421e
BulletSim: remove warnings for unused variables.
2012-10-02 11:13:20 -07:00
Robert Adams
76e9cc41bd
BulletSim: remember to release the physical body and shape when a prim is destroyed. This fixes many problems with physical linksets.
2012-09-28 12:34:50 -07:00
Robert Adams
6f89975526
BulletSim: add separate runtime and taint-time linkset children lists to keep the creation of constraints separate from runtime.
2012-09-27 22:02:13 -07:00
Robert Adams
74dea4cfd5
BulletSim: rename some constraint variables to be consistant with other name use.
...
Added callbacks for shape and body changes in GetBodyAndShape() so the linkset
constraints can be picked up and restored. A better design might be to have
a "prim shape changed" event. Think about that.
Added constraint types to general constraint class.
2012-09-27 22:02:08 -07:00
Robert Adams
7b65985047
BulletSim: remove the trailing spaces from lines to make git happier
2012-09-27 22:02:03 -07:00
Robert Adams
5781d4d52d
BulletSim: remove the unused body management code from BSPrim. There is no going back now.
2012-09-27 22:01:57 -07:00
Robert Adams
f82b903dee
BulletSim: Fix linkset crash. Caused by the different body and shape
...
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-27 22:01:52 -07:00
Robert Adams
4589bc84a3
BulletSim: Terrain sets proper collision flags on creation.
...
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-27 22:01:47 -07:00
Robert Adams
735d89e369
BulletSim: btGhostObjects working to make 'volume detect' work.
...
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-27 22:01:42 -07:00
Robert Adams
d016051fa0
BulletSim: renamed members of BulletShape, BulletSim and BulletBody
...
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-27 22:01:37 -07:00
Robert Adams
42802669dd
BulletSim: fix regression that caused cylindar shapes to have a box collision shape
2012-09-27 22:01:31 -07:00
Robert Adams
22290ef35a
BulletSim: complete code for managed code shape and body tracking. Not debugged.
...
Eliminate some null exceptions created adding the above code.
Add and remove some detailed logging statements.
2012-09-27 22:01:26 -07:00
Robert Adams
a27e4ce6cb
BulletSim: add class and infrastructure for shape and object
...
tracking in the C# code. Needed for the changing body type
(to and from GhostObjects) for volumeDetect.
2012-09-27 22:01:21 -07:00
Robert Adams
91efccabdc
BulletSim: Convert BSCharacter to use common BSPhysObject code and variables.
...
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-27 22:01:16 -07:00
Robert Adams
ee7cda261c
BulletSim: move a bunch of common logic out of BSPrim and BSCharacter
...
and into the parent class BSPhysObject.
Rework collision logic to enable extra collision after done colliding.
Rename 'Scene' to 'PhysicsScene' to differentiate it from the simulator 'Scene'.
2012-09-27 22:01:11 -07:00
Robert Adams
b602b476ad
BulletSim: update DLLs and SOs and remove some debugging code.
2012-09-15 15:36:13 -07:00
Robert Adams
c77be802d2
BulletSim: some debugging prints in BSPrim for tracking changes in linkset children.
2012-09-15 15:32:16 -07:00
Robert Adams
1826b2b18e
BulletSim: add the debugging routine DumpRigidBody2() to API2.
2012-09-15 15:32:11 -07:00
Robert Adams
f35bd6eb7d
BulletSim: another attempt at computing physics FPS correctly.
2012-09-15 15:32:05 -07:00
Robert Adams
dcb94b8a24
BulletSim: remove timeStep parameter from calls for vehicle parameter setting. There is no reason these should be using the simulation time interval for parameter calculation.
2012-09-15 15:31:59 -07:00
Robert Adams
6632eb7c05
BulletSim: Remove calculation and passing of unused collied object type.
...
Fix collision code to properly sense mega-region children regions as terrain.
When setting an object physical, reset all the physical properties (friction, ...).
2012-09-15 15:31:54 -07:00
Robert Adams
f0a098924e
BulletSim: set all linkset objects center of mass to the whole linkset's center of mass
2012-09-15 15:31:49 -07:00
Robert Adams
7c347f4c5c
BulletSim: Add calls to linkset class when object going static or dynamic.
...
Reset center of mass on an object when going dynamic.
2012-09-15 15:31:44 -07:00
Robert Adams
d86cbe6379
BulletSim: remove unused NeedsMeshing() code from BSScene.
2012-09-15 15:31:39 -07:00
Robert Adams
c0fec70b1a
BulletSim: Add 'IsNativeShape2' call
2012-09-15 15:31:34 -07:00
Robert Adams
2c5ff93990
BulletSim: Way too many changes in one commit.
...
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-15 15:31:29 -07:00
Robert Adams
126eae7100
BulletSim: Add Bullet body and shape to BSPhysObject and rename
...
'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-07 16:05:28 -07:00
Robert Adams
3c097cb7a9
BulletSim: Add some comments (gasp) and log messages.
2012-09-07 16:05:22 -07:00
Robert Adams
189f51233e
BulletSim: PhysicsActorType() now returns the correct value rather than 'unknown'.
2012-09-07 16:05:16 -07:00
Robert Adams
76dc29dc37
BulletSim: Modify collision flag calls to return the current flags.
...
Track current collision flags in BSPrim.
Add BulletSimAPI calls for saving and restoring rigidBodies using
construction information structure.
2012-09-07 16:05:11 -07:00
Robert Adams
ffdc798720
BulletSim: Update BulletSimAPI to match the DLL interface.
...
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-31 11:41:33 -07:00
Robert Adams
ae852bb873
BulletSim: clean up some variable naming for consistancy.
...
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-31 11:41:28 -07:00
Robert Adams
d3adf9b2b3
BulletSim: fix line endings.
2012-08-31 11:41:23 -07:00
Robert Adams
7c140570db
BulletSim: Changes to terrain storage and management so mega-regions work.
...
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.
2012-08-31 11:41:18 -07:00
Robert Adams
7b6987ce83
BulletSim: unify physical objects under BSPhysObjects. Now BSScene and BSLinkset only know of BSPhysObject's and there is only one list to search in BSScene.
2012-08-31 11:41:12 -07:00
Robert Adams
0376b8ddbc
BulletSim: add new interface for mesh, hull and terrain creation that will move nearly all of the logic into the C# code.
2012-08-31 11:41:07 -07:00
Robert Adams
7243d4f842
BulletSim: Properly regenerate hulls when objects made physical.
...
This fixes the problem of non-base shapes (cubes and spheres)
falling through the terrain.
2012-08-17 14:45:18 -07:00
Robert Adams
03d76e9403
BulletSim: restore most of the Detail logging statements. Will have
...
no effect on non-logging running.
Capture region name that is passed to the physics engine and use
it for detail logging file name prefix.
Fix problem with avatars dropping when flying across region boundries.
2012-08-17 13:34:22 -07:00
Robert Adams
ccc69d66a1
BulletSim: add parameters and functionality to specify the mesh
...
level of detail for large meshes.
Remove parameter and code for DetailLog (conditional logging into
regular log file).
2012-08-17 13:34:18 -07:00
Robert Adams
8eda290262
BulletSim: comments and parameter changes in dynamics engine.
2012-08-17 13:34:16 -07:00
Robert Adams
e31e23d68d
BulletSim: in BSDynamics, merge 'flags' and 'hoverFlags' as they are defined for the same bits and it makes the code less complicated.
2012-08-17 13:34:14 -07:00
Robert Adams
376441e550
BulletSim: make it so objects in a linkset do not generate collisions with each other.
2012-08-15 16:29:50 -07:00
Robert Adams
dd10cf01e7
BulletSim: add hinge constraint.
...
Update BulletSimAPI with new constraint related function calls.
Reorganize locking in BS6DofConstraint.
Update BS6DofConstraint to do constraint reset correctly.
Add new 'midpoint' construction of 6Dof constraint.
2012-08-15 12:08:21 -07:00
Robert Adams
9efe7bf7ba
BulletSim: add locking to constraintCollection and rename some of the public method variables to reduce confusion between a physics scene and the real scene.
2012-08-15 12:08:17 -07:00
Robert Adams
68f112888b
BulletSim: clean up detail logging by adding many more debug log statements and then commenting out most of the additions.
2012-08-15 12:08:13 -07:00
Robert Adams
b05a2fc4ed
BulletSim: don't recreate mesh unless it needs it when rebuilding the hull. Make sure the collisionCollection is reallocated each tick to fix race condition of it being cleared while still in use.
2012-08-15 12:08:09 -07:00
Robert Adams
257446889b
BulletSim: fix problem of a null reference exception on shutdown if there were linksets in the region.
2012-08-15 12:08:05 -07:00
Robert Adams
77a7758cf5
BulletSim: Refactor BSConstraintCollection to add a new RemoveAndDestroyConstraint(BSConstraint xx)
2012-08-15 12:08:01 -07:00
Robert Adams
c1c1d48af1
BulletSim: add BSConstraint.RecomputConstraintVariables for the recomputation after linksets changed, etc
2012-08-15 12:07:57 -07:00
Robert Adams
6f1f299619
BulletSim: Add the class BSCharacter to the DetailLog output
2012-08-15 12:07:53 -07:00
Robert Adams
11a4b9ec1d
BulletSim: rework physics FPS calculation to make a more realistic number.
2012-08-15 12:07:49 -07:00
Robert Adams
0c7ce4fc98
BulletSim: many, many detailed logging messages for physical linkset
...
debugging.
Linkset bugs fixed where accounting of children would get lost.
Moved scene based vehicle tracking logic from prim to the scene.
Added GetCollisionFlags2 method to BulletSimAPI.
Updated DLLs and SOs.
2012-08-10 16:22:44 -07:00
Robert Adams
3ca770cd2c
BulletSim: Add module names to DetailLog output. Fix some problems with linksets that were caused by checking data structures that are changed regularly from taint time code -- resulted in linksets not being unlinked properly.
2012-08-10 08:33:09 -07:00
Robert Adams
320982cae3
BulletSim: add an identifier to the TaintObject call so exceptions that happen when the taint is invoked can be debugged
2012-08-09 15:17:19 -07:00
Robert Adams
38e79b80a8
BulletSim: separate out the constraints by type. The linksets use
...
6dof constraint but eventually others will be exposed so future
features can use all the Bullet capabilities.
Force children to generate a position update when unlinked.
2012-08-09 15:01:05 -07:00
Robert Adams
5ab151c2d6
BulletSim: add avatar code to keep avatars from ending up trapped under the terrain
2012-08-08 13:48:49 -07:00
Robert Adams
19417fca41
BulletSim: Added avatar capsule scaling for size of avatar.
...
This also fixes computation of avatar mass.
Added parameter MaxPersistantManifoldPoolSize.
Fixed a parameter setting bug which caused crashes of there were
more than 400 or so physical objects. I tested up to 5000.
Updated BulletSim DLLs and SOs.
2012-08-07 17:15:06 -07:00
Robert Adams
4adb3471ac
BulletSim: update SOs and DLLs to run on more Linux versions. Correct multiple buoyancy settings when character flying. Remove chatty log message on prim destruction.
2012-08-06 12:55:52 -07:00
Robert Adams
e7ad6ed3a3
BulletSim: pass collision subscription information to the C++ code so collisions on objects that don't care are not reported up.
2012-08-03 15:09:56 -07:00
Robert Adams
ea36d4a4cf
BulletSim: Add AddObjectForce to BulletSim API.
...
Add interface 2 enhancements to BSCharacter.
Modify AddForce and SetForce to use the new Bullet interface.
More DetailLog statements for character.
2012-08-03 15:09:52 -07:00
Robert Adams
8b04e8a297
BulletSim: Debugging log statements added. Reduced size of updata buffer trying to find a corrupted memory problem. Update DLL and SO.
2012-08-02 16:30:23 -07:00
Melanie
cf16ca9bda
Create the ability for physics modules to request assets on demand by
...
themselves. For that, the physics module simply calls RequestAssetMethod, which
in turn points to Scene.PhysicsRequestAsset. This gives physics access to
the asset system without introducing unwanted knowledge of the scene class.
2012-08-01 22:37:38 +01:00
Robert Adams
c51ef38e2d
BulletSim: fix problem where resizing a primary shape (cube or sphere) would not rebuild the physics mesh. Update the DLLs and SOs to latest version.
2012-07-31 16:23:52 -07:00
Robert Adams
e38d26a2dc
BulletSim: change boolean parameters in the shape data from int's to float's to be consistant with parameter data structure
2012-07-31 16:23:48 -07:00
Robert Adams
50dbb9ffe4
BulletSim: add parameters and API calls for setting ERP and CFM.
...
Set ERP and CFM in linkset constraints.
Reorder rebuilding of object bodies so they are not rebuilt everytime
something is linked and unlinked.
2012-07-31 09:23:05 -07:00
Justin Clark-Casey (justincc)
d4f476c7ce
Remove the LandGeom checks in OdeScene - these are pointless since LandGeom is always IntPtr.Zero and contacts returned always have a valid geometry.
...
Possibly this was for a feature that was never implemented or was otherwise removed.
Thanks to SignpostMarv for the spot of the warning that shows this parameter was never changed.
2012-07-27 23:31:19 +01:00
Robert Adams
ce812c88cc
BulletSim: fix a recursive loop when fetching the mass of the root of a linkset.
2012-07-26 16:06:00 -07:00
Robert Adams
7d30637d51
BulletSim: refactor all the linkset logic out of the prim class
...
and into its own class. The BulletSim data structures track
individual prims as linksets of 1 so most of the prim code is not
different between a linked and unlinked object.
2012-07-26 16:05:57 -07:00
Robert Adams
9e914f5c32
Add check so Ode does not try to simulate after it has been Dispose()'ed. Fixes exception that happens when shutting down region (improvements from last patch)
2012-07-26 16:03:15 -07:00
Robert Adams
9ca1075e7e
BulletSim: remove unused, commented out code in BSConstraint
2012-07-25 16:31:17 -07:00
Robert Adams
0a4c080e63
BulletSim: fix line endings in newly added files (Is it DOS or is it UNIX? Only it's hairdresser knows for sure)
2012-07-25 16:31:12 -07:00
Robert Adams
d7add2940a
BulletSim: add parameters for setting linkset constraint factors
2012-07-25 16:31:08 -07:00
Robert Adams
75f7721b0c
BulletSim: small change to use the pointer to the bullet object for zeroing forces.
2012-07-25 16:31:04 -07:00
Robert Adams
bf6529db32
BulletSim: Redo parameter specification so only one place has
...
to change to have a parameter show up in the ini file and
command line. Will make it much easier for the next person.
2012-07-25 16:30:59 -07:00
Robert Adams
2d05e16f7e
BulletSim: Add C# classes for storing and tracking constraints.
2012-07-25 16:30:55 -07:00
Robert Adams
5707e171f4
BulletSim: Move constraint tracking from C++ code to C# code
...
for more flexibility.
2012-07-25 16:30:50 -07:00
Robert Adams
bf6547be01
BulletSim: change how prim mass is saved so it is always calculated but zero is given if not physical.
2012-07-23 16:32:47 -07:00
Robert Adams
dda681515b
BulletSim: small optimizations for link and unlink code
2012-07-23 16:32:41 -07:00
Robert Adams
8a574395c7
BulletSim: add Dispose() code to free up resources and close log files.
2012-07-23 16:32:36 -07:00
Robert Adams
85c6eb7c50
BulletSim: add all the new functions to BulletSimAPI.
...
Modify ZeroMotion() to not make tainting calls and to use new API calls.
2012-07-23 16:32:30 -07:00
Robert Adams
73f9e14b43
BulletSim: improve linking to add each link individually rather than rebuilding the object each time. Makes it an O(n) operation rather than O(n\!).
2012-07-23 16:32:24 -07:00
Robert Adams
b25d874afa
BulletSim: add reference to OpenSim.Region.CoreModules in BSScene.cs attempting to fix a mono compile error.
2012-07-20 15:34:19 -07:00
Robert Adams
ca3b6b1f90
BulletSim: more detail logging for vehicle and general physics debugging.
...
Physical linksets are fully functional.
Tweeking of the vehicle code to make it semi-work.
Utilize the new API2 for some setting operations.
Add GetOrientation() API call for proper reporting of children of linksets.
Changes the interface between C# and C++ code so old DLLs won't work!
2012-07-20 14:08:29 -07:00
Robert Adams
7451bb1613
BulletSim: fix compile errors from last commit. Clean up passing of physics scene into vehicle dynamics code.
2012-07-20 14:02:29 -07:00
Robert Adams
cda67a68de
BulletSim: Add very detailed logging to BSDynamics for vehicle debugging
2012-07-20 14:02:27 -07:00
Robert Adams
c400918c84
BulletSim: Add PID variables to physical scene. Not PIDing yet, but soon.
...
Cleaned up code and got rid of compile warnings.
2012-07-20 14:02:24 -07:00
Robert Adams
f9913b6ef7
BulletSim: Add detailed and voluminous debug logging that is enabled
...
with an ini configuration parameter.
Correct computation of relative offsets of children in a linkset.
Remove a prim from any link relationship before deleting it.
Minor code flow cleanups.
2012-07-20 14:02:22 -07:00
dahlia
5d3723a47f
update PrimMesher.cs to dll version r72 which fixes some path errors in sliced linear prims. Addresses Mantis #6085
2012-07-13 21:22:15 -07:00
Robert Adams
e4a6611865
Clean up collision reporting code so they are properly passed to
...
the simulator in batches.
More comments.
2012-07-06 15:09:19 -07:00
Justin Clark-Casey (justincc)
1926de5a05
Remove some mono compiler warnings
2012-06-30 01:25:39 +01:00
Justin Clark-Casey (justincc)
0229e90dcc
Move update of the final optional ODE total frame stat inside the OdeLock rather than outside to avoid a very occasional race condition with the stat collection thread
2012-06-29 01:02:35 +01:00
Justin Clark-Casey (justincc)
e420f815dc
refactor: rename _collisionEventPrim to m_collisionEventActors and _collisionEventPrimChanges to m_collisionEventActorsChanges to reflect their actual contents.
...
These dictionaries handle all actor types, not just physical prims.
2012-06-29 00:54:40 +01:00
Justin Clark-Casey (justincc)
1a7be7b00e
Fix a regression where we stopped removing avatars from collision event reporting on logout, rather than stopping clearing their collision events.
...
This occurred in b18c8c8
(Thu May 17 2012).
This was a cause of very occasional race conditions and likely memory leakage as clients came and went from the region.
2012-06-29 00:36:50 +01:00
Justin Clark-Casey (justincc)
6375db1533
Add optional total avatars, total prims and active prims stats to ODE plugin.
...
These will act as a sanity check with the main scene stats, to show that physics scene entities are being managed properly.
Total prims will not match scene total prims since physics total does not include phantom prims
2012-06-01 04:23:36 +01:00
Justin Clark-Casey (justincc)
4e06a46dc5
If OdeScene.Near() returns no collision contacts, then exit as early as possible. All subsequent code is only relevant if there are contacts.
2012-06-01 04:07:39 +01:00
Justin Clark-Casey (justincc)
200376b3c4
Add optional stat for the other collision time per frame not spent in ODE native spaces or geom collision code
2012-06-01 03:49:42 +01:00
Justin Clark-Casey (justincc)
d34b84b531
Add avatar forces calculation, prim force and raycasting per frame millisecond optional stats
2012-06-01 03:23:19 +01:00
Justin Clark-Casey (justincc)
9ff8efc720
Collection optional avatar and prim taint frame millisecond times
2012-06-01 03:03:48 +01:00
Justin Clark-Casey (justincc)
d1b5f8d9d7
Remove recent optional native collision frame milliseconds stat
...
Unnecessary since this has now been broken down into space collisions and geom collisions
2012-06-01 02:35:11 +01:00
Justin Clark-Casey (justincc)
31343aa7c3
Add optional stat that records milliseconds spent notifying collision listeners in physics frames
2012-06-01 02:33:44 +01:00
Justin Clark-Casey (justincc)
5f44be99ef
Add avatar and prim update milliseconds per frame optional stats
2012-06-01 02:25:42 +01:00
Justin Clark-Casey (justincc)
5cc9b820e5
Add option native step frame ms stat
2012-06-01 01:58:28 +01:00
Justin Clark-Casey (justincc)
f2c8c7a7b8
Add total ODE frame time optional stat, as a sanity check on the main scene physics stat
2012-06-01 01:37:19 +01:00
Justin Clark-Casey (justincc)
8333b928fa
Break down native ODE collision frame time stat into native space collision and geom collision stats
2012-06-01 01:27:19 +01:00
Justin Clark-Casey (justincc)
c33c8db825
Rename new collision stats to 'contacts' - there are/can be multiple contacts per collision and this is what is actually being measured.
2012-06-01 01:15:27 +01:00
Justin Clark-Casey (justincc)
e1f8d2adb0
Stop adding an unnecessary duplicate _perloopcontact if the avatar is standing on a prim.
...
This has already been added earlier on in the method.
2012-06-01 01:12:30 +01:00
Justin Clark-Casey (justincc)
8301f7b17f
minor: comment out currently unused OdeScene.sCollisionData
2012-06-01 00:57:55 +01:00
Justin Clark-Casey (justincc)
93fa9e8991
Add ODE avatar and prim collision numbers if extra stats collection is enabled.
2012-06-01 00:56:13 +01:00
Justin Clark-Casey (justincc)
878b67b333
Fix OdeScene.GetTopColliders() to return the top 25 colliders rather than the first 25 that had non-zero collision scores.
...
Also zeros collisions scores on all prims after report collection, not just the top 25.
As before, this collision scores are only reset after a report is requested, which may give unrealistic numbers on the first request.
So to see more realistic scores, ignore the first report and then refresh the request after a couple of seconds or so.
2012-06-01 00:26:11 +01:00
Justin Clark-Casey (justincc)
0b02a4d42e
Add an optional mechanism for physics modules to collect and return arbitrary stats.
...
If active, the physics module can return arbitrary stat counters that can be seen via the MonitoringModule
(http://opensimulator.org/wiki/Monitoring_Module )
This is only active in OdeScene if collect_stats = true in [ODEPhysicsSettings].
This patch allows OdeScene to collect elapsed time information for calls to the ODE native collision methods to assess what proportion of time this takes compared to total physics processing.
This data is returned as ODENativeCollisionFrameMS in the monitoring module, updated every 3 seconds.
The performance effect of collecting stats is probably extremely minor, dwarfed by the rest of the physics code.
2012-05-31 01:52:26 +01:00
Justin Clark-Casey (justincc)
6501b1b1bb
refactor: move EventQueueGet path generation into common method. Rename some local variables in line with code conventions. Add commented out EQG log lines for future use.
2012-05-18 00:38:29 +01:00
Justin Clark-Casey (justincc)
b18c8c8e78
Don't eagerly clear frame collision events when physics actors subscribe and unsubscribe from collisions, in order to avoid a race condition.
...
Since this is done directly from ScenePresence, it can lead to a race condition with the simulator loop.
There's no real point doing it anyway since the clear will be done very shortly afterwards by the simulate loop and either there are no events (for a new avatar) or events don't matter (for a departing avatar).
This matches existing behaviour in OdePrim
2012-05-17 23:59:43 +01:00
Justin Clark-Casey (justincc)
c6f30e044b
Restore _parent_scene.actor_name_map[prim_geom] = this; accidentally removed from ODEPrim.SetGeom.
...
This occurred in 7a574be3fd
from Sat 21 Apr 2012.
This should fix collision detection.
Mnay thanks to tglion for the spot and the fix in http://opensimulator.org/mantis/view.php?id=5988
2012-04-24 20:15:10 +01:00
Justin Clark-Casey (justincc)
49ed68e98c
refactor: simply some properties code in BasicPhysicsPlugin
2012-04-22 20:28:12 +01:00
Justin Clark-Casey (justincc)
8205fe79ce
Fix bug where setting phantom on a prim would result in a server log message rather than setting phantom.
...
This was an oversight when removing some race conditions from PhysicsActor setting recently.
Regression tests extended to probe this code path.
Extending regression tests required implementation of a BasicPhysicsPrim (there was none before). However, BasicPhysics plugin is still of no current practical use other than to fill in as a component for other parts of regression testing.
2012-04-22 19:51:51 +01:00
Justin Clark-Casey (justincc)
ae2b8f7007
Comment out spurious Body != IntPtr.Zero code after disableBody(), since disableBody() sets Body == IntPtr.Zero on all code paths.
2012-04-21 03:42:54 +01:00
Justin Clark-Casey (justincc)
f609594595
refactor: Simplify ODEPrim.AddChildPrim() by returning early where appropriate.
2012-04-21 03:23:51 +01:00
Justin Clark-Casey (justincc)
7a574be3fd
Remove redundant prim_geom != IntPtr.Zero checks in ODEPrim.
...
prim_geom == IntPtr.Zero only before a new add prim taint is processed (which is the first taint) or in operations such as scale change which are done in taint or under lock.
Therefore, we can remove these checks which were not consistently applied anyway.
If there is a genuine problem, better to see it quickly in a NullReferenceException than hide the bug.
2012-04-21 00:12:07 +01:00
Justin Clark-Casey (justincc)
566327a948
If a physical prim is manually moved (e.g. by a user) then set the geometry position as well as the body position
...
This is necessary to stop the moved prim snapping back to the original position on deselection if moved only once
This resolves http://opensimulator.org/mantis/view.php?id=5966
2012-04-20 23:24:24 +01:00
Robert Adams
872d513daa
BulletSim: make avatar animations update properly.
...
It seems that ODE calls the avatar collision handling routine even
if there are no collisions. This causes the animation to be updated.
So, for instance, going from HOVER to FLY is caused by the physics engine
calling the collision routine each frame with 0 collisions.
2012-03-26 17:36:33 -07:00
Robert Adams
2fcdecf090
BulletSim: fix typo introducted by previous checkins (git merge sometimes makes mistakes)
2012-03-26 08:57:40 -07:00
Robert Adams
07388071d4
Merge branch 'bulletsim1' of ssh://island.sciencesim.com/home/sceneapi/radams1/bs-opensim into bulletsim1
...
Conflicts:
OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
2012-03-23 16:20:53 -07:00
Robert Adams
ff54b3c366
BulletSim: change default of shouldDisableContactPoolDynamicAllocation from False to True. It seems that collisions don't happen well when it is False (things fall through terrain).
2012-03-23 15:50:32 -07:00
Robert Adams
3f53b7bc91
BulletSim: Add new configuration parameters to get and set console commands
2012-03-23 13:15:24 -07:00
Robert Adams
142de1d02f
BulletSim: add a bunch of internal Bullet configuration parameters to OpenSimDefaults.ini and the code.
2012-03-23 13:15:23 -07:00
Robert Adams
1273f259e4
BulletSim: remove confusion between angularVelocity and rotationalVelocity (there is still confusion in the rest of OpenSim). Enhance some debug statements to include the object ID.
2012-03-23 13:15:22 -07:00
Robert Adams
1a738caeca
BulletSim: update TODO list. Rearrange code for readability. Add per object friction and restitution runtime settable parameters.
2012-03-23 13:15:18 -07:00
Robert Adams
de24feb275
BulletSim: Add AvatarRestitution parameter. Centralize computation of buoyancy for flying. Tweek avatar default friction and resititution
2012-03-23 13:15:17 -07:00
Robert Adams
6ecdadb329
BulletSim: set buoyancy in only one place
2012-03-23 13:15:16 -07:00
Robert Adams
b22d040169
BulletSim: add some new runtime setable parameters to match the dll.
2012-03-23 13:15:14 -07:00
Robert Adams
975184b3f9
BulletSim: Update list of TODO tasks
2012-03-23 13:15:11 -07:00
Robert Adams
efe61b2481
BulletSim: remove confusion between angularVelocity and rotationalVelocity (there is still confusion in the rest of OpenSim). Enhance some debug statements to include the object ID.
2012-03-22 17:04:06 -07:00
Robert Adams
7783c93802
BulletSim: update TODO list. Rearrange code for readability. Add per object friction and restitution runtime settable parameters.
2012-03-21 16:16:47 -07:00
Robert Adams
cb2727cf6e
BulletSim: Add AvatarRestitution parameter. Centralize computation of buoyancy for flying. Tweek avatar default friction and resititution
2012-03-21 16:16:46 -07:00
Robert Adams
6c55fd93a3
BulletSim: set buoyancy in only one place
2012-03-21 16:16:45 -07:00
Robert Adams
898a16802b
BulletSim: add some new runtime setable parameters to match the dll.
2012-03-21 16:16:44 -07:00
Robert Adams
eafc3d6c47
BulletSim: Update list of TODO tasks
2012-03-21 16:16:41 -07:00
Justin Clark-Casey (justincc)
4c41b53a4b
Add prim name to "[MESH]: No recognized physics mesh..." log message
2012-03-20 23:35:50 +00:00
Justin Clark-Casey (justincc)
86bd287b53
refactor: precalculate the fixed movement factor for avatar tilting (sqrt(2)) rather than doing it multiple times on every move.
2012-03-20 20:39:33 +00:00
Justin Clark-Casey (justincc)
5f2a65c976
refactor: Eliminate unnecessary duplicate avCapsuleTilted
2012-03-20 20:28:58 +00:00
Justin Clark-Casey (justincc)
1c0f3a1f21
Fix crash where two scene loop threads could changes m_MeshToTriMeshMap at the same time.
...
Have to lock m_MeshToTriMeshMap as property is static and with more than one region two scene loops could try to manipulate at the same time.
2012-03-20 00:40:03 +00:00
Justin Clark-Casey (justincc)
f67f37074f
Stop spurious scene loop startup timeout alarms for scenes with many prims.
...
On the first frame, all startup scene objects are added to the physics scene.
This can cause a considerable delay, so we don't start raising the alarm on scene loop timeouts until the second frame.
This commit also slightly changes the behaviour of timeout reporting.
Previously, a report was made for the very first timed out thread, ignoring all others until the next watchdog check.
Instead, we now report every timed out thread, though we still only do this once no matter how long the timeout.
2012-02-24 05:02:33 +00:00
Justin Clark-Casey (justincc)
daee2eda93
Load 32-bit or 64-bit BulletSim Windows library automatically as appropriate.
...
This uses the same approach as ODE.
radams, if this doesn't work for you please feel free to revert.
2012-02-21 04:10:39 +00:00
Justin Clark-Casey (justincc)
68a4ef5ef6
Add 64 bit Windows sqlite3.dll and use this if running a 64-bit windows process.
2012-02-21 02:52:20 +00:00
Justin Clark-Casey (justincc)
19d271d3fc
Remove PhysXPlugin and wrappers.
...
In over 4 years this never progressed beyond an unimplemented stub.
This doesn't mean that it can't come back if someone is interested in implementing PhysX support.
2012-02-21 01:45:17 +00:00
Justin Clark-Casey (justincc)
9846a1e56e
Report an error if the required native Windows ODE library can't be found.
2012-02-18 02:52:29 +00:00
Justin Clark-Casey (justincc)
b817c337dc
On Windows automatically load the correct native ODE library depending on whether the process is 32-bit or 64-bit
...
In theory, this means that a 64-bit Windows OS user can now run OpenSim.exe with ODE and use more than 2 (or 3) GB of memory.
However, this is completely untested since I don't currently own a 64-bit Windows box. Feedback appreciated.
Using OpenSim.32BitLaunch.exe should continue to work. Other platforms are unaffected.
This will currently not work with sqlite - I will add that too if this works.
2012-02-18 00:33:52 +00:00
Justin Clark-Casey (justincc)
c0760f9f91
Comment out "experimental" log message printed out whenever a physics mesh was generated for a mesh
...
Also adds prim name to the "no asset data" error log message
2012-02-16 00:28:57 +00:00
Justin Clark-Casey (justincc)
b92b9228ef
correct the default avatar_terminal_velocity value that I accidentally left in whilst testing
2012-02-11 02:29:07 +00:00
Justin Clark-Casey (justincc)
f49897a419
Clamp ODE character velocity. Make ODE falling character 54m/s by default.
...
If velocity reaches 256 in any vector then bad things happen with ODE, so we now clamp this value.
In addition, a falling avatar is clamped by default at 54 m/s, which is the same as a falling skydiver.
This also appears to be the value used on the linden lab grid.
This should resolve http://opensimulator.org/mantis/view.php?id=5882
2012-02-11 02:28:40 +00:00
Robert Adams
e9de7e7107
Update BulletSim.dll with some interface changes and tuning (see opensim-libs). Change BSScene to use new interface.
2012-01-25 14:40:38 -08:00
Justin Clark-Casey (justincc)
e20cf3789b
Serialize calls to ODE Collide() function across OdeScene instances to prevent ODE crashes on simulators running more than one region.
...
It turns out that calls to Collide() are not thread-safe even for objects in different ODE physics worlds due to ODE static caches.
For simulators running multiple regions, not serializing calls from different scene loops will sooner or later cause OpenSim to crash with a native stack trace referencing OBBCollider.
This affects the default OPCODE collider but not GIMPACT. However, GIMPACT fails for other reasons under some current simulator loads.
ODE provides a thread local storage option, but as of ODE r1755 (and r1840) DLLs compiled with this crash OpenSim immediately.
2012-01-25 19:31:50 +00:00
Justin Clark-Casey (justincc)
8b035dc3c7
Restrict accessible of ODECharacter Shell and Body. Add method doc and some error log lines.
2012-01-24 18:46:24 +00:00
Justin Clark-Casey (justincc)
014a86c26b
Adding commented out log messages and some minor formatting for future bug hunting. No functional changes.
2012-01-02 19:46:30 +00:00
Justin Clark-Casey (justincc)
790ca65c84
Align default ODE_STEPSIZE with that already used through OpenSimDefaults.ini
2011-12-22 20:22:15 +00:00
Dan Lake
41b02a7208
Remove unused SetAcceleration and add set on Acceleration parameter
2011-12-20 14:45:32 -08:00
Diva Canto
dd69c9fd20
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2011-12-20 09:53:05 -08:00
Diva Canto
25cbba9bca
Fixed bug of avie going under the terrain when crossing regions in certain directions. This was a 1-off bug: the terrain was being placed in 127, 127 resulting in a bounding box if -2, 256. I placed it in 128, 128 resulting in a bounding box of -1, 257.
2011-12-20 09:43:39 -08:00
Justin Clark-Casey (justincc)
5d79f857b0
Comment out accidentally left in "Adding physics prim" log message
2011-12-16 20:54:28 +00:00
Justin Clark-Casey (justincc)
8013c0d2f5
Stop pointlessly setting the m_colliderarr[] to false in the ODECharacter constructor
2011-12-15 22:33:14 +00:00
Justin Clark-Casey (justincc)
c0ba99e5ad
Stop having to call SetHeight again in ScenePresence.AddToPhysicalScene() when we've already passed size information to the avatar at PhysicsScene.AddAvatar()
...
Eliminate some copypasta for height setting in OdeCharacter
2011-12-15 22:29:36 +00:00
Justin Clark-Casey (justincc)
937c06db54
Code cleanup related to ScenePresence.PhysicsActor and OdeScene/OdeCharacter
...
Stop hiding RemoveAvatar failure, add log messages when characters are removed through defects or re-added unexpectedly.
Add commented out log lines for future use.
Use automatic property for PhysicsActor for better code readability and simplicity
2011-12-15 21:57:22 +00:00
Justin Clark-Casey (justincc)
6f2d80cc93
minor: add some currently commented log lines for use in debugging
2011-12-14 21:27:47 +00:00
Justin Clark-Casey (justincc)
e830a77860
Simplify some manipulation of _taintedActors in OdeScene
2011-12-14 18:33:44 +00:00
Justin Clark-Casey (justincc)
a110a7bd6a
Eliminate _taintedPrimsH and _taintedPrimsL (and _taintedPrimLock) in favour of just a _taintedPrims HashSet.
...
There's no point maintaining a list because any pending taint operations are all carried out in the same call anyway.
2011-12-14 18:03:25 +00:00
Justin Clark-Casey (justincc)
4dfd2c7d47
minor: remove pointless comment from OdeScene.cs
2011-12-12 19:31:50 +00:00
Justin Clark-Casey (justincc)
a17f93ff44
minor: remove mono compile warning, a Vector3 can never be null since it's a struct
2011-11-29 16:31:10 +00:00
Justin Clark-Casey (justincc)
b785f204ce
remove some mono compiler warnings
2011-11-25 22:19:57 +00:00
Justin Clark-Casey (justincc)
b56410285b
Log error if we attempt to add/remove an OdeCharacter from the _characters list inappropriately
2011-11-22 22:46:25 +00:00
Justin Clark-Casey (justincc)
ace4324e75
Stop removing actor from the hash maps in OdeScene.RemoveCharacter() since this is now being down in OdeCharacter.DestroyOdeStructures()
2011-11-22 22:37:06 +00:00
Justin Clark-Casey (justincc)
af90b52731
Comment out uncalled OdeScene.UnCombine()
2011-11-22 22:28:46 +00:00
Justin Clark-Casey (justincc)
daf99f8c0a
slightly simplify OdeScene.Simulate() by removing bool processtaints, since we can inspect count of taint lists instead.
...
also groups OdeCharacter.CreateOdeStructures() and DestroyOdeStructures() together
2011-11-22 21:51:00 +00:00
Justin Clark-Casey (justincc)
c4e4a29478
Slightly improve "Unable to space collide" logging message, though I don't think I've ever seen this.
2011-11-21 21:31:26 +00:00
Justin Clark-Casey (justincc)
4ddff7eb0f
Get rid of OdeCharacter != null checks since OdeScene._characters can never contain a null character.
...
Ignoring the ancient code glyphs not to do this....
2011-11-21 21:29:56 +00:00
Justin Clark-Casey (justincc)
82dc7886fc
remove unnecessary OdeScene._activeprims locking. Code is single-threaded
2011-11-21 21:15:15 +00:00
Justin Clark-Casey (justincc)
7480f2fd0e
Restore defects list. In hindsight, the reason for this is becuase we can't remove the character whilst iterating over the list.
...
This commit also removes locking on OdeScene._characters since code is single threaded
2011-11-21 21:04:24 +00:00
Justin Clark-Casey (justincc)
546259b2ff
simplify operation of OdeScene._perloopContact
2011-11-21 20:30:37 +00:00
Justin Clark-Casey (justincc)
25d9001de1
don't bother locking OdeScene._perloopContact in single threaded code
2011-11-21 20:17:36 +00:00
Justin Clark-Casey (justincc)
e33b0fa35b
don't lock OdeScene.contacts since only ever accessed by a single thread
2011-11-21 20:12:04 +00:00
Justin Clark-Casey (justincc)
e67ba0ad06
rename ODECharacter.AvatarGeomAndBodyCreation() -> CreateOdeStructures() to match existing DestroyOdeStructures()
2011-11-21 20:01:34 +00:00
Justin Clark-Casey (justincc)
063f0f5d97
refactor: Eliminate one line ODECharacter.doForce() method for code clarity
2011-11-21 19:58:37 +00:00
Justin Clark-Casey (justincc)
225b925f4e
Comment out calls to OdeScene.waitForSpaceUnlock() since that method does nothing right now
2011-11-21 19:48:31 +00:00
Justin Clark-Casey (justincc)
54789706f4
Reduce complexity of OdeScene.Simulate() by fully removing bad characters at point of detection rather than later on.
2011-11-21 19:45:22 +00:00
Justin Clark-Casey (justincc)
3becda919e
move geom/actor map maintenance into DestroyODEStructures()/AvatarGeomAndBodyCreation().
...
This saves us having to do it separately when a character capsule size is changed
2011-11-21 19:31:29 +00:00
Justin Clark-Casey (justincc)
4faac1f090
When changing avatar size in ODE, remove the old actor from the name and actor maps
2011-11-21 19:06:53 +00:00
Justin Clark-Casey (justincc)
898904d83d
When an ODECharacter is removed (e.g. when an avatar leaves a scene), remove the actor reference in OdeScene.actor_name_map rather than leaving it dangling.
...
This also largely centralizes adds/removes in OdeScene.AddCharacter()/RemoveCharacter()
2011-11-21 18:27:41 +00:00
Justin Clark-Casey (justincc)
cead87005b
Have ODECharacter and ODEPrim both use PhysicsActor.Name instead of maintaining their own properties
2011-11-21 18:06:04 +00:00
Justin Clark-Casey (justincc)
4fdcfd79e4
Actually remove PhysicsActor.SOPDescription this time
2011-11-21 17:55:54 +00:00
Justin Clark-Casey (justincc)
4485007fce
Instead of generating a new list for bad characters on every physics pass, keep reusing the same list.
2011-11-21 17:04:54 +00:00
Justin Clark-Casey (justincc)
b6d83e9c0f
Stop OdePrim and OdeCharacter insanely overriding set LocalID to set their own private m_localID property but leaving get to return the then unset PhysicsActor.LocalId!
...
Instead, just have both subclasses use the PhysicsActor.LocalID property.
This restores collision functionality that fell away in 45c7789
yesterday
2011-11-16 23:01:59 +00:00
Justin Clark-Casey (justincc)
e16d7fe1da
Instead of having scene add/remove collision events directly to the OdeScene collision event dictionary, marshall them via a change dictionary first.
...
This is to avoid a complicated tri-thread deadlock on region crossing for avatars with attachments, where
1) XEngine starting up scripts can lock XEngine.m_Scripts and then try to lock OdeScene._collisionEventPrim while starting up a script due to avatar border crossing
2) An existing collision event will lock OdeScene._collisionEventPrim and then try to lock SP.m_attachments while trying to send the collision event to attachments
3) The avatar still entering the region will lock SP.m_attachments and then try to lock m_Scripts to start more attachment scripts.
2011-11-15 20:02:09 +00:00
Justin Clark-Casey (justincc)
45c7789b54
use a more efficient dictionary in OdeScene._collisionEventPrim rather than a list
2011-11-15 19:42:33 +00:00
Justin Clark-Casey (justincc)
f7b8c54c24
Add comment for experimental effect of removing the Thread.Sleep(20) in ODEPrim.changevelocity()
2011-11-04 23:43:17 +00:00
Justin Clark-Casey (justincc)
ccca6ba935
Stop llPushObject() from causing problems by adding force via a taint rather than directly.
...
This isn't a perfect solution since there can be a race between the taint processing and taint setting, as force needs to be reset after processing.
Needs careful locking in the future.
2011-11-04 23:12:01 +00:00
Justin Clark-Casey (justincc)
9fdd1753fa
Add taint target velocity for ODECharacters as is already done for ODECharacter position and position and velocity for ODEPrims.
...
This is to help stop surprises if the velocity is set in the middle of physics calculations, though this probably isn't a huge problem.
It's more for consistency and for the next step of removing some scene locks
2011-10-29 02:30:33 +01:00
Justin Clark-Casey (justincc)
ef8370fb8e
tidy up OdeCharacter so that we just use OpenMetaverse.Vector3 assignment directly where possible, instead of transferring X, Y and Z components separately
...
some of this is probably a hold over from using ODE.Vector3, which is still necessary in some places.
2011-10-29 02:07:28 +01:00
Justin Clark-Casey (justincc)
a5ea9f8830
Move position set from taint to logically better position at top of ODECharacter.ProcessTaints() though this makes no practical difference
2011-10-29 01:46:22 +01:00
Justin Clark-Casey (justincc)
5ae8de3c00
Stop setting _position as well as m_taint_position in ODECharacter.Position
...
setting position at the same time as taint appears to undermine the whole purpose of taint
testing doesn't reveal any obvious regressions in doing this
2011-10-29 01:39:48 +01:00
Justin Clark-Casey (justincc)
820242bc49
Fix a bug I introduced yesterday in ODE physics where prim scripts would only receive the very first collision.
2011-10-27 02:05:59 +01:00
Justin Clark-Casey (justincc)
6a74a4c12b
Clear OdeCharacter CollisionEventUpdate when we subscribe or unsubscribe from collision events
2011-10-25 22:46:42 +01:00
Justin Clark-Casey (justincc)
0f83f87233
Remove unused fields from CollisionEventUpdate
2011-10-25 22:39:08 +01:00
Justin Clark-Casey (justincc)
c825c9a945
Get rid of the pointless null checks on collision listeners. Add warning about synchronicity for PhysicsActor.OnCollisionUpdate event doc
2011-10-25 22:35:00 +01:00
Justin Clark-Casey (justincc)
b9f106f484
When sending object collision updates, don't null out and recreate the CollisionEventUpdate() if the number of collisions falls to zero. Reuse the existing one instead.
2011-10-25 22:28:40 +01:00
Justin Clark-Casey (justincc)
5d37f0471e
For ScenePresence collision events, instead of creating a new CollisionEventsThisFrame every time we need to send some new ones, reuse the existing one instead.
...
This assumes that the listener is using the data synchronously, which is currently the case.
2011-10-25 22:19:17 +01:00
Justin Clark-Casey (justincc)
7b6b36cee9
Fix bug where collision event listeners were not removed once the listener had gone away.
...
This was causing continuous use of temporary memory even when all avatars had left the scene.
Memory does leak but it does cause more calls to the garbage collector, which would pause the scene thread for a very short while during collection.
2011-10-25 21:40:51 +01:00
Justin Clark-Casey (justincc)
1fbb379536
minor: rename a parameter in OdeScene.Simulate() from actor -> prim since it's an OdePrim
2011-10-25 21:15:37 +01:00
Justin Clark-Casey (justincc)
4241ee5dfa
very minor removal of old commented out line of code in OdeScene
2011-10-21 00:04:36 +01:00
Justin Clark-Casey (justincc)
30fe66d3ab
remove unnecessary null check on _collisionEventPrim
2011-10-20 20:58:29 +01:00
Justin Clark-Casey (justincc)
9c43020876
Get OdeScene to use passed in time step rather than hard-coded 0.089
...
However, I still don't recommend changing MinFrameTime from 0.089, high values do not work well and lower values don't seem to make much difference
2011-10-20 20:48:51 +01:00
Justin Clark-Casey (justincc)
b63ec987b0
For now, stop passing timeStep into methods where it's not actually used.
2011-10-20 17:54:32 +01:00
Justin Clark-Casey (justincc)
581885da75
Temporarily put in log lines to record time taken to set terrain in OdeScene.
2011-10-18 21:21:15 +01:00
Justin Clark-Casey (justincc)
03202ada29
Store scene identifier passed in to OdeScene for later debug messages
2011-10-18 21:11:13 +01:00
Justin Clark-Casey (justincc)
1d4cd76e8a
Don't bother taking OdeLock during OdeScene construction, since there can be no contention until the object is constructed.
2011-10-18 21:03:41 +01:00
Justin Clark-Casey (justincc)
f10a824e47
Remove unnecessary lock of OdeLock in OdePrim.changeadd()
...
This taint can only ever be processed from the OdeScene.Simulate() loop, which already locks OdeLock.
2011-10-18 20:58:59 +01:00
Justin Clark-Casey (justincc)
5515c45e3b
minor: method doc to explain a lock of OdeLock
2011-10-18 20:56:11 +01:00
Justin Clark-Casey (justincc)
71d221cdc0
Remove the unused CollisionLocker from ODE
...
Despite its name, this wasn't actually being used in any collision checking
2011-10-18 17:35:58 +01:00
Justin Clark-Casey (justincc)
0c041ce12f
Implement osNpcSit(). This is still in development so don't trust it
...
Format is osNpcSit(<npc-uuid>, <target-uuid>, OS_NPC_SIT_IMMEDIATE)
e.g. osNpcSit(npc, llGetKey(), OS_NPC_SIT_IMMEDIATE);
At the moment, sit only succeeds if the part has a sit target set.
NPC immediately sits on the target even if miles away - they do not walk up to it.
This method is in development - it may change so please don't trust it yet.
Standing will follow shortly since that's kind of important once you're sitting :)
2011-10-17 01:42:31 +01:00
Justin Clark-Casey (justincc)
978fb3d482
reduce access to ODECharacter methods to make code analysis easier. Eliminate redundant argument on ProcessTaints()
2011-10-15 01:41:39 +01:00
Justin Clark-Casey (justincc)
9cc2694776
restrict unnecessary access levels on ODEPrim fields/properties
2011-10-15 01:31:09 +01:00
Justin Clark-Casey (justincc)
f2132329a3
refactor: make methods that do not need to be public in ODE private or internal to aid code reading/analysis. Remove some unused method arguments
2011-10-15 01:20:40 +01:00
Justin Clark-Casey (justincc)
4bfc2f5cde
Change hardcoded ODE total frame time to match the default total frame time (0.09375 -> 0.089).
...
No apparant ill effects - because the default stepsize is 0.2, there are still 5 physics steps per physics frame.
This is a precursor to using the elapsed value passed in (and now changeable in config).
2011-10-14 21:07:57 +01:00
Justin Clark-Casey (justincc)
77c65951e0
Extract NullPhysicsScene from PhysicsScene to improve code readability
2011-10-14 01:38:14 +01:00
Justin Clark-Casey (justincc)
20da04fd0c
More method doc and formatting changes. Makes DestroyOdeStructures() private
2011-10-13 21:42:24 +01:00
Justin Clark-Casey (justincc)
227db07f2f
refactor: move 3x copy/pasted ode structure removal code in ODECharacter into a DestroyOdeStructures() method
...
also adds some method doc
2011-10-13 18:19:13 +01:00
Justin Clark-Casey (justincc)
9090039324
Remove unused local variable i from OdeScene.Simulate()
2011-10-05 22:15:28 +01:00
Justin Clark-Casey (justincc)
1e798136c3
adjust some whitespace to trigger another build, to check the last failure was just a glitch
2011-09-17 01:33:55 +01:00
Justin Clark-Casey (justincc)
f950338124
Remove old bullet DotNET and X libraries in preparation for BulletS
...
These weren't working properly anyway.
You will need to rerun prebuild.sh/.bat after this commit, and maybe "nant clean" as well.
2011-09-17 01:09:25 +01:00
Justin Clark-Casey (justincc)
6f542f73d4
Stop the avatar stalling on its first boarder cross when using the ODE plugin
...
When upgrading the previously child agent to a root, the code was setting the Size parameter on the ODECharacter PhysicsActor.
This in turn reset Velocity, which cause the border stall.
I'm fixing this by commenting out the Velocity = Vector3.Zero lines since they don't appear to play a useful purpose
2011-09-16 23:57:16 +01:00
Robert Adams
96dce3e16c
Use GetMeshKey from PrimitiveBaseShape.
2011-08-29 10:10:48 -07:00
Mic Bowman
648866b597
Merge branch 'master' into bulletsim
2011-08-29 09:55:34 -07:00
Robert Adams
18037d41c4
Move GetMeshKey from buried inside Meshmerizer to a public method on PrimitiveBaseShape
...
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2011-08-28 16:50:54 -04:00
Robert Adams
80a2b81d52
Add level of detail specification to optionally reduce the number of vertices in generated prim meshes
...
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2011-08-28 16:49:25 -04:00
Robert Adams
21708b832b
BulletSim: add mesh representation. Use meshes for static objects and switch to hulls for physical objects.
2011-08-26 15:51:21 -07:00
Mic Bowman
384cb79a1a
Merge branch 'master' into bulletsim
...
Conflicts:
OpenSim/Region/Framework/Scenes/SceneManager.cs
2011-08-19 14:49:16 -07:00
Robert Adams
fef73a1a10
BulletSim: add runtime setting of physics parameters. Update default values.
2011-08-18 14:32:09 -07:00
Justin Clark-Casey (justincc)
951ffad81e
If SP.MoveToTarget has been called with a force walk, begin by landing the avatar.
...
There is a bug here - once an avatar has landed it glides to its new position instead of performing a walk animation
2011-08-11 00:23:54 +01:00
Justin Clark-Casey (justincc)
7f499ff3f3
Add a OS_NPC_LAND_AT_TARGET option to osMoveToTarget()
...
Default for this function is now not to automatically land.
This allows better control by scripts when an avatar is going to be landing on a prim rather than the ground.
Stopping the avatar involves faking a collision, to avoid the pid controller making it overshoot.
A better approach would be to gradually slow the avatar as we near the target
2011-08-10 23:56:19 +01:00
Mic Bowman
82f41fdcb5
BulletSim: fix problem with not convex hulling large objects by creating unit meshes and always scaling in Bullet
2011-08-05 14:53:39 -07:00
Mic Bowman
c3f579046c
Merge branch 'master' into bulletsim
2011-08-05 11:13:02 -07:00
Robert Adams
7640b5abf6
BulletSim: Parameters settable from ini file. Linksets. Physical property value tuning
2011-08-05 11:01:27 -07:00
Justin Clark-Casey (justincc)
21d8a6b0e8
extend move test to check one beat of the simulator without actually asking the npc to move.
2011-08-03 23:06:18 +01:00
Justin Clark-Casey (justincc)
05e94ff27e
Move common gemo/agent map name code into CreateGeom()
...
Fix build break.
2011-08-01 07:04:13 +01:00
Justin Clark-Casey (justincc)
f9d6a91252
Instead of preserving old name in geom_name_map in change size or shape, use the Name property instead.
...
This is equivalent since the prim 'name' is never changed. In fact, this propery is never used for prims
2011-08-01 06:52:52 +01:00
Justin Clark-Casey (justincc)
40a78db182
comment out unused code in OdeScene.TriCallback()
2011-08-01 06:47:45 +01:00
Justin Clark-Casey (justincc)
ccb4b76242
On geom removal, remove the name from the OdeScene.geom_name_map too
2011-08-01 06:40:29 +01:00
Justin Clark-Casey (justincc)
f79df6f43f
remove the unused ODEPrim.prev_geom field
2011-08-01 06:35:59 +01:00
Justin Clark-Casey (justincc)
f32dbef647
When an ODE geom is removed (as when a non-phantom prim is deleted, resized or shape changed, also remove the OdeScene.actor_name_map entry pointing to the phys actor
...
This is to stop a small memory leak over time when prims are deleted or phantom-toggled
2011-08-01 06:32:30 +01:00
Justin Clark-Casey (justincc)
6618948ff9
refactor: centralize prim geom removal code from four places to one
2011-08-01 06:15:02 +01:00
Justin Clark-Casey (justincc)
509200d5cd
minor: add note to RemovePrimThreadLocked() to the effect that it contrary to the summary, it is being called from within Simulate() lock (OdeLock)
2011-08-01 05:48:27 +01:00
Justin Clark-Casey (justincc)
dfa2f7d715
If a prim changes size or shape, add actor to _parent_scene.actor_name_map with new prim_geom key, as the old one becomes invalid.
...
This resolves http://opensimulator.org/mantis/view.php?id=5603 where changing size or shape would stop collision_start being fired in a running script.
In both this and existing code we are not removing old actors from actor_name_map when the existing prim_geom is removed, which leads to a small memory leak over time.
This needs to be fixed.
2011-08-01 05:43:04 +01:00
Justin Clark-Casey (justincc)
2102964826
minor: indentation correction
2011-08-01 05:14:16 +01:00
Justin Clark-Casey (justincc)
d041276517
Remove _mesh field since the mesh data no longer needs to be stored after it's initially used.
...
This may improve memory usage for regions using mesh and sculpts, though I suspect that it doesn't address the current memory leak.
2011-07-31 01:03:52 +01:00
Justin Clark-Casey (justincc)
bd8f538f80
refactor: Remove argument to pass in an initial mesh to OdePrim since this is no longer required and it prevents removal of the _mesh field (which is only used temporarily)
...
If passing in a mesh becomes important again in the future then this can be reinstated.
2011-07-31 00:49:49 +01:00
Justin Clark-Casey (justincc)
196a774b24
minor: correct method doc for last commit
2011-07-31 00:45:20 +01:00
Justin Clark-Casey (justincc)
454312f5bc
refactor: rename CreateGeom _mesh argument to mesh, so as to not confuse this with the pre-existing _mesh field
2011-07-31 00:44:23 +01:00
Justin Clark-Casey (justincc)
f1ce17071d
minor: method doc
2011-07-31 00:43:02 +01:00
Justin Clark-Casey (justincc)
e08be91c84
Refactor: Replace instances of m_isphysical with IsPhysical rather than have some code reference the private var and other the public var without any functionality difference.
...
Add some method doc to IsPhysical
2011-07-30 23:44:47 +01:00
Justin Clark-Casey (justincc)
4f4d080461
refactor: Rename ODEPrim.ParentPrim() to AddChildPrim() for code readability
2011-07-30 23:20:43 +01:00
Justin Clark-Casey (justincc)
49a3740ee9
minor: remove mono compiler warnings, some code spacing adjustments
2011-07-30 03:56:29 +01:00
Justin Clark-Casey (justincc)
d917010433
minor: Add method doc to collision subscription methods. Change method case to reflect OpenSim standards.
2011-07-30 03:11:36 +01:00
Justin Clark-Casey (justincc)
310a685220
refactor: extract method that generates a physics mesh from prim shape data
2011-07-30 02:34:50 +01:00
Justin Clark-Casey (justincc)
4197f66052
refactor: extract code which generate points and faces from sculpt data into it's own method.
...
fix build break.
2011-07-30 02:22:05 +01:00
Justin Clark-Casey (justincc)
b0eacadeb4
fix bug in previous commit
2011-07-30 02:09:17 +01:00
Justin Clark-Casey (justincc)
122e01949d
refactor: move the code that generates physics meshs from prim mesh data into a separate method, in order to make the code more readable.
2011-07-30 02:08:32 +01:00
Justin Clark-Casey (justincc)
5043be13fb
Return null from CreateMeshFromPrimMesher if OpenJPEG decoding of the sculpt data fails.
...
This is to address http://opensimulator.org/mantis/view.php?id=5612
2011-07-29 21:49:23 +01:00
Justin Clark-Casey (justincc)
f3c5a5b745
fix extremely minor Ode bug where the _taintedPrimL list would always be cleared on every OdeScene.Simulate() even if it was already empty.
2011-07-29 01:18:42 +01:00
Justin Clark-Casey (justincc)
2a39d0cdb0
refactor: Move another chunk of ninja code out of the OdeScene.Simulate() loop for consistency and readability.
2011-07-29 00:51:07 +01:00
Justin Clark-Casey (justincc)
3f0d8f3cbf
refactor: Simplify reading OdeScene.Simulate() loop by shunting all the NINJA joints stuff into its own method.
...
Now if ninja joints isn't active (which is the default) don't have to wade through a lot of massively indented irrelevant code.
2011-07-29 00:39:02 +01:00
Justin Clark-Casey (justincc)
9c6227da66
refactor: unindent the OdeScene.Simulate() loop to ignore the long commented out ifs and locks
...
This is to make it more readable.
2011-07-29 00:23:42 +01:00
Robert Adams
869883f2dc
BulletSim: fix buoyancy for prims. Start of configurable physics parameters.
2011-07-22 15:23:57 -07:00
Robert.Adams
5ffec1cd64
Pass collisions and updates in pinned memory (saves marshaling).
...
Fix folding feet by using collision normals.
Add constraint specification.
2011-07-22 10:23:40 -07:00
Dan Lake
2c11f7fc38
Merge branch 'master' into bulletsim
2011-07-20 15:01:32 -07:00
Dan Lake
3270bd560e
Removed unused AddPrimShape methods in PhysicsScene caused by merge conflicts
2011-07-20 14:34:02 -07:00
Careminster Team
9fc7d65df7
Apply the localID to the Physics actor to prevent null calls later
2011-07-19 18:26:36 +01:00
Justin Clark-Casey (justincc)
18652eb87e
Fix physics proxy regeneration when a mesh with more than one submesh is resized
...
Addresses http://opensimulator.org/mantis/view.php?id=5584
2011-07-16 01:36:27 +01:00
root
e9dbe54ab1
Fix some local id issues in physics glue
2011-07-15 20:07:59 +01:00
Justin Clark-Casey (justincc)
3e456163dd
Port implementation of llCastRay() from Aurora.
...
I haven't been able to test this since the viewer won't parse the llCastRay() function. Maybe some activation cap is missing. Could wait until it is activated by default in the viewer.
2011-07-12 22:13:15 +01:00
Justin Clark-Casey (justincc)
d31e0a67f7
temporarily fix the build break with building the OdePlugin tests assembly.
...
This needs to be fixed properly.
2011-07-12 03:26:22 +01:00
Justin Clark-Casey (justincc)
f75f906e35
minor: remove whitespace to trigger another build
2011-07-12 03:13:05 +01:00
Justin Clark-Casey (justincc)
df0e5cc9fe
When a mesh object is added to a scene, delay adding the physics actor until the sculpt data has been added to the shape (possibly via an async asset service request)
...
This prevents spurious 'no asset data' for meshes added on startup.
2011-07-12 02:33:09 +01:00
Dan Lake
b9cbe92f30
Merge branch 'master' into bulletsim
2011-07-11 12:23:20 -07:00
Justin Clark-Casey (justincc)
24efb021ff
minor Tack the prim name on the end of the "experimental mesh proxy generation" message.
...
Can probably comment out this message soon, once a few other issues are tidied up.
2011-07-11 04:23:30 +01:00
Justin Clark-Casey (justincc)
2f3d0e209f
When a sculpt/mesh texture is received by a part on a callback request, don't do the unnecessary work of copying the base shape.
...
Just setting the new base shape is enough to reinsert the sculpt data and set the taint.
Also cleans up a few more left-in debugging messages.
2011-07-11 03:13:59 +01:00
Justin Clark-Casey (justincc)
ce85675e70
comment out accidential ProcessTaints physics debug line left in code
2011-07-11 02:29:51 +01:00
Justin Clark-Casey (justincc)
5e8900dfd0
minor: code tidy and inserted log lines for future use.
...
Unable to get to the bottom of why resizing a mesh fails to properly reset the physics proxy, when toggling phantom does
After a mesh is generated, the existing sculptdata is set to zero in PrimitiveBaseShape to save memory
When phantom is toggled, the sculptdata is regenerated before remeshing.
But on resize, the sculptdata is not regenerated.
So clearly, resetting sculptdata is possible, but haven't quite been able to pin down how this is being done when phantom is toggled.
2011-07-09 00:35:30 +01:00
Justin Clark-Casey (justincc)
e8ad8593b6
refactor: eliminate redundant return statement
2011-07-08 20:58:44 +01:00
Justin Clark-Casey (justincc)
40300c886c
refactor: Factor out AddSubMesh() method from long CraeteMeshFromPrimMesher() method
...
Also remove some of the logging spam left in from the last commit.
2011-07-08 20:36:01 +01:00
Justin Clark-Casey (justincc)
b18ef976ff
Fix interpretation of physics mesh proxies from mesh data
...
As per http://wiki.secondlife.com/wiki/Mesh/Mesh_Asset_Format , some submesh blocks may just have the flag "NoGeometry" to signal that they provide no mesh data.
If a block contains this, ignore it for meshing purposes rather than suffer a ClassCastException
This fixes physics proxy meshing, so you can now walk through mesh doorways, properly stand on the trailer of mesh trucks, etc.
To get mesh physics proxy, the UseMeshiesPhysicsMesh must be true in a [Mesh] config section in OpenSim.ini (example in OpenSimDefaults.ini).
Convex hull physics not currently supported.
2011-07-08 19:43:22 +01:00
Justin Clark-Casey (justincc)
29034bc0e0
minor: code tidy up - remove a couple of Console.WriteLine() accidentally added in the last commit
2011-07-08 18:34:44 +01:00
Justin Clark-Casey (justincc)
36df9ae79a
refactor: Separate the OdeScene class into its own file from OdePlugin.cs, to improve code readability
2011-07-08 18:16:48 +01:00
Justin Clark-Casey (justincc)
1dcad4ac66
minor: commented out log lines for future use and very small code tidy
2011-07-08 17:58:01 +01:00
dahlia
5c18ebf424
Allow physics proxy generation for meshes using new asset format.
...
Fix an invalid cast exception while decoding new mesh asset format.
2011-06-29 17:36:41 -07:00
Robert Adams
302d72701d
BulletSim initial checkin
2011-06-20 17:24:42 -07:00
Mic Bowman
ad84728aba
Add localID to physical object creation functions.
2011-06-15 11:31:32 -07:00
dahlia
387b228d68
partial update for new mesh asset format - handle both old and new formats for physics mesh
2011-06-10 00:38:38 -07:00
Dan Lake
d565041e16
Fix crash when [Mesh] section is missing from configuration files
2011-04-29 15:49:10 -07:00
BlueWall
5e99d93651
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2011-04-21 15:16:12 -04:00
BlueWall
d9055c8dc3
Group collada meshies settings under [Mesh] in OpensimDefaults.ini
2011-04-21 15:15:24 -04:00
dahlia
212326eeb0
fix meshing failure on sculpt maps smaller than 64x64
2011-04-19 22:16:10 -07:00
dahlia
90b810c27e
force mesh proxy for simple box prims with path cut
2011-04-12 22:47:30 -07:00
Diva Canto
b23b29a53e
This fixes mantis #5198 and related. Physics is not my expertise, so I'm not 100% sure of what all the consequences of this change are. Pushing up, so others can take a look.
2010-12-24 16:23:00 -08:00
Teravus Ovares (Dan Olivares)
46db73b62b
* Re-Adding Scene TimeDilation to Object Update Packets.
...
* Added Calculating Time Dilation in the OdePlubin
* When multiple object updates are stuffed into one packet, average the time dilation between them as a compromise.
* Time Dilation on the update is calculated when the EntityUpdate object is created. The pre-calc-ed TD is stored in the Entity update and used when it goes out on the wire. Previously, it was 1.0 all the time. The time dilation is tied to when the update is created, not when the update is sent.
2010-12-23 03:30:09 -05:00
Justin Clark-Casey (justincc)
3053f5ba7d
minor: remove some compiler warnings
2010-12-10 03:08:31 +00:00
dahlia
9f29908f66
catch an exception when a mesh asset header cant be decoded
2010-11-24 02:05:41 -08:00
Latif Khalifa
c74c1620a1
* Updated libomv to r3461
...
Main reason for upgrade is to revert API change that was introduced in order to support headerless binary LLSD decoding needed for deserialization of the mesh assets, which turned out to be unnecessary as we can transparently decode both kinds.
2010-10-24 23:51:46 +01:00
dahlia
9038218c2d
fix combining of multiple physics submeshes
2010-10-20 20:39:05 -07:00
dahlia
e3bd10829f
remove some cruft from last commit
2010-10-18 04:26:23 -07:00
dahlia
7fa3335fd5
initial support for meshies physics. Must set ini option UseMeshiesPhysicsMesh = true to enable. See file OpenSimDefaults.ini for example.
2010-10-18 04:17:36 -07:00
Teravus Ovares (Dan Olivares)
0308982c58
one more silly line ending thing.... *If you have problems, fetch the tree and rebase.
...
Signed-off-by: Teravus Ovares (Dan Olivares) <teravus@gmail.com>
2010-10-15 01:45:25 -04:00
dahlia
bcdd03c1cf
more work in progress on mesh physics - still non-functional
2010-10-14 20:25:31 -07:00
dahlia
2d88394cd5
laying some groundwork for mesh physics
2010-10-14 13:10:03 -07:00
Teravus Ovares (Dan Olivares)
cf61cf7b32
* Make line endings consistant in Meshmerizer.cs
2010-10-09 13:50:53 -04:00
dahlia
9391c3ffee
add a flag in OpenSim.ini.example for enabling/disabling decoded sculpt map caching for meshing
2010-10-07 19:34:46 -07:00
Jeff Ames
bc9f793a92
Formatting cleanup.
2010-10-04 21:28:17 -04:00
Melanie
f220a2c5eb
Replace CalculateMass with a more accurate version, contributed by Ubit.
...
Thank you.
2010-10-02 00:24:16 +01:00
Melanie
d0c271adc6
Typo fixes
2010-09-26 18:06:23 +01:00
BlueWall
b0b4782a2b
adding configurable j2kDecodeCache path
...
allowing the decoded sculpt map cache path to be defined in
the configuration files.
Use DecodedSculpMapPath in the [Startup] section to set
the path. The default is still ./bin/j2kDecodeCache
2010-09-26 17:04:11 +01:00
Justin Clark-Casey (justincc)
30d3e8a13e
Add prim name to OdePrim Error and Warning messages.
...
This aims to make it easier to identify and remove rogue prims that are causing ODE to fall over.
2010-09-25 01:07:37 +01:00
Justin Clark-Casey (justincc)
4a5979c311
minor: remove some mono compiler warnings
2010-06-25 21:09:15 +01:00
Diva Canto
1e7ce6dbce
Hunting for the problem in #4777
2010-06-19 09:44:02 -07:00