Commit Graph

346 Commits (81af87545e9be791252e2f9b748dcf5abb876c58)

Author SHA1 Message Date
Jeff Ames 6a1b787436 More formatting cleanup. 2008-05-14 05:33:32 +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
Teravus Ovares fcc23be577 * Fixed directory not found when saving Mesh previews (my bad, I was testing) 2008-05-13 05:06:58 +00:00
Teravus Ovares e70da2e174 * Committing meshmerizer patch from Dahlia. Thanks Dahlia!
* 0001241: physics cylinder proxy distorted and square hollow misaligned (patch attached) 
* The included patch corrects the outer shell of the meshmerizer proxy for the cylinder prim to eliminate spurious vertices and shape distortion, and corrects the orientation of the square hollow.
* The size and orientation of the square hollow for the prism prim has been corrected also.
2008-05-13 04:16:16 +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
Teravus Ovares b7baa3cd2a * Valid Sculpted prim now collide properly.
* The first time you set the sculpted texture of a prim you might have to futz with it to get it to generate a sculpted physics proxy
* Note that there are already issues in Trunk, (such as the prim scaling issue and prim jumping issue.  Essentially editing is difficult right now)
* This just adds to the experimental nature of trunk. :D
2008-05-09 07:50:00 +00:00
Teravus Ovares 6bb4ab0563 * Applying Dahlia's Triangular hole in a cube peg patch. Fixes the hollow orientation in a cube in the meshmerizer. Thanks Dahlia!
* See mantis 0001203 for more details!
2008-05-09 02:00:55 +00:00
Teravus Ovares 7e275bfa37 * Wrote a method to get the OpenJpeg data of a sculpt texture asset and save it to the prim shape.
* Added some stuff around sculpted prim meshes..   but it's just there so the project compiles now.
2008-05-09 01:28:54 +00:00
Teravus Ovares 08ec34e4d3 * Removed ODELock message since it wasn't telling us anything important and people seemed to think it was the cause of their issues rather then a message to help locate a situation where physics stalls for a second and then kicks.
* This was simply a message added when an avatar was added/removed from the scene.
2008-05-08 16:07:41 +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
Adam Frisby ba8ff761c0 * Reduced sleep durations in a number of files. 2008-05-08 04:47:38 +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 e8acb49fef * For your fragging desire, damage enabled land works, but watch out!, life does not regenerate until you're dead! 2008-05-03 15:39:40 +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
Jeff Ames d51ce47b2d Update svn properties. Minor formatting cleanup. 2008-05-01 14:31:30 +00:00
Teravus Ovares 1d9c68969e * ODE Tweak. See if this helps. 2008-05-01 00:54:21 +00:00
Teravus Ovares 911e63765c * Single Attachments now work from inventory. You can attach from inventory and detach from inventory.
* Detaching from right clicking in world, detaches to your inventory.
* If you go up to a prim and attach it from in world, it appears in your inventory.
* Attachment placement is saved when you detach them. 
* Choosing wear remembers your last attachment point from inventory.
* Wrote a method to update an inventory item's asset and sends the updated inventory item to the Client
* Wrote a recursive method to find the folder of a known existing inventory item.
* Removed a block on physics object position on creation.  This might crash a region or two, let us know via Mantis if your region crashes because of a physics out of bounds error.
* Drop doesn't work.  The menu item doesn't even come up.  Don't know why :P.
2008-04-27 20:10:28 +00:00
Teravus Ovares d023c331f8 * Tuned the llMove2Target PID controller to be more reasonable and not overshoot the target. 2008-04-24 22:26:26 +00:00
Teravus Ovares aa8aee90a3 * Adds much better support for attachments that you right click on in world.
* Your friends can see your attachments now.  People who appear in the sim after you've attached something can also see your attachments.
* You can position & rotate your attachments now.  Positions do *not* save.
* You can detach attachments now the regular way.
* Attachments do not cross into other regions with you..(this isn't too far off)
* Updated ODE to not request terse updates on child prim.
2008-04-24 11:32:41 +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
Teravus Ovares 9fec575b3e * Made it safe again to use the restart button from the estate tools and the restart console command.
* It looks ugly on the console..   but it's really safe..  and restores some memory.
2008-04-10 10:27:03 +00:00
Teravus Ovares b85624db18 * Adds twist support for Cubes, Cylinders, and Prisms in the Meshmerizer
* A tweak of the SimStatsReporter so it would report the prim capacity to be 45000.
2008-04-10 00:31:44 +00:00
Teravus Ovares 95e31c9f02 * Added stretchable ellipsoid support with configurable LOD. It's actually a split facet icosahedral geodesic sphere that's scaled.
* In other words, you can stretch spheres into oblong shapes now and watch them roll around like a football would.
* Still can't cut, twist or profile cut spheres yet.
2008-04-08 05:03:43 +00:00
Teravus Ovares d0f7784101 * Adds poor support for ellipsis in the Meshmerizer. This will get better.. notice the huge nasty facets! Regular spheres still work as they did. 2008-04-08 01:29:45 +00:00
Teravus Ovares e409892a9c * Updated ODE.NET bindings to the ODE library.
* Fixed some Tapers with Cylinders in the Meshmerizer
2008-04-07 22:11:41 +00:00
Teravus Ovares 899f00b83d * Fixed up some documentation
* Should help the sinking feeling when new avatar arrive in the scene.
2008-04-06 06:42:54 +00:00
Teravus Ovares 2d33bf854f * ODEPlugin: put a limit on the minimum size a prim can be ( scale <=0 ). 2008-04-03 04:02:46 +00:00
Teravus Ovares b790a16e98 * Updating the version of the ODE library. (big update). The Mac library needs to be updated still.
* Adding some XMPP stuff that's incomplete.
2008-04-02 01:03:31 +00:00
Teravus Ovares 8aa4308097 * Minor cleanup 2008-03-30 19:58:14 +00:00
Jeff Ames 86128ba4d4 Fix compiler warnings in BulletXPlugin. 2008-03-29 04:30:19 +00:00
Jeff Ames 9d1b42c39a Comment out unused private methods. 2008-03-25 03:49:08 +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
Charles Krinke 21e5e65bb7 Comment out "m_randomizeWater" and "ms" until we use them later. 2008-03-21 16:52:55 +00:00
Jeff Ames bf8b5844f2 Formatting cleanup. Minor refactoring. 2008-03-18 14:51:42 +00:00
Justin Clarke Casey 0b7626b630 * Remove unused (and somewhat nonsensical) method in PhysicsActor
* Thanks for DrScofld for drawing attention to this
2008-03-18 11:37:34 +00:00
Jeff Ames 47180080f0 Formatting cleanup. 2008-03-18 05:16:43 +00:00
Teravus Ovares abacfba287 * Preliminary work with the ODEPlugin to collect collision data. 2008-03-14 05:22:52 +00:00
Teravus Ovares f46fcbb9d2 * Added Linear Acceleration reporting to the ODEPlugin.
* Added support for LSL llGetOmega (Rotational/Angular Velocity)- ODEPlugin is the only physics plugin that reports it.
2008-03-10 14:14:44 +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 8bba8e232c * Fixed a few things and enabling Physical Prim border crossings again.
* Everyone try to push a physical prim across a region border now.
2008-03-09 20:29:59 +00:00
Teravus Ovares 7cae577094 ODE Plugin
* More cleanup
* Less noise
2008-03-09 17:50:24 +00:00
Teravus Ovares 5b6eba968b * Fixed the Link + Duplicate + Unlink both = 'ODE Invalid Argument in Collision Space Crash'
* Added: Console comment: [PHYSICS]: The scene reused a disposed PhysActor! *waves finger*, Don't be evil.
2008-03-09 16:32:44 +00:00
Teravus Ovares 081b2ac34e * Cleaned up some locking on the ODEPlugin to make it more developer friendly
* Expect the occasional deadlock?
2008-03-09 15:43:01 +00:00
Teravus Ovares 0cb4e401ad * Killed 4 more warnings (at 16 now) 2008-03-06 09:41:34 +00:00
Adam Frisby 1410210b84 * Four more warnings, etc etc. 2008-03-05 22:00:41 +00:00
Adam Frisby 810d2126ea * Three more warnings are a-gone. 2008-03-05 21:56:14 +00:00
Jeff Ames cd6f4a57e7 Added copyright heaaders. Minor cleanup. 2008-03-04 04:11:37 +00:00
Teravus Ovares d015356902 * Applied patch 708 from devalnor. Thanks devalnor!
* ODE: Added support for larger box stacks. (they're slow, but they work)
* ODEPlugin no longer tries to 'catch up' with the simulator frame rate if it gets behind.  Catching up was causing a lot of problems with larger box stacks and other things that stall the simulator (like saving prim in the datastore)
2008-03-03 16:52:25 +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 fa7322eac9 * Fixed Cylinder mass formula using diameter instead of radius. 2008-02-29 06:55:31 +00:00
Teravus Ovares fe1f15f4ec * killed a 'new mass' debug line. 2008-02-29 05:50:40 +00:00
Teravus Ovares e333eaf4b6 * ODEPlugin
** Added more realistic calculations of mass for the rest of the supported prim shapes+holes+cuts+tapers.  Previously they were the generic height * width * length. Spheres roll (Angular velocity) more realistically, etc.
2008-02-29 05:46:24 +00:00
Teravus Ovares 95def8c636 * Adds unit test glue to the OdePlugin.
* Adds one unit test. CreateAndDropPhysicalCube.
* More unit tests will be done
* Let me know if this breaks Linux build..
2008-02-24 04:06:01 +00:00
Teravus Ovares bbb8b66908 * Made Physics updates a teensy bit more responsive. A previous CPU optimization of mine slowed the speed of updates using the 'poll' method in certain circumstances. 2008-02-23 12:46:23 +00:00
Teravus Ovares db264013d4 * One more fix to the selected feature
* Don't act immediately on a physical prim unless it's moving.
* This helps when you're trying to make a box stack and you select the bottom most box.
2008-02-23 12:26:37 +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
Teravus Ovares 640ad259d4 * A few additional null checks in the Physics Scene and PhysicsActor so we don't try to enumerate dead null ODECharacter objects when things get *really* slow. 2008-02-21 14:51:39 +00:00
Teravus Ovares 740ce20d9d * Found the land bug, yay 2008-02-20 20:07:12 +00:00
Jeff Ames a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
Teravus Ovares 07774473af * Fixed a long standing race condition in physics events. Could this be the source of the null on multicast_void: error? 2008-02-20 17:50:19 +00:00
Teravus Ovares cfc9ee4265 * Adds limited support for each hollow type for the supported prim., Cube with a triangle hollow, Cube with a cylinder hollow, cylinder with a triangle hollow, etc.
* More work needs to be done here as several of the profileshape/hollow combinations are rotationally offset from where they render in the client.
2008-02-19 16:01:14 +00:00
Teravus Ovares 62f608b152 *rawfile fix. 2008-02-19 08:57:43 +00:00
Teravus Ovares e789a6bc9b * This patch adds Prism support to the Meshmerizer. Prism is one of the object types in the drop down on the object tab. Positive tapers are slightly incorrect(prim sinks into ground a tiny bit). Everything else that's supported works as expected. Hollow, cut, negative tapers, top shear. 2008-02-19 08:49:38 +00:00
Tedd Hansen c62328950a More exception checks and crash hints
If no scriptengine is specified then don't try to load any.
2008-02-18 14:21:51 +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 c2d7beb617 * Last bit of cleanup now. As long as you keep physical prim off, you should have a reasonably stable experience with ODE again.
* Physical prim at the simulator edge still seems to have the occasional issue.
2008-02-17 20:40:21 +00:00
Teravus Ovares f80a534eb0 * Various ODE Cleanups 2008-02-17 20:04:28 +00:00
Teravus Ovares 89349a3810 * Disabling physical prim crossings until they get a bit more stable. 2008-02-17 12:10:47 +00:00
Teravus Ovares e33a0c5fc0 * Fixed the Ghost physical hull on deleting a physical Prim
* Fixed a deadlock when there is an exception in the collision and stepping parts of Simulate.
2008-02-17 11:50:15 +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
Jeff Ames 3b9d332f84 Added copyright notices. 2008-02-17 01:16:40 +00:00
Teravus Ovares be6edefcfb * ODE Stability update 4 :D
* Changed the way meshing requests get sent to the ODEPlugin
* Numerous other fixes
2008-02-15 21:35:52 +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 135a72d6ca * Removed the noise from the console. The last commit seems to have resolved the recent reports of 'argument not a space' on linux. Though, there were about 50 changes :D 2008-02-14 10:07:15 +00:00
Teravus Ovares bd880f9178 * Another ODE Stability update. This might fix the recent Linux issues with the ODEPlugin. 2008-02-14 09:31:22 +00:00
Teravus Ovares e3a711536b * ODE - This fixes a few things and breaks a few more. 2008-02-14 01:57:19 +00:00
Jeff Ames 4e005fc225 Cleaned up some typos. 2008-02-14 00:44:21 +00:00
Teravus Ovares 0d14c47c28 * Bigisn ODE Stability update 2 2008-02-14 00:39:08 +00:00
Teravus Ovares 3588d89b2c * Bigish ODE stability Update. Run Prebuild 2008-02-13 23:14:41 +00:00
Teravus Ovares 2e89c01851 * This fixes mantis 553 (It appears that the exception is thrown when there is a collision with a cylinder that is both hollowed and either tapered or cut. The sequence of actions that reproduce the problem for me are: create a cylinder, hollow to 95%, taper X/Y, then collide it with another object or avatar. Note that the cylinder itself is not marked physical. ) 2008-02-13 19:06:35 +00:00
Teravus Ovares c1044039d4 * Removed a debug line that got called every frame. 2008-02-13 08:37:50 +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
Jeff Ames 001ce95e4c Clean up more unnecessary String.Format calls 2008-02-13 03:38:18 +00:00
Teravus Ovares e5ede36f0c * Physical prim cross borders and continue from where the left off on the other side now, assuming the region on the other side has physical prim enabled. 2008-02-12 07:32:32 +00:00
Teravus Ovares 6e01769bcf * A bunch of updates to make things more smooth.
** Sending the actual TimeDilation to the client now instead of the 62455 constant.  The client is *supposed* to use that value to sync with the simulator.    (actually sending ushort.maxvalue * TimeDilation)
** Disabling prim that inter-penetrate instead of just not attaching a joint
** Reduced prim spin a 'little' bit, but not *enough* 
** Tweaked the TimeDilation algorithm to be closer to 1.0 by default and various changes to the sim stats reporter 
** Created a .SetValues method to PhysicsVector so we can simply call the setvalues function instead of .x, .y, .z sets.
** Experimented with a .GetBytes Method on PhysicsActor to be able to use the LLVector3.FromBytes() method.   
** Upped the Inter-penetration depth to 0.25 instead of .08.
2008-02-12 04:27:20 +00:00
Teravus Ovares c926962862 * This resolves the null exceptions when a script is manipulating a physical object in ODE and you delete the object. The script is still running and trying to add force, but the object reference is null. 2008-02-12 00:01:55 +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
Teravus Ovares a56664cf59 * um, Prim crossings? Experimental.
* Backup your database just in case.
2008-02-11 01:43:54 +00:00
Jeff Ames e207284fef Clean up logging calls using String.Format explicitly 2008-02-10 01:57:59 +00:00
Teravus Ovares c9b5516ca8 * Adds Top Shear support to the Meshmerizer for the Cube prim and the Cylinder prim. 2008-02-09 05:18:52 +00:00
Teravus Ovares fec65b3c69 * Tweaked timing of rapid mesh requests. Helps a race condition. 2008-02-09 04:08:26 +00:00
Teravus Ovares bb5b88d161 * Fixed a situation in ODE where it didn't call the mesher on a cube when you tapered if you didn't have a cut or a hollow. 2008-02-08 23:48:27 +00:00
Teravus Ovares fadf5b479f * Added Taper support to the Meshmerizer for Cube and Cylinder.
* Removed the hull verbosity
2008-02-08 23:28:38 +00:00
Teravus Ovares b63c267f0b * Finished Cylinder in the Meshmerizer. Hollow and Path cut work for it now. Enjoy the new physics-friendly prim type. 2008-02-08 22:11:28 +00:00
Teravus Ovares 3be2e772ec * Removed a statement that crashes the Meshmerizer if you don't have a specific /dev/ folder 2008-02-08 12:07:39 +00:00