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

- (FXGLPoint) initialize(*args)

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

- (Object) pos

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

- (Object) bounds

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

- (Object) draw(viewer)

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::Color(0.0, 0.0, 1.0)
  GL::PointSize(HANDLE_SIZE)
  GL::Begin(GL::POINTS)
  GL::Vertex(@pos)
  GL::End()
end

- (Object) hit(viewer)

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::Vertex(@pos)
  GL::End()
end