Cursor Methods
Cursors are objects in their own right in CrystGLFW, and therefore have a few methods that can be called on them.
window
You can retrieve a Cursor
object's associated Window
using the window
method:
window = cursor.window
The window
method must be called from within a run
block definition.
position
The position of a Cursor
can be retrieved using the position
method:
pos = cursor.position # => NamedTuple(x: Float64, y: Float64)
A cursor's position is always reported relative to its window's position. If a Cursor
is precisely at the top-left corner of its associated Window
, then its position is (0, 0).
position
must be called from within a run
block definition.
set_position
and position=
You can manually set the position of a Cursor
using the set_position
method:
cursor.set_position(150, 150)
cursor.position # => NamedTuple(x: 150, y: 150)
Alternatively, you can use the position=
method to achieve the same thing:
cursor.position = {x: 150, y: 150}
cursor.position # => NamedTuple(x: 150, y: 150)
It's important to remember that a cursor's position is always reported and set relative to its window's position.
set_position
and position=
must be called from within a run
block definition.
in_window?
CrystGLFW provides all of the functionality to determine if a Cursor
object is somewhere inside of its associated Window
object. You could make this calculation yourself - or you could just use the in_window?
method:
if cursor.in_window?
puts "The cursor is in the window!"
else
puts ":("
end
Obviously, in_window?
returns true
when the Cursor
is inside of its Window
, and returns false
otherwise.
in_window?
must be called from within a run
block definition.