[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