Commit Graph

84 Commits

Author SHA1 Message Date
Teravus Ovares
08819bcbea * Created a way that the OpenSimulator scene can ask the physics scene to do a raycast test safely.
* Test for prim obstructions between the avatar and camera.  If there are obstructions, inform the client to move the camera closer.  This makes it so that walls and objects don't obstruct your view while you're moving around.   Try walking inside a hollowed tori.   You'll see how much easier it is now because your camera automatically moves closer so you can still see.
* Created a way to know if the user's camera is alt + cammed or just following the avatar.
* Changes IClientAPI interface by adding SendCameraConstraint(Vector4 CameraConstraint)
2009-07-19 02:32:02 +00:00
Jeff Ames
840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
lbsa71
ba360ede8b * Upped version number to 0.6.5 2009-05-25 11:43:56 +00:00
lbsa71
958d764172 * Upped trunk version number to 0.6.4 as we just tagged 0.6.4-release 2009-04-01 19:44:46 +00:00
Charles Krinke
b637a11b58 Fixes Mantis #3260. Thank you kindly, MCortez for a patch that:
llSetHoverHeight() should not clamp the x/y position of an object the way MoveTo does, 
and it should recalculate the absolute height to hover at as an object moves to reflect 
the current ground/water height under it.
Correctly implementing required adjusting the Physics interfaces and implementing at 
the physics plug-in level. The attached is a patch that correctly implements 
llSetHoverHeight() including updates to the ODE physics plug-in.
2009-03-06 23:01:35 +00:00
lbsa71
2e095f5727 * Upped VersionInfo to 0.6.3 and in the process, changed assemblyinfo to 0.6.3.* to better track down dll ref and overwrite problems. 2009-02-20 16:47:31 +00:00
diva
3d5a9e6748 This started as way to correct Mantis #3158, which I believe should be fixed now. The flying status was temporarily being ignored, which caused the avie to drop sometimes -- there was a race condition. In the process it also fixes that annoying bug in basic physics where the avie would drop half-way to the ground upon region crossings (SetAppearance was missing). Additionally, a lot of child-agent-related code has been cleaned up; namely child agents are now consistently not added to physical scenes, and they also don't have appearances. All of that happens in MakeRoot, consistently. 2009-02-15 05:00:58 +00:00
Justin Clarke Casey
ff7c8551ba * remove mono compiler warnings
* should work - the last compile failure looks like a random glitch...
2008-12-17 18:42:23 +00:00
Justin Clarke Casey
3b0db66b92 * Apply http://opensimulator.org/mantis/view.php?id=2775 with small tweaks
* This pushes an identifier for the OpenSim scene to the physics scene.  This allows log messages from the physics scene to identify which OpenSim scene they relate to.
* Thanks Gerhard
2008-12-15 18:39:54 +00:00
Teravus Ovares
8ad6f575eb * Implements the torque/Rotational Impulse methods in the PhysicsAPI and the ODEPlugin and pipes them to their respective LSL method.
* NBody will need to be updated, this is an API change.   Torque property and AddAngularForce
2008-12-14 14:30:28 +00:00
Teravus Ovares
3844e73d27 * Gerhard's patch m2781. Does some initial work for setting up llVolumeDetect.
* Warning! Physics API change. This means that the NBodySimulation needs to be updated!
* PhysicsActor -> void SetVolumeDetect(int) needs to go into classes that use PhysicsActor as their base class.
2008-12-09 11:11:16 +00:00
Charles Krinke
6758ecc403 Implement the plumbing for llSetVehicleType from the LSL
subroutine down through the physics modules through PhysActor
and SceneObjectPart. No connection to the physics simulators.
2008-09-28 22:38:59 +00:00
Charles Krinke
ebbbd37605 Added the plumbing for llSetVehicleRotationParam
in the classes between the LSL implementation and the
underlying physics engines.
2008-09-28 21:53:56 +00:00
Charles Krinke
3747862999 Plumb the connection though from llSetVehicleVectorParam
to the various physics engines. No connection to the 
underlying physics simulator yet, just plumbing through
the various classes.
2008-09-28 20:20:32 +00:00
Charles Krinke
3397236c6c Plumb the connection through from llSetVehicleFloatParam
to the various physics engines. No connection to the 
underlying physics simulator yet, just plumbing through
the various classes.
2008-09-28 18:36:30 +00:00
Teravus Ovares
7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point.  Regular people should let the dust settle.
* This has been tested to work with most basic functions. However..   make sure you back up 'everything' before using this.  It's that big!  
* Essentially we're back at square 1 in the testing phase..  so lets identify things that broke.
2008-09-06 07:52:41 +00:00
Dahlia Trimble
f74a9bcdc7 Implements llSetForce() and llGetForce(). These are experimental and the units may not match the Linden implementation. 2008-07-24 07:45:58 +00:00
Dahlia Trimble
13399ff439 Passes prim physical status to mesher from physics plugins
Small prims now get a full mesh if they are physical
Fixed a logic bug that was preventing many prim meshes from having excess memory cleaned up
Switched to more conservative method of vertex and triangle list trimming to prevent possible crash
2008-07-12 01:58:20 +00:00
Dr Scofield
7d55dfba8a dr scofield's warnings safari:
* commenting out unused variables
2008-06-27 17:25:03 +00:00
Teravus Ovares
042c9ed4d8 * Adds Top Colliders when using ODE. Access it from the estate tools/debug tab. 2008-05-25 11:22:05 +00:00
Teravus Ovares
00a1f0bab0 * This finishes the ODE options section of the OpenSim.ini.example. I've added 44 configurable options!
* This includes if you want to mesh sculpties and the Level of detail on the sculptie meshing for non physical and a separate LOD on physical sculpties.
* The options range from gravity..  to avatar movement speed, to friction management..  to object density.. to update throttling.
2008-05-16 20:16:33 +00:00
Jeff Ames
65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Teravus Ovares
2a988f187e * Refactored IConfigSource into Physics plug-ins and Scene. We can get rid of some of the parameters we pass to it's constructor now like, 'm_allowPhysicalPrim', 'seeIntoOtherRegions', etc.. so on
* The main purpose of this is to provide configuration options for ODE and other physics plug-ins that are advanced enough to be able to be configured.
2008-05-14 23:15:25 +00:00
Jeff Ames
c995d60d37 Formatting cleanup. 2008-05-14 05:11:23 +00:00
Adam Frisby
5548dd6b06 * Some more bulletx physics fixes from Jed (DeepThink) 2008-05-13 17:05:52 +00:00
Adam Frisby
93ec7f0c3c * Patch from Jed (DeepThink) - More optimisations for BulletX renderer. Trimesh collisions should now work relatively efficiently. BulletX plugin should now be functional - feedback would be appreciated as to how it performs vs ODE. 2008-05-09 17:17:54 +00:00
Adam Frisby
cf7560d1aa * Commit from Jed Zhu (DeepThink) - Initial implementation of mesh collision into BulletX plugin. Additional work to come in the next few days. 2008-05-08 13:32:15 +00:00
Teravus Ovares
240e8646da * If you llApplyImpulse on an attachment, it applies impulse on the avatar, not the attachment. 2008-05-06 00:23:19 +00:00
Teravus Ovares
07167c9a3f * Committing some collision stuffs that I'm working on.
* Nothing user facing yet.
2008-05-03 04:33:17 +00:00
Adam Frisby
01f31fd933 * Breaking all the code, breaking all the code..!
* Made a bunch more members static, removed some dead code, general cleaning.
2008-05-01 16:23:53 +00:00
Teravus Ovares
2a3bdde0fa * Adds llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z,TF)
* Currently if you apply that to only one or two axis you get unpredictable and sometimes explosive results.
* Three axis works well enough to play with it anyway.   More work is needed here.
* Fixed an incorrectly named method in ODE.NET
2008-04-23 15:32:19 +00:00
Adam Frisby
fef3b36894 * Optimised using statements and namespace references across entire project (this took a while to run). 2008-04-21 07:09:17 +00:00
Jeff Ames
86128ba4d4 Fix compiler warnings in BulletXPlugin. 2008-03-29 04:30:19 +00:00
Jeff Ames
a7556af7de Fix a few compiler warnings. 2008-03-25 03:37:48 +00:00
Teravus Ovares
a21112ccee * Adds llMoveToTarget and llStopMoveToTarget support to the ODEPlugin.
* It doesn't generate at_target events, because they don't exist yet in the script engine.
* The Tau is different, however, compatible with scripts I tested.
* Not perfect...  but pretty good.
2008-03-25 03:36:31 +00:00
Jeff Ames
47180080f0 Formatting cleanup. 2008-03-18 05:16:43 +00:00
Teravus Ovares
d0123a796b ODEPlugin
* Added osSetPrimFloatOnWater(BOOL) to make Physical prim float at the water level.   
* osSetPrimFloatOnWater(TRUE); or osSetPrimFloatOnWater(FALSE);
* By default, prim do not float at the water level.
* More work is needed on the floating, but it's a start.
2008-03-10 05:56:58 +00:00
Teravus Ovares
8bea3dbdb9 * Added ODEPlugin Support for llSetBuoyancy. Set Buoyancy to 1 for space prim.
* Added WaterLevel support to the ODEPlugin.   More on this later.
2008-03-10 05:23:43 +00:00
Teravus Ovares
0a5c48b1c8 * This is a very icky implementation of physical linkset prim using fixed joints. This will change quite drastically, however it's fun to play with.
* To play with this you must link your prim before setting it physical, otherwise they won't link in the physics engine properly.  This will also be fixed.
* Currently the linked prim are extremely unstable because I have yet to implement combining of forces with the same normal. This will also be fixed.   In fact, the whole PhysicsActor, ODEPrim relationship will be reworked to consider groups from the get-go.
* This implementation is better then it crashing your sim, so I'm commiting it for now.
2008-03-02 09:31:39 +00:00
Teravus Ovares
27508c1ad8 * Added Support within the ODEPlugin for Selected. Which means that;
* When you select a physical prim, it stops while you've got it selected.
* When you move or alter a prim in some manner, it doesn't become collidable until you de-select it
* When you select a prim, it doesn't become temporarily 'phantom' until you make some change to it while it's selected. (this prevents accidental selections in prim floor from causing it to go phantom on you(but don't move it or you'll fall))
* There's one major difference, and that's a physical object won't stop if you don't have permission to edit it.  This prevents people who don't have edit permissions on a prim from stopping it while it's moving.
2008-02-23 11:42:55 +00:00
Jeff Ames
a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
Teravus Ovares
8edaada1d3 ODE: Tired of floating above the ground after crossing a border? Boy have I got a solution for you! For a limited time, you can be the right height after border crossings automatically. Just three easy payments of $9.95 and make sure your neighbor is sending child agent updates! 2008-02-18 01:52:25 +00:00
Teravus Ovares
19e0ada93a * Located and destroyed the weird velocity and rotation transfers. It turned out to be that the Static PhysicsVector.Zero was transferring velocities between all non fixed objects. Not so static after all :(. Finding it was cruel and unusual punishment from the CLR.
* Therefore, when you run through a pile of prim you won't see things rotate when they're not supposed to anymore.
* Avatars don't float off either.
2008-02-17 10:41:08 +00:00
Adam Frisby
f3afa68a2a * Made new Framework.Constants class, added RegionSize member.
* Converted all instances of "256" spotted to use RegionSize instead. Some approximations used for border crossings (ie 255.9f) are still using that value, but should be updated to use something based on RegionSize.
* Moving Terrain to a RegionModule, implemented ITerrainChannel and TerrainModule - nonfunctional, but will be soon.
2008-02-14 12:16:33 +00:00
Teravus Ovares
3588d89b2c * Bigish ODE stability Update. Run Prebuild 2008-02-13 23:14:41 +00:00
Teravus Ovares
d773ca5147 * Made physical prim stable enough for the general population to turn on. (though I still don't recommend it for welcome regions unless object build is off.
* Updated the ode.dll for windows with a more reasonable stack space reserve.  Linux users will need to type ulimit -s 262144 before starting up OpenSimulator if using Physical Prim to protect against stack collisions. or run the included ./bin/opensim-ode.sh to start up OpenSimulator in ODE mode.
* Added internal collision score and am keeping track of 'high usage' prim.
* Tweaked collisions some more
* Tested up to 460 physical prim in extremely close quarters (which was previously impossible in OpenSim).  After 460 in tight quarters, physics slows down enough to make it hard to do any moving, however..  non physics things still work, such as logging on to the simulator, etc.
2008-02-13 07:50:15 +00:00
Teravus Ovares
f603e57e9a * Added PhysicsScene.Dispose()
* In ODE, disposing of all of the ODE objects and the ODE World to reclaim memory when the simulator restarts.
2008-02-11 22:54:51 +00:00
Jeff Ames
6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Teravus Ovares
c4687116ad * Implemented grab and throw in ODE. It's a little strong still so toss gently at first to test the waters or you'll lose prim to the pit at the edge of the sim. Make sure the object is physical before trying to toss it or it'll just move to the new location. 2008-01-29 15:10:18 +00:00
Teravus Ovares
47761a4a5e * Commenting out the 'collision notifications' on BulletX, as there hasn't been an update on bullet in a while and the console notifications consume the entire CPU to make bullet completely unusable. 2008-01-29 02:08:30 +00:00