OpenSimMirror/OpenSim/Framework/General/Types/PrimitiveBaseShape.cs

110 lines
2.8 KiB
C#

using libsecondlife;
using libsecondlife.Packets;
namespace OpenSim.Framework.Types
{
public enum ShapeType
{
Box,
Sphere,
Ring,
Tube,
Torus,
Prism,
Scuplted,
Cylinder,
Foliage,
Unknown
}
public class PrimitiveBaseShape
{
private ShapeType type = ShapeType.Unknown;
public byte PCode;
public ushort PathBegin;
public ushort PathEnd;
public byte PathScaleX;
public byte PathScaleY;
public byte PathShearX;
public byte PathShearY;
public sbyte PathSkew;
public ushort ProfileBegin;
public ushort ProfileEnd;
public LLVector3 Scale;
public byte PathCurve;
public byte ProfileCurve;
public ushort ProfileHollow;
public sbyte PathRadiusOffset;
public byte PathRevolutions;
public sbyte PathTaperX;
public sbyte PathTaperY;
public sbyte PathTwist;
public sbyte PathTwistBegin;
public byte[] TextureEntry; // a LL textureEntry in byte[] format
public ShapeType PrimType
{
get
{
return this.type;
}
}
public LLVector3 PrimScale
{
get
{
return this.Scale;
}
}
public PrimitiveBaseShape()
{
}
//void returns need to change of course
public void GetMesh()
{
}
public PrimitiveBaseShape Copy()
{
return (PrimitiveBaseShape) this.MemberwiseClone();
}
public static PrimitiveBaseShape DefaultBox()
{
PrimitiveBaseShape primShape = new PrimitiveBaseShape();
primShape.type = ShapeType.Box;
primShape.Scale = new LLVector3(0.5f, 0.5f, 0.5f);
primShape.PCode = 9;
primShape.PathBegin = 0;
primShape.PathEnd = 0;
primShape.PathScaleX = 0;
primShape.PathScaleY = 0;
primShape.PathShearX = 0;
primShape.PathShearY = 0;
primShape.PathSkew = 0;
primShape.ProfileBegin = 0;
primShape.ProfileEnd = 0;
primShape.PathCurve = 16;
primShape.ProfileCurve = 1;
primShape.ProfileHollow = 0;
primShape.PathRadiusOffset = 0;
primShape.PathRevolutions = 0;
primShape.PathTaperX = 0;
primShape.PathTaperY = 0;
primShape.PathTwist = 0;
primShape.PathTwistBegin = 0;
LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
primShape.TextureEntry = ntex.ToBytes();
return primShape;
}
}
}