* Part two of the major object restructuring

* Fixed a bug with the LogoutTimer not dying
* Major surgery on how objects are decoded off the wire, handles more cases now
* Added support for lots more object and primitive parameters
* Added several new Helpers functions for converting bytes to values

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@923 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2007-01-30 12:47:47 +00:00
parent 75b50e87b7
commit 2a29dc70ee
10 changed files with 684 additions and 419 deletions

View File

@@ -111,6 +111,77 @@ namespace libsecondlife
#region Structs
/// <summary>
///
/// </summary>
[Serializable]
public struct ObjectData
{
/// <summary></summary>
[XmlAttribute("pathtwistbegin")]
public int PathTwistBegin;
/// <summary></summary>
[XmlAttribute("pathend")]
public float PathEnd;
/// <summary></summary>
[XmlAttribute("profilebegin")]
public float ProfileBegin;
/// <summary></summary>
[XmlAttribute("pathradiusoffset")]
public float PathRadiusOffset;
/// <summary></summary>
[XmlAttribute("pathskew")]
public float PathSkew;
/// <summary></summary>
[XmlAttribute("profilecurve")]
public uint ProfileCurve;
/// <summary></summary>
[XmlAttribute("pathscalex")]
public float PathScaleX;
/// <summary></summary>
[XmlAttribute("pathscaley")]
public float PathScaleY;
/// <summary></summary>
[XmlAttribute("material")]
public uint Material;
/// <summary></summary>
[XmlAttribute("pathshearx")]
public float PathShearX;
/// <summary></summary>
[XmlAttribute("pathsheary")]
public float PathShearY;
/// <summary></summary>
[XmlAttribute("pathtaperx")]
public float PathTaperX;
/// <summary></summary>
[XmlAttribute("pathtapery")]
public float PathTaperY;
/// <summary></summary>
[XmlAttribute("profileend")]
public float ProfileEnd;
/// <summary></summary>
[XmlAttribute("pathbegin")]
public float PathBegin;
/// <summary></summary>
[XmlAttribute("pathcurve")]
public uint PathCurve;
/// <summary></summary>
[XmlAttribute("pathtwist")]
public int PathTwist;
/// <summary></summary>
[XmlAttribute("profilehollow")]
public uint ProfileHollow;
/// <summary></summary>
[XmlAttribute("pathrevolutions")]
public float PathRevolutions;
/// <summary></summary>
[XmlAttribute("state")]
public uint State;
/// <summary></summary>
[XmlIgnore]
public ObjectManager.PCode PCode;
}
/// <summary>
///
/// </summary>
@@ -151,104 +222,47 @@ namespace libsecondlife
#endregion Structs
#region Public Properties
#region Public Members
/// <summary></summary>
[XmlAttribute("pathtwistbegin")]
public int PathTwistBegin;
/// <summary></summary>
[XmlAttribute("pathend")]
public float PathEnd;
/// <summary></summary>
[XmlAttribute("profilebegin")]
public float ProfileBegin;
/// <summary></summary>
[XmlAttribute("pathradiusoffset")]
public float PathRadiusOffset;
/// <summary></summary>
[XmlAttribute("pathskew")]
public float PathSkew;
/// <summary></summary>
[XmlAttribute("profilecurve")]
public uint ProfileCurve;
/// <summary></summary>
[XmlAttribute("pathscalex")]
public float PathScaleX;
/// <summary></summary>
[XmlAttribute("pathscaley")]
public float PathScaleY;
/// <summary></summary>
[XmlAttribute("localid")]
public uint LocalID;
/// <summary></summary>
[XmlAttribute("parentid")]
public uint ParentID;
/// <summary></summary>
[XmlAttribute("material")]
public uint Material;
/// <summary></summary>
[XmlAttribute("pathshearx")]
public float PathShearX;
/// <summary></summary>
[XmlAttribute("pathsheary")]
public float PathShearY;
/// <summary></summary>
[XmlAttribute("pathtaperx")]
public float PathTaperX;
/// <summary></summary>
[XmlAttribute("pathtapery")]
public float PathTaperY;
/// <summary></summary>
[XmlAttribute("profileend")]
public float ProfileEnd;
/// <summary></summary>
[XmlAttribute("pathbegin")]
public float PathBegin;
/// <summary></summary>
[XmlAttribute("pathcurve")]
public uint PathCurve;
/// <summary></summary>
[XmlAttribute("pathtwist")]
public int PathTwist;
/// <summary></summary>
[XmlAttribute("profilehollow")]
public uint ProfileHollow;
/// <summary></summary>
[XmlAttribute("pathrevolutions")]
public float PathRevolutions;
/// <summary></summary>
[XmlAttribute("state")]
public uint State;
/// <summary></summary>
[XmlAttribute("text")]
public string Text = String.Empty;
/// <summary></summary>
[XmlAttribute("regionhandle")]
public ulong RegionHandle;
/// <summary></summary>
[XmlAttribute("flags")]
public ObjectFlags Flags;
/// <summary></summary>
[XmlIgnore]
public ObjectManager.PCode PCode = ObjectManager.PCode.Prim;
/// <summary></summary>
[XmlElement("id")]
public LLUUID ID = LLUUID.Zero;
/// <summary></summary>
[XmlElement("groupid")]
public LLUUID GroupID = LLUUID.Zero;
/// <summary></summary>
public uint LocalID;
/// <summary></summary>
public uint ParentID;
/// <summary></summary>
public ulong RegionHandle;
/// <summary></summary>
public ObjectFlags Flags;
/// <summary>Unknown</summary>
public byte[] GenericData;
/// <summary></summary>
public LLVector3 Position = LLVector3.Zero;
/// <summary></summary>
public LLVector3 Scale = LLVector3.Zero;
/// <summary></summary>
public LLQuaternion Rotation = LLQuaternion.Identity;
public LLVector3 Velocity;
public LLVector3 AngularVelocity;
public LLVector3 Acceleration;
public LLVector4 CollisionPlane;
/// <summary></summary>
public TextureEntry Textures = new TextureEntry();
/// <summary></summary>
public ObjectPropertiesFamily PropertiesFamily;
#endregion Public Properties
#endregion Public Members
/// <summary></summary>
public ObjectData Data { get { return data; } }
internal ObjectData data = new ObjectData();
#region Static Methods