From fdf5f55a5b0e8936277053d3d24faef23a8f3061 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 26 Nov 2008 12:23:56 +0000 Subject: [PATCH] Yay for unit tests. Increased the type width of the prims and primshapes tables, and changed the database modules to actually push these doubles down into the database layer. --- OpenSim/Data/MySQL/MySQLRegionData.cs | 76 +++++++++--------- .../Data/MySQL/Resources/025_RegionStore.sql | 78 ++++++++++--------- OpenSim/Data/Tests/BasicRegionTest.cs | 4 +- ...Region.ScriptEngine.Shared.Api.Runtime.mdp | 1 + 4 files changed, 82 insertions(+), 77 deletions(-) diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index a3ac38edfc..f64b142799 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs @@ -1078,38 +1078,38 @@ namespace OpenSim.Data.MySQL cmd.Parameters.AddWithValue("EveryoneMask", prim.EveryoneMask); cmd.Parameters.AddWithValue("BaseMask", prim.BaseMask); // vectors - cmd.Parameters.AddWithValue("PositionX", prim.OffsetPosition.X); - cmd.Parameters.AddWithValue("PositionY", prim.OffsetPosition.Y); - cmd.Parameters.AddWithValue("PositionZ", prim.OffsetPosition.Z); - cmd.Parameters.AddWithValue("GroupPositionX", prim.GroupPosition.X); - cmd.Parameters.AddWithValue("GroupPositionY", prim.GroupPosition.Y); - cmd.Parameters.AddWithValue("GroupPositionZ", prim.GroupPosition.Z); - cmd.Parameters.AddWithValue("VelocityX", prim.Velocity.X); - cmd.Parameters.AddWithValue("VelocityY", prim.Velocity.Y); - cmd.Parameters.AddWithValue("VelocityZ", prim.Velocity.Z); - cmd.Parameters.AddWithValue("AngularVelocityX", prim.AngularVelocity.X); - cmd.Parameters.AddWithValue("AngularVelocityY", prim.AngularVelocity.Y); - cmd.Parameters.AddWithValue("AngularVelocityZ", prim.AngularVelocity.Z); - cmd.Parameters.AddWithValue("AccelerationX", prim.Acceleration.X); - cmd.Parameters.AddWithValue("AccelerationY", prim.Acceleration.Y); - cmd.Parameters.AddWithValue("AccelerationZ", prim.Acceleration.Z); + cmd.Parameters.AddWithValue("PositionX", (double)prim.OffsetPosition.X); + cmd.Parameters.AddWithValue("PositionY", (double)prim.OffsetPosition.Y); + cmd.Parameters.AddWithValue("PositionZ", (double)prim.OffsetPosition.Z); + cmd.Parameters.AddWithValue("GroupPositionX", (double)prim.GroupPosition.X); + cmd.Parameters.AddWithValue("GroupPositionY", (double)prim.GroupPosition.Y); + cmd.Parameters.AddWithValue("GroupPositionZ", (double)prim.GroupPosition.Z); + cmd.Parameters.AddWithValue("VelocityX", (double)prim.Velocity.X); + cmd.Parameters.AddWithValue("VelocityY", (double)prim.Velocity.Y); + cmd.Parameters.AddWithValue("VelocityZ", (double)prim.Velocity.Z); + cmd.Parameters.AddWithValue("AngularVelocityX", (double)prim.AngularVelocity.X); + cmd.Parameters.AddWithValue("AngularVelocityY", (double)prim.AngularVelocity.Y); + cmd.Parameters.AddWithValue("AngularVelocityZ", (double)prim.AngularVelocity.Z); + cmd.Parameters.AddWithValue("AccelerationX", (double)prim.Acceleration.X); + cmd.Parameters.AddWithValue("AccelerationY", (double)prim.Acceleration.Y); + cmd.Parameters.AddWithValue("AccelerationZ", (double)prim.Acceleration.Z); // quaternions - cmd.Parameters.AddWithValue("RotationX", prim.RotationOffset.X); - cmd.Parameters.AddWithValue("RotationY", prim.RotationOffset.Y); - cmd.Parameters.AddWithValue("RotationZ", prim.RotationOffset.Z); - cmd.Parameters.AddWithValue("RotationW", prim.RotationOffset.W); + cmd.Parameters.AddWithValue("RotationX", (double)prim.RotationOffset.X); + cmd.Parameters.AddWithValue("RotationY", (double)prim.RotationOffset.Y); + cmd.Parameters.AddWithValue("RotationZ", (double)prim.RotationOffset.Z); + cmd.Parameters.AddWithValue("RotationW", (double)prim.RotationOffset.W); // Sit target Vector3 sitTargetPos = prim.SitTargetPositionLL; - cmd.Parameters.AddWithValue("SitTargetOffsetX", sitTargetPos.X); - cmd.Parameters.AddWithValue("SitTargetOffsetY", sitTargetPos.Y); - cmd.Parameters.AddWithValue("SitTargetOffsetZ", sitTargetPos.Z); + cmd.Parameters.AddWithValue("SitTargetOffsetX", (double)sitTargetPos.X); + cmd.Parameters.AddWithValue("SitTargetOffsetY", (double)sitTargetPos.Y); + cmd.Parameters.AddWithValue("SitTargetOffsetZ", (double)sitTargetPos.Z); Quaternion sitTargetOrient = prim.SitTargetOrientationLL; - cmd.Parameters.AddWithValue("SitTargetOrientW", sitTargetOrient.W); - cmd.Parameters.AddWithValue("SitTargetOrientX", sitTargetOrient.X); - cmd.Parameters.AddWithValue("SitTargetOrientY", sitTargetOrient.Y); - cmd.Parameters.AddWithValue("SitTargetOrientZ", sitTargetOrient.Z); + cmd.Parameters.AddWithValue("SitTargetOrientW", (double)sitTargetOrient.W); + cmd.Parameters.AddWithValue("SitTargetOrientX", (double)sitTargetOrient.X); + cmd.Parameters.AddWithValue("SitTargetOrientY", (double)sitTargetOrient.Y); + cmd.Parameters.AddWithValue("SitTargetOrientZ", (double)sitTargetOrient.Z); cmd.Parameters.AddWithValue("PayPrice", prim.PayPrice[0]); cmd.Parameters.AddWithValue("PayButton1", prim.PayPrice[1]); @@ -1131,17 +1131,17 @@ namespace OpenSim.Data.MySQL cmd.Parameters.AddWithValue("TextureAnimation", prim.TextureAnimation); cmd.Parameters.AddWithValue("ParticleSystem", prim.ParticleSystem); - cmd.Parameters.AddWithValue("OmegaX", prim.RotationalVelocity.X); - cmd.Parameters.AddWithValue("OmegaY", prim.RotationalVelocity.Y); - cmd.Parameters.AddWithValue("OmegaZ", prim.RotationalVelocity.Z); + cmd.Parameters.AddWithValue("OmegaX", (double)prim.RotationalVelocity.X); + cmd.Parameters.AddWithValue("OmegaY", (double)prim.RotationalVelocity.Y); + cmd.Parameters.AddWithValue("OmegaZ", (double)prim.RotationalVelocity.Z); - cmd.Parameters.AddWithValue("CameraEyeOffsetX", prim.GetCameraEyeOffset().X); - cmd.Parameters.AddWithValue("CameraEyeOffsetY", prim.GetCameraEyeOffset().Y); - cmd.Parameters.AddWithValue("CameraEyeOffsetZ", prim.GetCameraEyeOffset().Z); + cmd.Parameters.AddWithValue("CameraEyeOffsetX", (double)prim.GetCameraEyeOffset().X); + cmd.Parameters.AddWithValue("CameraEyeOffsetY", (double)prim.GetCameraEyeOffset().Y); + cmd.Parameters.AddWithValue("CameraEyeOffsetZ", (double)prim.GetCameraEyeOffset().Z); - cmd.Parameters.AddWithValue("CameraAtOffsetX", prim.GetCameraAtOffset().X); - cmd.Parameters.AddWithValue("CameraAtOffsetY", prim.GetCameraAtOffset().Y); - cmd.Parameters.AddWithValue("CameraAtOffsetZ", prim.GetCameraAtOffset().Z); + cmd.Parameters.AddWithValue("CameraAtOffsetX", (double)prim.GetCameraAtOffset().X); + cmd.Parameters.AddWithValue("CameraAtOffsetY", (double)prim.GetCameraAtOffset().Y); + cmd.Parameters.AddWithValue("CameraAtOffsetZ", (double)prim.GetCameraAtOffset().Z); if (prim.GetForceMouselook()) cmd.Parameters.AddWithValue("ForceMouselook", 1); @@ -1363,9 +1363,9 @@ byte[] textureEntry = (byte[]) row["Texture"]; // shape is an enum cmd.Parameters.AddWithValue("Shape", 0); // vectors - cmd.Parameters.AddWithValue("ScaleX", s.Scale.X); - cmd.Parameters.AddWithValue("ScaleY", s.Scale.Y); - cmd.Parameters.AddWithValue("ScaleZ", s.Scale.Z); + cmd.Parameters.AddWithValue("ScaleX", (double)s.Scale.X); + cmd.Parameters.AddWithValue("ScaleY", (double)s.Scale.Y); + cmd.Parameters.AddWithValue("ScaleZ", (double)s.Scale.Z); // paths cmd.Parameters.AddWithValue("PCode", s.PCode); cmd.Parameters.AddWithValue("PathBegin", s.PathBegin); diff --git a/OpenSim/Data/MySQL/Resources/025_RegionStore.sql b/OpenSim/Data/MySQL/Resources/025_RegionStore.sql index 47fb6dda0b..e8f5d70e47 100644 --- a/OpenSim/Data/MySQL/Resources/025_RegionStore.sql +++ b/OpenSim/Data/MySQL/Resources/025_RegionStore.sql @@ -1,42 +1,46 @@ BEGIN; -alter table prims change column `PositionX` `PositionX` float default NULL; -alter table prims change column `PositionY` `PositionY` float default NULL; -alter table prims change column `PositionZ` `PositionZ` float default NULL; -alter table prims change column `GroupPositionX` `GroupPositionX` float default NULL; -alter table prims change column `GroupPositionY` `GroupPositionY` float default NULL; -alter table prims change column `GroupPositionZ` `GroupPositionZ` float default NULL; -alter table prims change column `VelocityX` `VelocityX` float default NULL; -alter table prims change column `VelocityY` `VelocityY` float default NULL; -alter table prims change column `VelocityZ` `VelocityZ` float default NULL; -alter table prims change column `AngularVelocityX` `AngularVelocityX` float default NULL; -alter table prims change column `AngularVelocityY` `AngularVelocityY` float default NULL; -alter table prims change column `AngularVelocityZ` `AngularVelocityZ` float default NULL; -alter table prims change column `AccelerationX` `AccelerationX` float default NULL; -alter table prims change column `AccelerationY` `AccelerationY` float default NULL; -alter table prims change column `AccelerationZ` `AccelerationZ` float default NULL; -alter table prims change column `RotationX` `RotationX` float default NULL; -alter table prims change column `RotationY` `RotationY` float default NULL; -alter table prims change column `RotationZ` `RotationZ` float default NULL; -alter table prims change column `RotationW` `RotationW` float default NULL; -alter table prims change column `SitTargetOffsetX` `SitTargetOffsetX` float default NULL; -alter table prims change column `SitTargetOffsetY` `SitTargetOffsetY` float default NULL; -alter table prims change column `SitTargetOffsetZ` `SitTargetOffsetZ` float default NULL; -alter table prims change column `SitTargetOrientW` `SitTargetOrientW` float default NULL; -alter table prims change column `SitTargetOrientX` `SitTargetOrientX` float default NULL; -alter table prims change column `SitTargetOrientY` `SitTargetOrientY` float default NULL; -alter table prims change column `SitTargetOrientZ` `SitTargetOrientZ` float default NULL; -alter table prims change column `LoopedSoundGain` `LoopedSoundGain` float NOT NULL default '0'; -alter table prims change column `OmegaX` `OmegaX` float NOT NULL default '0'; -alter table prims change column `OmegaY` `OmegaY` float NOT NULL default '0'; -alter table prims change column `OmegaZ` `OmegaZ` float NOT NULL default '0'; -alter table prims change column `CameraEyeOffsetX` `CameraEyeOffsetX` float NOT NULL default '0'; -alter table prims change column `CameraEyeOffsetY` `CameraEyeOffsetY` float NOT NULL default '0'; -alter table prims change column `CameraEyeOffsetZ` `CameraEyeOffsetZ` float NOT NULL default '0'; -alter table prims change column `CameraAtOffsetX` `CameraAtOffsetX` float NOT NULL default '0'; -alter table prims change column `CameraAtOffsetY` `CameraAtOffsetY` float NOT NULL default '0'; -alter table prims change column `CameraAtOffsetZ` `CameraAtOffsetZ` float NOT NULL default '0'; -alter table prims change column `CollisionSoundVolume` `CollisionSoundVolume` float NOT NULL default '0'; +alter table prims change column `PositionX` `PositionX` double default NULL; +alter table prims change column `PositionY` `PositionY` double default NULL; +alter table prims change column `PositionZ` `PositionZ` double default NULL; +alter table prims change column `GroupPositionX` `GroupPositionX` double default NULL; +alter table prims change column `GroupPositionY` `GroupPositionY` double default NULL; +alter table prims change column `GroupPositionZ` `GroupPositionZ` double default NULL; +alter table prims change column `VelocityX` `VelocityX` double default NULL; +alter table prims change column `VelocityY` `VelocityY` double default NULL; +alter table prims change column `VelocityZ` `VelocityZ` double default NULL; +alter table prims change column `AngularVelocityX` `AngularVelocityX` double default NULL; +alter table prims change column `AngularVelocityY` `AngularVelocityY` double default NULL; +alter table prims change column `AngularVelocityZ` `AngularVelocityZ` double default NULL; +alter table prims change column `AccelerationX` `AccelerationX` double default NULL; +alter table prims change column `AccelerationY` `AccelerationY` double default NULL; +alter table prims change column `AccelerationZ` `AccelerationZ` double default NULL; +alter table prims change column `RotationX` `RotationX` double default NULL; +alter table prims change column `RotationY` `RotationY` double default NULL; +alter table prims change column `RotationZ` `RotationZ` double default NULL; +alter table prims change column `RotationW` `RotationW` double default NULL; +alter table prims change column `SitTargetOffsetX` `SitTargetOffsetX` double default NULL; +alter table prims change column `SitTargetOffsetY` `SitTargetOffsetY` double default NULL; +alter table prims change column `SitTargetOffsetZ` `SitTargetOffsetZ` double default NULL; +alter table prims change column `SitTargetOrientW` `SitTargetOrientW` double default NULL; +alter table prims change column `SitTargetOrientX` `SitTargetOrientX` double default NULL; +alter table prims change column `SitTargetOrientY` `SitTargetOrientY` double default NULL; +alter table prims change column `SitTargetOrientZ` `SitTargetOrientZ` double default NULL; +alter table prims change column `LoopedSoundGain` `LoopedSoundGain` double NOT NULL default '0'; +alter table prims change column `OmegaX` `OmegaX` double NOT NULL default '0'; +alter table prims change column `OmegaY` `OmegaY` double NOT NULL default '0'; +alter table prims change column `OmegaZ` `OmegaZ` double NOT NULL default '0'; +alter table prims change column `CameraEyeOffsetX` `CameraEyeOffsetX` double NOT NULL default '0'; +alter table prims change column `CameraEyeOffsetY` `CameraEyeOffsetY` double NOT NULL default '0'; +alter table prims change column `CameraEyeOffsetZ` `CameraEyeOffsetZ` double NOT NULL default '0'; +alter table prims change column `CameraAtOffsetX` `CameraAtOffsetX` double NOT NULL default '0'; +alter table prims change column `CameraAtOffsetY` `CameraAtOffsetY` double NOT NULL default '0'; +alter table prims change column `CameraAtOffsetZ` `CameraAtOffsetZ` double NOT NULL default '0'; +alter table prims change column `CollisionSoundVolume` `CollisionSoundVolume` double NOT NULL default '0'; + +alter table primshapes change column `ScaleX` `ScaleX` double NOT NULL default '0'; +alter table primshapes change column `ScaleY` `ScaleY` double NOT NULL default '0'; +alter table primshapes change column `ScaleZ` `ScaleZ` double NOT NULL default '0'; COMMIT; diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/BasicRegionTest.cs index 4428e0d917..fac04660be 100644 --- a/OpenSim/Data/Tests/BasicRegionTest.cs +++ b/OpenSim/Data/Tests/BasicRegionTest.cs @@ -220,7 +220,7 @@ namespace OpenSim.Data.Tests uint localid = localID+1; localID = localID + 1; string name = "Adam West"; - byte material = (byte) random.Next(255); + byte material = (byte) random.Next(127); ulong regionh = (ulong)random.NextDouble() * (ulong)random.Next(); int pin = random.Next(); Byte[] partsys = new byte[8]; @@ -381,7 +381,7 @@ namespace OpenSim.Data.Tests TaskInventoryDictionary dic = new TaskInventoryDictionary(); localID = localID + 1; string name = "West Adam"; - byte material = (byte) random.Next(255); + byte material = (byte) random.Next(127); ulong regionh = (ulong)random.NextDouble() * (ulong)random.Next(); int pin = random.Next(); Byte[] partsys = new byte[8]; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp index baabe6533a..708afabb57 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp @@ -22,6 +22,7 @@ +