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])

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

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)


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

def pos
  @pos
end

Instance Method Details

#boundsObject

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


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

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).


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

def draw(viewer)
  GL::Color(0.0, 0.0, 1.0)
  GL::PointSize(HANDLE_SIZE)
  GL::Begin(GL::POINTS)
  GL::Vertex(@pos)
  GL::End()
end

#hit(viewer) ⇒ Object

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


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

def hit(viewer)
  GL::Begin(GL::POINTS)
  GL::Vertex(@pos)
  GL::End()
end