コード例 #1
0
        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);
        }
コード例 #2
0
 public RectangleRigidBody(float width, float height, float mass, float collisionPrecisionFactor, CollisionPrecisionType collisionPrecisionType)
 {
     _collisionPrecisionType = collisionPrecisionType;
     RectangleRigidBodyConstructor(width, height, mass, collisionPrecisionFactor, _collisionPrecisionType);
 }
コード例 #3
0
        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;
        }
コード例 #4
0
 public PolygonRigidBody(float mass, float momentOfInertia, Vertices vertices, float collisionPrecision, CollisionPrecisionType collisionPrecisionType)
     : base()
 {
     _collisionPrecisionType = collisionPrecisionType;
     PolygonRigidBodyConstructor(mass, momentOfInertia, vertices, _collisionPrecision, _collisionPrecisionType);
 }
コード例 #5
0
        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);
        }
コード例 #6
0
 public CircleRigidBody(float radius, int edgeCount, float mass, float collisionPrecision, CollisionPrecisionType collisionPrecisionType)
 {
     _collisionPrecisionType = collisionPrecisionType;
     CircleRigidBodyConstructor(radius, edgeCount, mass, collisionPrecision, _collisionPrecisionType);
 }