# 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.