Пример #1
0
        /// <summary>
        /// Single Primitive Constructor with predefined MaterialProperty
        /// </summary>
        /// <param name="position">Initial Body Position</param>
        /// <param name="scale">Scale</param>
        /// <param name="primative">Primitive to add to Skin</param>
        /// <param name="propId">Predefined Material Properties of Primitive</param>
        public Gobject(Vector3 position, Vector3 scale, Primitive primative, MaterialTable.MaterialID propId, Model model)
            : this()
        {
            Skin.AddPrimitive(primative, (int)propId);

            CommonInit(position, scale, model, true);
        }
Пример #2
0
        /// <summary>
        /// Single Primitive Constructor with custom MaterialProperty
        /// </summary>
        /// <param name="position">Initial Body Position</param>
        /// <param name="scale">Scale</param>
        /// <param name="primative">Primitive to add to Skin</param>
        /// <param name="prop">Material Properties of Primitive</param>
        public Gobject(Vector3 position, Vector3 scale, Primitive primative, MaterialProperties prop, Model model)
            : this()
        {
            Skin.AddPrimitive(primative, prop);

            CommonInit(position, scale, model, true);
        }
Пример #3
0
        public LunarVehicle(Vector3 position, Vector3 scale, Primitive primitive, Model model)
            : base(position, scale, primitive, model, true)
        {
            VertJet = new BoostController(Body, Vector3.Up, Vector3.Zero);
            RotJetX = new BoostController(Body, Vector3.Zero, Vector3.UnitZ);
            RotJetZ = new BoostController(Body, Vector3.Zero, Vector3.UnitX);
            RotJetY = new BoostController(Body, Vector3.Zero, Vector3.UnitY);

            PhysicsSystem.CurrentPhysicsSystem.AddController(VertJet);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetX);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetZ);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetY);
        }
Пример #4
0
 public Gobject(Vector3 position, Vector3 scale, Primitive primitive, Model model, bool moveable)
     : this()
 {
     try
     {
         Skin.AddPrimitive(primitive, (int)MaterialTable.MaterialID.NotBouncyNormal);
         //CollisionSkin collision = new CollisionSkin(null);
         //Skin.AddPrimitive(primitive, 2);
         CommonInit(position, scale, model, moveable);
         //Body.CollisionSkin = collision;
     }
     catch (Exception E)
     {
     }
 }
Пример #5
0
        public LunarVehicle(Vector3 position, Vector3 scale, Primitive primitive, Model model, string asset)
            : base(position, scale, primitive, model, true, asset)
        {
            VertJet = new BoostController(Body, Vector3.Up, Vector3.Zero);
            RotJetX = new BoostController(Body, Vector3.Zero, Vector3.UnitZ);
            RotJetZ = new BoostController(Body, Vector3.Zero, Vector3.UnitX);
            RotJetY = new BoostController(Body, Vector3.Zero, Vector3.UnitY);

            PhysicsSystem.CurrentPhysicsSystem.AddController(VertJet);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetX);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetZ);
            PhysicsSystem.CurrentPhysicsSystem.AddController(RotJetY);

            //actionManager.AddBinding(Actions.
        }
Пример #6
0
        /// <summary>
        /// Adds a primitive to this collision skin - the primitive is
        /// copied (so you can pass in something on the stack, or delete
        /// the original) - perhaps using reference counting.  Returns the
        /// primitive index, or -1 if failure Also takes that material ID
        /// and the properties used when a collision ID is USER_DEFINED
        /// </summary>
        /// <param name="prim"></param>
        /// <param name="matID"></param>
        /// <param name="matProps"></param>
        /// <returns>int</returns>
        private int AddPrimitive(Primitive prim, int matID, MaterialProperties matProps)
        {
            Primitive newPrim = prim.Clone();

            if (newPrim == null)
                throw new ArgumentException("Not able to clone primitive!");

            materialIDs.Add(matID);
            materialProperties.Add(matProps);

            primitivesOldWorld.Add(prim.Clone());
            primitivesNewWorld.Add(prim.Clone());
            primitivesLocal.Add(newPrim);

            UpdateWorldBoundingBox();

            return materialIDs.Count - 1;
        }
Пример #7
0
 /// <summary>
 /// Adds a Primitive
 /// </summary>
 /// <param name="prim"></param>
 /// <param name="matProps"></param>
 /// <returns>int</returns>
 public int AddPrimitive(Primitive prim, MaterialProperties matProps)
 {
     return AddPrimitive(prim, (int)MaterialTable.MaterialID.UserDefined, matProps);
 }
Пример #8
0
        /// <summary>
        /// Adds a Primitive
        /// </summary>
        /// <param name="prim"></param>
        /// <param name="matID"></param>
        /// <returns>int</returns>
        public int AddPrimitive(Primitive prim, int matID)
        {
            if (matID == (int)MaterialTable.MaterialID.UserDefined)
                throw new ArgumentException("matID can't be set to 'UserDefined'");

            return AddPrimitive(prim, matID, MaterialProperties.Unset);
        }
Пример #9
0
        /// <summary>
        /// Adds a primitive to this collision skin - the primitive is
        /// copied (so you can pass in something on the stack, or delete
        /// the original) - perhaps using reference counting.  Returns the
        /// primitive index, or -1 if failure Also takes that material ID
        /// and the properties used when a collision ID is USER_DEFINED
        /// </summary>
        /// <param name="prim"></param>
        /// <param name="matID"></param>
        /// <param name="matProps"></param>
        /// <returns></returns>
        public int AddPrimitive(Primitive prim, int matID, MaterialProperties matProps)
        {
            Primitive newPrim = prim.Clone();

            if (newPrim == null)
            {
                System.Diagnostics.Debug.WriteLine("CollisionSkin.AddPrimitive Unable to clone primitive");
                return -1;
            }

            primitivesOldWorld.Add(prim.Clone());
            primitivesNewWorld.Add(prim.Clone());
            primitivesLocal.Add(newPrim);

            materialIDs.Add(matID);
            materialProperties.Add(matProps);

            UpdateWorldBoundingBox();

            return materialIDs.Count - 1;
        }
Пример #10
0
 public Gobject(Vector3 position, Vector3 scale, Primitive primitive, Model model, bool moveable, int asset)
     : this()
 {
     try
     {
         Skin.AddPrimitive(primitive, (int)MaterialTable.MaterialID.NotBouncyNormal);
         //CollisionSkin collision = new CollisionSkin(null);
         //Skin.AddPrimitive(primitive, 2);
         CommonInit(position, scale, model, moveable, asset);
         //Body.CollisionSkin = collision;
     }
     catch (Exception E)
     {
         System.Diagnostics.Debug.WriteLine(E.StackTrace);
     }
 }
Пример #11
0
 public Aircraft(Vector3 position, Vector3 scale, Primitive primitive, Model model, int asset)
     : base(position, scale, primitive, model, true, asset)
 {
     Initialize();
 }
Пример #12
0
 /// <summary>
 /// AddPrimitive
 /// </summary>
 /// <param name="prim"></param>
 /// <param name="bb"></param>
 public static void AddPrimitive(Primitive prim, ref BoundingBox bb)
 {
     switch ((PrimitiveType)prim.Type)
     {
         case PrimitiveType.Box:
             AddBox((Box)prim, ref bb);
             break;
         case PrimitiveType.Sphere:
             AddSphere((Sphere)prim, ref bb);
             break;
         case PrimitiveType.Capsule:
             AddCapsule((Capsule)prim, ref bb);
             break;
         default:
             AddAABox(prim.GetBoundingBox(), ref bb);
             break;
     }
 }
 //Adds a primitive to this zone. Notice that material properties are irrelevant since the zone will generate any forces on the intersecting body.
 public void AddPrimitive(Primitive primitive)
 {
     this.collision.AddPrimitive(primitive, (int)MaterialTable.MaterialID.NormalNormal);
 }
 public void AddPrimitive(Primitive primitive, MaterialProperties materialProperties)
 {
     this.collision.AddPrimitive(primitive, materialProperties);
 }
Пример #15
0
        public void SetPrimitive(Primitive primitive, Vector3 position, Matrix orientation)
        {
            this.collisionSkin = new CollisionSkin(this.Body);

            MaterialProperties materialProp = new MaterialProperties(
                elasticity, staticRoughness, dynamicRoughness);

            CollisionSkin.AddPrimitive(primitive, materialProp);

            SetupProperty(position, orientation);
        }
Пример #16
0
        public void AddPhysicsPrimitive(Primitive geom, MaterialProperties properties)
        {
            m_skin.AddPrimitive(geom, properties);

            ResetSkinAndMass();
        }