From c47bca94d23420b164e5f32aa5c781009496e0d3 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 15 Aug 2007 16:57:47 +0000 Subject: * Exploring Group/Part from an app perspective. --- OpenSim/Region/Examples/SimpleApp/ComplexObject.cs | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 OpenSim/Region/Examples/SimpleApp/ComplexObject.cs (limited to 'OpenSim/Region/Examples/SimpleApp/ComplexObject.cs') diff --git a/OpenSim/Region/Examples/SimpleApp/ComplexObject.cs b/OpenSim/Region/Examples/SimpleApp/ComplexObject.cs new file mode 100644 index 0000000..25960b7 --- /dev/null +++ b/OpenSim/Region/Examples/SimpleApp/ComplexObject.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Text; +using OpenSim.Region.Environment.Scenes; +using Axiom.Math; +using libsecondlife; +using OpenSim.Framework.Types; + +namespace SimpleApp +{ + public class ComplexObject : SceneObjectGroup + { + private LLQuaternion m_rotationDirection; + + private class RotatingWheel : SceneObjectPart + { + private static LLQuaternion m_rotationDirection = new LLQuaternion(0.05f, 0, 0); + + public RotatingWheel(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, LLVector3 groupPosition, LLVector3 offsetPosition) + : base(regionHandle, parent, ownerID, localID, BoxShape.Default, groupPosition, offsetPosition ) + { + } + + public override void UpdateMovement() + { + UpdateRotation(RotationOffset * m_rotationDirection); + } + } + + public override void UpdateMovement() + { + UpdateGroupRotation(Rotation * m_rotationDirection); + + base.UpdateMovement(); + } + + public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos ) + : base(scene, regionHandle, ownerID, localID, pos, BoxShape.Default ) + { + m_rotationDirection = new LLQuaternion(0.05f, 0.1f, 0.15f); + + AddPart(new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, 1f))); + AddPart(new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, -1f))); + } + } +} -- cgit v1.1