From 815f3af1d7b3bf16e81dd3a03e0c69c8e49f2f91 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 8 Feb 2012 15:24:10 +0000 Subject: UbitODE plugin initial commit --- OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs | 86 +++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs new file mode 100644 index 0000000..215d47a --- /dev/null +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs @@ -0,0 +1,86 @@ +/* + * 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 System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; +using System.IO; +using System.Diagnostics; +using log4net; +using Nini.Config; +using OdeAPI; +using OpenSim.Framework; +using OpenSim.Region.Physics.Manager; +using OpenMetaverse; + +namespace OpenSim.Region.Physics.OdePlugin +{ + /// + /// ODE plugin + /// + public class OdePlugin : IPhysicsPlugin + { + //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + private OdeScene m_scene; + + public bool Init() + { + if (d.InitODE2(0) != 0) + { + if (d.AllocateODEDataForThread(~0U) == 0) + { + d.CloseODE(); + return false; + } + return true; + } + return false; + } + + public PhysicsScene GetScene(String sceneIdentifier) + { + if (m_scene == null) + { + m_scene = new OdeScene(sceneIdentifier); + } + return (m_scene); + } + + public string GetName() + { + return ("UbitODE"); + } + + public void Dispose() + { + d.CloseODE(); + } + } +} \ No newline at end of file -- cgit v1.1 From 13f340077c20808fe17b5c737a87613156a3b1b3 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 9 Mar 2012 04:19:39 +0000 Subject: let chode and ubitode find ode.dll on windows --- OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs index 215d47a..d32188e 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdePlugin.cs @@ -52,6 +52,9 @@ namespace OpenSim.Region.Physics.OdePlugin public bool Init() { + if (Util.IsWindows()) + Util.LoadArchSpecificWindowsDll("ode.dll"); + if (d.InitODE2(0) != 0) { if (d.AllocateODEDataForThread(~0U) == 0) @@ -68,6 +71,7 @@ namespace OpenSim.Region.Physics.OdePlugin { if (m_scene == null) { + m_scene = new OdeScene(sceneIdentifier); } return (m_scene); -- cgit v1.1