Copied BulletSNPlugin.BulletSimAPI to a new
BulletSPlugin.BSAPIXNA.cs and then modifyed the latter to
comply with the BSAPITemplate definition. Not totally debugged
but the code is all there for an INI variable to select either
unmanaged C++ Bullet or the C# version of Bullet.
asymmetrical avatar capsule work now that rotation is being passed
from the simulator. Turns out the Bullet capsule is just not very
functional: it doesn't scale properly, the implementation only half
does asymmetry and, in general, is hard to work with.
Avatar shape is about what it was before these changes.
Added initial data structures for avatar shape mesh.
to get ready for...
Start creation of BulletAPITemplate. This defines the abstract interface
functions. Following commits will move over to the new interface.
This will enable switching between the managed and unmanaged version of
Bullet.
dumping of physical vehicle parameters (out of Bullet) on each
simulation step and to optionally scale vehicle angular velocity
by the time step. The latter looks to be part of a difference
between angular parameters for ODE and BulletSim. SL docs say
angular velocity is measured in radians/timeScale. Not sure if this
is different than what ODE does.
While fixing the above, add methods to physical body and shape pointer
wrapper so routines won't have to know that IntPtr.Zero means no
physical instance.
Fix problem with physical linksets failing after a few sits and
unsits by properly restoring child prom positions for compound
linksets after multiple selection and deselections.
Simple attempt to make avatars better shaped.
Replace parameter 'avatarCapsuleRadius' with 'avatarCapsuleWidth'
and 'avatarCapsuleDepth'.
More tweeking to avatar height calculation. A little better but
short avatar's feet are above the terrain and tall avatar's feet
are a little below the ground.
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.
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.
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.
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).
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.
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.
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.