NAME
Curses::Toolkit::Object::Coordinates - simple coordinates class
VERSION
version 0.208
DESCRIPTION
Trivial class to hold 2 points.
+ and - are properly overloaded.
ATTRIBUTES
x1
Top left x coordinate of the object. Can be either an integer or a coderef.
y1
Top left y coordinate of the object. Can be either an integer or a coderef.
x2
Bottom right x coordinate of the object. Can be either an integer or a coderef.
y2
Bottom right y coordinate of the object. Can be either an integer or a coderef.
normalize
A boolean to swap coordinates to make sure x1 < x2 and y1 < y2 if set to true (default). If set to false, the coordinates will be untouched.
METHODS
new
my $coord = CTO::Coordinates->new( @attributes );
my $coord = CTO::Coordinates->new( $coord_to_clone );
my $coord = CTO::Coordinates->new( x1=>$x1, y1=>$y1, width=>$w, height=>$h );
Constructor for the class. Acceps various kind of attributes.
input : x1 : top left x
y1 : top left y
x2 : right bottom x
y2 : right bottom y
[ normalize ] : optional
OR
input : x1 : top left x
y1 : top left y
width : width
height : height
[ normalize ] : optional
OR
input : x1 : sub { ... } # returns top left x
y1 : sub { ... } # returns top left y
x2 : sub { ... } # returns right bottom x
y2 : sub { ... } # returns right bottom y
[ normalize ] : optional
OR
input : a Curses::Toolkit::Object::Coordinates object
output : a Curses::Toolkit::Object::Coordinates object
new_zero
my $coord = CTO::Coordinates->new_zero;
Creates a new coordinates with all individual coords set to zero.
input : none
output : a Curses::Toolkit::Object::Coordinates object
clone
my $c2 = $c1->clone;
Clone a coordinates object.
input : none
output : a Curses::Toolkit::Object::Coordinates object
set
$coord->set( x1=>$x1, y1=>$y1, x2=>$x2, y2=>$y2, normalize => 1 );
Set attributes of the coordinate object.
input : one or more of x1, x2, y1, y2
output : the coordinate object
width
my $width = $coord->width;
Returns the width represented by the coordinate object.
height
my $height = $coord->height;
Returns the height represented by the coordinate object.
add
$coord->add( $const );
$coord->add( $coord_to_add );
$coord->add( { x1=>$x1, y1=>$y1, x2=>$x2, y2=>$y2 } );
Add to the coordinate attributes of the object.
If the argument is a constant, it's added to all the components of the coordinate. If it's a Curses::Toolkit::Object::Coordinates, it's added side by side If it's a hashref, it's added side by side
input : a CONSTANT
OR
input : a Curses::Toolkit::Object::Coordinates
OR
input : a HASHREF of 'x1', 'x2', 'y1', 'y2'
output : the Curses::Toolkit::Object::Coordinates object
subtract
$coord->subtract( $const );
$coord->subtract( $coord_to_add );
$coord->subtract( { x1=>$x1, y1=>$y1, x2=>$x2, y2=>$y2 } );
Substract from the coordinate (also overloads '-').
If the argument is a constant, it's subtracted from all the components of the coordinate. If it's a Curses::Toolkit::Object::Coordinates, it's subtracted side by side If it's a hashref, it's subtracted side by side
input : a CONSTANT
OR
input : a Curses::Toolkit::Object::Coordinates
OR
input : a HASHREF of 'x1', 'x2', 'y1', 'y2'
output : the Curses::Toolkit::Object::Coordinates object
restrict_to
$coord->restrict_to( $coord_to_fit_into );
Force the coordinate to be inside the passed coordinate.
input : a Curses::Toolkit::Object::Coordinates object
output : the object
grow_to
$coord->grow_to( $coord_to_match );
Force the coordinate to be at least as big as the passed coordinate.
input : a Curses::Toolkit::Object::Coordinates object
output : the object
translate
$coord->translate( x=>$x, y=>$y );
Given a X value and a Y value, translates the coordinate accordingly
input : x : value to translate the coord horizontally
y : value to translate the coord vertically
output : the Curses::Toolkit::Object::Coordinates object
translate_up
$coord->translate_up( $offset );
Given a value, translates the coordinate up (value sign is ignored)
input : value to translate the coord up
output : the Curses::Toolkit::Object::Coordinates object
translate_down
$coord->translate_down( $offset );
Given a value, translates the coordinate down (value sign is ignored)
input : value to translate the coord down
output : the Curses::Toolkit::Object::Coordinates object
translate_left
$coord->translate_left( $offset );
Given a value, translates the coordinate left (value sign is ignored)
input : value to translate the coord left
output : the Curses::Toolkit::Object::Coordinates object
translate_right
$coord->translate_right( $offset );
Given a value, translates the coordinate right (value sign is ignored)
input : value to translate the coord right
output : the Curses::Toolkit::Object::Coordinates object
contains
my $bool = $coord->contains( $coord_to_check );
Return true if the coordinates contains the given coordinates
input : a Curses::Toolkit::Object::Coordinates object : the coordinates
output : true or false
is_inside
my $bool = $coord->is_inside( $coord_to_check );
Return true if the coordinates is inside the given coordinates
input : a Curses::Toolkit::Object::Coordinates object : the coordinates
output : true or false
is_in_widget
my $bool = $coord->is_in_widget( $widget );
Return true if the coordinates is inside the given widget
input : Curses::Toolkit::Widget : the widget
output : true or false
is_in_widget_visible_shape
my $bool = $coord->is_in_widget_visible_shape( $widget );
Return true if the coordinates is inside the visible part of a given widget
input : Curses::Toolkit::Widget : the widget
output : true or false
AUTHOR
Damien "dams" Krotkine
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Damien "dams" Krotkine.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.