Thank you, Melanie for solving: When receiving an ObjectAdd packet, the Rotation member is silently ignored and the prim is created with 0,0,0,1 rotation. The patch introduces a fix that passes the Rotation parameter from the packet to the object and uses it in the actual object creation.

This commit is contained in:
Charles Krinke
2007-11-01 03:56:54 +00:00
parent 41e71e5548
commit 8af272b3ab
5 changed files with 24 additions and 11 deletions

View File

@@ -271,6 +271,11 @@ namespace OpenSim.Region.Environment.Scenes
{
}
public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID,
PrimitiveBaseShape shape, LLVector3 groupPosition, LLVector3 offsetPosition):this(regionHandle, parent, ownerID, localID, shape, groupPosition, LLQuaternion.Identity, offsetPosition)
{
}
/// <summary>
/// Create a completely new SceneObjectPart (prim)
/// </summary>
@@ -281,7 +286,7 @@ namespace OpenSim.Region.Environment.Scenes
/// <param name="shape"></param>
/// <param name="position"></param>
public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID,
PrimitiveBaseShape shape, LLVector3 groupPosition, LLVector3 offsetPosition)
PrimitiveBaseShape shape, LLVector3 groupPosition, LLQuaternion rotationOffset, LLVector3 offsetPosition)
{
m_name = "Primitive";
m_regionHandle = regionHandle;
@@ -297,7 +302,7 @@ namespace OpenSim.Region.Environment.Scenes
GroupPosition = groupPosition;
OffsetPosition = offsetPosition;
RotationOffset = LLQuaternion.Identity;
RotationOffset = rotationOffset;
Velocity = new LLVector3(0, 0, 0);
AngularVelocity = new LLVector3(0, 0, 0);
Acceleration = new LLVector3(0, 0, 0);