From 9e68de6b8fd2362c00875633d26cddd33f6ea8ae Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 23 Nov 2010 13:32:46 -0800 Subject: [PATCH] PE physics plugin stubs --- .../ClientStack/LindenUDP/LLClientView.cs | 4 +- .../Region/Physics/PEPlugin/PECharacter.cs | 280 ++++++++++++++++++ OpenSim/Region/Physics/PEPlugin/PEPlugin.cs | 67 +++++ OpenSim/Region/Physics/PEPlugin/PEPrim.cs | 277 +++++++++++++++++ OpenSim/Region/Physics/PEPlugin/PEScene.cs | 97 ++++++ OpenSim/Region/Physics/PEPlugin/Prop.cs | 46 +++ prebuild.xml | 29 ++ 7 files changed, 798 insertions(+), 2 deletions(-) create mode 100755 OpenSim/Region/Physics/PEPlugin/PECharacter.cs create mode 100755 OpenSim/Region/Physics/PEPlugin/PEPlugin.cs create mode 100755 OpenSim/Region/Physics/PEPlugin/PEPrim.cs create mode 100755 OpenSim/Region/Physics/PEPlugin/PEScene.cs create mode 100755 OpenSim/Region/Physics/PEPlugin/Prop.cs diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index e1cbe03654..9f2b46e972 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -648,8 +648,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP catch (Exception e) { // Make sure that we see any exception caused by the asynchronous operation. - m_log.Error( - string.Format("[LLCLIENTVIEW]: Caught exception while processing {0}", packetObject.Pack), e); + m_log.ErrorFormat( "[LLCLIENTVIEW]: Caught exception while processing {0}: {1}", + packetObject.Pack, e.ToString()); } } diff --git a/OpenSim/Region/Physics/PEPlugin/PECharacter.cs b/OpenSim/Region/Physics/PEPlugin/PECharacter.cs new file mode 100755 index 0000000000..9cb43463ff --- /dev/null +++ b/OpenSim/Region/Physics/PEPlugin/PECharacter.cs @@ -0,0 +1,280 @@ +/* + * Copyright (c) Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Intel Corporation nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Reflection; +using log4net; +using OpenMetaverse; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; + +namespace OpenSim.Region.Physics.PEPlugin +{ +public class PECharacter : PhysicsActor +{ + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + private bool _stopped; + private Vector3 _size; + private PrimitiveBaseShape _pbs; + private uint _localID = 0; + private bool _grabbed; + private bool _selected; + private Vector3 _position; + private float _mass; + private Vector3 _force; + private Vector3 _velocity; + private Vector3 _torque; + private float _collisionScore; + private Vector3 _acceleration; + private Quaternion _orientation; + private int _physicsActorType; + private bool _isPhysical; + private bool _flying; + private bool _setAlwaysRun; + private bool _throttleUpdates; + private bool _isColliding; + private bool _collidingGround; + private bool _collidingObj; + private bool _floatOnWater; + private Vector3 _rotationalVelocity; + private bool _kinematic; + private float _buoyancy; + + private Vector3 _PIDTarget; + private bool _usePID; + private float _PIDTau; + private bool _useHoverPID; + private float _PIDHoverHeight; + private PIDHoverType _PIDHoverType; + private float _PIDHoverTao; + + public PECharacter(String avName, PEScene parent_scene, Vector3 pos, + CollisionLocker dode, Vector3 size, float pid_d, float pid_p, + float capsule_radius, float tensor, float density, float height_fudge_factor, + float walk_divisor, float rundivisor) + { + return; + } + + public override bool Stopped { + get { return _stopped; } + } + public override Vector3 Size { + get { return _size; } + set { _size = value; + m_log.Debug("[PEE] PEChar set Size"); + Prop.Set(_localID, PropType.Size, _size); + } + } + public override PrimitiveBaseShape Shape { + set { _pbs = value; + m_log.Debug("[PEE] PEChar set Shape"); + Prop.Set(_localID, PropType.Shape, _pbs); + } + } + public override uint LocalID { + set { _localID = value; + m_log.Debug("[PEE] PEChar set LocalID"); + Prop.Set(_localID, PropType.LocalID, _localID); + } + } + public override bool Grabbed { + set { _grabbed = value; + m_log.Debug("[PEE] PEChar set Grabbed"); + Prop.Set(_localID, PropType.Grabbed, _grabbed); + } + } + public override bool Selected { + set { _selected = value; + m_log.Debug("[PEE] PEChar set Selected"); + Prop.Set(_localID, PropType.Selected, _selected); + } + } + public override void CrossingFailure() { return; } + public override void link(PhysicsActor obj) { return; } + public override void delink() { return; } + public override void LockAngularMotion(Vector3 axis) { return; } + + public override Vector3 Position { + get { return _position; } + set { _position = value; + // m_log.Debug("[PEE] PEChar set Position"); + Prop.Set(_localID, PropType.Position, _position); + } + } + public override float Mass { + get { return _mass; } + } + public override Vector3 Force { + get { return _force; } + set { _force = value; + m_log.Debug("[PEE] PEChar set Force"); + Prop.Set(_localID, PropType.Force, _force); + } + } + + public override int VehicleType { + get { return 0; } + set { return; } + } + public override void VehicleFloatParam(int param, float value) { } + public override void VehicleVectorParam(int param, Vector3 value) {} + public override void VehicleRotationParam(int param, Quaternion rotation) { } + public override void VehicleFlags(int param, bool remove) { } + + // Allows the detection of collisions with inherently non-physical prims. see llVolumeDetect for more + public override void SetVolumeDetect(int param) { return; } + + public override Vector3 GeometricCenter { get { return Vector3.Zero; } } + public override Vector3 CenterOfMass { get { return Vector3.Zero; } } + public override Vector3 Velocity { + get { return _velocity; } + set { _velocity = value; + Prop.Set(_localID, PropType.Velocity, _velocity); + } + } + public override Vector3 Torque { + get { return _torque; } + set { _torque = value; + Prop.Set(_localID, PropType.Torque, _torque); + } + } + public override float CollisionScore { + get { return _collisionScore; } + set { _collisionScore = value; + Prop.Set(_localID, PropType.CollisionScore, _collisionScore); + } + } + public override Vector3 Acceleration { + get { return _acceleration; } + } + public override Quaternion Orientation { + get { return _orientation; } + set { _orientation = value; + Prop.Set(_localID, PropType.Orientation, _orientation); + } + } + public override int PhysicsActorType { + get { return _physicsActorType; } + set { _physicsActorType = value; + } + } + public override bool IsPhysical { + get { return _isPhysical; } + set { _isPhysical = value; + } + } + public override bool Flying { + get { return _flying; } + set { _flying = value; + } + } + public override bool + SetAlwaysRun { + get { return _setAlwaysRun; } + set { _setAlwaysRun = value; } + } + public override bool ThrottleUpdates { + get { return _throttleUpdates; } + set { _throttleUpdates = value; } + } + public override bool IsColliding { + get { return _isColliding; } + set { _isColliding = value; } + } + public override bool CollidingGround { + get { return _collidingGround; } + set { _collidingGround = value; } + } + public override bool CollidingObj { + get { return _collidingObj; } + set { _collidingObj = value; } + } + public override bool FloatOnWater { + set { _floatOnWater = value; } + } + public override Vector3 RotationalVelocity { + get { return _rotationalVelocity; } + set { _rotationalVelocity = value; } + } + public override bool Kinematic { + get { return _kinematic; } + set { _kinematic = value; } + } + public override float Buoyancy { + get { return _buoyancy; } + set { _buoyancy = value; } + } + + // Used for MoveTo + public override Vector3 PIDTarget { + set { _PIDTarget = value; } + } + public override bool PIDActive { + set { _usePID = value; } + } + public override float PIDTau { + set { _PIDTau = value; } + } + + // Used for llSetHoverHeight and maybe vehicle height + // Hover Height will override MoveTo target's Z + public override bool PIDHoverActive { + set { _useHoverPID = value; } + } + public override float PIDHoverHeight { + set { _PIDHoverHeight = value; } + } + public override PIDHoverType PIDHoverType { + set { _PIDHoverType = value; } + } + public override float PIDHoverTau { + set { _PIDHoverTao = value; } + } + + // For RotLookAt + public override Quaternion APIDTarget { set { return; } } + public override bool APIDActive { set { return; } } + public override float APIDStrength { set { return; } } + public override float APIDDamping { set { return; } } + + public override void AddForce(Vector3 force, bool pushforce) { + } + public override void AddAngularForce(Vector3 force, bool pushforce) { + } + public override void SetMomentum(Vector3 momentum) { + } + public override void SubscribeEvents(int ms) { + } + public override void UnSubscribeEvents() { + } + public override bool SubscribedEvents() { + return false; + } + +} +} diff --git a/OpenSim/Region/Physics/PEPlugin/PEPlugin.cs b/OpenSim/Region/Physics/PEPlugin/PEPlugin.cs new file mode 100755 index 0000000000..1674b183f8 --- /dev/null +++ b/OpenSim/Region/Physics/PEPlugin/PEPlugin.cs @@ -0,0 +1,67 @@ +/* + * Copyright (c) Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Intel Corporation nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; +using OpenMetaverse; + +namespace OpenSim.Region.Physics.PEPlugin +{ +public class PEPlugin : IPhysicsPlugin +{ + //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + private PEScene _mScene; + + public PEPlugin() + { + } + + public bool Init() + { + return true; + } + + public PhysicsScene GetScene(String sceneIdentifier) + { + if (_mScene == null) + { + _mScene = new PEScene(sceneIdentifier); + } + return (_mScene); + } + + public string GetName() + { + return ("PhysicsEngineEngine"); + } + + public void Dispose() + { + } +} +} diff --git a/OpenSim/Region/Physics/PEPlugin/PEPrim.cs b/OpenSim/Region/Physics/PEPlugin/PEPrim.cs new file mode 100755 index 0000000000..7d35d065b0 --- /dev/null +++ b/OpenSim/Region/Physics/PEPlugin/PEPrim.cs @@ -0,0 +1,277 @@ +/* + * Copyright (c) Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Intel Corporation nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Reflection; +using System.Collections.Generic; +using log4net; +using OpenMetaverse; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; + +namespace OpenSim.Region.Physics.PEPlugin +{ +public sealed class PEPrim : PhysicsActor +{ + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + private bool _stopped; + private Vector3 _size; + private PrimitiveBaseShape _pbs; + private uint _localID = 0; + private bool _grabbed; + private bool _selected; + private Vector3 _position; + private float _mass; + private Vector3 _force; + private Vector3 _velocity; + private Vector3 _torque; + private float _collisionScore; + private Vector3 _acceleration; + private Quaternion _orientation; + private int _physicsActorType; + private bool _isPhysical; + private bool _flying; + private bool _setAlwaysRun; + private bool _throttleUpdates; + private bool _isColliding; + private bool _collidingGround; + private bool _collidingObj; + private bool _floatOnWater; + private Vector3 _rotationalVelocity; + private bool _kinematic; + private float _buoyancy; + + private Vector3 _PIDTarget; + private bool _usePID; + private float _PIDTau; + private bool _useHoverPID; + private float _PIDHoverHeight; + private PIDHoverType _PIDHoverType; + private float _PIDHoverTao; + + public PEPrim(String primName, PEScene parent_scene, Vector3 pos, Vector3 size, + Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool pisPhysical, CollisionLocker dode) + { + // SendCreatePrim(primName, parent_scene, pos, size, rotation, mesh, pbs, pisPhysical, dode); + } + + public override bool Stopped { + get { return _stopped; } + } + public override Vector3 Size { + get { return _size; } + set { _size = value; + m_log.Debug("[PEE] PEPrim set Size"); + Prop.Set(_localID, PropType.Size, _size); + } + } + public override PrimitiveBaseShape Shape { + set { _pbs = value; + m_log.Debug("[PEE] PEPrim set Shape"); + Prop.Set(_localID, PropType.Shape, _pbs); + } + } + public override uint LocalID { + set { _localID = value; + m_log.Debug("[PEE] PEPrim set LocalID"); + Prop.Set(_localID, PropType.LocalID, _localID); + } + } + public override bool Grabbed { + set { _grabbed = value; + m_log.Debug("[PEE] PEPrim set Grabbed"); + Prop.Set(_localID, PropType.Grabbed, _grabbed); + } + } + public override bool Selected { + set { _selected = value; + m_log.Debug("[PEE] PEPrim set Selected"); + Prop.Set(_localID, PropType.Selected, _selected); + } + } + public override void CrossingFailure() { return; } + public override void link(PhysicsActor obj) { return; } + public override void delink() { return; } + public override void LockAngularMotion(Vector3 axis) { return; } + + public override Vector3 Position { + get { return _position; } + set { _position = value; + m_log.Debug("[PEE] PEPrim set Position"); + Prop.Set(_localID, PropType.Position, _position); + } + } + public override float Mass { + get { return _mass; } + } + public override Vector3 Force { + get { return _force; } + set { _force = value; + m_log.Debug("[PEE] PEPrim set Force"); + Prop.Set(_localID, PropType.Force, _force); + } + } + + public override int VehicleType { + get { return 0; } + set { return; } + } + public override void VehicleFloatParam(int param, float value) { } + public override void VehicleVectorParam(int param, Vector3 value) {} + public override void VehicleRotationParam(int param, Quaternion rotation) { } + public override void VehicleFlags(int param, bool remove) { } + + // Allows the detection of collisions with inherently non-physical prims. see llVolumeDetect for more + public override void SetVolumeDetect(int param) { return; } + + public override Vector3 GeometricCenter { get { return Vector3.Zero; } } + public override Vector3 CenterOfMass { get { return Vector3.Zero; } } + public override Vector3 Velocity { + get { return _velocity; } + set { _velocity = value; + Prop.Set(_localID, PropType.Velocity, _velocity); + } + } + public override Vector3 Torque { + get { return _torque; } + set { _torque = value; + Prop.Set(_localID, PropType.Torque, _torque); + } + } + public override float CollisionScore { + get { return _collisionScore; } + set { _collisionScore = value; + Prop.Set(_localID, PropType.CollisionScore, _collisionScore); + } + } + public override Vector3 Acceleration { + get { return _acceleration; } + } + public override Quaternion Orientation { + get { return _orientation; } + set { _orientation = value; + Prop.Set(_localID, PropType.Orientation, _orientation); + } + } + public override int PhysicsActorType { + get { return _physicsActorType; } + set { _physicsActorType = value; + } + } + public override bool IsPhysical { + get { return _isPhysical; } + set { _isPhysical = value; + } + } + public override bool Flying { + get { return _flying; } + set { _flying = value; + } + } + public override bool + SetAlwaysRun { + get { return _setAlwaysRun; } + set { _setAlwaysRun = value; } + } + public override bool ThrottleUpdates { + get { return _throttleUpdates; } + set { _throttleUpdates = value; } + } + public override bool IsColliding { + get { return _isColliding; } + set { _isColliding = value; } + } + public override bool CollidingGround { + get { return _collidingGround; } + set { _collidingGround = value; } + } + public override bool CollidingObj { + get { return _collidingObj; } + set { _collidingObj = value; } + } + public override bool FloatOnWater { + set { _floatOnWater = value; } + } + public override Vector3 RotationalVelocity { + get { return _rotationalVelocity; } + set { _rotationalVelocity = value; } + } + public override bool Kinematic { + get { return _kinematic; } + set { _kinematic = value; } + } + public override float Buoyancy { + get { return _buoyancy; } + set { _buoyancy = value; } + } + + // Used for MoveTo + public override Vector3 PIDTarget { + set { _PIDTarget = value; } + } + public override bool PIDActive { + set { _usePID = value; } + } + public override float PIDTau { + set { _PIDTau = value; } + } + + // Used for llSetHoverHeight and maybe vehicle height + // Hover Height will override MoveTo target's Z + public override bool PIDHoverActive { + set { _useHoverPID = value; } + } + public override float PIDHoverHeight { + set { _PIDHoverHeight = value; } + } + public override PIDHoverType PIDHoverType { + set { _PIDHoverType = value; } + } + public override float PIDHoverTau { + set { _PIDHoverTao = value; } + } + + // For RotLookAt + public override Quaternion APIDTarget { set { return; } } + public override bool APIDActive { set { return; } } + public override float APIDStrength { set { return; } } + public override float APIDDamping { set { return; } } + + public override void AddForce(Vector3 force, bool pushforce) { + } + public override void AddAngularForce(Vector3 force, bool pushforce) { + } + public override void SetMomentum(Vector3 momentum) { + } + public override void SubscribeEvents(int ms) { + } + public override void UnSubscribeEvents() { + } + public override bool SubscribedEvents() { + return false; + } +} +} diff --git a/OpenSim/Region/Physics/PEPlugin/PEScene.cs b/OpenSim/Region/Physics/PEPlugin/PEScene.cs new file mode 100755 index 0000000000..e47f06689e --- /dev/null +++ b/OpenSim/Region/Physics/PEPlugin/PEScene.cs @@ -0,0 +1,97 @@ +/* + * Copyright (c) Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Intel Corporation nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; +using OpenMetaverse; + +namespace OpenSim.Region.Physics.PEPlugin +{ +public class PEScene : PhysicsScene +{ + public PEScene(string identifier) + { + } + + public override void Initialise(IMesher meshmerizer, IConfigSource config) + { + } + + public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying) + { + PECharacter actor = new PECharacter(avName, this, position, null, size, 0f, 0f, .5f, 1f, + 1f, 1f, .5f, .5f); + return actor; + } + + public override void RemoveAvatar(PhysicsActor actor) + { + } + + public override void RemovePrim(PhysicsActor prim) + { + } + + public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, + Vector3 size, Quaternion rotation) // deprecated + { + return null; + } + public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, + Vector3 size, Quaternion rotation, bool isPhysical) + { + PEPrim prim = new PEPrim(primName, this, position, size, rotation, null, pbs, isPhysical, null); + return prim; + } + + public override void AddPhysicsActorTaint(PhysicsActor prim) { } + + public override float Simulate(float timeStep) + { + return 60f; // returns frames per second + } + + public override void GetResults() { } + + public override void SetTerrain(float[] heightMap) { } + + public override void SetWaterLevel(float baseheight) { } + + public override void DeleteTerrain() { } + + public override void Dispose() { } + + public override Dictionary GetTopColliders() + { + return new Dictionary(); + } + + public override bool IsThreaded { get { return false; } } + +} +} diff --git a/OpenSim/Region/Physics/PEPlugin/Prop.cs b/OpenSim/Region/Physics/PEPlugin/Prop.cs new file mode 100755 index 0000000000..8b68d69de6 --- /dev/null +++ b/OpenSim/Region/Physics/PEPlugin/Prop.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using OpenMetaverse; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; + +namespace OpenSim.Region.Physics.PEPlugin +{ + public enum PropType + { + Size, + Shape, + LocalID, + Grabbed, + Selected, + Position, + Force, + Velocity, + Torque, + CollisionScore, + Orientation + }; + +public class Prop +{ + public static void Set(uint localID, PropType type, uint val) + { + } + public static void Set(uint localID, PropType type, Vector3 val) + { + } + public static void Set(uint localID, PropType type, PrimitiveBaseShape val) + { + } + public static void Set(uint localID, PropType type, bool val) + { + } + public static void Set(uint localID, PropType type, float val) + { + } + public static void Set(uint localID, PropType type, Quaternion val) + { + } + +} +} diff --git a/prebuild.xml b/prebuild.xml index c23770502b..5716295935 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -545,6 +545,35 @@ + + + + ../../../../bin/Physics/ + + + + + ../../../../bin/Physics/ + + + + ../../../../bin/ + + + + + + + + + + + + + + + +