bulldog_physics 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,9 +7,7 @@ module BulldogPhysics
7
7
 
8
8
  ## create Vertex, defaults all to zero
9
9
  def initialize(x = 0,y = 0,z = 0)
10
- @x = x
11
- @y = y
12
- @z = z
10
+ @x, @y, @z = x, y, z
13
11
  end
14
12
 
15
13
  ## flip the components
@@ -21,9 +19,9 @@ module BulldogPhysics
21
19
 
22
20
  ## Gets the magnitude of this vector.
23
21
  def magnitude
24
- num = (@x*@x) + (@y * @y) + (@z * @z)
22
+ num = ((@x*@x) + (@y * @y) + (@z * @z)).abs
25
23
  #return 0 if num.nan?
26
- Math.sqrt((@x*@x)+(@y*@y)+(@z*@z))
24
+ Math.sqrt(num)
27
25
  end
28
26
 
29
27
 
@@ -35,9 +33,9 @@ module BulldogPhysics
35
33
  def normalize
36
34
  length = self.magnitude
37
35
  if length > 0
38
- @x *= 1.0/length
39
- @y *= 1.0/length
40
- @z *= 1.0/length
36
+ @x *= (1.0/length)
37
+ @y *= (1.0/length)
38
+ @z *= (1.0/length)
41
39
  end
42
40
  end
43
41
 
@@ -46,10 +44,7 @@ module BulldogPhysics
46
44
  length = self.magnitude
47
45
  if length > 0
48
46
  x = @x * (1.0 / length)
49
- #x = @x / length
50
47
  y = @y * (1.0 / length)
51
- #y = @y / length
52
- #z = @z / length
53
48
  z = @z * (1.0 / length)
54
49
  return Vector3.new(x,y,z)
55
50
  else
@@ -93,9 +88,9 @@ module BulldogPhysics
93
88
 
94
89
  def *(scalar)
95
90
  if scalar.kind_of? Numeric
96
- Vector3.new(@x*scalar, @y*scalar, @z*scalar)
91
+ return Vector3.new(@x*scalar, @y*scalar, @z*scalar)
97
92
  elsif scalar.kind_of? Vector3
98
- return @x * scalar.x + @y * scalar.y + @z * scalar.z
93
+ return (@x * scalar.x) + (@y * scalar.y) + (@z * scalar.z)
99
94
  end
100
95
  end
101
96
 
metadata CHANGED
@@ -1,128 +1,91 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bulldog_physics
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Conner Wingard
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-04-26 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- type: :runtime
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 0
30
- version: "0"
31
- version_requirements: *id001
12
+ date: 2012-04-27 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
32
15
  name: require_all
33
- prerelease: false
34
- - !ruby/object:Gem::Dependency
35
- type: :development
36
- requirement: &id002 !ruby/object:Gem::Requirement
16
+ requirement: &70202348671780 !ruby/object:Gem::Requirement
37
17
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- hash: 3
42
- segments:
43
- - 0
44
- version: "0"
45
- version_requirements: *id002
46
- name: shoulda
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
47
23
  prerelease: false
48
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70202348671780
25
+ - !ruby/object:Gem::Dependency
26
+ name: shoulda
27
+ requirement: &70202348671160 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
49
33
  type: :development
50
- requirement: &id003 !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ version_requirements: *70202348671160
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &70202348670400 !ruby/object:Gem::Requirement
51
39
  none: false
52
- requirements:
40
+ requirements:
53
41
  - - ~>
54
- - !ruby/object:Gem::Version
55
- hash: 23
56
- segments:
57
- - 1
58
- - 0
59
- - 0
42
+ - !ruby/object:Gem::Version
60
43
  version: 1.0.0
61
- version_requirements: *id003
62
- name: bundler
63
- prerelease: false
64
- - !ruby/object:Gem::Dependency
65
44
  type: :development
66
- requirement: &id004 !ruby/object:Gem::Requirement
45
+ prerelease: false
46
+ version_requirements: *70202348670400
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &70202348669340 !ruby/object:Gem::Requirement
67
50
  none: false
68
- requirements:
51
+ requirements:
69
52
  - - ~>
70
- - !ruby/object:Gem::Version
71
- hash: 7
72
- segments:
73
- - 1
74
- - 6
75
- - 4
53
+ - !ruby/object:Gem::Version
76
54
  version: 1.6.4
77
- version_requirements: *id004
78
- name: jeweler
79
- prerelease: false
80
- - !ruby/object:Gem::Dependency
81
55
  type: :development
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
91
- version_requirements: *id005
92
- name: rcov
93
56
  prerelease: false
94
- - !ruby/object:Gem::Dependency
95
- type: :runtime
96
- requirement: &id006 !ruby/object:Gem::Requirement
57
+ version_requirements: *70202348669340
58
+ - !ruby/object:Gem::Dependency
59
+ name: rcov
60
+ requirement: &70202348668740 !ruby/object:Gem::Requirement
97
61
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- version_requirements: *id006
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70202348668740
69
+ - !ruby/object:Gem::Dependency
106
70
  name: require_all
71
+ requirement: &70202348663260 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
107
78
  prerelease: false
108
- description: 3D Physics Engine written in pure ruby that can be used for creating 3d simulations or games
79
+ version_requirements: *70202348663260
80
+ description: 3D Physics Engine written in pure ruby that can be used for creating
81
+ 3d simulations or games
109
82
  email: conner.wingard@gmail.com
110
83
  executables: []
111
-
112
84
  extensions: []
113
-
114
- extra_rdoc_files:
115
- - LICENSE.txt
116
- - README.rdoc
117
- files:
118
- - .document
119
- - Gemfile
120
- - Gemfile.lock
85
+ extra_rdoc_files:
121
86
  - LICENSE.txt
122
87
  - README.rdoc
123
- - Rakefile
124
- - VERSION
125
- - bulldog_physics.gemspec
88
+ files:
126
89
  - lib/Particles/particle.rb
127
90
  - lib/Particles/particle_anchored_spring.rb
128
91
  - lib/Particles/particle_cable.rb
@@ -141,50 +104,59 @@ files:
141
104
  - lib/Particles/particle_spring.rb
142
105
  - lib/Particles/particle_world.rb
143
106
  - lib/Particles/projectile.rb
107
+ - lib/RigidBodies/Gravity.rb
108
+ - lib/RigidBodies/buoyancy.rb
109
+ - lib/RigidBodies/collision_shapes.rb
110
+ - lib/RigidBodies/contact.rb
111
+ - lib/RigidBodies/contact_generator.rb
112
+ - lib/RigidBodies/contact_resolver.rb
113
+ - lib/RigidBodies/force_generator.rb
114
+ - lib/RigidBodies/force_registration.rb
115
+ - lib/RigidBodies/force_registry.rb
116
+ - lib/RigidBodies/joint.rb
117
+ - lib/RigidBodies/rigid_body.rb
118
+ - lib/RigidBodies/rigid_collisions.rb
119
+ - lib/RigidBodies/spring.rb
120
+ - lib/RigidBodies/world.rb
144
121
  - lib/bulldog_physics.rb
145
122
  - lib/examples/GlStuff/gl_utility.rb
146
123
  - lib/examples/GlStuff/lighting.rb
147
124
  - lib/examples/GlStuff/material.rb
148
125
  - lib/examples/GlStuff/terrain.rb
126
+ - lib/examples/buoyancy_game.rb
149
127
  - lib/examples/simple_game.rb
150
128
  - lib/matrix3.rb
151
129
  - lib/matrix4.rb
152
130
  - lib/quaternion.rb
153
131
  - lib/vector3.rb
154
- - test/helper.rb
155
- - test/test_bulldog_physics.rb
132
+ - LICENSE.txt
133
+ - README.rdoc
156
134
  homepage: http://github.com/ConnerMan/bulldog_physics
157
- licenses:
135
+ licenses:
158
136
  - MIT
159
137
  post_install_message:
160
138
  rdoc_options: []
161
-
162
- require_paths:
139
+ require_paths:
163
140
  - lib
164
- required_ruby_version: !ruby/object:Gem::Requirement
141
+ required_ruby_version: !ruby/object:Gem::Requirement
165
142
  none: false
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- hash: 3
170
- segments:
143
+ requirements:
144
+ - - ! '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ segments:
171
148
  - 0
172
- version: "0"
173
- required_rubygems_version: !ruby/object:Gem::Requirement
149
+ hash: -1539489167455019985
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
151
  none: false
175
- requirements:
176
- - - ">="
177
- - !ruby/object:Gem::Version
178
- hash: 3
179
- segments:
180
- - 0
181
- version: "0"
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
182
156
  requirements: []
183
-
184
157
  rubyforge_project:
185
- rubygems_version: 1.8.13
158
+ rubygems_version: 1.8.10
186
159
  signing_key:
187
160
  specification_version: 3
188
161
  summary: A 3D Physics Engine in Ruby
189
162
  test_files: []
190
-
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
- gem 'require_all'
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "shoulda", ">= 0"
10
- gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.6.4"
12
- gem "rcov", ">= 0"
13
- end
@@ -1,22 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- git (1.2.5)
5
- jeweler (1.6.4)
6
- bundler (~> 1.0)
7
- git (>= 1.2.5)
8
- rake
9
- rake (0.9.2.2)
10
- rcov (0.9.11)
11
- require_all (1.2.1)
12
- shoulda (2.11.3)
13
-
14
- PLATFORMS
15
- ruby
16
-
17
- DEPENDENCIES
18
- bundler (~> 1.0.0)
19
- jeweler (~> 1.6.4)
20
- rcov
21
- require_all
22
- shoulda
data/Rakefile DELETED
@@ -1,55 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "bulldog_physics"
18
- gem.homepage = "http://github.com/ConnerMan/bulldog_physics"
19
- gem.license = "MIT"
20
- gem.summary = %Q{A 3D Physics Engine in Ruby}
21
- gem.description = %Q{3D Physics Engine written in pure ruby that can be used for creating 3d simulations or games}
22
- gem.email = "conner.wingard@gmail.com"
23
- gem.authors = ["Conner Wingard"]
24
- gem.add_dependency 'require_all'
25
-
26
- # dependencies defined in Gemfile
27
- end
28
- Jeweler::RubygemsDotOrgTasks.new
29
-
30
- require 'rake/testtask'
31
- Rake::TestTask.new(:test) do |test|
32
- test.libs << 'lib' << 'test'
33
- test.pattern = 'test/**/test_*.rb'
34
- test.verbose = true
35
- end
36
-
37
- require 'rcov/rcovtask'
38
- Rcov::RcovTask.new do |test|
39
- test.libs << 'test'
40
- test.pattern = 'test/**/test_*.rb'
41
- test.verbose = true
42
- test.rcov_opts << '--exclude "gems/*"'
43
- end
44
-
45
- task :default => :test
46
-
47
- require 'rake/rdoctask'
48
- Rake::RDocTask.new do |rdoc|
49
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
50
-
51
- rdoc.rdoc_dir = 'rdoc'
52
- rdoc.title = "bulldog_physics #{version}"
53
- rdoc.rdoc_files.include('README*')
54
- rdoc.rdoc_files.include('lib/**/*.rb')
55
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.1
@@ -1,92 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "bulldog_physics"
8
- s.version = "0.1.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Conner Wingard"]
12
- s.date = "2012-04-26"
13
- s.description = "3D Physics Engine written in pure ruby that can be used for creating 3d simulations or games"
14
- s.email = "conner.wingard@gmail.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- "Gemfile",
22
- "Gemfile.lock",
23
- "LICENSE.txt",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION",
27
- "bulldog_physics.gemspec",
28
- "lib/Particles/particle.rb",
29
- "lib/Particles/particle_anchored_spring.rb",
30
- "lib/Particles/particle_cable.rb",
31
- "lib/Particles/particle_contact.rb",
32
- "lib/Particles/particle_contact_generator.rb",
33
- "lib/Particles/particle_contact_resolver.rb",
34
- "lib/Particles/particle_drag.rb",
35
- "lib/Particles/particle_force_generator.rb",
36
- "lib/Particles/particle_force_registration.rb",
37
- "lib/Particles/particle_force_registry.rb",
38
- "lib/Particles/particle_gravity.rb",
39
- "lib/Particles/particle_ground_contacts.rb",
40
- "lib/Particles/particle_link.rb",
41
- "lib/Particles/particle_particle_contacts.rb",
42
- "lib/Particles/particle_rod.rb",
43
- "lib/Particles/particle_spring.rb",
44
- "lib/Particles/particle_world.rb",
45
- "lib/Particles/projectile.rb",
46
- "lib/bulldog_physics.rb",
47
- "lib/examples/GlStuff/gl_utility.rb",
48
- "lib/examples/GlStuff/lighting.rb",
49
- "lib/examples/GlStuff/material.rb",
50
- "lib/examples/GlStuff/terrain.rb",
51
- "lib/examples/simple_game.rb",
52
- "lib/matrix3.rb",
53
- "lib/matrix4.rb",
54
- "lib/quaternion.rb",
55
- "lib/vector3.rb",
56
- "test/helper.rb",
57
- "test/test_bulldog_physics.rb"
58
- ]
59
- s.homepage = "http://github.com/ConnerMan/bulldog_physics"
60
- s.licenses = ["MIT"]
61
- s.require_paths = ["lib"]
62
- s.rubygems_version = "1.8.13"
63
- s.summary = "A 3D Physics Engine in Ruby"
64
-
65
- if s.respond_to? :specification_version then
66
- s.specification_version = 3
67
-
68
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
69
- s.add_runtime_dependency(%q<require_all>, [">= 0"])
70
- s.add_development_dependency(%q<shoulda>, [">= 0"])
71
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
72
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
73
- s.add_development_dependency(%q<rcov>, [">= 0"])
74
- s.add_runtime_dependency(%q<require_all>, [">= 0"])
75
- else
76
- s.add_dependency(%q<require_all>, [">= 0"])
77
- s.add_dependency(%q<shoulda>, [">= 0"])
78
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
79
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
80
- s.add_dependency(%q<rcov>, [">= 0"])
81
- s.add_dependency(%q<require_all>, [">= 0"])
82
- end
83
- else
84
- s.add_dependency(%q<require_all>, [">= 0"])
85
- s.add_dependency(%q<shoulda>, [">= 0"])
86
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
87
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
88
- s.add_dependency(%q<rcov>, [">= 0"])
89
- s.add_dependency(%q<require_all>, [">= 0"])
90
- end
91
- end
92
-