From 134f86e8d5c414409631b25b8c6f0ee45fbd8631 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 3 Nov 2016 21:44:39 +1000
Subject: Initial update to OpenSim 0.8.2.1 source code.
---
OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs | 58 ----
OpenSim/Region/Physics/POSPlugin/POSCharacter.cs | 340 -----------------------
OpenSim/Region/Physics/POSPlugin/POSPlugin.cs | 64 -----
OpenSim/Region/Physics/POSPlugin/POSPrim.cs | 335 ----------------------
OpenSim/Region/Physics/POSPlugin/POSScene.cs | 270 ------------------
5 files changed, 1067 deletions(-)
delete mode 100644 OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs
delete mode 100644 OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
delete mode 100644 OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
delete mode 100644 OpenSim/Region/Physics/POSPlugin/POSPrim.cs
delete mode 100644 OpenSim/Region/Physics/POSPlugin/POSScene.cs
(limited to 'OpenSim/Region/Physics/POSPlugin')
diff --git a/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs
deleted file mode 100644
index d07df02..0000000
--- a/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * 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 OpenSimulator Project 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.Reflection;
-using System.Runtime.InteropServices;
-
-// Information about this assembly is defined by the following
-// attributes.
-//
-// change them to the information which is associated with the assembly
-// you compile.
-
-[assembly : AssemblyTitle("POSPlugin")]
-[assembly : AssemblyDescription("")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("http://opensimulator.org")]
-[assembly : AssemblyProduct("POSPlugin")]
-[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-
-[assembly : ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all values by your own or you can build default build and revision
-// numbers with the '*' character (the default):
-
-[assembly : AssemblyVersion("0.7.5.*")]
diff --git a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
deleted file mode 100644
index ae534ea..0000000
--- a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * 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 OpenSimulator Project 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 OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Region.Physics.Manager;
-
-namespace OpenSim.Region.Physics.POSPlugin
-{
- public class POSCharacter : PhysicsActor
- {
- private Vector3 _position;
- public Vector3 _velocity;
- public Vector3 _target_velocity = Vector3.Zero;
- public Vector3 _size = Vector3.Zero;
- private Vector3 _acceleration;
- private Vector3 m_rotationalVelocity = Vector3.Zero;
- private bool flying;
- private bool isColliding;
-
- public POSCharacter()
- {
- }
-
- public override int PhysicsActorType
- {
- get { return (int) ActorTypes.Agent; }
- set { return; }
- }
-
- public override Vector3 RotationalVelocity
- {
- get { return m_rotationalVelocity; }
- set { m_rotationalVelocity = value; }
- }
-
- public override bool SetAlwaysRun
- {
- get { return false; }
- set { return; }
- }
-
- public override uint LocalID
- {
- set { return; }
- }
-
- public override bool Grabbed
- {
- set { return; }
- }
-
- public override bool Selected
- {
- set { return; }
- }
-
- public override float Buoyancy
- {
- get { return 0f; }
- set { return; }
- }
-
- public override bool FloatOnWater
- {
- set { return; }
- }
-
- public override bool IsPhysical
- {
- get { return false; }
- set { return; }
- }
-
- public override bool ThrottleUpdates
- {
- get { return false; }
- set { return; }
- }
-
- public override bool Flying
- {
- get { return flying; }
- set { flying = value; }
- }
-
- public override bool IsColliding
- {
- get { return isColliding; }
- set { isColliding = value; }
- }
-
- public override bool CollidingGround
- {
- get { return false; }
- set { return; }
- }
-
- public override bool CollidingObj
- {
- get { return false; }
- set { return; }
- }
-
- public override bool Stopped
- {
- get { return false; }
- }
-
- public override Vector3 Position
- {
- get { return _position; }
- set { _position = value; }
- }
-
- public override Vector3 Size
- {
- get { return _size; }
- set
- {
- _size = value;
- _size.Z = _size.Z / 2.0f;
- }
- }
-
- public override float Mass
- {
- get { return 0f; }
- }
-
- public override Vector3 Force
- {
- get { return Vector3.Zero; }
- set { return; }
- }
-
- 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) { }
-
- public override void SetVolumeDetect(int param)
- {
-
- }
-
- public override Vector3 CenterOfMass
- {
- get { return Vector3.Zero; }
- }
-
- public override Vector3 GeometricCenter
- {
- get { return Vector3.Zero; }
- }
-
- public override PrimitiveBaseShape Shape
- {
- set { return; }
- }
-
- public override Vector3 Velocity
- {
- get { return _velocity; }
- set { _target_velocity = value; }
- }
-
- public override Vector3 Torque
- {
- get { return Vector3.Zero; }
- set { return; }
- }
-
- public override float CollisionScore
- {
- get { return 0f; }
- set { }
- }
-
- public override Quaternion Orientation
- {
- get { return Quaternion.Identity; }
- set { }
- }
-
- public override Vector3 Acceleration
- {
- get { return _acceleration; }
- set { _acceleration = value; }
- }
-
- public override bool Kinematic
- {
- get { return true; }
- set { }
- }
-
- public override void link(PhysicsActor obj)
- {
- }
-
- public override void delink()
- {
- }
-
- public override void LockAngularMotion(Vector3 axis)
- {
- }
-
- 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 CrossingFailure()
- {
- }
-
- public override Vector3 PIDTarget
- {
- set { return; }
- }
-
- public override bool PIDActive
- {
- set { return; }
- }
-
- public override float PIDTau
- {
- set { return; }
- }
-
- public override float PIDHoverHeight
- {
- set { return; }
- }
-
- public override bool PIDHoverActive
- {
- set { return; }
- }
-
- public override PIDHoverType PIDHoverType
- {
- set { return; }
- }
-
- public override float PIDHoverTau
- {
- set { return; }
- }
-
- 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 SubscribeEvents(int ms)
- {
- }
-
- public override void UnSubscribeEvents()
- {
- }
-
- public override bool SubscribedEvents()
- {
- return false;
- }
- }
-}
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
deleted file mode 100644
index e6b42e6..0000000
--- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * 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 OpenSimulator Project 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;
-
-namespace OpenSim.Region.Physics.POSPlugin
-{
- ///
- /// for now will be a very POS physics engine
- ///
- public class POSPlugin : IPhysicsPlugin
- {
- public POSPlugin()
- {
- }
-
- public bool Init()
- {
- return true;
- }
-
- public PhysicsScene GetScene(string sceneIdentifier)
- {
- return new POSScene(sceneIdentifier);
- }
-
- public string GetName()
- {
- return ("POS");
- }
-
- public void Dispose()
- {
- }
- }
-}
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
deleted file mode 100644
index e4fd7eb..0000000
--- a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * 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 OpenSimulator Project 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 OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Region.Physics.Manager;
-
-namespace OpenSim.Region.Physics.POSPlugin
-{
- public class POSPrim : PhysicsActor
- {
- private Vector3 _position;
- private Vector3 _velocity;
- private Vector3 _acceleration;
- private Vector3 _size;
- private Vector3 m_rotationalVelocity = Vector3.Zero;
- private Quaternion _orientation;
- private bool iscolliding;
-
- public POSPrim()
- {
- }
-
- public override int PhysicsActorType
- {
- get { return (int) ActorTypes.Prim; }
- set { return; }
- }
-
- public override Vector3 RotationalVelocity
- {
- get { return m_rotationalVelocity; }
- set { m_rotationalVelocity = value; }
- }
-
- public override bool IsPhysical
- {
- get { return false; }
- set { return; }
- }
-
- public override bool ThrottleUpdates
- {
- get { return false; }
- set { return; }
- }
-
- public override bool IsColliding
- {
- get { return iscolliding; }
- set { iscolliding = value; }
- }
-
- public override bool CollidingGround
- {
- get { return false; }
- set { return; }
- }
-
- public override bool CollidingObj
- {
- get { return false; }
- set { return; }
- }
-
- public override bool Stopped
- {
- get { return false; }
- }
-
- public override Vector3 Position
- {
- get { return _position; }
- set { _position = value; }
- }
-
- public override Vector3 Size
- {
- get { return _size; }
- set { _size = value; }
- }
-
- public override float Mass
- {
- get { return 0f; }
- }
-
- public override Vector3 Force
- {
- get { return Vector3.Zero; }
- set { return; }
- }
-
- 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) { }
-
- public override void SetVolumeDetect(int param)
- {
-
- }
-
- public override Vector3 CenterOfMass
- {
- get { return Vector3.Zero; }
- }
-
- public override Vector3 GeometricCenter
- {
- get { return Vector3.Zero; }
- }
-
- public override PrimitiveBaseShape Shape
- {
- set { return; }
- }
-
- public override float Buoyancy
- {
- get { return 0f; }
- set { return; }
- }
-
- public override bool FloatOnWater
- {
- set { return; }
- }
-
- public override Vector3 Velocity
- {
- get { return _velocity; }
- set { _velocity = value; }
- }
-
- public override float CollisionScore
- {
- get { return 0f; }
- set { }
- }
-
- public override Quaternion Orientation
- {
- get { return _orientation; }
- set { _orientation = value; }
- }
-
- public override Vector3 Acceleration
- {
- get { return _acceleration; }
- set { _acceleration = value; }
- }
-
- public override bool Kinematic
- {
- get { return true; }
- set { }
- }
-
- public override void AddForce(Vector3 force, bool pushforce)
- {
- }
-
- public override void AddAngularForce(Vector3 force, bool pushforce)
- {
- }
-
- public override Vector3 Torque
- {
- get { return Vector3.Zero; }
- set { return; }
- }
-
- public override void SetMomentum(Vector3 momentum)
- {
- }
-
- public override bool Flying
- {
- get { return false; }
- set { }
- }
-
- public override bool SetAlwaysRun
- {
- get { return false; }
- set { return; }
- }
-
- public override uint LocalID
- {
- set { return; }
- }
-
- public override bool Grabbed
- {
- set { return; }
- }
-
- public override void link(PhysicsActor obj)
- {
- }
-
- public override void delink()
- {
- }
-
- public override void LockAngularMotion(Vector3 axis)
- {
- }
-
- public override bool Selected
- {
- set { return; }
- }
-
- public override void CrossingFailure()
- {
- }
-
- public override Vector3 PIDTarget
- {
- set { return; }
- }
-
- public override bool PIDActive
- {
- set { return; }
- }
-
- public override float PIDTau
- {
- set { return; }
- }
-
- public override float PIDHoverHeight
- {
- set { return; }
- }
-
- public override bool PIDHoverActive
- {
- set { return; }
- }
-
- public override PIDHoverType PIDHoverType
- {
- set { return; }
- }
-
- public override float PIDHoverTau
- {
- set { return; }
- }
-
- 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 SubscribeEvents(int ms)
- {
- }
-
- public override void UnSubscribeEvents()
- {
- }
-
- public override bool SubscribedEvents()
- {
- return false;
- }
- }
-}
diff --git a/OpenSim/Region/Physics/POSPlugin/POSScene.cs b/OpenSim/Region/Physics/POSPlugin/POSScene.cs
deleted file mode 100644
index 2f24a50..0000000
--- a/OpenSim/Region/Physics/POSPlugin/POSScene.cs
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * 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 OpenSimulator Project 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 OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Region.Physics.Manager;
-
-namespace OpenSim.Region.Physics.POSPlugin
-{
- public class POSScene : PhysicsScene
- {
- private List _characters = new List();
- private List _prims = new List();
- private float[] _heightMap;
- private const float gravity = -9.8f;
-
- //protected internal string sceneIdentifier;
-
- public POSScene(String _sceneIdentifier)
- {
- //sceneIdentifier = _sceneIdentifier;
- }
-
- public override void Initialise(IMesher meshmerizer, IConfigSource config)
- {
- }
-
- public override void Dispose()
- {
- }
-
- public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying)
- {
- POSCharacter act = new POSCharacter();
- act.Position = position;
- act.Flying = isFlying;
- _characters.Add(act);
- return act;
- }
-
- public override void RemovePrim(PhysicsActor prim)
- {
- POSPrim p = (POSPrim) prim;
- if (_prims.Contains(p))
- {
- _prims.Remove(p);
- }
- }
-
- public override void RemoveAvatar(PhysicsActor character)
- {
- POSCharacter act = (POSCharacter) character;
- if (_characters.Contains(act))
- {
- _characters.Remove(act);
- }
- }
-
-/*
- public override PhysicsActor AddPrim(Vector3 position, Vector3 size, Quaternion rotation)
- {
- return null;
- }
-*/
-
- public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
- Vector3 size, Quaternion rotation, bool isPhysical, uint localid)
- {
- POSPrim prim = new POSPrim();
- prim.Position = position;
- prim.Orientation = rotation;
- prim.Size = size;
- _prims.Add(prim);
- return prim;
- }
-
- private bool isColliding(POSCharacter c, POSPrim p)
- {
- Vector3 rotatedPos = new Vector3(c.Position.X - p.Position.X, c.Position.Y - p.Position.Y,
- c.Position.Z - p.Position.Z) * Quaternion.Inverse(p.Orientation);
- Vector3 avatarSize = new Vector3(c.Size.X, c.Size.Y, c.Size.Z) * Quaternion.Inverse(p.Orientation);
-
- return (Math.Abs(rotatedPos.X) < (p.Size.X*0.5 + Math.Abs(avatarSize.X)) &&
- Math.Abs(rotatedPos.Y) < (p.Size.Y*0.5 + Math.Abs(avatarSize.Y)) &&
- Math.Abs(rotatedPos.Z) < (p.Size.Z*0.5 + Math.Abs(avatarSize.Z)));
- }
-
- private bool isCollidingWithPrim(POSCharacter c)
- {
- foreach (POSPrim p in _prims)
- {
- if (isColliding(c, p))
- {
- return true;
- }
- }
-
- return false;
- }
-
- public override void AddPhysicsActorTaint(PhysicsActor prim)
- {
- }
-
- public override float Simulate(float timeStep)
- {
- float fps = 0;
- for (int i = 0; i < _characters.Count; ++i)
- {
- fps++;
- POSCharacter character = _characters[i];
-
- float oldposX = character.Position.X;
- float oldposY = character.Position.Y;
- float oldposZ = character.Position.Z;
-
- if (!character.Flying)
- {
- character._target_velocity.Z += gravity * timeStep;
- }
-
- Vector3 characterPosition = character.Position;
-
- characterPosition.X += character._target_velocity.X * timeStep;
- characterPosition.Y += character._target_velocity.Y * timeStep;
-
- characterPosition.X = Util.Clamp(character.Position.X, 0.01f, Constants.RegionSize - 0.01f);
- characterPosition.Y = Util.Clamp(character.Position.Y, 0.01f, Constants.RegionSize - 0.01f);
-
- bool forcedZ = false;
-
- float terrainheight = _heightMap[(int)character.Position.Y * Constants.RegionSize + (int)character.Position.X];
- if (character.Position.Z + (character._target_velocity.Z * timeStep) < terrainheight + 2)
- {
- characterPosition.Z = terrainheight + character.Size.Z;
- forcedZ = true;
- }
- else
- {
- characterPosition.Z += character._target_velocity.Z*timeStep;
- }
-
- /// this is it -- the magic you've all been waiting for! Ladies and gentlemen --
- /// Completely Bogus Collision Detection!!!
- /// better known as the CBCD algorithm
-
- if (isCollidingWithPrim(character))
- {
- characterPosition.Z = oldposZ; // first try Z axis
- if (isCollidingWithPrim(character))
- {
- characterPosition.Z = oldposZ + character.Size.Z / 4.4f; // try harder
- if (isCollidingWithPrim(character))
- {
- characterPosition.Z = oldposZ + character.Size.Z / 2.2f; // try very hard
- if (isCollidingWithPrim(character))
- {
- characterPosition.X = oldposX;
- characterPosition.Y = oldposY;
- characterPosition.Z = oldposZ;
-
- characterPosition.X += character._target_velocity.X * timeStep;
- if (isCollidingWithPrim(character))
- {
- characterPosition.X = oldposX;
- }
-
- characterPosition.Y += character._target_velocity.Y * timeStep;
- if (isCollidingWithPrim(character))
- {
- characterPosition.Y = oldposY;
- }
- }
- else
- {
- forcedZ = true;
- }
- }
- else
- {
- forcedZ = true;
- }
- }
- else
- {
- forcedZ = true;
- }
- }
-
- characterPosition.X = Util.Clamp(character.Position.X, 0.01f, Constants.RegionSize - 0.01f);
- characterPosition.Y = Util.Clamp(character.Position.Y, 0.01f, Constants.RegionSize - 0.01f);
-
- character.Position = characterPosition;
-
- character._velocity.X = (character.Position.X - oldposX)/timeStep;
- character._velocity.Y = (character.Position.Y - oldposY)/timeStep;
-
- if (forcedZ)
- {
- character._velocity.Z = 0;
- character._target_velocity.Z = 0;
- ((PhysicsActor)character).IsColliding = true;
- character.RequestPhysicsterseUpdate();
- }
- else
- {
- ((PhysicsActor)character).IsColliding = false;
- character._velocity.Z = (character.Position.Z - oldposZ)/timeStep;
- }
- }
- return fps;
- }
-
- public override void GetResults()
- {
- }
-
- public override bool IsThreaded
- {
- // for now we won't be multithreaded
- get { return (false); }
- }
-
- public override void SetTerrain(float[] heightMap)
- {
- _heightMap = heightMap;
- }
-
- public override void DeleteTerrain()
- {
- }
-
- public override void SetWaterLevel(float baseheight)
- {
- }
-
- public override Dictionary GetTopColliders()
- {
- Dictionary returncolliders = new Dictionary();
- return returncolliders;
- }
- }
-}
--
cgit v1.1