geo3d 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28094cb127ac5c0a2c4a01b210ad4d265205d109
4
- data.tar.gz: 5f787ed19f07201aed9d4dda6a1d4d4ac4918086
3
+ metadata.gz: 1dce039052c8be50a88c59d44885cc4673bb9995
4
+ data.tar.gz: 8c8e0c900000eff135456ec98ff9360d50d39c31
5
5
  SHA512:
6
- metadata.gz: 12af94d86202307720d2461f0d6ac5ada0185247f66149707595354b47d9618fc57144b831fe0af3b97dc190b5c0cca8cd1a16ad3c529d62f12526ec66f8d8e3
7
- data.tar.gz: 2dd6dc08fa562f43478f091e9cd0ff8774abd2a074120cc2b621a9df411e7c392e9a0bc52bc9f0096b3fd83beee7a059ced354d2c339be086fe96264d537dfc2
6
+ metadata.gz: ebf820b44fea39262570b2345e6cabc0ba21ce0bf2e0a7be420a4873afb850d76b30611a8ccee5ec8b05d8dac9428aa46e69fd8b784519ef80a0a89f7f1d314b
7
+ data.tar.gz: efc8897b94f0f45ae833ac230f86dcb6ad1ca83f7254b877fc04817ea27cac6b667c26e9cb82963c1da2631bcac93e2f8c09b0243c54e61c61581cfdbfdd6c3a
data/README.md CHANGED
@@ -219,6 +219,10 @@ Normalize
219
219
  plane.normalize #returns a normalized version of the plane
220
220
  plane.normalize! #normalizes the plane in place
221
221
  ```
222
+ Normal
223
+ ```
224
+ plane.normal #returns the normal of the plane
225
+ ```
222
226
  Line intersection
223
227
  ```
224
228
  plane.line_intersection line_start, line_end #returns the intersection of the line onto the plane
@@ -312,8 +316,27 @@ Constructors
312
316
  Geo3d::Triangle.from_axis rotation_axis, radians #returns a quaternion from an axis and angle
313
317
  Geo3d::Quaternion.from_matrix m #returns a quaternion from a rotation matrix
314
318
  Geo3d::Quaternion.identity #returns the identity quaternion
315
-
316
319
  ```
320
+ Normal
321
+ ```
322
+ triangle.normal #returns the normal of the plane
323
+ ```
324
+ Winding
325
+ ```
326
+ triangle.clockwise? #is the triangle winded clockwise?
327
+ triangle.counter_clockwise? #is the triangle winded counter clockwise?
328
+ ```
329
+ Flipping
330
+ ```
331
+ triangle.flip #returns a flipped version of the triangle (reverses the winding)
332
+ triangle.flip! #flips the triangle in place
333
+ ```
334
+ signed area
335
+ ```
336
+ triangle.signed_area
337
+ ```
338
+
339
+
317
340
 
318
341
 
319
342
 
data/geo3d.gemspec CHANGED
@@ -21,6 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
- spec.add_development_dependency "misha-ruby-sdl-ffi"
25
24
  spec.add_development_dependency "ruby-opengl"
26
25
  end
data/lib/geo3d/matrix.rb CHANGED
@@ -455,21 +455,21 @@ module Geo3d
455
455
  self.gl_frustum -range*aspect, range*aspect, -range, range, zn, zf
456
456
  end
457
457
 
458
- def self.gl_frustum l, r, b, t, zn, zf
458
+ def self.gl_frustum l, r, bottom, t, zn, zf
459
459
  l = l.to_f
460
460
  r = r.to_f
461
- b = b.to_f
461
+ bottom = bottom.to_f
462
462
  t = t.to_f
463
463
  zn = zn.to_f
464
464
  zf = zf.to_f
465
465
  a = (r+l) / (r-l)
466
- b = (t+b) / (t-b)
466
+ b = (t+bottom) / (t-bottom)
467
467
  c = -(zf + zn) / (zf - zn)
468
468
  d = -(2 * zf * zn) / (zf - zn)
469
469
  matrix = self.new
470
470
  matrix._11 = 2.0 * zn / (r-l)
471
471
  matrix._31 = a
472
- matrix._22 = zn / (t-b) #todo: the man page says multiply this by two, but I don't actually match what glFrustum does if I do
472
+ matrix._22 = 2.0 * zn / (t-bottom)
473
473
  matrix._32 = b
474
474
  matrix._33 = c
475
475
  matrix._43 = d
@@ -478,7 +478,6 @@ module Geo3d
478
478
  end
479
479
 
480
480
 
481
-
482
481
  def self.perspective_fov_rh fovy, aspect, zn, zf
483
482
  fovy = fovy.to_f
484
483
  aspect = aspect.to_f
@@ -26,37 +26,6 @@ module Geo3d
26
26
  (b - a).cross(c - a).normalize
27
27
  end
28
28
 
29
- =begin this needs to be done at a mesh level
30
- def tangent_and_bitangent
31
- return [nil, nil] unless @a.kind_of?(TexturedVertex) && @b.kind_of?(TexturedVertex) && @c.kind_of?(TexturedVertex)
32
-
33
- v1 = @a
34
- v2 = @b
35
- v3 = @c
36
-
37
- w1 = @a.texcoord
38
- w2 = @b.texcoord
39
- w3 = @c.texcoord
40
-
41
- x1 = v2.x - v1.x
42
- x2 = v3.x - v1.x
43
- y1 = v2.y - v1.y
44
- y2 = v3.y - v1.y
45
- z1 = v2.z - v1.z
46
- z2 = v3.z - v1.z
47
-
48
- s1 = w2.x - w1.x
49
- s2 = w3.x - w1.x
50
- t1 = w2.y - w1.y
51
- t2 = w3.y - w1.y
52
-
53
- r = 1.0 / (s1 * t2 - s2 * t1)
54
- tangent += Geo3d::Vector.new (t2 * x1 - t1 * x2) * r, (t2 * y1 - t1 * y2) * r, (t2 * z1 - t1 * z2) * r
55
- bitangent += Geo3d::Vector.new (s1 * x2 - s2 * x1) * r, (s1 * y2 - s2 * y1) * r, (s1 * z2 - s2 * z1) * r
56
-
57
- end
58
- =end
59
-
60
29
  def signed_area reference_normal = Vector.new(0,0,-1)
61
30
  sum = Vector.new 0, 0, 0, 0
62
31
  points.each_with_index do |current_point, i|
data/lib/geo3d/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Geo3d
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -3,9 +3,17 @@ require 'spec_helper'
3
3
  describe Geo3d::Matrix do
4
4
  before :each do
5
5
  @gl_initialized = false
6
- require "ruby-sdl-ffi"
6
+ #require "ruby-sdl-ffi"
7
7
  require "opengl"
8
+ include Gl,Glu,Glut
8
9
 
10
+ glutInit
11
+ glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
12
+ glutInitWindowSize(500, 500)
13
+ glutInitWindowPosition(100, 100)
14
+ glutCreateWindow('test')
15
+
16
+ =begin
9
17
  if SDL.Init(SDL::INIT_VIDEO) < 0
10
18
  puts "not able to init"
11
19
  else
@@ -22,7 +30,8 @@ describe Geo3d::Matrix do
22
30
  @gl_initialized = true
23
31
  end
24
32
  end
25
- raise "opengl not able to initialize" unless @gl_initialized
33
+ =end
34
+ # raise "opengl not able to initialize" unless @gl_initialized
26
35
  end
27
36
 
28
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo3d
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Misha Conway
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-23 00:00:00.000000000 Z
11
+ date: 2014-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: misha-ruby-sdl-ffi
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: ruby-opengl
71
57
  requirement: !ruby/object:Gem::Requirement