code aesthetics and simplification
parent
852e20a5a7
commit
87a723cbc8
|
@ -1026,117 +1026,109 @@ namespace OpenSim.Framework
|
|||
{
|
||||
// m_log.DebugFormat("[EXTRAPARAMS]: Called ExtraParamsToBytes()");
|
||||
|
||||
ushort FlexiEP = 0x10;
|
||||
ushort LightEP = 0x20;
|
||||
ushort SculptEP = 0x30;
|
||||
ushort ProjectionEP = 0x40;
|
||||
const byte FlexiEP = 0x10;
|
||||
const byte LightEP = 0x20;
|
||||
const byte SculptEP = 0x30;
|
||||
const byte ProjectionEP = 0x40;
|
||||
|
||||
int i = 0;
|
||||
uint TotalBytesLength = 1; // ExtraParamsNum
|
||||
int TotalBytesLength = 1; // ExtraParamsNum
|
||||
|
||||
uint ExtraParamsNum = 0;
|
||||
if (_flexiEntry)
|
||||
{
|
||||
ExtraParamsNum++;
|
||||
TotalBytesLength += 16;// data
|
||||
TotalBytesLength += 2 + 4; // type
|
||||
TotalBytesLength += 16 + 2 + 4;// data
|
||||
}
|
||||
|
||||
if (_lightEntry)
|
||||
{
|
||||
ExtraParamsNum++;
|
||||
TotalBytesLength += 16;// data
|
||||
TotalBytesLength += 2 + 4; // type
|
||||
TotalBytesLength += 16 + 2 + 4; // data
|
||||
}
|
||||
|
||||
if (_sculptEntry)
|
||||
{
|
||||
ExtraParamsNum++;
|
||||
TotalBytesLength += 17;// data
|
||||
TotalBytesLength += 2 + 4; // type
|
||||
TotalBytesLength += 17 + 2 + 4;// data
|
||||
}
|
||||
|
||||
if (_projectionEntry)
|
||||
{
|
||||
ExtraParamsNum++;
|
||||
TotalBytesLength += 28;// data
|
||||
TotalBytesLength += 2 + 4;// type
|
||||
TotalBytesLength += 28 + 2 + 4; // data
|
||||
}
|
||||
|
||||
byte[] returnbytes = new byte[TotalBytesLength];
|
||||
byte[] returnBytes = new byte[TotalBytesLength];
|
||||
|
||||
// uint paramlength = ExtraParamsNum;
|
||||
returnBytes[0] = (byte)ExtraParamsNum;
|
||||
|
||||
// Stick in the number of parameters
|
||||
returnbytes[i++] = (byte)ExtraParamsNum;
|
||||
if(ExtraParamsNum == 0)
|
||||
return returnBytes;
|
||||
|
||||
int i = 1;
|
||||
|
||||
if (_flexiEntry)
|
||||
{
|
||||
byte[] FlexiData = GetFlexiBytes();
|
||||
returnBytes[i] = FlexiEP; // 2 bytes id code
|
||||
i += 2;
|
||||
returnBytes[i] = 16; // 4 bytes size
|
||||
i += 4;
|
||||
|
||||
returnbytes[i++] = (byte)(FlexiEP % 256);
|
||||
returnbytes[i++] = (byte)((FlexiEP >> 8) % 256);
|
||||
// Softness is packed in the upper bits of tension and drag
|
||||
returnBytes[i] = (byte)((_flexiSoftness & 2) << 6);
|
||||
returnBytes[i + 1] = (byte)((_flexiSoftness & 1) << 7);
|
||||
|
||||
returnbytes[i++] = (byte)(FlexiData.Length % 256);
|
||||
returnbytes[i++] = (byte)((FlexiData.Length >> 8) % 256);
|
||||
returnbytes[i++] = (byte)((FlexiData.Length >> 16) % 256);
|
||||
returnbytes[i++] = (byte)((FlexiData.Length >> 24) % 256);
|
||||
Array.Copy(FlexiData, 0, returnbytes, i, FlexiData.Length);
|
||||
i += FlexiData.Length;
|
||||
returnBytes[i++] |= (byte)((byte)(_flexiTension * 10.01f) & 0x7F);
|
||||
returnBytes[i++] |= (byte)((byte)(_flexiDrag * 10.01f) & 0x7F);
|
||||
returnBytes[i++] = (byte)((_flexiGravity + 10.0f) * 10.01f);
|
||||
returnBytes[i++] = (byte)(_flexiWind * 10.01f);
|
||||
Vector3 lForce = new Vector3(_flexiForceX, _flexiForceY, _flexiForceZ);
|
||||
lForce.GetBytes().CopyTo(returnBytes, i);
|
||||
i += 12;
|
||||
}
|
||||
|
||||
if (_lightEntry)
|
||||
{
|
||||
byte[] LightData = GetLightBytes();
|
||||
returnBytes[i] = LightEP;
|
||||
i += 2;
|
||||
returnBytes[i] = 16;
|
||||
i += 4;
|
||||
|
||||
returnbytes[i++] = (byte)(LightEP % 256);
|
||||
returnbytes[i++] = (byte)((LightEP >> 8) % 256);
|
||||
|
||||
returnbytes[i++] = (byte)(LightData.Length % 256);
|
||||
returnbytes[i++] = (byte)((LightData.Length >> 8) % 256);
|
||||
returnbytes[i++] = (byte)((LightData.Length >> 16) % 256);
|
||||
returnbytes[i++] = (byte)((LightData.Length >> 24) % 256);
|
||||
Array.Copy(LightData, 0, returnbytes, i, LightData.Length);
|
||||
i += LightData.Length;
|
||||
// Alpha channel in color is intensity
|
||||
Color4 tmpColor = new Color4(_lightColorR, _lightColorG, _lightColorB, _lightIntensity);
|
||||
tmpColor.GetBytes().CopyTo(returnBytes, i);
|
||||
Utils.FloatToBytes(_lightRadius).CopyTo(returnBytes, i + 4);
|
||||
Utils.FloatToBytes(_lightCutoff).CopyTo(returnBytes, i + 8);
|
||||
Utils.FloatToBytes(_lightFalloff).CopyTo(returnBytes, i + 12);
|
||||
i += 16;
|
||||
}
|
||||
|
||||
if (_sculptEntry)
|
||||
{
|
||||
byte[] SculptData = GetSculptBytes();
|
||||
returnBytes[i] = SculptEP;
|
||||
i += 2;
|
||||
returnBytes[i] = 17;
|
||||
i += 4;
|
||||
|
||||
returnbytes[i++] = (byte)(SculptEP % 256);
|
||||
returnbytes[i++] = (byte)((SculptEP >> 8) % 256);
|
||||
|
||||
returnbytes[i++] = (byte)(SculptData.Length % 256);
|
||||
returnbytes[i++] = (byte)((SculptData.Length >> 8) % 256);
|
||||
returnbytes[i++] = (byte)((SculptData.Length >> 16) % 256);
|
||||
returnbytes[i++] = (byte)((SculptData.Length >> 24) % 256);
|
||||
Array.Copy(SculptData, 0, returnbytes, i, SculptData.Length);
|
||||
i += SculptData.Length;
|
||||
_sculptTexture.GetBytes().CopyTo(returnBytes, i);
|
||||
i += 16;
|
||||
returnBytes[i++] = _sculptType;
|
||||
}
|
||||
|
||||
if (_projectionEntry)
|
||||
{
|
||||
byte[] ProjectionData = GetProjectionBytes();
|
||||
returnBytes[i] = ProjectionEP;
|
||||
i += 2;
|
||||
returnBytes[i] = 28;
|
||||
i += 4;
|
||||
|
||||
returnbytes[i++] = (byte)(ProjectionEP % 256);
|
||||
returnbytes[i++] = (byte)((ProjectionEP >> 8) % 256);
|
||||
returnbytes[i++] = (byte)((ProjectionData.Length) % 256);
|
||||
returnbytes[i++] = (byte)((ProjectionData.Length >> 16) % 256);
|
||||
returnbytes[i++] = (byte)((ProjectionData.Length >> 20) % 256);
|
||||
returnbytes[i++] = (byte)((ProjectionData.Length >> 24) % 256);
|
||||
Array.Copy(ProjectionData, 0, returnbytes, i, ProjectionData.Length);
|
||||
i += ProjectionData.Length;
|
||||
_projectionTextureID.GetBytes().CopyTo(returnBytes, i);
|
||||
Utils.FloatToBytes(_projectionFOV).CopyTo(returnBytes, i + 16);
|
||||
Utils.FloatToBytes(_projectionFocus).CopyTo(returnBytes, i + 20);
|
||||
Utils.FloatToBytes(_projectionAmb).CopyTo(returnBytes, i + 24);
|
||||
}
|
||||
|
||||
if (!_flexiEntry && !_lightEntry && !_sculptEntry && !_projectionEntry)
|
||||
{
|
||||
byte[] returnbyte = new byte[1];
|
||||
returnbyte[0] = 0;
|
||||
return returnbyte;
|
||||
}
|
||||
|
||||
return returnbytes;
|
||||
return returnBytes;
|
||||
}
|
||||
|
||||
public void ReadInUpdateExtraParam(ushort type, bool inUse, byte[] data)
|
||||
|
@ -1283,16 +1275,6 @@ namespace OpenSim.Framework
|
|||
//m_log.Info("[SCULPT]:" + SculptUUID.ToString());
|
||||
}
|
||||
|
||||
public byte[] GetSculptBytes()
|
||||
{
|
||||
byte[] data = new byte[17];
|
||||
|
||||
_sculptTexture.GetBytes().CopyTo(data, 0);
|
||||
data[16] = (byte)_sculptType;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public void ReadFlexiData(byte[] data, int pos)
|
||||
{
|
||||
if (data.Length-pos >= 16)
|
||||
|
@ -1324,25 +1306,6 @@ namespace OpenSim.Framework
|
|||
}
|
||||
}
|
||||
|
||||
public byte[] GetFlexiBytes()
|
||||
{
|
||||
byte[] data = new byte[16];
|
||||
int i = 0;
|
||||
|
||||
// Softness is packed in the upper bits of tension and drag
|
||||
data[i] = (byte)((_flexiSoftness & 2) << 6);
|
||||
data[i + 1] = (byte)((_flexiSoftness & 1) << 7);
|
||||
|
||||
data[i++] |= (byte)((byte)(_flexiTension * 10.01f) & 0x7F);
|
||||
data[i++] |= (byte)((byte)(_flexiDrag * 10.01f) & 0x7F);
|
||||
data[i++] = (byte)((_flexiGravity + 10.0f) * 10.01f);
|
||||
data[i++] = (byte)(_flexiWind * 10.01f);
|
||||
Vector3 lForce = new Vector3(_flexiForceX, _flexiForceY, _flexiForceZ);
|
||||
lForce.GetBytes().CopyTo(data, i);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public void ReadLightData(byte[] data, int pos)
|
||||
{
|
||||
if (data.Length - pos >= 16)
|
||||
|
@ -1373,21 +1336,6 @@ namespace OpenSim.Framework
|
|||
}
|
||||
}
|
||||
|
||||
public byte[] GetLightBytes()
|
||||
{
|
||||
byte[] data = new byte[16];
|
||||
|
||||
// Alpha channel in color is intensity
|
||||
Color4 tmpColor = new Color4(_lightColorR,_lightColorG,_lightColorB,_lightIntensity);
|
||||
|
||||
tmpColor.GetBytes().CopyTo(data, 0);
|
||||
Utils.FloatToBytes(_lightRadius).CopyTo(data, 4);
|
||||
Utils.FloatToBytes(_lightCutoff).CopyTo(data, 8);
|
||||
Utils.FloatToBytes(_lightFalloff).CopyTo(data, 12);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public void ReadProjectionData(byte[] data, int pos)
|
||||
{
|
||||
byte[] ProjectionTextureUUID = new byte[16];
|
||||
|
@ -1412,19 +1360,6 @@ namespace OpenSim.Framework
|
|||
}
|
||||
}
|
||||
|
||||
public byte[] GetProjectionBytes()
|
||||
{
|
||||
byte[] data = new byte[28];
|
||||
|
||||
_projectionTextureID.GetBytes().CopyTo(data, 0);
|
||||
Utils.FloatToBytes(_projectionFOV).CopyTo(data, 16);
|
||||
Utils.FloatToBytes(_projectionFocus).CopyTo(data, 20);
|
||||
Utils.FloatToBytes(_projectionAmb).CopyTo(data, 24);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Creates a OpenMetaverse.Primitive and populates it with converted PrimitiveBaseShape values
|
||||
/// </summary>
|
||||
|
@ -1436,7 +1371,6 @@ namespace OpenSim.Framework
|
|||
new Quaternion(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Creates a OpenMetaverse.Primitive and populates it with converted PrimitiveBaseShape values
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in New Issue