cosmos 4.2.2-java → 4.2.3-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -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