[Opensim-dev] Questions about Vehicle scripting calls
Mike Higgins
mike at kayaker.net
Fri Jun 8 22:15:24 UTC 2012
Thanks for the link to the source page James! In my spare time I'd
like to join the developers on this project. I think I see some spare
time in my schedule for 2015. Unless I'm lucky and I get laid off before
then...
When I look at the OLEDynamics.cs code, I see a test on line 806:
if VehicleFlg.NO_Z is set, then the m_dir.Z is set to zero. If NO_Z is
set, then it could explain the problem I am having. So I tried
resetting that flag but it did not allow the linear motor to move up.
Still no luck. I tried setting the VEHICLE_FLAG_NO_X, and that worked! I
can prevent the vehicle from moving in the X direction. But still
nothing can get the vehicle to move in the Z direction. I tried moving
the llResetVehicleFlags(VEHICLE_FLAG_NO_Z) to just before the call to
start the vehicle moving in the script, under the hypothesis that NO_Z
was being set by some other call, but still no luck.
Then I looked in the ODEDynamics.cs code where, starting at line
663, the comments from KF say "So far I have found no good method to
combine a script-requested .Z velocity and gravity". Then he proceeds to
replace the requested linear motor Z value with the current Z velocity
of the body. Since a balloon is buoyant, the Z of the current velocity
is always 0 and this looks like it is probably the problem. It always
resets the linear motor Z value to 0 here. I'll have to think about what
should be done here...
On 6/7/12 5:51 AM, James Hughes wrote:
> Mike,
>
> I guess that no one that deals with vehicles has taken a look at that
> code in a good while now. Since you have a handle on this from the LSL
> side, why don't you have a look at the OpenSim ODE code for that? I
> did look at it and it looks pretty straightforward. Maybe you can see
> something from that side.
>
> https://github.com/BlueWall/opensim/blob/master/OpenSim/Region/Physics/OdePlugin/ODEDynamics.cs#L824
>
>
> d is Ode.NET which contains functions found here:
> http://ode-wiki.org/wiki/index.php?title=Manual:_Rigid_Body_Functions
>
> If you see something there, you can submit patches (or hit us with a
> clue stick) and we can get it fixed. It may be as simple as calling
> d.BodyGetRotation and plugging the result into the equation:
> https://github.com/BlueWall/opensim/blob/master/OpenSim/Region/Physics/OdePlugin/ODEDynamics.cs#L845
>
> Thanks!
> -BlueWall
More information about the Opensim-dev
mailing list