NAME

Lego::From::PNG::Brick - A simple representation of a lego brick

SYNOPSIS

use Lego::From::PNG::Brick;

my ($color, $depth, $length, $height) = ('BLACK', 1, 2, 1);

# depth x length x height
my $object = Lego::From::PNG::Brick->new(
    color  => $color,
    depth  => $depth,
    length => $length,
    height => $height,
    meta   => {} # Anything else we want to track
);

# Get at the data with accessors

DESCRIPTION

Representation of a Lego Brick plus additional meta data about that brick

USAGE

new

Usage     : ->new()
Purpose   : Returns Lego::From::PNG::Brick object

Returns   : Lego::From::PNG::Brick object
Argument  :
               color  -> must be a valid color from L<Lego::From::PNG::Const>
               depth  -> brick depth, defaults to 1
               length -> brick length, defaults to 1
               height -> brick height, defaults to 1
               meta   -> a hashref of additional meta data for the instanciated brick
Throws    : Dies if the color is invalid

Comment   : Clobbers meta if it's not a valid hashref
See Also  :

id

See identifier

identifier

Usage     : ->identifier()
Purpose   : Returns brick id, which is based on color, depth, length and width

Returns   : the indentifier. Format: <color>_<depth>x<length>x<height>
Argument  :
Throws    :

Comment   : Identifiers aren't necessarily unique, more than one brick could have the same identifier and different meta for instance
See Also  :

color

Usage     : ->color() or ->color($new_color)
Purpose   : Returns lego color for the brick, optionally a new color may be set

Returns   : lego color value for this brick
Argument  : Optional. Pass a scalar with a new valid color value to change the bricks color
Throws    :

Comment   :
See Also  :

depth

Usage     : ->depth() or ->depth($new_number)
Purpose   : Returns depth for the brick, optionally a new depth may be set

Returns   : depth value for this brick
Argument  : Optional. Pass a scalar with a new valid depth value to change the bricks depth
Throws    :

Comment   :
See Also  :

length

Usage     : ->length() or ->length($new_number)
Purpose   : Returns length for the brick, optionally a new length may be set

Returns   : length value for this brick
Argument  : Optional. Pass a scalar with a new valid length value to change the bricks length
Throws    :

Comment   :
See Also  :

height

Usage     : ->height() or ->height($new_number)
Purpose   : Returns height for the brick, optionally a new height may be set

Returns   : height value for this brick
Argument  : Optional. Pass a scalar with a new valid height value to change the bricks height
Throws    :

Comment   :
See Also  :

meta

Usage     : ->meta()
Purpose   : Returns brick meta data

Returns   : brick meta data
Argument  :
Throws    :

Comment   :
See Also  :

color_info

Usage     : ->color_info()
Purpose   : Returns hash of color info related to bricks current color

Returns   : hash of color info
Argument  :
Throws    :

Comment   :
See Also  :

flatten

Usage     : ->flatten()
Purpose   : Returns an unblessed version of the data

Returns   : hashref of brick data
Argument  :
Throws    :

Comment   :
See Also  :

BUGS

SUPPORT

AUTHOR

Travis Chase
CPAN ID: GAUDEON
gaudeon@cpan.org
https://github.com/gaudeon/Lego-From-Png

COPYRIGHT

This program is free software licensed under the...

The MIT License

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1).