* Added ability to create new prim on existing prim (rezzing prim from inventory on other prim coming soon). No more new prim buried in the ground by accident.

* The prim are at the absolute position of the prim you rezzed it on top of + (0,0,0.5) for now.
This commit is contained in:
Teravus Ovares
2007-12-28 05:25:21 +00:00
parent 9b36c6c3ad
commit 67bbed8202
6 changed files with 128 additions and 61 deletions

View File

@@ -332,7 +332,7 @@ namespace OpenSim.Framework
public delegate void UUIDNameRequest(LLUUID id, IClientAPI remote_client);
public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, LLQuaternion rot, PrimitiveBaseShape shape);
public delegate void AddNewPrim(LLUUID ownerID, LLVector3 RayEnd, LLQuaternion rot, PrimitiveBaseShape shape, byte bypassRaycast, LLVector3 RayStart, LLUUID RayTargetID, byte RayEndIsIntersection);
public delegate void RequestGodlikePowers(LLUUID AgentID, LLUUID SessionID, LLUUID token, IClientAPI remote_client);

View File

@@ -46,6 +46,8 @@ namespace OpenSim.Framework
private static object XferLock = new object();
private static Dictionary<LLUUID, string> capsURLS = new Dictionary<LLUUID, string>();
#region Vector Equasions
public static double GetDistanceTo(LLVector3 a, LLVector3 b)
{
float dx = a.X - b.X;
@@ -53,6 +55,16 @@ namespace OpenSim.Framework
float dz = a.Z - b.Z;
return Math.Sqrt(dx*dx + dy*dy + dz*dz);
}
public static double GetMagnitude(LLVector3 a) {
return Math.Sqrt((a.X * a.X) + (a.Y * a.Y) + (a.Z * a.Z));
}
public static LLVector3 GetNormal(LLVector3 a)
{
float Mag = (float)GetMagnitude(a);
return new LLVector3(a.X / Mag, a.Y / Mag, a.Z / Mag);
}
# endregion
public static ulong UIntsToLong(uint X, uint Y)
{