private void RectangleRigidBodyConstructor(float width, float height, float mass, float collisionPrecisionFactor, CollisionPrecisionType collisionPrecisionType) { _collisionPrecision = collisionPrecisionFactor; float momentOfInertia = mass * (width * width + height * height) / 12; Vertices vertices = Vertices.CreateRectangle(width, height); base.PolygonRigidBodyConstructor(mass, momentOfInertia, vertices, _collisionPrecision, _collisionPrecisionType); }
public RectangleRigidBody(float width, float height, float mass, float collisionPrecisionFactor, CollisionPrecisionType collisionPrecisionType) { _collisionPrecisionType = collisionPrecisionType; RectangleRigidBodyConstructor(width, height, mass, collisionPrecisionFactor, _collisionPrecisionType); }
protected void PolygonRigidBodyConstructor(float mass, float?momentOfInertia, Vertices vertices, float collisionPrecision, CollisionPrecisionType collisionPrecisionType) { _collisionPrecision = collisionPrecision; SetGeometry(vertices); SetGrid(); //if moment of inertia is not provided, estimate it by computing the moment of inertia for the AABB if (momentOfInertia == null) { momentOfInertia = mass * (Geometry.AABB.Width * Geometry.AABB.Width + Geometry.AABB.Height * Geometry.AABB.Height) / 12; } Mass = mass; MomentOfInertia = (float)momentOfInertia; }
public PolygonRigidBody(float mass, float momentOfInertia, Vertices vertices, float collisionPrecision, CollisionPrecisionType collisionPrecisionType) : base() { _collisionPrecisionType = collisionPrecisionType; PolygonRigidBodyConstructor(mass, momentOfInertia, vertices, _collisionPrecision, _collisionPrecisionType); }
private void CircleRigidBodyConstructor(float radius, int edgeCount, float mass, float collisionPrecision, CollisionPrecisionType collisionPrecisionType) { _collisionPrecision = collisionPrecision; float momentOfInertia = .5f * Mass * radius * radius; Vertices vertices = Vertices.CreateCircle(radius, edgeCount); base.PolygonRigidBodyConstructor(mass, momentOfInertia, vertices, _collisionPrecision, _collisionPrecisionType); }
public CircleRigidBody(float radius, int edgeCount, float mass, float collisionPrecision, CollisionPrecisionType collisionPrecisionType) { _collisionPrecisionType = collisionPrecisionType; CircleRigidBodyConstructor(radius, edgeCount, mass, collisionPrecision, _collisionPrecisionType); }