From 06b61b68c768b040894158199816bd11b0fd5f52 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Sun, 17 Oct 2010 01:47:07 -0400 Subject: Adding osFunctions for light projection Set the projection parameters in the host prim ... osSetProjectionParam(bool Enabled, key TextureMaskUUID, float FOV, float Focus, float Ambiance); Set the projection parameters in a target prim ... osSetProjectionParam(ikey target uuid, bool Enabled, key TextureMaskUUID, float FOV, float Focus, float Ambiance); Threat Level very high Signed-off-by: Melanie --- OpenSim/Framework/PrimitiveBaseShape.cs | 55 ++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 5 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index c5eb40b..927415e 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs @@ -802,6 +802,51 @@ namespace OpenSim.Framework } } + public bool ProjectionEntry { + get { + return _projectionEntry; + } + set { + _projectionEntry = value; + } + } + + public UUID ProjectionTextureUUID { + get { + return _projectionTextureID; + } + set { + _projectionTextureID = value; + } + } + + public float ProjectionFOV { + get { + return _projectionFOV; + } + set { + _projectionFOV = value; + } + } + + public float ProjectionFocus { + get { + return _projectionFocus; + } + set { + _projectionFocus = value; + } + } + + public float ProjectionAmbiance { + get { + return _projectionAmb; + } + set { + _projectionAmb = value; + } + } + public byte[] ExtraParamsToBytes() { ushort FlexiEP = 0x10; @@ -1175,16 +1220,16 @@ namespace OpenSim.Framework Array.Copy(data, pos, ProjectionTextureUUID,0, 16); _projectionTextureID = new UUID(ProjectionTextureUUID, 0); - _projectionFocus = Utils.BytesToFloat(data, pos + 16); - _projectionFOV = Utils.BytesToFloat(data, pos + 20); + _projectionFOV = Utils.BytesToFloat(data, pos + 16); + _projectionFocus = Utils.BytesToFloat(data, pos + 20); _projectionAmb = Utils.BytesToFloat(data, pos + 24); } else { _projectionEntry = false; _projectionTextureID = UUID.Zero; - _projectionFocus = 0f; _projectionFOV = 0f; + _projectionFocus = 0f; _projectionAmb = 0f; } } @@ -1194,8 +1239,8 @@ namespace OpenSim.Framework byte[] data = new byte[28]; _projectionTextureID.GetBytes().CopyTo(data, 0); - Utils.FloatToBytes(_projectionFocus).CopyTo(data, 16); - Utils.FloatToBytes(_projectionFOV).CopyTo(data, 20); + Utils.FloatToBytes(_projectionFOV).CopyTo(data, 16); + Utils.FloatToBytes(_projectionFocus).CopyTo(data, 20); Utils.FloatToBytes(_projectionAmb).CopyTo(data, 24); return data; -- cgit v1.1