added rotation support to POS
parent
aaab1448f7
commit
c261812e39
|
@ -135,15 +135,19 @@ namespace OpenSim.Region.Physics.POSPlugin
|
||||||
" absX: " + Math.Abs(p.Position.X - c.Position.X) +
|
" absX: " + Math.Abs(p.Position.X - c.Position.X) +
|
||||||
" sizeX: " + p.Size.X * 0.5 + 0.5);
|
" sizeX: " + p.Size.X * 0.5 + 0.5);
|
||||||
*/
|
*/
|
||||||
if (Math.Abs(p.Position.X - c.Position.X) >= (p.Size.X * 0.5 + 0.5))
|
|
||||||
|
Vector3 rotatedPos = p.Orientation.Inverse() * new Vector3(c.Position.X - p.Position.X, c.Position.Y - p.Position.Y, c.Position.Z - p.Position.Z);;
|
||||||
|
Vector3 avatarSize = p.Orientation.Inverse() * new Vector3(c.Size.X, c.Size.Y, c.Size.Z);
|
||||||
|
|
||||||
|
if (Math.Abs(rotatedPos.x) >= (p.Size.X * 0.5 + avatarSize.x))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (Math.Abs(p.Position.Y - c.Position.Y) >= (p.Size.Y * 0.5 + 0.5))
|
if (Math.Abs(rotatedPos.y) >= (p.Size.Y * 0.5 + avatarSize.y))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (Math.Abs(p.Position.Z - c.Position.Z) >= (p.Size.Z * 0.5 + 1.0))
|
if (Math.Abs(rotatedPos.z) >= (p.Size.Z * 0.5 + avatarSize.z))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -338,7 +342,7 @@ namespace OpenSim.Region.Physics.POSPlugin
|
||||||
|
|
||||||
public override PhysicsVector Size
|
public override PhysicsVector Size
|
||||||
{
|
{
|
||||||
get { return new PhysicsVector(0, 0, 0); }
|
get { return new PhysicsVector(0.5f, 0.5f, 1.0f); }
|
||||||
set { }
|
set { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue