cosmos 4.2.2-java → 4.2.3-java

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.
@@ -209,31 +209,32 @@ module Cosmos
209
209
  pickh = @wvt.h / h.to_f
210
210
 
211
211
  # Set pick projection matrix
212
- GL.MatrixMode(GL::PROJECTION);
213
- GL.LoadIdentity()
214
- GL.Translatef(pickx, picky, 0.0)
215
- GL.Scalef(pickw, pickh, 1.0)
212
+ glMatrixMode(OpenGL::GL_PROJECTION)
213
+ glLoadIdentity()
214
+ glTranslatef(pickx, picky, 0.0)
215
+ glScalef(pickw, pickh, 1.0)
216
216
  case projection
217
217
  when :PARALLEL
218
- GL.Ortho(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
218
+ glOrtho(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
219
219
  when :PERSPECTIVE
220
- GL.Frustum(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
220
+ glFrustum(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
221
221
  end
222
222
 
223
223
  # Model matrix
224
- GL.MatrixMode(GL::MODELVIEW);
225
- GL.LoadMatrixf(@transform)
224
+ glMatrixMode(OpenGL::GL_MODELVIEW)
225
+ glLoadMatrixf(@transform.to_a.flatten.pack('F*'))
226
226
 
227
227
  # Loop until room enough to fit
228
228
  while true
229
229
  nhits = 0
230
- buffer = GL.SelectBuffer(mh)
231
- GL.RenderMode(GL::SELECT);
232
- GL.InitNames()
233
- GL.PushName(0)
230
+ buffer = ' ' * mh
231
+ glSelectBuffer(mh, buffer)
232
+ glRenderMode(OpenGL::GL_SELECT)
233
+ glInitNames()
234
+ glPushName(0)
234
235
  @scene.hit(self) if @scene
235
- GL.PopName()
236
- nhits = GL.RenderMode(GL::RENDER)
236
+ glPopName()
237
+ nhits = glRenderMode(OpenGL::GL_RENDER)
237
238
  mh <<= 1
238
239
  break if nhits >= 0
239
240
  end
@@ -273,111 +274,109 @@ module Cosmos
273
274
  end
274
275
 
275
276
  def initializeGL
276
- GL.GetError()
277
-
278
277
  # Initialize GL context
279
- GL.RenderMode(GL::RENDER)
278
+ glRenderMode(OpenGL::GL_RENDER)
280
279
 
281
280
  # Fast hints
282
- GL.Hint(GL::POLYGON_SMOOTH_HINT, GL::FASTEST)
283
- GL.Hint(GL::PERSPECTIVE_CORRECTION_HINT, GL::FASTEST)
284
- GL.Hint(GL::FOG_HINT, GL::FASTEST)
285
- GL.Hint(GL::LINE_SMOOTH_HINT, GL::FASTEST)
286
- GL.Hint(GL::POINT_SMOOTH_HINT, GL::FASTEST)
281
+ glHint(OpenGL::GL_POLYGON_SMOOTH_HINT, OpenGL::GL_FASTEST)
282
+ glHint(OpenGL::GL_PERSPECTIVE_CORRECTION_HINT, OpenGL::GL_FASTEST)
283
+ glHint(OpenGL::GL_FOG_HINT, OpenGL::GL_FASTEST)
284
+ glHint(OpenGL::GL_LINE_SMOOTH_HINT, OpenGL::GL_FASTEST)
285
+ glHint(OpenGL::GL_POINT_SMOOTH_HINT, OpenGL::GL_FASTEST)
287
286
 
288
287
  # Z-buffer test on
289
- GL.Enable(GL::DEPTH_TEST)
290
- GL.DepthFunc(GL::LESS)
291
- GL.DepthRange(0.0, 1.0)
292
- GL.ClearDepth(1.0)
293
- GL.ClearColor(@top_background[0], @top_background[1], @top_background[2], @top_background[3])
288
+ glEnable(OpenGL::GL_DEPTH_TEST)
289
+ glDepthFunc(OpenGL::GL_LESS)
290
+ glDepthRange(0.0, 1.0)
291
+ glClearDepth(1.0)
292
+ glClearColor(@top_background[0], @top_background[1], @top_background[2], @top_background[3])
294
293
 
295
294
  # No face culling
296
- GL.Disable(GL::CULL_FACE)
297
- GL.CullFace(GL::BACK)
298
- GL.FrontFace(GL::CCW)
295
+ glDisable(OpenGL::GL_CULL_FACE)
296
+ glCullFace(OpenGL::GL_BACK)
297
+ glFrontFace(OpenGL::GL_CCW)
299
298
 
300
299
  # Two sided lighting
301
- GL.LightModeli(GL::LIGHT_MODEL_TWO_SIDE, 1)
302
- GL.LightModel(GL::LIGHT_MODEL_AMBIENT, @ambient)
300
+ glLightModeli(OpenGL::GL_LIGHT_MODEL_TWO_SIDE, 1)
301
+ glLightModelfv(OpenGL::GL_LIGHT_MODEL_AMBIENT, @ambient.pack('F*'))
303
302
 
304
303
  # Preferred blend over background
305
- GL.BlendFunc(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA)
304
+ glBlendFunc(OpenGL::GL_SRC_ALPHA, OpenGL::GL_ONE_MINUS_SRC_ALPHA)
306
305
 
307
306
  enable_light(@light)
308
307
  # Viewer is close
309
- GL.LightModeli(GL::LIGHT_MODEL_LOCAL_VIEWER, 1)
308
+ glLightModeli(OpenGL::GL_LIGHT_MODEL_LOCAL_VIEWER, 1)
310
309
 
311
310
  enable_material(@material)
312
311
  # Vertex colors change both diffuse and ambient
313
- GL.ColorMaterial(GL::FRONT_AND_BACK, GL::AMBIENT_AND_DIFFUSE)
314
- GL.Disable(GL::COLOR_MATERIAL)
312
+ glColorMaterial(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_AMBIENT_AND_DIFFUSE)
313
+ glDisable(OpenGL::GL_COLOR_MATERIAL)
315
314
 
316
315
  # Simplest and fastest drawing is default
317
- GL.ShadeModel(GL::FLAT)
318
- GL.Disable(GL::BLEND)
319
- GL.Disable(GL::LINE_SMOOTH)
320
- GL.Disable(GL::POINT_SMOOTH)
321
- GL.Disable(GL::COLOR_MATERIAL)
316
+ glShadeModel(OpenGL::GL_FLAT)
317
+ glDisable(OpenGL::GL_BLEND)
318
+ glDisable(OpenGL::GL_LINE_SMOOTH)
319
+ glDisable(OpenGL::GL_POINT_SMOOTH)
320
+ glDisable(OpenGL::GL_COLOR_MATERIAL)
322
321
 
323
322
  # Lighting
324
- GL.Disable(GL::LIGHTING)
323
+ glDisable(OpenGL::GL_LIGHTING)
325
324
 
326
325
  # No normalization of normals (it's broken on some machines anyway)
327
- GL.Disable(GL::NORMALIZE)
326
+ glDisable(OpenGL::GL_NORMALIZE)
328
327
 
329
328
  # Dithering if needed
330
- GL.Disable(GL::DITHER)
329
+ glDisable(OpenGL::GL_DITHER)
331
330
  end
332
331
 
333
332
  def paintGL
334
333
  # Set viewport
335
- GL.Viewport(0, 0, @wvt.w, @wvt.h)
334
+ glViewport(0, 0, @wvt.w, @wvt.h)
336
335
  reset_gl_state()
337
336
  clear_solid_background()
338
337
 
339
338
  # Depth test on by default
340
- GL.DepthMask(GL::TRUE)
341
- GL.Enable(GL::DEPTH_TEST)
339
+ glDepthMask(OpenGL::GL_TRUE)
340
+ glEnable(OpenGL::GL_DEPTH_TEST)
342
341
 
343
342
  # Switch to projection matrix
344
- GL.MatrixMode(GL::PROJECTION)
345
- GL.LoadIdentity
343
+ glMatrixMode(OpenGL::GL_PROJECTION)
344
+ glLoadIdentity
346
345
  case @projection
347
346
  when :PARALLEL
348
- GL.Ortho(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
347
+ glOrtho(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
349
348
  when :PERSPECTIVE
350
- GL.Frustum(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
349
+ glFrustum(@wvt.left, @wvt.right, @wvt.bottom, @wvt.top, @wvt.hither, @wvt.yon)
351
350
  end
352
351
 
353
352
  # Switch to model matrix
354
- GL.MatrixMode(GL::MODELVIEW)
355
- GL.LoadIdentity
353
+ glMatrixMode(OpenGL::GL_MODELVIEW)
354
+ glLoadIdentity
356
355
 
357
356
  enable_light(@light)
358
357
  enable_material(@material)
359
358
 
360
359
  # Color commands change both
361
- GL.ColorMaterial(GL::FRONT_AND_BACK, GL::AMBIENT_AND_DIFFUSE)
360
+ glColorMaterial(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_AMBIENT_AND_DIFFUSE)
362
361
  # Global ambient light
363
- GL.LightModel(GL::LIGHT_MODEL_AMBIENT, @ambient)
362
+ glLightModelfv(OpenGL::GL_LIGHT_MODEL_AMBIENT, @ambient.pack('F*'))
364
363
 
365
364
  # Enable fog
366
365
  if @options.include?(:VIEWER_FOG)
367
- GL.Enable(GL::FOG)
368
- GL.Fog(GL::FOG_COLOR, @top_background) # Disappear into the background
369
- GL.Fogf(GL::FOG_START, (@distance - @diameter).to_f) # Range tight around model position
370
- GL.Fogf(GL::FOG_END, (@distance + @diameter).to_f) # Far place same as clip plane:- clipped stuff is in the mist!
371
- GL.Fogi(GL::FOG_MODE, GL::LINEAR) # Simple linear depth cueing
366
+ glEnable(OpenGL::GL_FOG)
367
+ glFog(OpenGL::GL_FOG_COLOR, @top_background) # Disappear into the background
368
+ glFogf(OpenGL::GL_FOG_START, (@distance - @diameter).to_f) # Range tight around model position
369
+ glFogf(OpenGL::GL_FOG_END, (@distance + @diameter).to_f) # Far place same as clip plane:- clipped stuff is in the mist!
370
+ glFogi(OpenGL::GL_FOG_MODE, OpenGL::GL_LINEAR) # Simple linear depth cueing
372
371
  end
373
372
 
374
373
  # Dithering
375
- GL.Enable(GL::DITHER) if @options.include?(:VIEWER_DITHER)
374
+ glEnable(OpenGL::GL_DITHER) if @options.include?(:VIEWER_DITHER)
376
375
  # Enable lighting
377
- GL.Enable(GL::LIGHTING) if @options.include?(:VIEWER_LIGHTING)
376
+ glEnable(OpenGL::GL_LIGHTING) if @options.include?(:VIEWER_LIGHTING)
378
377
 
379
378
  # Set model matrix
380
- GL.LoadMatrixf(@transform)
379
+ glLoadMatrixf(@transform.to_a.flatten.pack('F*'))
381
380
 
382
381
  draw_axis() if (@draw_axis and @draw_axis > 0)
383
382
 
@@ -386,49 +385,53 @@ module Cosmos
386
385
  end
387
386
 
388
387
  def reset_gl_state
389
- GL.ShadeModel(GL::SMOOTH)
390
- GL.PolygonMode(GL::FRONT_AND_BACK, GL::FILL)
391
- GL.Disable(GL::LIGHTING)
392
- GL.Disable(GL::ALPHA_TEST)
393
- GL.Disable(GL::BLEND)
394
- GL.Disable(GL::DITHER)
395
- GL.Disable(GL::FOG)
396
- GL.Disable(GL::LOGIC_OP)
397
- GL.Disable(GL::POLYGON_SMOOTH)
398
- GL.Disable(GL::POLYGON_STIPPLE)
399
- GL.Disable(GL::STENCIL_TEST)
400
- GL.Disable(GL::CULL_FACE)
401
- GL.Disable(GL::COLOR_MATERIAL)
388
+ glShadeModel(OpenGL::GL_SMOOTH)
389
+ glPolygonMode(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_FILL)
390
+ glDisable(OpenGL::GL_LIGHTING)
391
+ glDisable(OpenGL::GL_ALPHA_TEST)
392
+ glDisable(OpenGL::GL_BLEND)
393
+ glDisable(OpenGL::GL_DITHER)
394
+ glDisable(OpenGL::GL_FOG)
395
+ glDisable(OpenGL::GL_LOGIC_OP)
396
+ glDisable(OpenGL::GL_POLYGON_SMOOTH)
397
+ glDisable(OpenGL::GL_POLYGON_STIPPLE)
398
+ glDisable(OpenGL::GL_STENCIL_TEST)
399
+ glDisable(OpenGL::GL_CULL_FACE)
400
+ glDisable(OpenGL::GL_COLOR_MATERIAL)
402
401
 
403
402
  # Reset matrices
404
- GL.MatrixMode(GL::PROJECTION)
405
- GL.LoadIdentity
406
- GL.MatrixMode(GL::MODELVIEW)
407
- GL.LoadIdentity
403
+ glMatrixMode(OpenGL::GL_PROJECTION)
404
+ glLoadIdentity
405
+ glMatrixMode(OpenGL::GL_MODELVIEW)
406
+ glLoadIdentity
408
407
  end
409
408
 
410
409
  def clear_solid_background
411
- GL.ClearDepth(1.0)
412
- GL.ClearColor(@top_background[0], @top_background[1], @top_background[2], @top_background[3])
410
+ glClearDepth(1.0)
411
+ glClearColor(@top_background[0], @top_background[1], @top_background[2], @top_background[3])
413
412
  if @top_background == @bottom_background
414
413
  begin
415
- GL.Clear(GL::COLOR_BUFFER_BIT | GL::DEPTH_BUFFER_BIT)
414
+ glClear(OpenGL::GL_COLOR_BUFFER_BIT | OpenGL::GL_DEPTH_BUFFER_BIT)
416
415
  rescue
417
416
  # Raises false error on Mac
418
417
  end
419
418
  else # Clear to gradient background
420
419
  begin
421
- GL.Clear(GL::DEPTH_BUFFER_BIT)
420
+ glClear(OpenGL::GL_DEPTH_BUFFER_BIT)
422
421
  rescue
423
422
  # Raises false error on Mac
424
423
  end
425
- GL.Disable(GL::DEPTH_TEST)
426
- GL.DepthMask(GL::FALSE)
427
- GL.Begin(GL::TRIANGLE_STRIP)
428
- GL.Color(@bottom_background); GL.Vertex3f(-1.0, -1.0, 0.0); GL.Vertex3f(1.0, -1.0, 0.0)
429
- GL.Color(@top_background); GL.Vertex3f(-1.0, 1.0, 0.0); GL.Vertex3f(1.0, 1.0, 0.0)
424
+ glDisable(OpenGL::GL_DEPTH_TEST)
425
+ glDepthMask(OpenGL::GL_FALSE)
426
+ glBegin(OpenGL::GL_TRIANGLE_STRIP)
427
+ glColor4f(@bottom_background[0], @bottom_background[1], @bottom_background[2], @bottom_background[3])
428
+ glVertex3f(-1.0, -1.0, 0.0)
429
+ glVertex3f(1.0, -1.0, 0.0)
430
+ glColor4f(@top_background[0], @top_background[1], @top_background[2], @bottom_background[3])
431
+ glVertex3f(-1.0, 1.0, 0.0)
432
+ glVertex3f(1.0, 1.0, 0.0)
430
433
  begin
431
- GL.End
434
+ glEnd
432
435
  rescue
433
436
  # Raises false error on Mac
434
437
  end
@@ -436,58 +439,58 @@ module Cosmos
436
439
  end
437
440
 
438
441
  def draw_axis
439
- GL.PushMatrix
440
- GL.LineWidth(2.5)
441
- GL.Color3f(1.0, 0.0, 0.0)
442
- GL.Begin(GL::LINES)
443
- GL.Vertex3f(-@draw_axis.to_f, 0.0, 0.0)
444
- GL.Vertex3f(@draw_axis.to_f, 0.0, 0.0)
442
+ glPushMatrix
443
+ glLineWidth(2.5)
444
+ glColor3f(1.0, 0.0, 0.0)
445
+ glBegin(OpenGL::GL_LINES)
446
+ glVertex3f(-@draw_axis.to_f, 0.0, 0.0)
447
+ glVertex3f(@draw_axis.to_f, 0.0, 0.0)
445
448
  begin
446
- GL.End
449
+ glEnd
447
450
  rescue
448
451
  # Raises false error on Mac
449
452
  end
450
- GL.Color3f(0.0, 1.0, 0.0)
451
- GL.Begin(GL::LINES)
452
- GL.Vertex3f(0, -@draw_axis, 0.0)
453
- GL.Vertex3f(0, @draw_axis, 0)
453
+ glColor3f(0.0, 1.0, 0.0)
454
+ glBegin(OpenGL::GL_LINES)
455
+ glVertex3f(0, -@draw_axis, 0.0)
456
+ glVertex3f(0, @draw_axis, 0)
454
457
  begin
455
- GL.End
458
+ glEnd
456
459
  rescue
457
460
  # Raises false error on Mac
458
461
  end
459
- GL.Color3f(0.0, 0.0, 1.0)
460
- GL.Begin(GL::LINES)
461
- GL.Vertex3f(0, 0, -@draw_axis)
462
- GL.Vertex3f(0, 0, @draw_axis)
462
+ glColor3f(0.0, 0.0, 1.0)
463
+ glBegin(OpenGL::GL_LINES)
464
+ glVertex3f(0, 0, -@draw_axis)
465
+ glVertex3f(0, 0, @draw_axis)
463
466
  begin
464
- GL.End
467
+ glEnd
465
468
  rescue
466
469
  # Raises false error on Mac
467
470
  end
468
- GL.PopMatrix
471
+ glPopMatrix
469
472
  end
470
473
 
471
474
  def enable_light(light)
472
- GL.Enable(GL::LIGHT0)
473
- GL.Light(GL::LIGHT0, GL::AMBIENT, light.ambient)
474
- GL.Light(GL::LIGHT0, GL::DIFFUSE, light.diffuse)
475
- GL.Light(GL::LIGHT0, GL::SPECULAR, light.specular)
476
- GL.Light(GL::LIGHT0, GL::POSITION, light.position)
477
- GL.Light(GL::LIGHT0, GL::SPOT_DIRECTION, light.direction)
478
- GL.Lightf(GL::LIGHT0, GL::SPOT_EXPONENT, light.exponent)
479
- GL.Lightf(GL::LIGHT0, GL::SPOT_CUTOFF, light.cutoff)
480
- GL.Lightf(GL::LIGHT0, GL::CONSTANT_ATTENUATION, light.c_attn)
481
- GL.Lightf(GL::LIGHT0, GL::LINEAR_ATTENUATION, light.l_attn)
482
- GL.Lightf(GL::LIGHT0, GL::QUADRATIC_ATTENUATION, light.q_attn)
475
+ glEnable(OpenGL::GL_LIGHT0)
476
+ glLightfv(OpenGL::GL_LIGHT0, OpenGL::GL_AMBIENT, light.ambient.pack('F*'))
477
+ glLightfv(OpenGL::GL_LIGHT0, OpenGL::GL_DIFFUSE, light.diffuse.pack('F*'))
478
+ glLightfv(OpenGL::GL_LIGHT0, OpenGL::GL_SPECULAR, light.specular.pack('F*'))
479
+ glLightfv(OpenGL::GL_LIGHT0, OpenGL::GL_POSITION, light.position.pack('F*'))
480
+ glLightfv(OpenGL::GL_LIGHT0, OpenGL::GL_SPOT_DIRECTION, light.direction.pack('F*'))
481
+ glLightf(OpenGL::GL_LIGHT0, OpenGL::GL_SPOT_EXPONENT, light.exponent)
482
+ glLightf(OpenGL::GL_LIGHT0, OpenGL::GL_SPOT_CUTOFF, light.cutoff)
483
+ glLightf(OpenGL::GL_LIGHT0, OpenGL::GL_CONSTANT_ATTENUATION, light.c_attn)
484
+ glLightf(OpenGL::GL_LIGHT0, OpenGL::GL_LINEAR_ATTENUATION, light.l_attn)
485
+ glLightf(OpenGL::GL_LIGHT0, OpenGL::GL_QUADRATIC_ATTENUATION, light.q_attn)
483
486
  end
484
487
 
485
488
  def enable_material(material)
486
- GL.Material(GL::FRONT_AND_BACK, GL::AMBIENT, material.ambient)
487
- GL.Material(GL::FRONT_AND_BACK, GL::DIFFUSE, material.diffuse)
488
- GL.Material(GL::FRONT_AND_BACK, GL::SPECULAR, material.specular)
489
- GL.Material(GL::FRONT_AND_BACK, GL::EMISSION, material.emission)
490
- GL.Materialf(GL::FRONT_AND_BACK, GL::SHININESS, material.shininess)
489
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_AMBIENT, material.ambient.pack('F*'))
490
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_DIFFUSE, material.diffuse.pack('F*'))
491
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_SPECULAR, material.specular.pack('F*'))
492
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_EMISSION, material.emission.pack('F*'))
493
+ glMaterialf(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_SHININESS, material.shininess)
491
494
  end
492
495
 
493
496
  def resizeGL(width, height)
@@ -1,6 +1,12 @@
1
1
  # encoding: ascii-8bit
2
2
 
3
3
  require 'opengl'
4
+ include OpenGL
5
+ OpenGL.load_lib
6
+ require 'glu'
7
+ include GLU
8
+ GLU.load_lib
9
+
4
10
  require 'cosmos/gui/opengl/gl_viewport'
5
11
  require 'cosmos/gui/opengl/gl_light'
6
12
  require 'cosmos/gui/opengl/gl_material'
@@ -65,13 +65,13 @@ module Cosmos
65
65
  end
66
66
 
67
67
  def draw_triangles
68
- GL.EnableClientState(GL::NORMAL_ARRAY)
69
- GL.EnableClientState(GL::VERTEX_ARRAY)
70
- GL.NormalPointer(GL::FLOAT, 0, @normals_packed)
71
- GL.VertexPointer(3, GL::FLOAT, 0, @vertexes_packed)
72
- GL.DrawArrays(GL::TRIANGLES, 0, @triangles.length * 3)
73
- GL.DisableClientState(GL::NORMAL_ARRAY)
74
- GL.DisableClientState(GL::VERTEX_ARRAY)
68
+ glEnableClientState(OpenGL::GL_NORMAL_ARRAY)
69
+ glEnableClientState(OpenGL::GL_VERTEX_ARRAY)
70
+ glNormalPointer(OpenGL::GL_FLOAT, 0, @normals_packed)
71
+ glVertexPointer(3, OpenGL::GL_FLOAT, 0, @vertexes_packed)
72
+ glDrawArrays(OpenGL::GL_TRIANGLES, 0, @triangles.length * 3)
73
+ glDisableClientState(OpenGL::GL_NORMAL_ARRAY)
74
+ glDisableClientState(OpenGL::GL_VERTEX_ARRAY)
75
75
  end
76
76
 
77
77
  def process(filename, scaling_factor = 1.0)
@@ -63,17 +63,17 @@ module Cosmos
63
63
  def drawshape(viewer)
64
64
  @viewer = viewer
65
65
 
66
- GL.PushMatrix
67
- GL.Enable(GL::BLEND)
68
- GL.BlendFunc(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA)
69
- GL.Color4f(@color[0], @color[1], @color[2], @color[3])
70
- GL.Rotate(@rotation_x, 1.0, 0.0, 0.0) if @rotation_x
71
- GL.Rotate(@rotation_y, 0.0, 1.0, 0.0) if @rotation_y
72
- GL.Rotate(@rotation_z, 0.0, 0.0, 1.0) if @rotation_z
73
- GL.Material(GL::FRONT_AND_BACK, GL::AMBIENT_AND_DIFFUSE, @color)
74
- draw_stl()
75
- GL.Disable(GL::BLEND)
76
- GL.PopMatrix
66
+ glPushMatrix()
67
+ glEnable(OpenGL::GL_BLEND)
68
+ glBlendFunc(OpenGL::GL_SRC_ALPHA, OpenGL::GL_ONE_MINUS_SRC_ALPHA)
69
+ glColor4f(@color[0], @color[1], @color[2], @color[3])
70
+ glRotatef(@rotation_x, 1.0, 0.0, 0.0) if @rotation_x
71
+ glRotatef(@rotation_y, 0.0, 1.0, 0.0) if @rotation_y
72
+ glRotatef(@rotation_z, 0.0, 0.0, 1.0) if @rotation_z
73
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_AMBIENT_AND_DIFFUSE, @color.pack('F*'))
74
+ draw_stl()
75
+ glDisable(OpenGL::GL_BLEND)
76
+ glPopMatrix()
77
77
  end
78
78
 
79
79
  def export
@@ -110,18 +110,18 @@ module Cosmos
110
110
  end
111
111
 
112
112
  def draw_stl
113
- GL.PushMatrix
114
- GL.Material(GL::FRONT_AND_BACK, GL::SPECULAR, [1.0, 1.0, 1.0])
115
- GL.Material(GL::FRONT_AND_BACK, GL::SHININESS, [100.0])
113
+ glPushMatrix()
114
+ glMaterialfv(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_SPECULAR, [1.0, 1.0, 1.0].pack("F*"))
115
+ glMaterialf(OpenGL::GL_FRONT_AND_BACK, OpenGL::GL_SHININESS, 100.0)
116
116
  if @mystl.triangles.empty?
117
117
  load_stl
118
118
  else
119
119
  @mystl.draw_triangles()
120
120
  end
121
- GL.PopMatrix
121
+ glPopMatrix()
122
122
 
123
123
  # Set Pixel Storage Size
124
- GL.PixelStorei(GL::UNPACK_ALIGNMENT, 1)
124
+ glPixelStorei(OpenGL::GL_UNPACK_ALIGNMENT, 1)
125
125
  end
126
126
  end
127
127
  end