From 95de99ff0a2f1d810c3f3dffc7a55cee98d5f28f Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Mon, 6 Aug 2007 12:49:08 +0000 Subject: * Now we have boxes. Yay! * Removed unused SendPrimitiveToClient that didn't have rot. --- OpenSim/Region/ClientStack/ClientView.API.cs | 36 ++++------- .../ClientStack/ClientView.ProcessPackets.cs | 54 +++++++++------- .../Environment/Scenes/AllNewSceneObjectPart2.cs | 4 +- OpenSim/Region/Environment/Scenes/Primitive.cs | 74 +++++++++++----------- .../Region/Examples/SimpleApp/MyNpcCharacter.cs | 3 +- 5 files changed, 83 insertions(+), 88 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index 610bfd1..fb0ec29 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -673,6 +673,8 @@ namespace OpenSim.Region.ClientStack OutPacket(loadURL); } + #endregion + #region Appearance/ Wearables Methods /// @@ -817,44 +819,33 @@ namespace OpenSim.Region.ClientStack this.OutPacket(attach); } - public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem) + public void SendPrimitiveToClient( + ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, + LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem, LLQuaternion rotation) { ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); outPacket.RegionData.RegionHandle = regionHandle; outPacket.RegionData.TimeDilation = timeDilation; outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; + outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, flags); + outPacket.ObjectData[0].ID = localID; outPacket.ObjectData[0].FullID = objectID; outPacket.ObjectData[0].OwnerID = ownerID; outPacket.ObjectData[0].Text = Helpers.StringToField( text ); outPacket.ObjectData[0].ParentID = parentID; outPacket.ObjectData[0].PSBlock = particleSystem; + byte[] pb = pos.GetBytes(); Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length); + byte[] rot = rotation.GetBytes(); Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); + OutPacket(outPacket); } - public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem) - { - ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); - outPacket.RegionData.RegionHandle = regionHandle; - outPacket.RegionData.TimeDilation = timeDilation; - outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; - outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, flags); - outPacket.ObjectData[0].ID = localID; - outPacket.ObjectData[0].FullID = objectID; - outPacket.ObjectData[0].OwnerID = ownerID; - outPacket.ObjectData[0].Text = Helpers.StringToField( text ); - outPacket.ObjectData[0].ParentID = parentID; - outPacket.ObjectData[0].PSBlock = particleSystem; - byte[] pb = pos.GetBytes(); - Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length); - - OutPacket(outPacket); - } /// /// /// @@ -876,8 +867,6 @@ namespace OpenSim.Region.ClientStack #endregion - #endregion - #region Helper Methods protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateAvatarImprovedBlock(uint localID, LLVector3 pos, LLVector3 velocity) @@ -1163,8 +1152,6 @@ namespace OpenSim.Region.ClientStack objdata.ObjectData[64] = 189; } - #endregion - public void SendNameReply(LLUUID profileId, string firstname, string lastname) { UUIDNameReplyPacket packet = new UUIDNameReplyPacket(); @@ -1177,5 +1164,8 @@ namespace OpenSim.Region.ClientStack OutPacket( packet ); } + + #endregion + } } diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index c0c14ee..5ad35ff 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs @@ -218,30 +218,7 @@ namespace OpenSim.Region.ClientStack if (OnAddPrim != null) { ObjectAddPacket addPacket = (ObjectAddPacket) Pack ; - PrimitiveBaseShape shape = new PrimitiveBaseShape(); - - shape.PCode = addPacket.ObjectData.PCode; - shape.PathBegin = addPacket.ObjectData.PathBegin; - shape.PathEnd = addPacket.ObjectData.PathEnd; - shape.PathScaleX = addPacket.ObjectData.PathScaleX; - shape.PathScaleY = addPacket.ObjectData.PathScaleY; - shape.PathShearX = addPacket.ObjectData.PathShearX; - shape.PathShearY = addPacket.ObjectData.PathShearY; - shape.PathSkew = addPacket.ObjectData.PathSkew; - shape.ProfileBegin = addPacket.ObjectData.ProfileBegin; - shape.ProfileEnd = addPacket.ObjectData.ProfileEnd; - shape.Scale = addPacket.ObjectData.Scale; - shape.PathCurve = addPacket.ObjectData.PathCurve; - shape.ProfileCurve = addPacket.ObjectData.ProfileCurve; - shape.ProfileHollow = addPacket.ObjectData.ProfileHollow; - shape.PathRadiusOffset = addPacket.ObjectData.PathRadiusOffset; - shape.PathRevolutions = addPacket.ObjectData.PathRevolutions; - shape.PathTaperX = addPacket.ObjectData.PathTaperX; - shape.PathTaperY = addPacket.ObjectData.PathTaperY; - shape.PathTwist = addPacket.ObjectData.PathTwist; - shape.PathTwistBegin = addPacket.ObjectData.PathTwistBegin; - LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005")); - shape.TextureEntry = ntex.ToBytes(); + PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket); OnAddPrim(this.AgentId, addPacket.ObjectData.RayEnd, shape); } @@ -624,5 +601,34 @@ namespace OpenSim.Region.ClientStack } } } + + private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket) + { + PrimitiveBaseShape shape = new PrimitiveBaseShape(); + + shape.PCode = addPacket.ObjectData.PCode; + shape.PathBegin = addPacket.ObjectData.PathBegin; + shape.PathEnd = addPacket.ObjectData.PathEnd; + shape.PathScaleX = addPacket.ObjectData.PathScaleX; + shape.PathScaleY = addPacket.ObjectData.PathScaleY; + shape.PathShearX = addPacket.ObjectData.PathShearX; + shape.PathShearY = addPacket.ObjectData.PathShearY; + shape.PathSkew = addPacket.ObjectData.PathSkew; + shape.ProfileBegin = addPacket.ObjectData.ProfileBegin; + shape.ProfileEnd = addPacket.ObjectData.ProfileEnd; + shape.Scale = addPacket.ObjectData.Scale; + shape.PathCurve = addPacket.ObjectData.PathCurve; + shape.ProfileCurve = addPacket.ObjectData.ProfileCurve; + shape.ProfileHollow = addPacket.ObjectData.ProfileHollow; + shape.PathRadiusOffset = addPacket.ObjectData.PathRadiusOffset; + shape.PathRevolutions = addPacket.ObjectData.PathRevolutions; + shape.PathTaperX = addPacket.ObjectData.PathTaperX; + shape.PathTaperY = addPacket.ObjectData.PathTaperY; + shape.PathTwist = addPacket.ObjectData.PathTwist; + shape.PathTwistBegin = addPacket.ObjectData.PathTwistBegin; + LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005")); + shape.TextureEntry = ntex.ToBytes(); + return shape; + } } } diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs index 42acab9..542e13f 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs @@ -438,8 +438,8 @@ namespace OpenSim.Region.Environment.Scenes LLQuaternion lRot; lRot = RotationOffset; - remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, lRot, this.ObjectFlags, m_uuid, - OwnerID, m_text, ParentID, this.m_particleSystem); + remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, this.ObjectFlags, m_uuid, OwnerID, + m_text, ParentID, this.m_particleSystem, lRot); } /// diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs index f36f555..132eabb 100644 --- a/OpenSim/Region/Environment/Scenes/Primitive.cs +++ b/OpenSim/Region/Environment/Scenes/Primitive.cs @@ -42,7 +42,7 @@ namespace OpenSim.Region.Environment.Scenes public uint EveryoneMask = 0;//FULL_MASK_PERMISSIONS; public uint BaseMask = 0;//FULL_MASK_PERMISSIONS; - private PrimitiveBaseShape m_Shape; + private PrimitiveBaseShape m_shape; private byte[] m_particleSystem = new byte[0]; public SceneObject m_RootParent; @@ -83,7 +83,7 @@ namespace OpenSim.Region.Environment.Scenes public PrimitiveBaseShape Shape { - get { return m_Shape; } + get { return m_shape; } } public LLVector3 WorldPos @@ -112,8 +112,8 @@ namespace OpenSim.Region.Environment.Scenes public LLVector3 Scale { - set { m_Shape.Scale = value; } - get { return m_Shape.Scale; } + set { m_shape.Scale = value; } + get { return m_shape.Scale; } } private string m_sitName = ""; @@ -195,7 +195,7 @@ namespace OpenSim.Region.Environment.Scenes dupe.m_inventoryItems = m_inventoryItems; dupe.m_children = new List(); - dupe.m_Shape = m_Shape.Copy(); + dupe.m_shape = m_shape.Copy(); dupe.m_regionHandle = m_regionHandle; dupe.m_scene = m_scene; @@ -288,7 +288,7 @@ namespace OpenSim.Region.Environment.Scenes m_uuid = LLUUID.Random(); m_localId = (uint)(localID); - m_Shape = shape; + m_shape = shape; ScheduleFullUpdate(); } @@ -428,7 +428,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void ResizeGoup(LLVector3 scale) { - m_Shape.Scale = scale; + m_shape.Scale = scale; ScheduleFullUpdate(); } @@ -545,24 +545,24 @@ namespace OpenSim.Region.Environment.Scenes /// public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) { - m_Shape.PathBegin = shapeBlock.PathBegin; - m_Shape.PathEnd = shapeBlock.PathEnd; - m_Shape.PathScaleX = shapeBlock.PathScaleX; - m_Shape.PathScaleY = shapeBlock.PathScaleY; - m_Shape.PathShearX = shapeBlock.PathShearX; - m_Shape.PathShearY = shapeBlock.PathShearY; - m_Shape.PathSkew = shapeBlock.PathSkew; - m_Shape.ProfileBegin = shapeBlock.ProfileBegin; - m_Shape.ProfileEnd = shapeBlock.ProfileEnd; - m_Shape.PathCurve = shapeBlock.PathCurve; - m_Shape.ProfileCurve = shapeBlock.ProfileCurve; - m_Shape.ProfileHollow = shapeBlock.ProfileHollow; - m_Shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; - m_Shape.PathRevolutions = shapeBlock.PathRevolutions; - m_Shape.PathTaperX = shapeBlock.PathTaperX; - m_Shape.PathTaperY = shapeBlock.PathTaperY; - m_Shape.PathTwist = shapeBlock.PathTwist; - m_Shape.PathTwistBegin = shapeBlock.PathTwistBegin; + m_shape.PathBegin = shapeBlock.PathBegin; + m_shape.PathEnd = shapeBlock.PathEnd; + m_shape.PathScaleX = shapeBlock.PathScaleX; + m_shape.PathScaleY = shapeBlock.PathScaleY; + m_shape.PathShearX = shapeBlock.PathShearX; + m_shape.PathShearY = shapeBlock.PathShearY; + m_shape.PathSkew = shapeBlock.PathSkew; + m_shape.ProfileBegin = shapeBlock.ProfileBegin; + m_shape.ProfileEnd = shapeBlock.ProfileEnd; + m_shape.PathCurve = shapeBlock.PathCurve; + m_shape.ProfileCurve = shapeBlock.ProfileCurve; + m_shape.ProfileHollow = shapeBlock.ProfileHollow; + m_shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; + m_shape.PathRevolutions = shapeBlock.PathRevolutions; + m_shape.PathTaperX = shapeBlock.PathTaperX; + m_shape.PathTaperY = shapeBlock.PathTaperY; + m_shape.PathTwist = shapeBlock.PathTwist; + m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; ScheduleFullUpdate(); } @@ -580,18 +580,18 @@ namespace OpenSim.Region.Environment.Scenes public void UpdateExtraParam(ushort type, bool inUse, byte[] data) { - this.m_Shape.ExtraParams = new byte[data.Length + 7]; + this.m_shape.ExtraParams = new byte[data.Length + 7]; int i =0; uint length = (uint) data.Length; - this.m_Shape.ExtraParams[i++] = 1; - this.m_Shape.ExtraParams[i++] = (byte)(type % 256); - this.m_Shape.ExtraParams[i++] = (byte)((type >> 8) % 256); + this.m_shape.ExtraParams[i++] = 1; + this.m_shape.ExtraParams[i++] = (byte)(type % 256); + this.m_shape.ExtraParams[i++] = (byte)((type >> 8) % 256); - this.m_Shape.ExtraParams[i++] = (byte)(length % 256); - this.m_Shape.ExtraParams[i++] = (byte)((length >> 8) % 256); - this.m_Shape.ExtraParams[i++] = (byte)((length >> 16) % 256); - this.m_Shape.ExtraParams[i++] = (byte)((length >> 24) % 256); - Array.Copy(data, 0, this.m_Shape.ExtraParams, i, data.Length); + this.m_shape.ExtraParams[i++] = (byte)(length % 256); + this.m_shape.ExtraParams[i++] = (byte)((length >> 8) % 256); + this.m_shape.ExtraParams[i++] = (byte)((length >> 16) % 256); + this.m_shape.ExtraParams[i++] = (byte)((length >> 24) % 256); + Array.Copy(data, 0, this.m_shape.ExtraParams, i, data.Length); this.ScheduleFullUpdate(); } @@ -604,7 +604,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void UpdateTextureEntry(byte[] textureEntry) { - m_Shape.TextureEntry = textureEntry; + m_shape.TextureEntry = textureEntry; ScheduleFullUpdate(); } @@ -648,8 +648,8 @@ namespace OpenSim.Region.Environment.Scenes LLQuaternion lRot; lRot = new LLQuaternion(Rotation.x, Rotation.y, Rotation.z, Rotation.w); - remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalId, m_Shape, lPos, lRot, m_flags, m_uuid, - OwnerID, m_text, ParentID, this.m_particleSystem); + remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalId, m_shape, lPos, m_flags, m_uuid, OwnerID, + m_text, ParentID, this.m_particleSystem, lRot); } /// diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 88740c5..367ee67 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -145,8 +145,7 @@ namespace SimpleApp public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint) { } - public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem) { } - public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem) { } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID, byte[] particleSystem, LLQuaternion rotation) { } public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation) { } public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List items) { } -- cgit v1.1