Class: Fox::FXGLPoint

Inherits:
FXGLObject show all
Defined in:
lib/fox16/glshapes.rb

Overview

OpenGL point object

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from FXGLObject

#canDelete, #canDrag, #copy, #drag, #identify

Methods inherited from FXObject

#bind, #handle, #load, #save, subclasses

Constructor Details

#initialize(*args) ⇒ FXGLPoint

Returns an initialized FXGLPoint instance. If no arguments are passed to #new, the initial point position is (0.0, 0.0, 0.0). You can specify a different initial position by passing in the x, y and z coordinates individually:

aPoint = FXGLPoint.new(x, y, z)

or as a 3-element array:

aPoint = FXGLPoint.new([x, y, z])


27
28
29
30
31
32
33
34
35
36
# File 'lib/fox16/glshapes.rb', line 27

def initialize(*args)
  super()
  if args.length == 0
    @pos = [0.0, 0.0, 0.0]
  elsif args.length == 3
    @pos = [args[0], args[1], args[2]]
  else
    @pos = args[0]
  end
end

Instance Attribute Details

#posObject

Point position, in model coordinates (a 3-element array)



13
14
15
# File 'lib/fox16/glshapes.rb', line 13

def pos
  @pos
end

Instance Method Details

#boundsObject

Return the bounding box (an FXRangef instance) for this point.



41
42
43
# File 'lib/fox16/glshapes.rb', line 41

def bounds
  FXRangef.new(@pos[0], @pos[0], @pos[1], @pos[1], @pos[2], @pos[2])
end

#draw(viewer) ⇒ Object

Draw this point into viewer (an FXGLViewer instance).



48
49
50
51
52
53
54
# File 'lib/fox16/glshapes.rb', line 48

def draw(viewer)
  GL.Color3d(0.0, 0.0, 1.0)
  GL.PointSize(HANDLE_SIZE)
  GL.Begin(GL::POINTS)
  GL.Vertex3d(*@pos)
  GL.End()
end

#hit(viewer) ⇒ Object

Perform hit test for this point in viewer (an FXGLViewer instance).



59
60
61
62
63
# File 'lib/fox16/glshapes.rb', line 59

def hit(viewer)
  GL.Begin(GL::POINTS)
  GL.Vertex3d(*@pos)
  GL.End()
end