diff --git a/OpenSim/Data/Null/NullEstateData.cs b/OpenSim/Data/Null/NullEstateData.cs
index 0cebff55aa..8db8064cbe 100755
--- a/OpenSim/Data/Null/NullEstateData.cs
+++ b/OpenSim/Data/Null/NullEstateData.cs
@@ -38,9 +38,9 @@ namespace OpenSim.Data.Null
{
public class NullEstateStore : IEstateDataStore
{
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private string m_connectionString;
+// private string m_connectionString;
protected virtual Assembly Assembly
{
@@ -58,7 +58,7 @@ namespace OpenSim.Data.Null
public void Initialise(string connectionString)
{
- m_connectionString = connectionString;
+// m_connectionString = connectionString;
}
private string[] FieldList
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetMeshModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetMeshModule.cs
index 878242a447..d2278bc3de 100644
--- a/OpenSim/Region/CoreModules/Avatar/Assets/GetMeshModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetMeshModule.cs
@@ -54,6 +54,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
private Scene m_scene;
private IAssetService m_assetService;
+ private bool m_enabled = true;
#region IRegionModuleBase Members
@@ -65,7 +66,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
public void Initialise(IConfigSource source)
{
-
+ IConfig startupConfig = source.Configs["Startup"];
+ if (startupConfig == null)
+ return;
+
+ if (!startupConfig.GetBoolean("ColladaMesh",true))
+ m_enabled = false;
}
public void AddRegion(Scene pScene)
@@ -101,16 +107,19 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
public void RegisterCaps(UUID agentID, Caps caps)
{
+ if(!m_enabled)
+ return;
+
UUID capID = UUID.Random();
// m_log.Info("[GETMESH]: /CAPS/" + capID);
+
caps.RegisterHandler("GetMesh",
new RestHTTPHandler("GET", "/CAPS/" + capID,
delegate(Hashtable m_dhttpMethod)
{
return ProcessGetMesh(m_dhttpMethod, agentID, caps);
}));
-
}
#endregion
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/NewFileAgentInventoryVariablePriceModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/NewFileAgentInventoryVariablePriceModule.cs
index 4a42c938d5..fb07cc9ca0 100644
--- a/OpenSim/Region/CoreModules/Avatar/Assets/NewFileAgentInventoryVariablePriceModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Assets/NewFileAgentInventoryVariablePriceModule.cs
@@ -56,6 +56,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
private Scene m_scene;
// private IAssetService m_assetService;
private bool m_dumpAssetsToFile = false;
+ private bool m_enabled = true;
#region IRegionModuleBase Members
@@ -67,7 +68,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
public void Initialise(IConfigSource source)
{
-
+ IConfig startupConfig = source.Configs["Startup"];
+ if (startupConfig == null)
+ return;
+
+ if (!startupConfig.GetBoolean("ColladaMesh",true))
+ m_enabled = false;
}
public void AddRegion(Scene pScene)
@@ -103,6 +109,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Assets
public void RegisterCaps(UUID agentID, Caps caps)
{
+ if(!m_enabled)
+ return;
+
UUID capID = UUID.Random();
// m_log.Debug("[NEW FILE AGENT INVENTORY VARIABLE PRICE]: /CAPS/" + capID);
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 9fbfc3477f..73b0a35b7c 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -552,8 +552,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
///
/// Rez an object into the scene from the user's inventory
///
+ ///
/// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing
/// things to the scene. The caller should be doing that, I think.
+ ///
///
///
///
@@ -570,21 +572,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment)
{
- // Work out position details
- byte bRayEndIsIntersection = (byte)0;
-
- if (RayEndIsIntersection)
- {
- bRayEndIsIntersection = (byte)1;
- }
- else
- {
- bRayEndIsIntersection = (byte)0;
- }
-
+// m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID);
+
+ byte bRayEndIsIntersection = (byte)(RayEndIsIntersection ? 1 : 0);
Vector3 scale = new Vector3(0.5f, 0.5f, 0.5f);
-
-
Vector3 pos = m_Scene.GetNewRezLocation(
RayStart, RayEnd, RayTargetID, Quaternion.Identity,
BypassRayCast, bRayEndIsIntersection, true, scale, false);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 73dd531536..0f85925c78 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1955,11 +1955,49 @@ namespace OpenSim.Region.Framework.Scenes
UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
bool RezSelected, bool RemoveItem, UUID fromTaskID)
{
- IInventoryAccessModule invAccess = RequestModuleInterface();
- if (invAccess != null)
- invAccess.RezObject(
- remoteClient, itemID, RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection,
- RezSelected, RemoveItem, fromTaskID, false);
+// m_log.DebugFormat(
+// "[PRIM INVENTORY]: RezObject from {0} for item {1} from task id {2}",
+// remoteClient.Name, itemID, fromTaskID);
+
+ if (fromTaskID == UUID.Zero)
+ {
+ IInventoryAccessModule invAccess = RequestModuleInterface();
+ if (invAccess != null)
+ invAccess.RezObject(
+ remoteClient, itemID, RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection,
+ RezSelected, RemoveItem, fromTaskID, false);
+ }
+ else
+ {
+ SceneObjectPart part = GetSceneObjectPart(fromTaskID);
+ if (part == null)
+ {
+ m_log.ErrorFormat(
+ "[TASK INVENTORY]: {0} tried to rez item id {1} from object id {2} but there is no such scene object",
+ remoteClient.Name, itemID, fromTaskID);
+
+ return;
+ }
+
+ TaskInventoryItem item = part.Inventory.GetInventoryItem(itemID);
+ if (item == null)
+ {
+ m_log.ErrorFormat(
+ "[TASK INVENTORY]: {0} tried to rez item id {1} from object id {2} but there is no such item",
+ remoteClient.Name, itemID, fromTaskID);
+
+ return;
+ }
+
+ byte bRayEndIsIntersection = (byte)(RayEndIsIntersection ? 1 : 0);
+ Vector3 scale = new Vector3(0.5f, 0.5f, 0.5f);
+ Vector3 pos
+ = GetNewRezLocation(
+ RayStart, RayEnd, RayTargetID, Quaternion.Identity,
+ BypassRayCast, bRayEndIsIntersection, true, scale, false);
+
+ RezObject(part, item, pos, null, Vector3.Zero, 0);
+ }
}
///
@@ -1967,14 +2005,14 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- ///
- ///
- ///
+ /// The position of the rezzed object.
+ /// The rotation of the rezzed object. If null, then the rotation stored with the object
+ /// will be used if it exists.
+ /// The velocity of the rezzed object.
///
/// The SceneObjectGroup rezzed or null if rez was unsuccessful
public virtual SceneObjectGroup RezObject(
- SceneObjectPart sourcePart, TaskInventoryItem item,
- Vector3 pos, Quaternion rot, Vector3 vel, int param)
+ SceneObjectPart sourcePart, TaskInventoryItem item, Vector3 pos, Quaternion? rot, Vector3 vel, int param)
{
if (null == item)
return null;
@@ -1992,8 +2030,14 @@ namespace OpenSim.Region.Framework.Scenes
if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
sourcePart.Inventory.RemoveInventoryItem(item.ItemID);
}
-
- AddNewSceneObject(group, true, pos, rot, vel);
+
+ AddNewSceneObject(group, true);
+
+ group.AbsolutePosition = pos;
+ group.Velocity = vel;
+
+ if (rot != null)
+ group.UpdateGroupRotationR((Quaternion)rot);
// We can only call this after adding the scene object, since the scene object references the scene
// to find out if scripts should be activated at all.
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 55723d1efb..c05c3de2c4 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -16,7 +16,7 @@
;; files are loaded then type "config show" on the region console command line.
;;
;;
-;; NOTES FOR DEVELOPERS REGARDING FORMAT OF TIHS FILE
+;; NOTES FOR DEVELOPERS REGARDING THE FORMAT OF THIS FILE
;;
;; All leading white space is ignored, but preserved.
;;
@@ -201,6 +201,14 @@
;; If not generating maptiles, use this static texture asset ID
; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+ ;; Http proxy setting for llHTTPRequest and dynamic texture loading, if required
+ ; HttpProxy = "http://proxy.com:8080"
+
+ ;; If you're using HttpProxy, then you can set HttpProxyExceptions to a list of regular expressions for URLs that you don't want to go through the proxy
+ ;; For example, servers inside your firewall.
+ ;; Separate patterns with a ';'
+ ; HttpProxyExceptions = ".mydomain.com;localhost"
+
;# {emailmodule} {} {Provide llEmail and llGetNextEmail functionality? (requires SMTP server)} {true false} false
;; The email module requires some configuration. It needs an SMTP
;; server to send mail through.
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index d6eee0e101..107e859827 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -14,15 +14,6 @@
; Place to create a PID file
; PIDFile = "/tmp/my.pid"
- ; Http proxy support for llHTTPRequest and dynamic texture loading
- ; Set HttpProxy to the URL for your proxy server if you would like
- ; to proxy llHTTPRequests through a firewall
- ; HttpProxy = "http://proxy.com"
- ; Set HttpProxyExceptions to a list of regular expressions for
- ; URLs that you don't want going through the proxy such as servers
- ; inside your firewall, separate patterns with a ';'
- ; HttpProxyExceptions = ".mydomain.com;localhost"
-
startup_console_commands_file = "startup_commands.txt"
shutdown_console_commands_file = "shutdown_commands.txt"
@@ -163,7 +154,11 @@
; mesh, and use it for collisions. This is currently experimental code and enabling
; it may cause unexpected physics problems.
;UseMeshiesPhysicsMesh = false
-
+
+ ; enable / disable Collada mesh support
+ ; default is true
+ ; ColladaMesh = true
+
; Choose one of the physics engines below
; OpenDynamicsEngine is by some distance the most developed physics engine
; basicphysics effectively does not model physics at all, making all objects phantom