NAME

Math::Geometry::Construction::FixedPoint - independent user-defined point

VERSION

Version 0.024

SYNOPSIS

  my $p1 = $construction->add_point(position => [100, 150]);

  my $p2 = $construction->add_point('x' => 50, 'y' => 90,
                                    hidden => 1);

  my $p3 = $construction->add_point('x' => 70, 'y' => 130,
                                    style          => {stroke => 'red'},
                                    label          => 'A',
	                            label_offset_x => 5,
	                            label_offset_y => -5);

DESCRIPTION

An instance of this class represents a user defined free point, as opposed to a derived point, e.g. an intersection point. An instance of this class got its position directly from the user. It is created by using the add_point method of Math::Geometry::Construction.

INTERFACE

Public Attributes

position

The accessor returns a Math::Vector::Real object with the position of the point. To the constructor or mutator, you can give anything that Math::Geometry::Construction::Vector accepts. The constructor additionally supports explicit x and y arguments.

Examples:

# arrayref
$construction->add_point(position => [1, 4]);
$construction->position([5, -3]);
$construction->position([4, -1, 7]);  # 7 is ignored

# Math::Vector::Real object
$construction->add_point(position => V(1, 4));
$construction->position(V(5, -3));

# x and y
$construction->add_point('x' => 1, 'y' => 4);

See also Math::Geometry::Construction::Vector.

Note that you must not alter the elements of the Math::Vector::Real object directly although the class interface allows it. This will circumvent the tracking of changes that Math::Geometry::Construction performs in order to improve performance.

$point = $construction->add_point([5, 7]);
$pos   = $point->position;
$pos->[0] = 6;             # wrong!
$point->position([6, 7]);  # right

size

A point is currently always drawn as a circle. This might become more flexible in the future. size determines the size of the point in the output. For a circle it is its diameter. This parameter is currently undef by default, because the output falls back to radius (see below). When radius is removed, size will default to 6.

radius

Half of size. This attribute is deprecated and might be removed in a future version. Use size instead.

General Output Attributes

See Math::Geometry::Construction::Output.

Methods

draw

Called by the Construction object during output generation. Currently draws a circle of diameter size, but this might become more flexible in the future.

id_template

Class method returning $ID_TEMPLATE, which defaults to 'P%09d'.

AUTHOR

Lutz Gehlen, <perl at lutzgehlen.de>

LICENSE AND COPYRIGHT

Copyright 2011, 2013 Lutz Gehlen.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.