]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blob - lib/LaTeX/TikZ/Mod/Scale.pm
904247ca4736e659f75f1f0bbd7adc4c6b99a60d
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Mod / Scale.pm
1 package LaTeX::TikZ::Mod::Scale;
2
3 use strict;
4 use warnings;
5
6 =head1 NAME
7
8 LaTeX::TikZ::Mod::Scale - A modifier that scales a TikZ set tree.
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 Mouse;
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<scale>
35
36 =cut
37
38 has 'scale' => (
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]->scale, $_[1]->scale) }
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 'scale=%0.3f', $_[0]->scale }
69
70 LaTeX::TikZ::Interface->register(
71  scale => sub {
72   shift;
73
74   __PACKAGE__->new(scale => $_[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,2011,2012,2013,2014,2015 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::Scale