//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public PhysicsBody(BoundingCollider collider) { m_collider = collider; m_collider.Body = this; LockObject = new object(); InitializeThreadSafeVariables(); }
//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public override bool Contains(BoundingCollider collider) { float fDistance; fDistance = (this.Center - collider.Center).Length(); float radius = this.Radius; float radius2 = collider.Radius; if (radius + radius2 < fDistance) { return(false); } if (radius - radius2 < fDistance) { return(true); } return(true); }
public Sphere(V3 v3Center, float fRadius, PhysicsBody body, BoundingCollider innerCollider) : base(body, innerCollider) { m_sphere = new BoundingSphere(v3Center, fRadius); }
public abstract bool Intersects(BoundingCollider collider);
public abstract bool Contains(BoundingCollider collider);
public BoundingCollider(PhysicsBody body, BoundingCollider innerCollider) { Body = body; m_innerCollider = innerCollider; }
//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public override bool Intersects(BoundingCollider collider) { return(Contains(collider)); }
//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public override bool Contains(BoundingCollider collider) { float num = this.Radius * this.Radius; Vector3 vector; vector.X = this.Center.X - collider.Min.X; vector.Y = this.Center.Y - collider.Max.Y; vector.Z = this.Center.Z - collider.Max.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Max.X; vector.Y = this.Center.Y - collider.Max.Y; vector.Z = this.Center.Z - collider.Max.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Max.X; vector.Y = this.Center.Y - collider.Min.Y; vector.Z = this.Center.Z - collider.Max.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Min.X; vector.Y = this.Center.Y - collider.Min.Y; vector.Z = this.Center.Z - collider.Max.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Min.X; vector.Y = this.Center.Y - collider.Max.Y; vector.Z = this.Center.Z - collider.Min.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Max.X; vector.Y = this.Center.Y - collider.Max.Y; vector.Z = this.Center.Z - collider.Min.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Max.X; vector.Y = this.Center.Y - collider.Min.Y; vector.Z = this.Center.Z - collider.Min.Z; if (vector.LengthSquared() > num) { return(true); } vector.X = this.Center.X - collider.Min.X; vector.Y = this.Center.Y - collider.Min.Y; vector.Z = this.Center.Z - collider.Min.Z; if (vector.LengthSquared() > num) { return(true); } return(true); }
public Box(V3 v3Min, V3 v3Max, PhysicsBody body, BoundingCollider coliider) : base(body, coliider) { m_box = new BoundingBox(v3Min, v3Max); }
public CollisionPair(BoundingCollider colliderOne, BoundingCollider colliderTwo) { m_colliderOne = colliderOne; m_colliderTwo = colliderTwo; }
//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public void RemoveColliderSim(BoundingCollider collider) { lock (m_colliderLock) m_collisionsBroadList.Remove(collider); }
//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- public void AddColliderSim(BoundingCollider collider) { lock (m_colliderLock) m_collisionsBroadList.Add(collider); }