further property refactoring of PrimitiveBaseShape

0.6.0-stable
Sean Dague 2008-07-16 14:41:53 +00:00
parent c6b1a190bc
commit e2d02cbf65
1 changed files with 253 additions and 82 deletions

View File

@ -107,27 +107,27 @@ namespace OpenSim.Framework
[XmlIgnore] public byte[] _sculptData = new byte[0]; [XmlIgnore] public byte[] _sculptData = new byte[0];
// Flexi // Flexi
[XmlIgnore] public int FlexiSoftness = 0; [XmlIgnore] public int _flexiSoftness = 0;
[XmlIgnore] public float FlexiTension = 0f; [XmlIgnore] public float _flexiTension = 0f;
[XmlIgnore] public float FlexiDrag = 0f; [XmlIgnore] public float _flexiDrag = 0f;
[XmlIgnore] public float FlexiGravity = 0f; [XmlIgnore] public float _flexiGravity = 0f;
[XmlIgnore] public float FlexiWind = 0f; [XmlIgnore] public float _flexiWind = 0f;
[XmlIgnore] public float FlexiForceX = 0f; [XmlIgnore] public float _flexiForceX = 0f;
[XmlIgnore] public float FlexiForceY = 0f; [XmlIgnore] public float _flexiForceY = 0f;
[XmlIgnore] public float FlexiForceZ = 0f; [XmlIgnore] public float _flexiForceZ = 0f;
//Bright n sparkly //Bright n sparkly
[XmlIgnore] public float LightColorR = 0f; [XmlIgnore] public float _lightColorR = 0f;
[XmlIgnore] public float LightColorG = 0f; [XmlIgnore] public float _lightColorG = 0f;
[XmlIgnore] public float LightColorB = 0f; [XmlIgnore] public float _lightColorB = 0f;
[XmlIgnore] public float LightColorA = 1f; [XmlIgnore] public float _lightColorA = 1f;
[XmlIgnore] public float LightRadius = 0f; [XmlIgnore] public float _lightRadius = 0f;
[XmlIgnore] public float LightCutoff = 0f; [XmlIgnore] public float _lightCutoff = 0f;
[XmlIgnore] public float LightFalloff = 0f; [XmlIgnore] public float _lightFalloff = 0f;
[XmlIgnore] public float LightIntensity = 1f; [XmlIgnore] public float _lightIntensity = 1f;
[XmlIgnore] public bool FlexiEntry = false; [XmlIgnore] public bool _flexiEntry = false;
[XmlIgnore] public bool LightEntry = false; [XmlIgnore] public bool _lightEntry = false;
[XmlIgnore] public bool SculptEntry = false; [XmlIgnore] public bool _sculptEntry = false;
public byte ProfileCurve public byte ProfileCurve
{ {
@ -535,6 +535,177 @@ namespace OpenSim.Framework
} }
} }
public int FlexiSoftness {
get {
return _flexiSoftness;
}
set {
_flexiSoftness = value;
}
}
public float FlexiTension {
get {
return _flexiTension;
}
set {
_flexiTension = value;
}
}
public float FlexiDrag {
get {
return _flexiDrag;
}
set {
_flexiDrag = value;
}
}
public float FlexiGravity {
get {
return _flexiGravity;
}
set {
_flexiGravity = value;
}
}
public float FlexiWind {
get {
return _flexiWind;
}
set {
_flexiWind = value;
}
}
public float FlexiForceX {
get {
return _flexiForceX;
}
set {
_flexiForceX = value;
}
}
public float FlexiForceY {
get {
return _flexiForceY;
}
set {
_flexiForceY = value;
}
}
public float FlexiForceZ {
get {
return _flexiForceZ;
}
set {
_flexiForceZ = value;
}
}
public float LightColorR {
get {
return _lightColorR;
}
set {
_lightColorR = value;
}
}
public float LightColorG {
get {
return _lightColorG;
}
set {
_lightColorG = value;
}
}
public float LightColorB {
get {
return _lightColorB;
}
set {
_lightColorB = value;
}
}
public float LightColorA {
get {
return _lightColorA;
}
set {
_lightColorA = value;
}
}
public float LightRadius {
get {
return _lightRadius;
}
set {
_lightRadius = value;
}
}
public float LightCutoff {
get {
return _lightCutoff;
}
set {
_lightCutoff = value;
}
}
public float LightFalloff {
get {
return _lightFalloff;
}
set {
_lightFalloff = value;
}
}
public float LightIntensity {
get {
return _lightIntensity;
}
set {
_lightIntensity = value;
}
}
public bool FlexiEntry {
get {
return _flexiEntry;
}
set {
_flexiEntry = value;
}
}
public bool LightEntry {
get {
return _lightEntry;
}
set {
_lightEntry = value;
}
}
public bool SculptEntry {
get {
return _sculptEntry;
}
set {
_sculptEntry = value;
}
}
public byte[] ExtraParamsToBytes() public byte[] ExtraParamsToBytes()
{ {
ushort FlexiEP = 0x10; ushort FlexiEP = 0x10;
@ -545,19 +716,19 @@ namespace OpenSim.Framework
uint TotalBytesLength = 1; // ExtraParamsNum uint TotalBytesLength = 1; // ExtraParamsNum
uint ExtraParamsNum = 0; uint ExtraParamsNum = 0;
if (FlexiEntry) if (_flexiEntry)
{ {
ExtraParamsNum++; ExtraParamsNum++;
TotalBytesLength += 16;// data TotalBytesLength += 16;// data
TotalBytesLength += 2 + 4; // type TotalBytesLength += 2 + 4; // type
} }
if (LightEntry) if (_lightEntry)
{ {
ExtraParamsNum++; ExtraParamsNum++;
TotalBytesLength += 16;// data TotalBytesLength += 16;// data
TotalBytesLength += 2 + 4; // type TotalBytesLength += 2 + 4; // type
} }
if (SculptEntry) if (_sculptEntry)
{ {
ExtraParamsNum++; ExtraParamsNum++;
TotalBytesLength += 17;// data TotalBytesLength += 17;// data
@ -572,7 +743,7 @@ namespace OpenSim.Framework
// Stick in the number of parameters // Stick in the number of parameters
returnbytes[i++] = (byte)ExtraParamsNum; returnbytes[i++] = (byte)ExtraParamsNum;
if (FlexiEntry) if (_flexiEntry)
{ {
byte[] FlexiData = GetFlexiBytes(); byte[] FlexiData = GetFlexiBytes();
@ -586,7 +757,7 @@ namespace OpenSim.Framework
Array.Copy(FlexiData, 0, returnbytes, i, FlexiData.Length); Array.Copy(FlexiData, 0, returnbytes, i, FlexiData.Length);
i += FlexiData.Length; i += FlexiData.Length;
} }
if (LightEntry) if (_lightEntry)
{ {
byte[] LightData = GetLightBytes(); byte[] LightData = GetLightBytes();
@ -600,7 +771,7 @@ namespace OpenSim.Framework
Array.Copy(LightData, 0, returnbytes, i, LightData.Length); Array.Copy(LightData, 0, returnbytes, i, LightData.Length);
i += LightData.Length; i += LightData.Length;
} }
if (SculptEntry) if (_sculptEntry)
{ {
byte[] SculptData = GetSculptBytes(); byte[] SculptData = GetSculptBytes();
@ -615,7 +786,7 @@ namespace OpenSim.Framework
i += SculptData.Length; i += SculptData.Length;
} }
if (!FlexiEntry && !LightEntry && !SculptEntry) if (!_flexiEntry && !_lightEntry && !_sculptEntry)
{ {
byte[] returnbyte = new byte[1]; byte[] returnbyte = new byte[1];
returnbyte[0] = 0; returnbyte[0] = 0;
@ -639,7 +810,7 @@ namespace OpenSim.Framework
case FlexiEP: case FlexiEP:
if (!inUse) if (!inUse)
{ {
FlexiEntry = false; _flexiEntry = false;
return; return;
} }
ReadFlexiData(data, 0); ReadFlexiData(data, 0);
@ -648,7 +819,7 @@ namespace OpenSim.Framework
case LightEP: case LightEP:
if (!inUse) if (!inUse)
{ {
LightEntry = false; _lightEntry = false;
return; return;
} }
ReadLightData(data, 0); ReadLightData(data, 0);
@ -657,7 +828,7 @@ namespace OpenSim.Framework
case SculptEP: case SculptEP:
if (!inUse) if (!inUse)
{ {
SculptEntry = false; _sculptEntry = false;
return; return;
} }
ReadSculptData(data, 0); ReadSculptData(data, 0);
@ -714,11 +885,11 @@ namespace OpenSim.Framework
} }
if (!lGotFlexi) if (!lGotFlexi)
FlexiEntry = false; _flexiEntry = false;
if (!lGotLight) if (!lGotLight)
LightEntry = false; _lightEntry = false;
if (!lGotSculpt) if (!lGotSculpt)
SculptEntry = false; _sculptEntry = false;
} }
@ -730,7 +901,7 @@ namespace OpenSim.Framework
if (data.Length+pos >= 17) if (data.Length+pos >= 17)
{ {
SculptEntry = true; _sculptEntry = true;
SculptTextureUUID = new byte[16]; SculptTextureUUID = new byte[16];
SculptTypel = data[16 + pos]; SculptTypel = data[16 + pos];
Array.Copy(data, pos, SculptTextureUUID,0, 16); Array.Copy(data, pos, SculptTextureUUID,0, 16);
@ -738,12 +909,12 @@ namespace OpenSim.Framework
} }
else else
{ {
SculptEntry = false; _sculptEntry = false;
SculptUUID = LLUUID.Zero; SculptUUID = LLUUID.Zero;
SculptTypel = 0x00; SculptTypel = 0x00;
} }
if (SculptEntry) if (_sculptEntry)
{ {
if (_sculptType != (byte)1 && _sculptType != (byte)2 && _sculptType != (byte)3 && _sculptType != (byte)4) if (_sculptType != (byte)1 && _sculptType != (byte)2 && _sculptType != (byte)3 && _sculptType != (byte)4)
_sculptType = 4; _sculptType = 4;
@ -767,30 +938,30 @@ namespace OpenSim.Framework
{ {
if (data.Length-pos >= 16) if (data.Length-pos >= 16)
{ {
FlexiEntry = true; _flexiEntry = true;
FlexiSoftness = ((data[pos] & 0x80) >> 6) | ((data[pos + 1] & 0x80) >> 7); _flexiSoftness = ((data[pos] & 0x80) >> 6) | ((data[pos + 1] & 0x80) >> 7);
FlexiTension = (float)(data[pos++] & 0x7F) / 10.0f; _flexiTension = (float)(data[pos++] & 0x7F) / 10.0f;
FlexiDrag = (float)(data[pos++] & 0x7F) / 10.0f; _flexiDrag = (float)(data[pos++] & 0x7F) / 10.0f;
FlexiGravity = (float)(data[pos++] / 10.0f) - 10.0f; _flexiGravity = (float)(data[pos++] / 10.0f) - 10.0f;
FlexiWind = (float)data[pos++] / 10.0f; _flexiWind = (float)data[pos++] / 10.0f;
LLVector3 lForce = new LLVector3(data, pos); LLVector3 lForce = new LLVector3(data, pos);
FlexiForceX = lForce.X; _flexiForceX = lForce.X;
FlexiForceY = lForce.Y; _flexiForceY = lForce.Y;
FlexiForceZ = lForce.Z; _flexiForceZ = lForce.Z;
} }
else else
{ {
FlexiEntry = false; _flexiEntry = false;
FlexiSoftness = 0; _flexiSoftness = 0;
FlexiTension = 0.0f; _flexiTension = 0.0f;
FlexiDrag = 0.0f; _flexiDrag = 0.0f;
FlexiGravity = 0.0f; _flexiGravity = 0.0f;
FlexiWind = 0.0f; _flexiWind = 0.0f;
FlexiForceX = 0f; _flexiForceX = 0f;
FlexiForceY = 0f; _flexiForceY = 0f;
FlexiForceZ = 0f; _flexiForceZ = 0f;
} }
} }
@ -800,14 +971,14 @@ namespace OpenSim.Framework
int i = 0; int i = 0;
// Softness is packed in the upper bits of tension and drag // Softness is packed in the upper bits of tension and drag
data[i] = (byte)((FlexiSoftness & 2) << 6); data[i] = (byte)((_flexiSoftness & 2) << 6);
data[i + 1] = (byte)((FlexiSoftness & 1) << 7); data[i + 1] = (byte)((_flexiSoftness & 1) << 7);
data[i++] |= (byte)((byte)(FlexiTension * 10.01f) & 0x7F); data[i++] |= (byte)((byte)(_flexiTension * 10.01f) & 0x7F);
data[i++] |= (byte)((byte)(FlexiDrag * 10.01f) & 0x7F); data[i++] |= (byte)((byte)(_flexiDrag * 10.01f) & 0x7F);
data[i++] = (byte)((FlexiGravity + 10.0f) * 10.01f); data[i++] = (byte)((_flexiGravity + 10.0f) * 10.01f);
data[i++] = (byte)(FlexiWind * 10.01f); data[i++] = (byte)(_flexiWind * 10.01f);
LLVector3 lForce = new LLVector3(FlexiForceX, FlexiForceY, FlexiForceZ); LLVector3 lForce = new LLVector3(_flexiForceX, _flexiForceY, _flexiForceZ);
lForce.GetBytes().CopyTo(data, i); lForce.GetBytes().CopyTo(data, i);
return data; return data;
@ -817,29 +988,29 @@ namespace OpenSim.Framework
{ {
if (data.Length - pos >= 16) if (data.Length - pos >= 16)
{ {
LightEntry = true; _lightEntry = true;
LLColor lColor = new LLColor(data, pos, false); LLColor lColor = new LLColor(data, pos, false);
LightIntensity = lColor.A; _lightIntensity = lColor.A;
LightColorA = 1f; _lightColorA = 1f;
LightColorR = lColor.R; _lightColorR = lColor.R;
LightColorG = lColor.G; _lightColorG = lColor.G;
LightColorB = lColor.B; _lightColorB = lColor.B;
LightRadius = Helpers.BytesToFloat(data, pos + 4); _lightRadius = Helpers.BytesToFloat(data, pos + 4);
LightCutoff = Helpers.BytesToFloat(data, pos + 8); _lightCutoff = Helpers.BytesToFloat(data, pos + 8);
LightFalloff = Helpers.BytesToFloat(data, pos + 12); _lightFalloff = Helpers.BytesToFloat(data, pos + 12);
} }
else else
{ {
LightEntry = false; _lightEntry = false;
LightColorA = 1f; _lightColorA = 1f;
LightColorR = 0f; _lightColorR = 0f;
LightColorG = 0f; _lightColorG = 0f;
LightColorB = 0f; _lightColorB = 0f;
LightRadius = 0f; _lightRadius = 0f;
LightCutoff = 0f; _lightCutoff = 0f;
LightFalloff = 0f; _lightFalloff = 0f;
LightIntensity = 0f; _lightIntensity = 0f;
} }
} }
@ -848,12 +1019,12 @@ namespace OpenSim.Framework
byte[] data = new byte[16]; byte[] data = new byte[16];
// Alpha channel in color is intensity // Alpha channel in color is intensity
LLColor tmpColor = new LLColor(LightColorR,LightColorG,LightColorB,LightIntensity); LLColor tmpColor = new LLColor(_lightColorR,_lightColorG,_lightColorB,_lightIntensity);
tmpColor.GetBytes().CopyTo(data, 0); tmpColor.GetBytes().CopyTo(data, 0);
Helpers.FloatToBytes(LightRadius).CopyTo(data, 4); Helpers.FloatToBytes(_lightRadius).CopyTo(data, 4);
Helpers.FloatToBytes(LightCutoff).CopyTo(data, 8); Helpers.FloatToBytes(_lightCutoff).CopyTo(data, 8);
Helpers.FloatToBytes(LightFalloff).CopyTo(data, 12); Helpers.FloatToBytes(_lightFalloff).CopyTo(data, 12);
return data; return data;
} }