From 1a25969096834e104d1ea69a26cab9c5b0a061eb Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 1 Apr 2009 11:03:42 +0000 Subject: [PATCH] * MRM Adjustments * Renamed 'Material' to PhysicsMaterial (Wood, Glass, Metal, etc.). May want to place in subclass with other physics specific properties. (We however need to support these features in ODE/etc first.) * Renamed Faces to Materials. IObjectFace to IObjectMaterial - this is for clarity for those coming from a 3D Programming background (it also makes more sense if/when we support Meshes in core). Properties and members remain identical. * Added XMLDoc comments to IObject to assist people writing MRMs in XMLDoc aware editors. --- .../Scripting/Minimodule/IObject.cs | 34 +++++++++++++++---- .../Scripting/Minimodule/IWorld.cs | 4 --- .../Scripting/Minimodule/SOPObject.cs | 6 ++-- .../Scripting/Minimodule/World.cs | 2 +- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs index c7f9569bf7..da8fce5112 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs @@ -40,19 +40,41 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule String Name { get; set; } String Description { get; set; } - IObject[] Children { get; } + /// - /// Equals 'this' if we have no parent. Ergo, Root.Children.Count will always return the total number of items in the linkset. + /// Returns the root object of a linkset. If this object is the root, it will return itself. /// IObject Root { get; } - IObjectFace[] Faces { get; } + /// + /// Returns a collection of objects which are linked to the current object. Does not include the root object. + /// + IObject[] Children { get; } + /// + /// Returns a list of materials attached to this object. Each may contain unique texture + /// and other visual information. For primitive based objects, this correlates with + /// Object Faces. For mesh based objects, this correlates with Materials. + /// + IObjectMaterial[] Materials { get; } + + /// + /// The bounding box of the object. Primitive and Mesh objects alike are scaled to fit within these bounds. + /// Vector3 Scale { get; set; } + + /// + /// The rotation of the object relative to the Scene + /// Quaternion Rotation { get; set; } + + /// + /// The position of the object relative to the Scene + /// Vector3 Position { get; set; } + Vector3 SitTarget { get; set; } String SitTargetText { get; set; } @@ -80,10 +102,10 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule // Taper[A+B], Shear[A+B], Revolutions, // RadiusOffset, Skew - Material Material { get; set; } + PhysicsMaterial PhysicsMaterial { get; set; } } - public enum Material + public enum PhysicsMaterial { Default, Glass, @@ -114,7 +136,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule Planar } - public interface IObjectFace + public interface IObjectMaterial { Color Color { get; set; } UUID Texture { get; set; } diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs index 1b1ce921df..f06f57a4dc 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs @@ -25,10 +25,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -using System; -using System.Collections.Generic; -using System.Text; - namespace OpenSim.Region.OptionalModules.Scripting.Minimodule { public interface IWorld diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs index 538a496d74..8b7b470197 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs @@ -80,12 +80,12 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule get { return new SOPObject(m_rootScene, GetSOP().ParentGroup.RootPart.LocalId); } } - public IObjectFace[] Faces + public IObjectMaterial[] Materials { get { SceneObjectPart sop = GetSOP(); - IObjectFace[] rets = new IObjectFace[getNumberOfSides(sop)]; + IObjectMaterial[] rets = new IObjectMaterial[getNumberOfSides(sop)]; for (int i = 0; i < rets.Length;i++ ) { @@ -208,7 +208,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule set { throw new System.NotImplementedException(); } } - public Material Material + public PhysicsMaterial PhysicsMaterial { get { throw new System.NotImplementedException(); } set { throw new System.NotImplementedException(); } diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs index 987868a6fc..c798cc8353 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs @@ -35,7 +35,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule private readonly Scene m_internalScene; private readonly Heightmap m_heights; - private ObjectAccessor m_objs; + private readonly ObjectAccessor m_objs; public World(Scene internalScene) {