/* * Copyright (c) 2006-2014, openmetaverse.org * All rights reserved. * * - Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * - Neither the name of the openmetaverse.org nor the names * of its contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ using System; namespace OpenMetaverse { /// /// Identifier code for primitive types /// public enum PCode : byte { /// None None = 0, /// A Primitive Prim = 9, /// A Avatar Avatar = 47, /// Linden grass Grass = 95, /// Linden tree NewTree = 111, /// A primitive that acts as the source for a particle stream ParticleSystem = 143, /// A Linden tree Tree = 255 } /// /// Primary parameters for primitives such as Physics Enabled or Phantom /// [Flags] public enum PrimFlags : uint { /// Deprecated None = 0, /// Whether physics are enabled for this object Physics = 0x00000001, /// CreateSelected = 0x00000002, /// ObjectModify = 0x00000004, /// ObjectCopy = 0x00000008, /// ObjectAnyOwner = 0x00000010, /// ObjectYouOwner = 0x00000020, /// Scripted = 0x00000040, /// Whether this object contains an active touch script Touch = 0x00000080, /// ObjectMove = 0x00000100, /// Whether this object can receive payments Money = 0x00000200, /// Whether this object is phantom (no collisions) Phantom = 0x00000400, /// InventoryEmpty = 0x00000800, /// JointHinge = 0x00001000, /// JointP2P = 0x00002000, /// JointLP2P = 0x00004000, /// Deprecated JointWheel = 0x00008000, /// AllowInventoryDrop = 0x00010000, /// ObjectTransfer = 0x00020000, /// ObjectGroupOwned = 0x00040000, /// Deprecated ObjectYouOfficer = 0x00080000, /// CameraDecoupled = 0x00100000, /// AnimSource = 0x00200000, /// CameraSource = 0x00400000, /// CastShadows = 0x00800000, /// Server flag, will not be sent to clients. Specifies that /// the object is destroyed when it touches a simulator edge DieAtEdge = 0x01000000, /// Server flag, will not be sent to clients. Specifies that /// the object will be returned to the owner's inventory when it /// touches a simulator edge ReturnAtEdge = 0x02000000, /// Server flag, will not be sent to clients. Sandbox = 0x04000000, /// Server flag, will not be sent to client. Specifies that /// the object is hovering/flying Flying = 0x08000000, /// ObjectOwnerModify = 0x10000000, /// TemporaryOnRez = 0x20000000, /// Temporary = 0x40000000, /// ZlibCompressed = 0x80000000 } /// /// Sound flags for sounds attached to primitives /// [Flags] public enum SoundFlags : byte { /// None = 0, /// Loop = 0x01, /// SyncMaster = 0x02, /// SyncSlave = 0x04, /// SyncPending = 0x08, /// Queue = 0x10, /// Stop = 0x20 } public enum ProfileCurve : byte { Circle = 0x00, Square = 0x01, IsoTriangle = 0x02, EqualTriangle = 0x03, RightTriangle = 0x04, HalfCircle = 0x05 } public enum HoleType : byte { Same = 0x00, Circle = 0x10, Square = 0x20, Triangle = 0x30 } public enum PathCurve : byte { Line = 0x10, Circle = 0x20, Circle2 = 0x30, Test = 0x40, Flexible = 0x80 } /// /// Material type for a primitive /// public enum Material : byte { /// Stone = 0, /// Metal, /// Glass, /// Wood, /// Flesh, /// Plastic, /// Rubber, /// Light } /// /// Used in a helper function to roughly determine prim shape /// public enum PrimType { Unknown, Box, Cylinder, Prism, Sphere, Torus, Tube, Ring, Sculpt, Mesh } /// /// Extra parameters for primitives, these flags are for features that have /// been added after the original ObjectFlags that has all eight bits /// reserved already /// [Flags] public enum ExtraParamType : ushort { /// Whether this object has flexible parameters Flexible = 0x10, /// Whether this object has light parameters Light = 0x20, /// Whether this object is a sculpted prim Sculpt = 0x30, /// Whether this object is a light image map LightImage = 0x40, /// Whether this object is a mesh Mesh = 0x60, } /// /// /// public enum JointType : byte { /// Invalid = 0, /// Hinge = 1, /// Point = 2, // //[Obsolete] //LPoint = 3, //[Obsolete] //Wheel = 4 } /// /// /// public enum SculptType : byte { /// None = 0, /// Sphere = 1, /// Torus = 2, /// Plane = 3, /// Cylinder = 4, /// Mesh = 5, /// Invert = 64, /// Mirror = 128 } /// /// /// public enum FaceType : ushort { /// PathBegin = 0x1 << 0, /// PathEnd = 0x1 << 1, /// InnerSide = 0x1 << 2, /// ProfileBegin = 0x1 << 3, /// ProfileEnd = 0x1 << 4, /// OuterSide0 = 0x1 << 5, /// OuterSide1 = 0x1 << 6, /// OuterSide2 = 0x1 << 7, /// OuterSide3 = 0x1 << 8 } /// /// /// public enum ObjectCategory { /// Invalid = -1, /// None = 0, /// Owner, /// Group, /// Other, /// Selected, /// Temporary } /// /// Attachment points for objects on avatar bodies /// /// /// Both InventoryObject and InventoryAttachment types can be attached /// public enum AttachmentPoint : byte { /// Right hand if object was not previously attached [EnumInfo(Text = "Default")] Default = 0, /// Chest [EnumInfo(Text = "Chest")] Chest = 1, /// Skull [EnumInfo(Text = "Head")] Skull, /// Left shoulder [EnumInfo(Text = "Left Shoulder")] LeftShoulder, /// Right shoulder [EnumInfo(Text = "Right Shoulder")] RightShoulder, /// Left hand [EnumInfo(Text = "Left Hand")] LeftHand, /// Right hand [EnumInfo(Text = "Right Hand")] RightHand, /// Left foot [EnumInfo(Text = "Left Foot")] LeftFoot, /// Right foot [EnumInfo(Text = "Right Foot")] RightFoot, /// Spine [EnumInfo(Text = "Back")] Spine, /// Pelvis [EnumInfo(Text = "Pelvis")] Pelvis, /// Mouth [EnumInfo(Text = "Mouth")] Mouth, /// Chin [EnumInfo(Text = "Chin")] Chin, /// Left ear [EnumInfo(Text = "Left Ear")] LeftEar, /// Right ear [EnumInfo(Text = "Right Ear")] RightEar, /// Left eyeball [EnumInfo(Text = "Left Eye")] LeftEyeball, /// Right eyeball [EnumInfo(Text = "Right Eye")] RightEyeball, /// Nose [EnumInfo(Text = "Nose")] Nose, /// Right upper arm [EnumInfo(Text = "Right Upper Arm")] RightUpperArm, /// Right forearm [EnumInfo(Text = "Right Lower Arm")] RightForearm, /// Left upper arm [EnumInfo(Text = "Left Upper Arm")] LeftUpperArm, /// Left forearm [EnumInfo(Text = "Left Lower Arm")] LeftForearm, /// Right hip [EnumInfo(Text = "Right Hip")] RightHip, /// Right upper leg [EnumInfo(Text = "Right Upper Leg")] RightUpperLeg, /// Right lower leg [EnumInfo(Text = "Right Lower Leg")] RightLowerLeg, /// Left hip [EnumInfo(Text = "Left Hip")] LeftHip, /// Left upper leg [EnumInfo(Text = "Left Upper Leg")] LeftUpperLeg, /// Left lower leg [EnumInfo(Text = "Left Lower Leg")] LeftLowerLeg, /// Stomach [EnumInfo(Text = "Belly")] Stomach, /// Left pectoral [EnumInfo(Text = "Left Pec")] LeftPec, /// Right pectoral [EnumInfo(Text = "Right Pec")] RightPec, /// HUD Center position 2 [EnumInfo(Text = "HUD Center 2")] HUDCenter2, /// HUD Top-right [EnumInfo(Text = "HUD Top Right")] HUDTopRight, /// HUD Top [EnumInfo(Text = "HUD Top Center")] HUDTop, /// HUD Top-left [EnumInfo(Text = "HUD Top Left")] HUDTopLeft, /// HUD Center [EnumInfo(Text = "HUD Center 1")] HUDCenter, /// HUD Bottom-left [EnumInfo(Text = "HUD Bottom Left")] HUDBottomLeft, /// HUD Bottom [EnumInfo(Text = "HUD Bottom")] HUDBottom, /// HUD Bottom-right [EnumInfo(Text = "HUD Bottom Right")] HUDBottomRight, /// Neck [EnumInfo(Text = "Neck")] Neck, /// Avatar Center [EnumInfo(Text = "Avatar Center")] Root, } /// /// Tree foliage types /// public enum Tree : byte { /// Pine1 tree Pine1 = 0, /// Oak tree Oak, /// Tropical Bush1 TropicalBush1, /// Palm1 tree Palm1, /// Dogwood tree Dogwood, /// Tropical Bush2 TropicalBush2, /// Palm2 tree Palm2, /// Cypress1 tree Cypress1, /// Cypress2 tree Cypress2, /// Pine2 tree Pine2, /// Plumeria Plumeria, /// Winter pinetree1 WinterPine1, /// Winter Aspen tree WinterAspen, /// Winter pinetree2 WinterPine2, /// Eucalyptus tree Eucalyptus, /// Fern Fern, /// Eelgrass Eelgrass, /// Sea Sword SeaSword, /// Kelp1 plant Kelp1, /// Beach grass BeachGrass1, /// Kelp2 plant Kelp2 } /// /// Grass foliage types /// public enum Grass : byte { /// Grass0 = 0, /// Grass1, /// Grass2, /// Grass3, /// Grass4, /// Undergrowth1 } /// /// Action associated with clicking on an object /// public enum ClickAction : byte { /// Touch object Touch = 0, /// Sit on object Sit = 1, /// Purchase object or contents Buy = 2, /// Pay the object Pay = 3, /// Open task inventory OpenTask = 4, /// Play parcel media PlayMedia = 5, /// Open parcel media OpenMedia = 6 } /// /// Type of physics representation used for this prim in the simulator /// public enum PhysicsShapeType : byte { /// Use prim physics form this object Prim = 0, /// No physics, prim doesn't collide None, /// Use convex hull represantion of this prim ConvexHull } }