Added llRot2Fwd, llRot2Left, and llRot2Up as well as explicit vector->string casting.
(Thanks to dalien on informing me how easy the math was for these).ThreadPoolClientBranch
parent
5a99a96fed
commit
bc3d0217af
|
@ -245,17 +245,17 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
|
|
||||||
public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r)
|
public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r)
|
||||||
{
|
{
|
||||||
return new LSL_Types.Vector3();
|
return (new LSL_Types.Vector3(1,0,0) * r);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r)
|
public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r)
|
||||||
{
|
{
|
||||||
return new LSL_Types.Vector3();
|
return (new LSL_Types.Vector3(0, 1, 0) * r);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r)
|
public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r)
|
||||||
{
|
{
|
||||||
return new LSL_Types.Vector3();
|
return (new LSL_Types.Vector3(0, 0, 1) * r);
|
||||||
}
|
}
|
||||||
public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b)
|
public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -80,6 +80,11 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
return "<" + x.ToString() + ", " + y.ToString() + ", " + z.ToString() + ">";
|
return "<" + x.ToString() + ", " + y.ToString() + ", " + z.ToString() + ">";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static explicit operator string(Vector3 vec)
|
||||||
|
{
|
||||||
|
return "<" + vec.x.ToString() + ", " + vec.y.ToString() + ", " + vec.z.ToString() + ">";
|
||||||
|
}
|
||||||
|
|
||||||
public static bool operator ==(Vector3 lhs, Vector3 rhs)
|
public static bool operator ==(Vector3 lhs, Vector3 rhs)
|
||||||
{
|
{
|
||||||
return (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z);
|
return (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z);
|
||||||
|
|
Loading…
Reference in New Issue