mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 11:33:28 +08:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user