Sha256: 1ee3ba401a960903b17165e9ae1e07c21996a513920578361d67985a55f5cba4
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
describe Joybox::Physics::Shape do before do @world = World.new gravity: [0, -9.8] @body = @world.new_body position: [100, 100], type: Body::Dynamic do circle_fixture radius: 60, density: 1.0, friction: 1.0, restitution: 1.0 end @shape = @body.fixtures[0].shape end it "should have radius" do @shape.radius.should == 60 end it "should know if contains a point" do @shape.contains_point?([0, 0]).should == true @shape.contains_point?([30, 30]).should == true @shape.contains_point?([61, 61]).should == false end it "should ray cast the shape" do ray_cast_notified = false @shape.ray_cast first_point:[60, 60], second_point:[1, 1], maximum_fraction: 20, child_index: 0 do |hits, normal, fraction| ray_cast_notified = true hits.should == true normal.should.be.close CGPointMake(22.62, 22.62), 0.01 end ray_cast_notified.should == true end it "should compute its aabb" do aabb = @shape.compute_aabb child_index: 0 aabb.lower_bound.should == CGPointMake(-60, -60) aabb.upper_bound.should == CGPointMake(60, 60) end it "should compute its mass" do mass_data = @shape.compute_mass density: 1 mass_data.mass.should.be.close 11.044, 0.01 mass_data.center.should == CGPointMake(0, 0) mass_data.rotational_inertia.should.be.close 19.414, 0.01 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
joybox-1.1.1 | spec/motion/joybox/physics/shape_spec.rb |
joybox-1.1.0 | spec/motion/joybox/physics/shape_spec.rb |