]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blob - lib/LaTeX/TikZ/Mod/Width.pm
d0ee31eae52de4ee13289553a70cdaf5db1187a4
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Mod / Width.pm
1 package LaTeX::TikZ::Mod::Width;
2
3 use strict;
4 use warnings;
5
6 =head1 NAME
7
8 LaTeX::TikZ::Mod::Width - A modifier that sets the line width.
9
10 =head1 VERSION
11
12 Version 0.02
13
14 =cut
15
16 our $VERSION = '0.02';
17
18 use LaTeX::TikZ::Interface;
19
20 use LaTeX::TikZ::Tools;
21
22 use Any::Moose;
23
24 =head1 RELATIONSHIPS
25
26 This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</covers>, L</declare> and L</apply> methods.
27
28 =cut
29
30 with 'LaTeX::TikZ::Mod';
31
32 =head1 ATTRIBUTES
33
34 =head2 C<width>
35
36 =cut
37
38 has 'width' => (
39  is       => 'ro',
40  isa      => 'Num',
41  required => 1,
42 );
43
44 =head1 METHODS
45
46 =head2 C<tag>
47
48 =cut
49
50 sub tag { ref $_[0] }
51
52 =head2 C<covers>
53
54 =cut
55
56 sub covers { LaTeX::TikZ::Tools::numeq($_[0]->width, $_[1]->width) }
57
58 =head2 C<declare>
59
60 =cut
61
62 sub declare { }
63
64 =head2 C<apply>
65
66 =cut
67
68 sub apply { sprintf 'line width=%0.1fpt', $_[1]->thickness($_[0]->width) }
69
70 LaTeX::TikZ::Interface->register(
71  width => sub {
72   shift;
73
74   __PACKAGE__->new(width => $_[0]);
75  },
76 );
77
78 __PACKAGE__->meta->make_immutable;
79
80 =head1 SEE ALSO
81
82 L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
83
84 =head1 AUTHOR
85
86 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
87
88 You can contact me by mail or on C<irc.perl.org> (vincent).
89
90 =head1 BUGS
91
92 Please report any bugs or feature requests to C<bug-latex-tikz at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=LaTeX-TikZ>.
93 I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
94
95 =head1 SUPPORT
96
97 You can find documentation for this module with the perldoc command.
98
99     perldoc LaTeX::TikZ
100
101 =head1 COPYRIGHT & LICENSE
102
103 Copyright 2010 Vincent Pit, all rights reserved.
104
105 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
106
107 =cut
108
109 1; # End of LaTeX::TikZ::Mod::Width