Class: GLViewer::Camera

Inherits:
Object
  • Object
show all
Defined in:
lib/rglviewer/camera.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Camera

Returns a new instance of Camera.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rglviewer/camera.rb', line 15

def initialize args = {}
	@width         = args[:width]  || 640
	@height        = args[:height] || 480
	@scene_radius  = args[:scene_radius] || 1.0
	@scene_center  = args[:scene_center] || [0.0,0.0,0.0]
	@type          = args[:type] || :perspective
	@field_of_view = args[:field_of_view] || Math::PI / 4.0
	@z_clipping_coefficient = args[:z_clipping_coefficient] || Math.sqrt(3.0)
	@z_near_coefficient     = args[:z_near_corefficient] || 0.005
	#@frame                  = args[:frame]
	#unless @frame
	#	t = Vector.from_array [0.0, 0.0, 2 * @scene_radius]
	#	@frame.new :translation => t
	#end
end

Instance Attribute Details

#field_of_viewObject

Returns the value of attribute field_of_view.



13
14
15
# File 'lib/rglviewer/camera.rb', line 13

def field_of_view
  @field_of_view
end

#heightObject

Returns the value of attribute height.



12
13
14
# File 'lib/rglviewer/camera.rb', line 12

def height
  @height
end

#scene_centerObject

Returns the value of attribute scene_center.



13
14
15
# File 'lib/rglviewer/camera.rb', line 13

def scene_center
  @scene_center
end

#scene_radiusObject

Returns the value of attribute scene_radius.



13
14
15
# File 'lib/rglviewer/camera.rb', line 13

def scene_radius
  @scene_radius
end

#typeObject

Returns the value of attribute type.



13
14
15
# File 'lib/rglviewer/camera.rb', line 13

def type
  @type
end

#widthObject

Returns the value of attribute width.



12
13
14
# File 'lib/rglviewer/camera.rb', line 12

def width
  @width
end

Instance Method Details

#load_model_view_matrixObject



37
38
39
40
41
# File 'lib/rglviewer/camera.rb', line 37

def load_model_view_matrix
	glMatrixMode(GL_MODELVIEW)
	glLoadIdentity
	glTranslatef(0.0,0.0, -5.0 * @scene_radius)
end

#load_projection_matrixObject



31
32
33
34
35
# File 'lib/rglviewer/camera.rb', line 31

def load_projection_matrix
	glMatrixMode(GL_PROJECTION)
	glLoadIdentity
	method("load_" + @type.to_s).call
end