/// <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); }
/// <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); }
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); }
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) { } }
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. }
/// <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; }
/// <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); }
/// <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); }
/// <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; }
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); } }
public Aircraft(Vector3 position, Vector3 scale, Primitive primitive, Model model, int asset) : base(position, scale, primitive, model, true, asset) { Initialize(); }
/// <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); }
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); }
public void AddPhysicsPrimitive(Primitive geom, MaterialProperties properties) { m_skin.AddPrimitive(geom, properties); ResetSkinAndMass(); }