Some more work on SceneObject/ Primitive rewrites (slowly getting there)
parent
5fa0821531
commit
5c28f3c3a2
|
@ -107,6 +107,41 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Does this group contain the child prim
|
||||||
|
/// should be able to remove these methods once we have a entity index in scene
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="primID"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool HasChildPrim(LLUUID primID)
|
||||||
|
{
|
||||||
|
AllNewSceneObjectPart2 childPart = null;
|
||||||
|
if (this.m_parts.ContainsKey(primID))
|
||||||
|
{
|
||||||
|
childPart = this.m_parts[primID];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Does this group contain the child prim
|
||||||
|
/// should be able to remove these methods once we have a entity index in scene
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="localID"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool HasChildPrim(uint localID)
|
||||||
|
{
|
||||||
|
foreach (AllNewSceneObjectPart2 part in this.m_parts.Values)
|
||||||
|
{
|
||||||
|
if (part.LocalID == localID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public void TriggerTainted()
|
public void TriggerTainted()
|
||||||
{
|
{
|
||||||
if (OnPrimCountTainted != null)
|
if (OnPrimCountTainted != null)
|
||||||
|
|
|
@ -14,10 +14,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
private const uint FULL_MASK_PERMISSIONS = 2147483647;
|
private const uint FULL_MASK_PERMISSIONS = 2147483647;
|
||||||
|
|
||||||
public string SitName = "";
|
|
||||||
public string TouchName = "";
|
|
||||||
public string Text = "";
|
|
||||||
|
|
||||||
public LLUUID CreatorID;
|
public LLUUID CreatorID;
|
||||||
public LLUUID OwnerID;
|
public LLUUID OwnerID;
|
||||||
public LLUUID GroupID;
|
public LLUUID GroupID;
|
||||||
|
@ -36,6 +32,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
protected AllNewSceneObjectGroup2 m_parentGroup;
|
protected AllNewSceneObjectGroup2 m_parentGroup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Only used internally to schedule client updates
|
||||||
|
/// </summary>
|
||||||
|
private byte m_updateFlag;
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
protected LLUUID m_uuid;
|
protected LLUUID m_uuid;
|
||||||
|
@ -194,6 +195,37 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string m_text = "";
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get { return m_text; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_text = value;
|
||||||
|
ScheduleFullUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string m_sitName = "";
|
||||||
|
public string SitName
|
||||||
|
{
|
||||||
|
get { return m_sitName; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_sitName = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string m_touchName = "";
|
||||||
|
public string TouchName
|
||||||
|
{
|
||||||
|
get { return m_touchName; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_touchName = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public PrimitiveBaseShape Shape
|
public PrimitiveBaseShape Shape
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -243,6 +275,26 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Update Scheduling
|
||||||
|
private void ClearUpdateSchedule()
|
||||||
|
{
|
||||||
|
m_updateFlag = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ScheduleFullUpdate()
|
||||||
|
{
|
||||||
|
m_updateFlag = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ScheduleTerseUpdate()
|
||||||
|
{
|
||||||
|
if (m_updateFlag < 1)
|
||||||
|
{
|
||||||
|
m_updateFlag = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Shape
|
#region Shape
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
@ -281,6 +333,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ExtraParams
|
||||||
public void UpdateExtraParam(ushort type, bool inUse, byte[] data)
|
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];
|
||||||
|
@ -298,7 +351,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
//this.ScheduleFullUpdate();
|
//this.ScheduleFullUpdate();
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Texture
|
#region Texture
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -311,10 +364,12 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ParticleSystem
|
||||||
public void AddNewParticleSystem(libsecondlife.Primitive.ParticleSystem pSystem)
|
public void AddNewParticleSystem(libsecondlife.Primitive.ParticleSystem pSystem)
|
||||||
{
|
{
|
||||||
this.m_particleSystem = pSystem.GetBytes();
|
this.m_particleSystem = pSystem.GetBytes();
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Position
|
#region Position
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -342,15 +397,41 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// <param name="scale"></param>
|
/// <param name="scale"></param>
|
||||||
public void Resize(LLVector3 scale)
|
public void Resize(LLVector3 scale)
|
||||||
{
|
{
|
||||||
LLVector3 offset = (scale - this.m_Shape.Scale);
|
|
||||||
offset.X /= 2;
|
|
||||||
offset.Y /= 2;
|
|
||||||
offset.Z /= 2;
|
|
||||||
|
|
||||||
this.OffsetPosition += offset;
|
|
||||||
this.m_Shape.Scale = scale;
|
this.m_Shape.Scale = scale;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Client Update Methods
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="remoteClient"></param>
|
||||||
|
public void SendFullUpdateToClient(IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
LLVector3 lPos;
|
||||||
|
lPos = OffsetPosition;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="RemoteClient"></param>
|
||||||
|
public void SendTerseUpdateToClient(IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
LLVector3 lPos;
|
||||||
|
lPos = this.OffsetPosition;
|
||||||
|
LLQuaternion mRot = this.RotationOffset;
|
||||||
|
|
||||||
|
remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue