aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-12 12:43:01 +0000
committerTeravus Ovares2007-11-12 12:43:01 +0000
commitcdd903c1733ab813897e7bb8510d44d452238285 (patch)
treee5c5cbe2939d7e529e66c39314b85e97136f6808
parentPatch from Mathias Soeken (thanks Mathias!) to take care of the color (diff)
downloadopensim-SC-cdd903c1733ab813897e7bb8510d44d452238285.zip
opensim-SC-cdd903c1733ab813897e7bb8510d44d452238285.tar.gz
opensim-SC-cdd903c1733ab813897e7bb8510d44d452238285.tar.bz2
opensim-SC-cdd903c1733ab813897e7bb8510d44d452238285.tar.xz
* Applied Gerhard's Meshing patch (Thanks! Gerhard)
* Addition of Gerhard's ZeroMesher. * Addition of meshing OpenSim.ini parameter * Some modifications to the Meshmerizer * Meshmerizer set to default meshing plugin because ZeroMesher needs a memory locking fix. We'll switch it back after the memory locking issue is resolved.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs10
-rw-r--r--OpenSim/Region/Physics/Manager/ZeroMesher.cs74
-rw-r--r--bin/OpenSim.ini.example10
-rw-r--r--bin/mysql_connection.ini6
4 files changed, 97 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
index 47c8ae0..694a845 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
@@ -88,6 +88,15 @@ namespace OpenSim.Region.Physics.Manager
88 88
89 public void LoadPlugins() 89 public void LoadPlugins()
90 { 90 {
91
92 // Load "plugins", that are hard coded and not existing in form of an external lib
93 IMeshingPlugin plugHard;
94 plugHard = new ZeroMesherPlugin();
95 _MeshPlugins.Add(plugHard.GetName(), plugHard);
96 MainLog.Instance.Verbose("PHYSICS", "Added meshing engine: " + plugHard.GetName());
97
98 // And now walk all assemblies (DLLs effectively) and see if they are home
99 // of a plugin that is of interest for us
91 string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Physics"); 100 string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Physics");
92 string[] pluginFiles = Directory.GetFiles(path, "*.dll"); 101 string[] pluginFiles = Directory.GetFiles(path, "*.dll");
93 102
@@ -100,6 +109,7 @@ namespace OpenSim.Region.Physics.Manager
100 109
101 private void AddPlugin(string FileName) 110 private void AddPlugin(string FileName)
102 { 111 {
112
103 Assembly pluginAssembly = Assembly.LoadFrom(FileName); 113 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
104 114
105 foreach (Type pluginType in pluginAssembly.GetTypes()) 115 foreach (Type pluginType in pluginAssembly.GetTypes())
diff --git a/OpenSim/Region/Physics/Manager/ZeroMesher.cs b/OpenSim/Region/Physics/Manager/ZeroMesher.cs
new file mode 100644
index 0000000..dafc1c8
--- /dev/null
+++ b/OpenSim/Region/Physics/Manager/ZeroMesher.cs
@@ -0,0 +1,74 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28
29using System;
30using System.Collections.Generic;
31using System.Text;
32using OpenSim.Framework;
33
34
35/*
36 * This is the zero mesher.
37 * Whatever you want him to mesh, he can't, telling you that by responding with a null pointer.
38 * Effectivly this is for switching off meshing and for testing as each physics machine should deal
39 * with the null pointer situation.
40 * But it's also a convenience thing, as physics machines can rely on having a mesher in any situation, even
41 * if it's a dump one like this.
42 * Note, that this mesher is *not* living in a module but in the manager itself, so
43 * it's always availabe and thus the default in case of configuration errors
44*/
45
46namespace OpenSim.Region.Physics.Manager
47{
48 public class ZeroMesherPlugin : IMeshingPlugin
49 {
50 public ZeroMesherPlugin()
51 {
52 }
53
54 public string GetName()
55 {
56 return "ZeroMesher";
57 }
58
59 public IMesher GetMesher()
60 {
61 return new ZeroMesher();
62 }
63 }
64
65 public class ZeroMesher: IMesher
66 {
67
68 public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size)
69 {
70 return null;
71 }
72 }
73
74}
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 0fbb777..1a61425 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -1,5 +1,15 @@
1[Startup] 1[Startup]
2gridmode = false 2gridmode = false
3
4; Select a mesher here. ZeroMesher is save and fast.
5; ZeroMesher also means that the physics engine models the physics of prims
6; sticking to the basic shapes the engine does support. Usually this is only a box.
7; Meshmerizer gives a better handling of complex prims by using triangle meshes.
8; Note, that only ODE physics currently deals with meshed prims in a satisfactoring way
9; ZeroMesher currently has a memory locking issue.
10; meshing = ZeroMesher
11meshing = Meshmerizer
12
3physics = basicphysics 13physics = basicphysics
4; Prim Storage 14; Prim Storage
5; if you would like to use sqlite uncomment the following line (and 15; if you would like to use sqlite uncomment the following line (and
diff --git a/bin/mysql_connection.ini b/bin/mysql_connection.ini
index c8c6c8c..593727d 100644
--- a/bin/mysql_connection.ini
+++ b/bin/mysql_connection.ini
@@ -1,7 +1,7 @@
1[mysqlconnection] 1[mysqlconnection]
2hostname=localhost 2hostname=localhost
3database=database 3database=opensim
4username=username 4username=openSim
5password=password 5password=f1r3st0rm
6pooling=false 6pooling=false
7port=3306 \ No newline at end of file 7port=3306 \ No newline at end of file