aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/physics
diff options
context:
space:
mode:
authorgareth2007-03-22 10:11:15 +0000
committergareth2007-03-22 10:11:15 +0000
commit7daa3955bc3a1918e40962851f9e8d38597a245e (patch)
treebee3e1372a7eed0c1b220a8a49f7bee7d29a6b91 /src/physics
parentLoad XML for neighbourinfo from grid (diff)
downloadopensim-SC_OLD-7daa3955bc3a1918e40962851f9e8d38597a245e.zip
opensim-SC_OLD-7daa3955bc3a1918e40962851f9e8d38597a245e.tar.gz
opensim-SC_OLD-7daa3955bc3a1918e40962851f9e8d38597a245e.tar.bz2
opensim-SC_OLD-7daa3955bc3a1918e40962851f9e8d38597a245e.tar.xz
brought zircon branch into trunk
Diffstat (limited to 'src/physics')
-rw-r--r--src/physics/AssemblyInfo.cs21
-rw-r--r--src/physics/PhysicsManager.cs285
-rw-r--r--src/physics/PhysicsManager.csproj40
-rw-r--r--src/physics/RealPhysX/RealPhysXplugin/AssemblyInfo.cs31
-rw-r--r--src/physics/RealPhysX/RealPhysXplugin/RealPhysX.cs361
-rw-r--r--src/physics/RealPhysX/RealPhysXplugin/RealPhysXplugin.csproj46
-rw-r--r--src/physics/default.build49
-rw-r--r--src/physics/plugins/AssemblyInfo.cs21
-rw-r--r--src/physics/plugins/BasicPhysicsplugin.csproj51
-rw-r--r--src/physics/plugins/PhysXplugin.cs227
-rw-r--r--src/physics/plugins/default.build51
11 files changed, 0 insertions, 1183 deletions
diff --git a/src/physics/AssemblyInfo.cs b/src/physics/AssemblyInfo.cs
deleted file mode 100644
index c6a4efa..0000000
--- a/src/physics/AssemblyInfo.cs
+++ /dev/null
@@ -1,21 +0,0 @@
1using System;
2using System.Reflection;
3using System.Runtime.InteropServices;
4
5// ------------------------------------------------------------------------------
6// <autogenerated>
7// This code was generated by a tool.
8// Mono Runtime Version: 2.0.50727.42
9//
10// Changes to this file may cause incorrect behavior and will be lost if
11// the code is regenerated.
12// </autogenerated>
13// ------------------------------------------------------------------------------
14
15[assembly: ComVisibleAttribute(false)]
16[assembly: CLSCompliantAttribute(false)]
17[assembly: AssemblyVersionAttribute("0.1.0.240")]
18[assembly: AssemblyTitleAttribute("opensim-physicsmanager")]
19[assembly: AssemblyDescriptionAttribute("Handles physics plugins")]
20[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]
21
diff --git a/src/physics/PhysicsManager.cs b/src/physics/PhysicsManager.cs
deleted file mode 100644
index 1fee628..0000000
--- a/src/physics/PhysicsManager.cs
+++ /dev/null
@@ -1,285 +0,0 @@
1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
3*
4* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met:
6* * Redistributions of source code must retain the above copyright
7* notice, this list of conditions and the following disclaimer.
8* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the
12* names of its contributors may be used to endorse or promote products
13* derived from this software without specific prior written permission.
14*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*
26*/
27using System;
28using System.Collections.Generic;
29using System.Collections;
30using System.IO;
31using System.Reflection;
32
33namespace PhysicsSystem
34{
35 /// <summary>
36 /// Description of MyClass.
37 /// </summary>
38 public class PhysicsManager
39 {
40 private Dictionary<string, IPhysicsPlugin> _plugins=new Dictionary<string, IPhysicsPlugin>();
41
42 public PhysicsManager()
43 {
44
45 }
46
47 public PhysicsScene GetPhysicsScene(string engineName)
48 {
49 if( String.IsNullOrEmpty( engineName ) )
50 {
51 return new NullPhysicsScene();
52 }
53
54 if(_plugins.ContainsKey(engineName))
55 {
56 ServerConsole.MainConsole.Instance.WriteLine("creating "+engineName);
57 return _plugins[engineName].GetScene();
58 }
59 else
60 {
61 string error = String.Format("couldn't find physicsEngine: {0}", engineName);
62 ServerConsole.MainConsole.Instance.WriteLine( error );
63 throw new ArgumentException( error );
64 }
65 }
66
67 public void LoadPlugins()
68 {
69 string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory ,"Physics");
70 string[] pluginFiles = Directory.GetFiles(path, "*.dll");
71
72
73 for(int i= 0; i<pluginFiles.Length; i++)
74 {
75 this.AddPlugin(pluginFiles[i]);
76 }
77 }
78
79 private void AddPlugin(string FileName)
80 {
81 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
82
83 foreach (Type pluginType in pluginAssembly.GetTypes())
84 {
85 if (pluginType.IsPublic)
86 {
87 if (!pluginType.IsAbstract)
88 {
89 Type typeInterface = pluginType.GetInterface("IPhysicsPlugin", true);
90
91 if (typeInterface != null)
92 {
93 IPhysicsPlugin plug = (IPhysicsPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
94 plug.Init();
95 this._plugins.Add(plug.GetName(),plug);
96
97 }
98
99 typeInterface = null;
100 }
101 }
102 }
103
104 pluginAssembly = null;
105 }
106 }
107 public interface IPhysicsPlugin
108 {
109 bool Init();
110 PhysicsScene GetScene();
111 string GetName();
112 void Dispose();
113 }
114
115 public abstract class PhysicsScene
116 {
117 public static PhysicsScene Null
118 {
119 get
120 {
121 return new NullPhysicsScene();
122 }
123 }
124
125 public abstract PhysicsActor AddAvatar(PhysicsVector position);
126
127 public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size);
128
129 public abstract void Simulate(float timeStep);
130
131 public abstract void GetResults();
132
133 public abstract void SetTerrain(float[] heightMap);
134
135 public abstract bool IsThreaded
136 {
137 get;
138 }
139 }
140
141 public class NullPhysicsScene : PhysicsScene
142 {
143 private static int m_workIndicator;
144
145 public override PhysicsActor AddAvatar(PhysicsVector position)
146 {
147 ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : AddAvatar({0})", position );
148 return PhysicsActor.Null;
149 }
150
151 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
152 {
153 ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : AddPrim({0},{1})", position, size );
154 return PhysicsActor.Null;
155 }
156
157 public override void Simulate(float timeStep)
158 {
159 m_workIndicator = ( m_workIndicator + 1 ) % 10;
160
161 ServerConsole.MainConsole.Instance.SetStatus( m_workIndicator.ToString() );
162 }
163
164 public override void GetResults()
165 {
166 ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : GetResults()" );
167 }
168
169 public override void SetTerrain(float[] heightMap)
170 {
171 ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : SetTerrain({0} items)", heightMap.Length );
172 }
173
174 public override bool IsThreaded
175 {
176 get { return false; }
177 }
178 }
179
180 public abstract class PhysicsActor
181 {
182 public static readonly PhysicsActor Null = new NullPhysicsActor();
183
184 public abstract PhysicsVector Position
185 {
186 get;
187 set;
188 }
189
190 public abstract PhysicsVector Velocity
191 {
192 get;
193 set;
194 }
195
196 public abstract PhysicsVector Acceleration
197 {
198 get;
199 }
200 public abstract bool Flying
201 {
202 get;
203 set;
204 }
205
206 public abstract void AddForce(PhysicsVector force);
207
208 public abstract void SetMomentum(PhysicsVector momentum);
209 }
210
211 public class NullPhysicsActor : PhysicsActor
212 {
213 public override PhysicsVector Position
214 {
215 get
216 {
217 return PhysicsVector.Zero;
218 }
219 set
220 {
221 return;
222 }
223 }
224
225 public override PhysicsVector Velocity
226 {
227 get
228 {
229 return PhysicsVector.Zero;
230 }
231 set
232 {
233 return;
234 }
235 }
236
237 public override PhysicsVector Acceleration
238 {
239 get { return PhysicsVector.Zero; }
240 }
241
242 public override bool Flying
243 {
244 get
245 {
246 return false;
247 }
248 set
249 {
250 return;
251 }
252 }
253
254 public override void AddForce(PhysicsVector force)
255 {
256 return;
257 }
258
259 public override void SetMomentum(PhysicsVector momentum)
260 {
261 return;
262 }
263 }
264
265 public class PhysicsVector
266 {
267 public float X;
268 public float Y;
269 public float Z;
270
271 public PhysicsVector()
272 {
273
274 }
275
276 public PhysicsVector(float x, float y, float z)
277 {
278 X = x;
279 Y = y;
280 Z = z;
281 }
282
283 public static readonly PhysicsVector Zero = new PhysicsVector(0f, 0f, 0f);
284 }
285}
diff --git a/src/physics/PhysicsManager.csproj b/src/physics/PhysicsManager.csproj
deleted file mode 100644
index 3eadfe7..0000000
--- a/src/physics/PhysicsManager.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup>
3 <OutputType>Library</OutputType>
4 <RootNamespace>PhysicsManager</RootNamespace>
5 <AssemblyName>PhysicsManager</AssemblyName>
6 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
7 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
8 <ProjectGuid>{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}</ProjectGuid>
9 </PropertyGroup>
10 <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
11 <OutputPath>bin\Debug\</OutputPath>
12 <Optimize>False</Optimize>
13 <DefineConstants>DEBUG;TRACE</DefineConstants>
14 <DebugSymbols>True</DebugSymbols>
15 <DebugType>Full</DebugType>
16 <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
17 </PropertyGroup>
18 <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
19 <OutputPath>bin\Release\</OutputPath>
20 <Optimize>True</Optimize>
21 <DefineConstants>TRACE</DefineConstants>
22 <DebugSymbols>False</DebugSymbols>
23 <DebugType>None</DebugType>
24 <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
25 </PropertyGroup>
26 <ItemGroup>
27 <Reference Include="System" />
28 <Reference Include="System.Xml" />
29 </ItemGroup>
30 <ItemGroup>
31 <Compile Include="PhysicsManager.cs" />
32 </ItemGroup>
33 <ItemGroup>
34 <ProjectReference Include="..\ServerConsole\ServerConsole\ServerConsole.csproj">
35 <Project>{C9A6026D-8E0C-4FE4-8691-FB2A566AA245}</Project>
36 <Name>ServerConsole</Name>
37 </ProjectReference>
38 </ItemGroup>
39 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
40</Project> \ No newline at end of file
diff --git a/src/physics/RealPhysX/RealPhysXplugin/AssemblyInfo.cs b/src/physics/RealPhysX/RealPhysXplugin/AssemblyInfo.cs
deleted file mode 100644
index 913aae7..0000000
--- a/src/physics/RealPhysX/RealPhysXplugin/AssemblyInfo.cs
+++ /dev/null
@@ -1,31 +0,0 @@
1using System.Reflection;
2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices;
4
5// Information about this assembly is defined by the following
6// attributes.
7//
8// change them to the information which is associated with the assembly
9// you compile.
10
11[assembly: AssemblyTitle("RealPhysXplugin")]
12[assembly: AssemblyDescription("")]
13[assembly: AssemblyConfiguration("")]
14[assembly: AssemblyCompany("")]
15[assembly: AssemblyProduct("RealPhysXplugin")]
16[assembly: AssemblyCopyright("")]
17[assembly: AssemblyTrademark("")]
18[assembly: AssemblyCulture("")]
19
20// This sets the default COM visibility of types in the assembly to invisible.
21// If you need to expose a type to COM, use [ComVisible(true)] on that type.
22[assembly: ComVisible(false)]
23
24// The assembly version has following format :
25//
26// Major.Minor.Build.Revision
27//
28// You can specify all values by your own or you can build default build and revision
29// numbers with the '*' character (the default):
30
31[assembly: AssemblyVersion("1.0.*")]
diff --git a/src/physics/RealPhysX/RealPhysXplugin/RealPhysX.cs b/src/physics/RealPhysX/RealPhysXplugin/RealPhysX.cs
deleted file mode 100644
index 9576a40..0000000
--- a/src/physics/RealPhysX/RealPhysXplugin/RealPhysX.cs
+++ /dev/null
@@ -1,361 +0,0 @@
1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
3*
4* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met:
6* * Redistributions of source code must retain the above copyright
7* notice, this list of conditions and the following disclaimer.
8* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the
12* names of its contributors may be used to endorse or promote products
13* derived from this software without specific prior written permission.
14*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*
26*/
27/*
28* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
29*
30* Redistribution and use in source and binary forms, with or without
31* modification, are permitted provided that the following conditions are met:
32* * Redistributions of source code must retain the above copyright
33* notice, this list of conditions and the following disclaimer.
34* * Redistributions in binary form must reproduce the above copyright
35* notice, this list of conditions and the following disclaimer in the
36* documentation and/or other materials provided with the distribution.
37* * Neither the name of the <organization> nor the
38* names of its contributors may be used to endorse or promote products
39* derived from this software without specific prior written permission.
40*
41* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
42* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
43* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
44* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
45* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
46* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
48* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
49* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
50* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
51*
52*/
53using System;
54using System.Collections.Generic;
55using PhysicsSystem;
56using PhysXWrapper;
57
58namespace PhysXplugin
59{
60 /// <summary>
61 /// Will be the PhysX plugin but for now will be a very basic physics engine
62 /// </summary>
63 public class PhysXPlugin : IPhysicsPlugin
64 {
65 private PhysXScene _mScene;
66
67 public PhysXPlugin()
68 {
69
70 }
71
72 public bool Init()
73 {
74 return true;
75 }
76
77 public PhysicsScene GetScene()
78 {
79 if(_mScene == null)
80 {
81 _mScene = new PhysXScene();
82 }
83 return(_mScene);
84 }
85
86 public string GetName()
87 {
88 return("RealPhysX");
89 }
90
91 public void Dispose()
92 {
93
94 }
95 }
96
97 public class PhysXScene :PhysicsScene
98 {
99 private List<PhysXCharacter> _characters = new List<PhysXCharacter>();
100 private List<PhysXPrim> _prims = new List<PhysXPrim>();
101 private float[] _heightMap;
102 private NxPhysicsSDK mySdk;
103 private NxScene scene;
104
105 public PhysXScene()
106 {
107 mySdk = NxPhysicsSDK.CreateSDK();
108 scene = mySdk.CreateScene();
109
110 }
111
112 public override PhysicsActor AddAvatar(PhysicsVector position)
113 {
114 Vec3 pos = new Vec3();
115 pos.X = position.X;
116 pos.Y = position.Y;
117 pos.Z = position.Z;
118 PhysXCharacter act = new PhysXCharacter( scene.AddCharacter(pos));
119 act.Position = position;
120 _characters.Add(act);
121 return act;
122 }
123
124 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
125 {
126 Vec3 pos = new Vec3();
127 pos.X = position.X;
128 pos.Y = position.Y;
129 pos.Z = position.Z;
130 Vec3 siz = new Vec3();
131 siz.X = size.X;
132 siz.Y = size.Y;
133 siz.Z = size.Z;
134 PhysXPrim act = new PhysXPrim( scene.AddNewBox(pos, siz));
135 _prims.Add(act);
136 return act;
137 }
138 public override void Simulate(float timeStep)
139 {
140 foreach (PhysXCharacter actor in _characters)
141 {
142 actor.Move(timeStep);
143 }
144 scene.Simulate(timeStep);
145 scene.FetchResults();
146 scene.UpdateControllers();
147
148 foreach (PhysXCharacter actor in _characters)
149 {
150 actor.UpdatePosition();
151 }
152
153 }
154
155 public override void GetResults()
156 {
157
158 }
159
160 public override bool IsThreaded
161 {
162 get
163 {
164 return(false); // for now we won't be multithreaded
165 }
166 }
167
168 public override void SetTerrain(float[] heightMap)
169 {
170 this._heightMap = heightMap;
171 this.scene.AddTerrain(heightMap);
172 }
173 }
174
175 public class PhysXCharacter : PhysicsActor
176 {
177 private PhysicsVector _position;
178 private PhysicsVector _velocity;
179 private PhysicsVector _acceleration;
180 private NxCharacter _character;
181 private bool flying;
182
183 public PhysXCharacter(NxCharacter character)
184 {
185 _velocity = new PhysicsVector();
186 _position = new PhysicsVector();
187 _acceleration = new PhysicsVector();
188 _character = character;
189 }
190
191 public override bool Flying
192 {
193 get
194 {
195 return flying;
196 }
197 set
198 {
199 flying = value;
200 }
201 }
202
203 public override PhysicsVector Position
204 {
205 get
206 {
207 return _position;
208 }
209 set
210 {
211 _position = value;
212 }
213 }
214
215 public override PhysicsVector Velocity
216 {
217 get
218 {
219 return _velocity;
220 }
221 set
222 {
223 _velocity = value;
224 }
225 }
226
227 public override PhysicsVector Acceleration
228 {
229 get
230 {
231 return _acceleration;
232 }
233
234 }
235 public void SetAcceleration (PhysicsVector accel)
236 {
237 this._acceleration = accel;
238 }
239
240 public override void AddForce(PhysicsVector force)
241 {
242
243 }
244
245 public override void SetMomentum(PhysicsVector momentum)
246 {
247
248 }
249
250 public void Move(float timeStep)
251 {
252 Vec3 vec = new Vec3();
253 vec.X = this._velocity.X * timeStep;
254 vec.Y = this._velocity.Y * timeStep;
255 if(flying)
256 {
257 vec.Z = ( this._velocity.Z) * timeStep;
258 }
259 else
260 {
261 vec.Z = (-9.8f + this._velocity.Z) * timeStep;
262 }
263 this._character.Move(vec);
264 }
265
266 public void UpdatePosition()
267 {
268 Vec3 vec = this._character.Position;
269 this._position.X = vec.X;
270 this._position.Y = vec.Y;
271 this._position.Z = vec.Z;
272 }
273 }
274
275 public class PhysXPrim : PhysicsActor
276 {
277 private PhysicsVector _position;
278 private PhysicsVector _velocity;
279 private PhysicsVector _acceleration;
280 private NxActor _prim;
281
282 public PhysXPrim(NxActor prim)
283 {
284 _velocity = new PhysicsVector();
285 _position = new PhysicsVector();
286 _acceleration = new PhysicsVector();
287 _prim = prim;
288 }
289 public override bool Flying
290 {
291 get
292 {
293 return false; //no flying prims for you
294 }
295 set
296 {
297
298 }
299 }
300 public override PhysicsVector Position
301 {
302 get
303 {
304 PhysicsVector pos = new PhysicsVector();
305 Vec3 vec = this._prim.Position;
306 pos.X = vec.X;
307 pos.Y = vec.Y;
308 pos.Z = vec.Z;
309 return pos;
310
311 }
312 set
313 {
314 PhysicsVector vec = value;
315 Vec3 pos = new Vec3();
316 pos.X = vec.X;
317 pos.Y = vec.Y;
318 pos.Z = vec.Z;
319 this._prim.Position = pos;
320 }
321 }
322
323 public override PhysicsVector Velocity
324 {
325 get
326 {
327 return _velocity;
328 }
329 set
330 {
331 _velocity = value;
332 }
333 }
334
335 public override PhysicsVector Acceleration
336 {
337 get
338 {
339 return _acceleration;
340 }
341
342 }
343 public void SetAcceleration (PhysicsVector accel)
344 {
345 this._acceleration = accel;
346 }
347
348 public override void AddForce(PhysicsVector force)
349 {
350
351 }
352
353 public override void SetMomentum(PhysicsVector momentum)
354 {
355
356 }
357
358
359 }
360
361}
diff --git a/src/physics/RealPhysX/RealPhysXplugin/RealPhysXplugin.csproj b/src/physics/RealPhysX/RealPhysXplugin/RealPhysXplugin.csproj
deleted file mode 100644
index 554df5e..0000000
--- a/src/physics/RealPhysX/RealPhysXplugin/RealPhysXplugin.csproj
+++ /dev/null
@@ -1,46 +0,0 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup>
3 <OutputType>Library</OutputType>
4 <RootNamespace>RealPhysXplugin</RootNamespace>
5 <AssemblyName>RealPhysXplugin</AssemblyName>
6 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
7 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
8 <ProjectGuid>{56C1D214-F389-4228-921A-0A3A0712C159}</ProjectGuid>
9 </PropertyGroup>
10 <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
11 <OutputPath>..\..\..\..\bin\Physics\</OutputPath>
12 <Optimize>False</Optimize>
13 <DefineConstants>DEBUG;TRACE</DefineConstants>
14 <DebugSymbols>True</DebugSymbols>
15 <DebugType>Full</DebugType>
16 <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
17 </PropertyGroup>
18 <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
19 <OutputPath>..\..\..\..\bin\Physics\</OutputPath>
20 <Optimize>True</Optimize>
21 <DefineConstants>TRACE</DefineConstants>
22 <DebugSymbols>False</DebugSymbols>
23 <DebugType>None</DebugType>
24 <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
25 </PropertyGroup>
26 <ItemGroup>
27 <Reference Include="System" />
28 <Reference Include="System.Xml" />
29 <Reference Include="PhysX_Wrapper_Dotnet">
30 <HintPath>..\..\..\..\bin\PhysX_Wrapper_Dotnet.dll</HintPath>
31 <SpecificVersion>False</SpecificVersion>
32 <Private>False</Private>
33 </Reference>
34 </ItemGroup>
35 <ItemGroup>
36 <Compile Include="RealPhysX.cs" />
37 </ItemGroup>
38 <ItemGroup>
39 <ProjectReference Include="..\..\PhysicsManager.csproj">
40 <Project>{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}</Project>
41 <Name>PhysicsManager</Name>
42 <Private>False</Private>
43 </ProjectReference>
44 </ItemGroup>
45 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
46</Project> \ No newline at end of file
diff --git a/src/physics/default.build b/src/physics/default.build
deleted file mode 100644
index 01d2415..0000000
--- a/src/physics/default.build
+++ /dev/null
@@ -1,49 +0,0 @@
1<?xml version="1.0"?>
2 <project name="OpenSim" default="build" basedir=".">
3 <description>nant buildfile for OpenSim</description>
4 <property name="debug" value="true" overwrite="false" />
5 <target name="clean" description="remove all generated files">
6 <delete file="../../bin/PhysicsManager.dll" failonerror="false" />
7 </target>
8
9 <target name="svnupdate" description="updates to latest SVN">
10 <exec program="svn">
11 <arg value="update" />
12 </exec>
13 </target>
14
15 <target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
16
17 </target>
18
19 <target name="build" description="compiles the source code">
20
21 <loadfile file="../../VERSION" property="svnver"/>
22 <asminfo output="AssemblyInfo.cs" language="CSharp">
23 <imports>
24 <import namespace="System" />
25 <import namespace="System.Reflection" />
26 <import namespace="System.Runtime.InteropServices" />
27 </imports>
28 <attributes>
29 <attribute type="ComVisibleAttribute" value="false" />
30 <attribute type="CLSCompliantAttribute" value="false" />
31 <attribute type="AssemblyVersionAttribute" value="${svnver}" />
32 <attribute type="AssemblyTitleAttribute" value="opensim-physicsmanager" />
33 <attribute type="AssemblyDescriptionAttribute" value="Handles physics plugins" />
34 <attribute type="AssemblyCopyrightAttribute" value="Copyright © OGS development team 2007"/>
35 </attributes>
36 </asminfo>
37
38 <csc target="library" output="../../bin/PhysicsManager.dll" debug="${debug}" verbose="true" warninglevel="4">
39 <references basedir="../../bin" failonempty="true">
40 <include name="System.dll" />
41 <include name="System.Xml.dll" />
42 <include name="ServerConsole.dll" />
43 </references>
44 <sources basedir="./">
45 <include name="*.cs" />
46 </sources>
47 </csc>
48 </target>
49</project>
diff --git a/src/physics/plugins/AssemblyInfo.cs b/src/physics/plugins/AssemblyInfo.cs
deleted file mode 100644
index 4cd5558..0000000
--- a/src/physics/plugins/AssemblyInfo.cs
+++ /dev/null
@@ -1,21 +0,0 @@
1using System;
2using System.Reflection;
3using System.Runtime.InteropServices;
4
5// ------------------------------------------------------------------------------
6// <autogenerated>
7// This code was generated by a tool.
8// Mono Runtime Version: 2.0.50727.42
9//
10// Changes to this file may cause incorrect behavior and will be lost if
11// the code is regenerated.
12// </autogenerated>
13// ------------------------------------------------------------------------------
14
15[assembly: ComVisibleAttribute(false)]
16[assembly: CLSCompliantAttribute(false)]
17[assembly: AssemblyVersionAttribute("0.1.0.240")]
18[assembly: AssemblyTitleAttribute("opensim-physicsmanager-physx")]
19[assembly: AssemblyDescriptionAttribute("PhysX plugin for OpenSim")]
20[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]
21
diff --git a/src/physics/plugins/BasicPhysicsplugin.csproj b/src/physics/plugins/BasicPhysicsplugin.csproj
deleted file mode 100644
index b3f47d3..0000000
--- a/src/physics/plugins/BasicPhysicsplugin.csproj
+++ /dev/null
@@ -1,51 +0,0 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup>
3 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
4 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
5 <ProductVersion>8.0.50727</ProductVersion>
6 <SchemaVersion>2.0</SchemaVersion>
7 <ProjectGuid>{52BCCE7B-69EA-4AC3-9DBC-D571B96C2EA1}</ProjectGuid>
8 <OutputType>Library</OutputType>
9 <AppDesignerFolder>Properties</AppDesignerFolder>
10 <RootNamespace>BasicPhysicsplugin</RootNamespace>
11 <AssemblyName>BasicPhysicsplugin</AssemblyName>
12 </PropertyGroup>
13 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
14 <DebugSymbols>true</DebugSymbols>
15 <DebugType>full</DebugType>
16 <Optimize>false</Optimize>
17 <OutputPath>..\..\..\bin\Physics\</OutputPath>
18 <DefineConstants>DEBUG;TRACE</DefineConstants>
19 <ErrorReport>prompt</ErrorReport>
20 <WarningLevel>4</WarningLevel>
21 </PropertyGroup>
22 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
23 <DebugType>pdbonly</DebugType>
24 <Optimize>true</Optimize>
25 <OutputPath>..\..\..\bin\Physics\</OutputPath>
26 <DefineConstants>TRACE</DefineConstants>
27 <ErrorReport>prompt</ErrorReport>
28 <WarningLevel>4</WarningLevel>
29 </PropertyGroup>
30 <ItemGroup>
31 <Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral">
32 <SpecificVersion>False</SpecificVersion>
33 <HintPath>..\..\..\bin\Axiom.MathLib.dll</HintPath>
34 <Private>False</Private>
35 </Reference>
36 <Reference Include="System" />
37 <Reference Include="System.Data" />
38 <Reference Include="System.Xml" />
39 </ItemGroup>
40 <ItemGroup>
41 <Compile Include="PhysXplugin.cs" />
42 </ItemGroup>
43 <ItemGroup>
44 <ProjectReference Include="..\PhysicsManager.csproj">
45 <Project>{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}</Project>
46 <Name>PhysicsManager</Name>
47 <Private>False</Private>
48 </ProjectReference>
49 </ItemGroup>
50 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
51</Project> \ No newline at end of file
diff --git a/src/physics/plugins/PhysXplugin.cs b/src/physics/plugins/PhysXplugin.cs
deleted file mode 100644
index 8c09dc8..0000000
--- a/src/physics/plugins/PhysXplugin.cs
+++ /dev/null
@@ -1,227 +0,0 @@
1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
3*
4* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met:
6* * Redistributions of source code must retain the above copyright
7* notice, this list of conditions and the following disclaimer.
8* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the
12* names of its contributors may be used to endorse or promote products
13* derived from this software without specific prior written permission.
14*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*
26*/
27using System;
28using System.Collections.Generic;
29using PhysicsSystem;
30
31namespace PhysXplugin
32{
33 /// <summary>
34 /// Will be the PhysX plugin but for now will be a very basic physics engine
35 /// </summary>
36 public class PhysXPlugin : IPhysicsPlugin
37 {
38 private PhysXScene _mScene;
39
40 public PhysXPlugin()
41 {
42
43 }
44
45 public bool Init()
46 {
47 return true;
48 }
49
50 public PhysicsScene GetScene()
51 {
52 if(_mScene == null)
53 {
54 _mScene = new PhysXScene();
55 }
56 return(_mScene);
57 }
58
59 public string GetName()
60 {
61 return("PhysX");
62 }
63
64 public void Dispose()
65 {
66
67 }
68 }
69
70 public class PhysXScene :PhysicsScene
71 {
72 private List<PhysXActor> _actors = new List<PhysXActor>();
73 private float[] _heightMap;
74
75 public PhysXScene()
76 {
77
78 }
79
80 public override PhysicsActor AddAvatar(PhysicsVector position)
81 {
82 PhysXActor act = new PhysXActor();
83 act.Position = position;
84 _actors.Add(act);
85 return act;
86 }
87
88 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
89 {
90 return null;
91 }
92
93 public override void Simulate(float timeStep)
94 {
95 foreach (PhysXActor actor in _actors)
96 {
97 actor.Position.X = actor.Position.X + (actor.Velocity.X * timeStep);
98 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep);
99 actor.Position.Z = actor.Position.Z + (actor.Velocity.Z * timeStep);
100 /*if(actor.Flying)
101 {
102 actor.Position.Z = actor.Position.Z + (actor.Velocity.Z * timeStep);
103 }
104 else
105 {
106 actor.Position.Z = actor.Position.Z + ((-9.8f + actor.Velocity.Z) * timeStep);
107 }
108 if(actor.Position.Z < (_heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X]+1))
109 {*/
110 actor.Position.Z = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X]+1;
111 //}
112 if(actor.Position.X<0)
113 {
114 actor.Position.X = 0;
115 actor.Velocity.X = 0;
116 }
117 if(actor.Position.Y < 0)
118 {
119 actor.Position.Y = 0;
120 actor.Velocity.Y = 0;
121 }
122 if(actor.Position.X > 255)
123 {
124 actor.Position.X = 255;
125 actor.Velocity.X = 0;
126 }
127 if(actor.Position.Y > 255)
128 {
129 actor.Position.Y = 255;
130 actor.Velocity.X = 0;
131 }
132 }
133 }
134
135 public override void GetResults()
136 {
137
138 }
139
140 public override bool IsThreaded
141 {
142 get
143 {
144 return(false); // for now we won't be multithreaded
145 }
146 }
147
148 public override void SetTerrain(float[] heightMap)
149 {
150 this._heightMap = heightMap;
151 }
152 }
153
154 public class PhysXActor : PhysicsActor
155 {
156 private PhysicsVector _position;
157 private PhysicsVector _velocity;
158 private PhysicsVector _acceleration;
159 private bool flying;
160 public PhysXActor()
161 {
162 _velocity = new PhysicsVector();
163 _position = new PhysicsVector();
164 _acceleration = new PhysicsVector();
165 }
166
167 public override bool Flying
168 {
169 get
170 {
171 return false;
172 }
173 set
174 {
175 flying= value;
176 }
177 }
178
179 public override PhysicsVector Position
180 {
181 get
182 {
183 return _position;
184 }
185 set
186 {
187 _position = value;
188 }
189 }
190
191 public override PhysicsVector Velocity
192 {
193 get
194 {
195 return _velocity;
196 }
197 set
198 {
199 _velocity = value;
200 }
201 }
202
203 public override PhysicsVector Acceleration
204 {
205 get
206 {
207 return _acceleration;
208 }
209
210 }
211 public void SetAcceleration (PhysicsVector accel)
212 {
213 this._acceleration = accel;
214 }
215
216 public override void AddForce(PhysicsVector force)
217 {
218
219 }
220
221 public override void SetMomentum(PhysicsVector momentum)
222 {
223
224 }
225 }
226
227}
diff --git a/src/physics/plugins/default.build b/src/physics/plugins/default.build
deleted file mode 100644
index 66056a5..0000000
--- a/src/physics/plugins/default.build
+++ /dev/null
@@ -1,51 +0,0 @@
1<?xml version="1.0"?>
2 <project name="OpenSim" default="build" basedir=".">
3 <description>nant buildfile for OpenSim</description>
4 <property name="debug" value="true" overwrite="false" />
5 <target name="clean" description="remove all generated files">
6 <delete file="../../../bin/Physics/PhysXplugin.dll" failonerror="false" />
7 </target>
8
9 <target name="svnupdate" description="updates to latest SVN">
10 <exec program="svn">
11 <arg value="update" />
12 </exec>
13 </target>
14
15 <target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
16
17 </target>
18
19 <target name="build" description="compiles the source code">
20
21 <loadfile file="../../../VERSION" property="svnver"/>
22 <asminfo output="AssemblyInfo.cs" language="CSharp">
23 <imports>
24 <import namespace="System" />
25 <import namespace="System.Reflection" />
26 <import namespace="System.Runtime.InteropServices" />
27 </imports>
28 <attributes>
29 <attribute type="ComVisibleAttribute" value="false" />
30 <attribute type="CLSCompliantAttribute" value="false" />
31 <attribute type="AssemblyVersionAttribute" value="${svnver}" />
32 <attribute type="AssemblyTitleAttribute" value="opensim-physicsmanager-physx" />
33 <attribute type="AssemblyDescriptionAttribute" value="PhysX plugin for OpenSim" />
34 <attribute type="AssemblyCopyrightAttribute" value="Copyright © OGS development team 2007"/>
35 </attributes>
36 </asminfo>
37
38 <mkdir dir="../../../bin/Physics"/>
39
40 <csc target="library" output="../../../bin/Physics/PhysXplugin.dll" debug="${debug}" verbose="true" warninglevel="4">
41 <references basedir="../../../bin" failonempty="true">
42 <include name="System.dll" />
43 <include name="System.Xml.dll" />
44 <include name="PhysicsManager.dll" />
45 </references>
46 <sources basedir="./">
47 <include name="*.cs" />
48 </sources>
49 </csc>
50 </target>
51</project>