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 <melanie@t-data.com>
This commit is contained in:
BlueWall
2010-10-17 01:47:07 -04:00
committed by Melanie
parent 551d927ed5
commit 06b61b68c7
4 changed files with 105 additions and 5 deletions

View File

@@ -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;