remove drawstuff from ubitode
parent
f168fefb79
commit
6fd6919a0b
|
@ -126,7 +126,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
public IntPtr Shell = IntPtr.Zero;
|
public IntPtr Shell = IntPtr.Zero;
|
||||||
public IntPtr Amotor = IntPtr.Zero;
|
public IntPtr Amotor = IntPtr.Zero;
|
||||||
public d.Mass ShellMass;
|
public d.Mass ShellMass;
|
||||||
public bool collidelock = false;
|
// public bool collidelock = false;
|
||||||
|
|
||||||
private bool m_haseventsubscription = false;
|
private bool m_haseventsubscription = false;
|
||||||
public int m_eventsubscription = 0;
|
public int m_eventsubscription = 0;
|
||||||
|
|
|
@ -2025,9 +2025,6 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
SetInStaticSpace(this);
|
SetInStaticSpace(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// m_building = false; // REMOVE THIS LATER
|
|
||||||
|
|
||||||
|
|
||||||
if (m_isphysical && Body == IntPtr.Zero)
|
if (m_isphysical && Body == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define USE_DRAWSTUFF
|
|
||||||
//#define SPAM
|
//#define SPAM
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
@ -38,9 +37,6 @@ using System.Diagnostics;
|
||||||
using log4net;
|
using log4net;
|
||||||
using Nini.Config;
|
using Nini.Config;
|
||||||
using OdeAPI;
|
using OdeAPI;
|
||||||
#if USE_DRAWSTUFF
|
|
||||||
using ODEDrawstuff;
|
|
||||||
#endif
|
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
using OpenSim.Region.Physics.Manager;
|
using OpenSim.Region.Physics.Manager;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
@ -366,31 +362,11 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
//contactgroup
|
//contactgroup
|
||||||
|
|
||||||
d.WorldSetAutoDisableFlag(world, false);
|
d.WorldSetAutoDisableFlag(world, false);
|
||||||
#if USE_DRAWSTUFF
|
|
||||||
|
|
||||||
Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization));
|
|
||||||
viewthread.Start();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_watermap = new float[258 * 258];
|
_watermap = new float[258 * 258];
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USE_DRAWSTUFF
|
|
||||||
public void startvisualization(object o)
|
|
||||||
{
|
|
||||||
ds.Functions fn;
|
|
||||||
fn.version = ds.VERSION;
|
|
||||||
fn.start = new ds.CallbackFunction(start);
|
|
||||||
fn.step = new ds.CallbackFunction(step);
|
|
||||||
fn.command = new ds.CallbackFunction(command);
|
|
||||||
fn.stop = null;
|
|
||||||
fn.path_to_textures = "./textures";
|
|
||||||
string[] args = new string[0];
|
|
||||||
ds.SimulationLoop(args.Length, args, 352, 288, ref fn);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize the mesh plugin
|
// Initialize the mesh plugin
|
||||||
// public override void Initialise(IMesher meshmerizer, IConfigSource config, RegionInfo region )
|
// public override void Initialise(IMesher meshmerizer, IConfigSource config, RegionInfo region )
|
||||||
public override void Initialise(IMesher meshmerizer, IConfigSource config)
|
public override void Initialise(IMesher meshmerizer, IConfigSource config)
|
||||||
|
@ -2560,134 +2536,5 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
return new List<ContactResult>();
|
return new List<ContactResult>();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USE_DRAWSTUFF
|
|
||||||
// Keyboard callback
|
|
||||||
public void command(int cmd)
|
|
||||||
{
|
|
||||||
IntPtr geom;
|
|
||||||
d.Mass mass;
|
|
||||||
d.Vector3 sides = new d.Vector3(d.RandReal() * 0.5f + 0.1f, d.RandReal() * 0.5f + 0.1f, d.RandReal() * 0.5f + 0.1f);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Char ch = Char.ToLower((Char)cmd);
|
|
||||||
switch ((Char)ch)
|
|
||||||
{
|
|
||||||
case 'w':
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Vector3 rotate = (new Vector3(1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD));
|
|
||||||
|
|
||||||
xyz.X += rotate.X; xyz.Y += rotate.Y; xyz.Z += rotate.Z;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
}
|
|
||||||
catch (ArgumentException)
|
|
||||||
{ hpr.X = 0; }
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'a':
|
|
||||||
hpr.X++;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Vector3 rotate2 = (new Vector3(-1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD));
|
|
||||||
|
|
||||||
xyz.X += rotate2.X; xyz.Y += rotate2.Y; xyz.Z += rotate2.Z;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
}
|
|
||||||
catch (ArgumentException)
|
|
||||||
{ hpr.X = 0; }
|
|
||||||
break;
|
|
||||||
case 'd':
|
|
||||||
hpr.X--;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
case 'r':
|
|
||||||
xyz.Z++;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
case 'f':
|
|
||||||
xyz.Z--;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
case 'e':
|
|
||||||
xyz.Y++;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
xyz.Y--;
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void step(int pause)
|
|
||||||
{
|
|
||||||
|
|
||||||
ds.SetColor(1.0f, 1.0f, 0.0f);
|
|
||||||
ds.SetTexture(ds.Texture.Wood);
|
|
||||||
lock (_prims)
|
|
||||||
{
|
|
||||||
foreach (OdePrim prm in _prims)
|
|
||||||
{
|
|
||||||
//IntPtr body = d.GeomGetBody(prm.prim_geom);
|
|
||||||
if (prm.prim_geom != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
d.Vector3 pos;
|
|
||||||
d.GeomCopyPosition(prm.prim_geom, out pos);
|
|
||||||
//d.BodyCopyPosition(body, out pos);
|
|
||||||
|
|
||||||
d.Matrix3 R;
|
|
||||||
d.GeomCopyRotation(prm.prim_geom, out R);
|
|
||||||
//d.BodyCopyRotation(body, out R);
|
|
||||||
|
|
||||||
|
|
||||||
d.Vector3 sides = new d.Vector3();
|
|
||||||
sides.X = prm.Size.X;
|
|
||||||
sides.Y = prm.Size.Y;
|
|
||||||
sides.Z = prm.Size.Z;
|
|
||||||
|
|
||||||
ds.DrawBox(ref pos, ref R, ref sides);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ds.SetColor(1.0f, 0.0f, 0.0f);
|
|
||||||
lock (_characters)
|
|
||||||
{
|
|
||||||
foreach (OdeCharacter chr in _characters)
|
|
||||||
{
|
|
||||||
if (chr.Shell != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
IntPtr body = d.GeomGetBody(chr.Shell);
|
|
||||||
|
|
||||||
d.Vector3 pos;
|
|
||||||
d.GeomCopyPosition(chr.Shell, out pos);
|
|
||||||
//d.BodyCopyPosition(body, out pos);
|
|
||||||
|
|
||||||
d.Matrix3 R;
|
|
||||||
d.GeomCopyRotation(chr.Shell, out R);
|
|
||||||
//d.BodyCopyRotation(body, out R);
|
|
||||||
|
|
||||||
ds.DrawCapsule(ref pos, ref R, chr.Size.Z, 0.35f);
|
|
||||||
d.Vector3 sides = new d.Vector3();
|
|
||||||
sides.X = 0.5f;
|
|
||||||
sides.Y = 0.5f;
|
|
||||||
sides.Z = 0.5f;
|
|
||||||
|
|
||||||
ds.DrawBox(ref pos, ref R, ref sides);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void start(int unused)
|
|
||||||
{
|
|
||||||
ds.SetViewpoint(ref xyz, ref hpr);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,99 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright ODE
|
|
||||||
* Ode.NET - .NET bindings for ODE
|
|
||||||
* Jason Perkins (starkos@industriousone.com)
|
|
||||||
* Licensed under the New BSD
|
|
||||||
* Part of the OpenDynamicsEngine
|
|
||||||
Open Dynamics Engine
|
|
||||||
Copyright (c) 2001-2007, Russell L. Smith.
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
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 names of ODE's copyright owner 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 COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
"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 COPYRIGHT
|
|
||||||
OWNER OR 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.Runtime.InteropServices;
|
|
||||||
using OdeAPI;
|
|
||||||
|
|
||||||
namespace ODEDrawstuff
|
|
||||||
{
|
|
||||||
/*#if dDOUBLE
|
|
||||||
using dReal = System.Double;
|
|
||||||
#else
|
|
||||||
*/
|
|
||||||
using dReal = System.Single;
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
public static class ds
|
|
||||||
{
|
|
||||||
public const int VERSION = 2;
|
|
||||||
|
|
||||||
public enum Texture
|
|
||||||
{
|
|
||||||
None,
|
|
||||||
Wood
|
|
||||||
}
|
|
||||||
|
|
||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
||||||
public delegate void CallbackFunction(int arg);
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
public struct Functions
|
|
||||||
{
|
|
||||||
public int version;
|
|
||||||
public CallbackFunction start;
|
|
||||||
public CallbackFunction step;
|
|
||||||
public CallbackFunction command;
|
|
||||||
public CallbackFunction stop;
|
|
||||||
public string path_to_textures;
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsDrawBox")]
|
|
||||||
public static extern void DrawBox(ref d.Vector3 pos, ref d.Matrix3 R, ref d.Vector3 sides);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsDrawCapsule")]
|
|
||||||
public static extern void DrawCapsule(ref d.Vector3 pos, ref d.Matrix3 R, dReal length, dReal radius);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsDrawConvex")]
|
|
||||||
public static extern void DrawConvex(ref d.Vector3 pos, ref d.Matrix3 R, dReal[] planes, int planeCount, dReal[] points, int pointCount, int[] polygons);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsSetColor")]
|
|
||||||
public static extern void SetColor(float red, float green, float blue);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsSetTexture")]
|
|
||||||
public static extern void SetTexture(Texture texture);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsSetViewpoint")]
|
|
||||||
public static extern void SetViewpoint(ref d.Vector3 xyz, ref d.Vector3 hpr);
|
|
||||||
|
|
||||||
[DllImport("drawstuff", EntryPoint = "dsSimulationLoop")]
|
|
||||||
public static extern void SimulationLoop(int argc, string[] argv, int window_width, int window_height, ref Functions fn);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue