diff options
author | Teravus Ovares | 2008-05-01 06:31:12 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-01 06:31:12 +0000 |
commit | 1c697ef0d206445c6819e338626169fc6ef56432 (patch) | |
tree | 88d6b26b5982eb73f75a5f051c2f068c1d8d8f27 /OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |
parent | * Fix OBB raycaster to respond properly to rays cast from any direction. (diff) | |
download | opensim-SC-1c697ef0d206445c6819e338626169fc6ef56432.zip opensim-SC-1c697ef0d206445c6819e338626169fc6ef56432.tar.gz opensim-SC-1c697ef0d206445c6819e338626169fc6ef56432.tar.bz2 opensim-SC-1c697ef0d206445c6819e338626169fc6ef56432.tar.xz |
* You can now rez objects out of inventory at the correct offset from prim you rez it on. Including multi prim groups and prim that have different X/Y/Z scales.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 7e1b89f..7866b32 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -1235,10 +1235,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1235 | bRayEndIsIntersection = (byte)0; | 1235 | bRayEndIsIntersection = (byte)0; |
1236 | } | 1236 | } |
1237 | 1237 | ||
1238 | LLVector3 pos | 1238 | LLVector3 scale = new LLVector3(0.5f, 0.5f, 0.5f); |
1239 | = GetNewRezLocation( | 1239 | |
1240 | |||
1241 | LLVector3 pos = GetNewRezLocation( | ||
1240 | RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), | 1242 | RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), |
1241 | BypassRayCast, bRayEndIsIntersection); | 1243 | BypassRayCast, bRayEndIsIntersection,true,scale); |
1242 | 1244 | ||
1243 | if (!PermissionsMngr.CanRezObject(remoteClient.AgentId, pos) && !attachment) | 1245 | if (!PermissionsMngr.CanRezObject(remoteClient.AgentId, pos) && !attachment) |
1244 | { | 1246 | { |
@@ -1266,9 +1268,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1266 | // if attachment we set it's asset id so object updates can reflect that | 1268 | // if attachment we set it's asset id so object updates can reflect that |
1267 | // if not, we set it's position in world. | 1269 | // if not, we set it's position in world. |
1268 | if (!attachment) | 1270 | if (!attachment) |
1271 | { | ||
1272 | pos = GetNewRezLocation( | ||
1273 | RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), | ||
1274 | BypassRayCast, bRayEndIsIntersection, true, group.GroupScale()); | ||
1269 | group.AbsolutePosition = pos; | 1275 | group.AbsolutePosition = pos; |
1276 | } | ||
1270 | else | 1277 | else |
1278 | { | ||
1271 | group.SetFromAssetID(itemID); | 1279 | group.SetFromAssetID(itemID); |
1280 | } | ||
1272 | 1281 | ||
1273 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 1282 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
1274 | 1283 | ||