| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package CAD::Format::DWG::Version; |
|
2
|
|
|
|
|
|
|
|
|
3
|
4
|
|
|
4
|
|
162905
|
use strict; |
|
|
4
|
|
|
|
|
8
|
|
|
|
4
|
|
|
|
|
140
|
|
|
4
|
4
|
|
|
4
|
|
21
|
use warnings; |
|
|
4
|
|
|
|
|
7
|
|
|
|
4
|
|
|
|
|
287
|
|
|
5
|
|
|
|
|
|
|
|
|
6
|
4
|
|
|
4
|
|
2001
|
use Class::Utils qw(set_params); |
|
|
4
|
|
|
|
|
56583
|
|
|
|
4
|
|
|
|
|
106
|
|
|
7
|
4
|
|
|
4
|
|
372
|
use Readonly; |
|
|
4
|
|
|
|
|
15
|
|
|
|
4
|
|
|
|
|
1895
|
|
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
# Constants. |
|
10
|
|
|
|
|
|
|
# Based on https://ru.wikipedia.org/wiki/DWG |
|
11
|
|
|
|
|
|
|
Readonly::Hash my %DWGVER => ( |
|
12
|
|
|
|
|
|
|
# DWG magic => DWG name and publication order |
|
13
|
|
|
|
|
|
|
'MC0.0' => { 'name' => 'DWG R1.0', 'order' => 1 }, |
|
14
|
|
|
|
|
|
|
'AC1.2' => { 'name' => 'DWG R1.2', 'order' => 2 }, |
|
15
|
|
|
|
|
|
|
'AC1.40' => { 'name' => 'DWG R1.40', 'order' => 3 }, |
|
16
|
|
|
|
|
|
|
'AC1.50' => { 'name' => 'DWG R2.05', 'order' => 4 }, |
|
17
|
|
|
|
|
|
|
'AC2.10' => { 'name' => 'DWG R2.10', 'order' => 5 }, |
|
18
|
|
|
|
|
|
|
'AC1001' => { 'name' => 'DWG R2.22', 'order' => 8 }, |
|
19
|
|
|
|
|
|
|
'AC1002' => { 'name' => 'DWG R2.50', 'order' => 9 }, |
|
20
|
|
|
|
|
|
|
'AC1003' => { 'name' => 'DWG R2.60', 'order' => 10 }, |
|
21
|
|
|
|
|
|
|
'AC1004' => { 'name' => 'DWG R9', 'order' => 11 }, |
|
22
|
|
|
|
|
|
|
'AC1006' => { 'name' => 'DWG R10', 'order' => 12 }, |
|
23
|
|
|
|
|
|
|
'AC1009' => { 'name' => 'DWG R11/12', 'order' => 13 }, |
|
24
|
|
|
|
|
|
|
'AC1010' => { 'name' => 'DWG pre-R13 a', 'order' => 14 }, |
|
25
|
|
|
|
|
|
|
'AC1011' => { 'name' => 'DWG pre-R13 b', 'order' => 15 }, |
|
26
|
|
|
|
|
|
|
'AC1012' => { 'name' => 'DWG R13', 'order' => 16 }, |
|
27
|
|
|
|
|
|
|
'AC1013' => { 'name' => 'DWG R13 beta', 'order' => 17 }, |
|
28
|
|
|
|
|
|
|
'AC1014' => { 'name' => 'DWG R14', 'order' => 18 }, |
|
29
|
|
|
|
|
|
|
'AC1500' => { 'name' => 'DWG 2000 beta', 'order' => 19 }, |
|
30
|
|
|
|
|
|
|
'AC1015' => { 'name' => 'DWG 2000', 'order' => 20 }, |
|
31
|
|
|
|
|
|
|
'AC402a' => { 'name' => 'DWG 2004 alpha', 'order' => 21 }, |
|
32
|
|
|
|
|
|
|
'AC402b' => { 'name' => 'DWG 2004 beta', 'order' => 22 }, |
|
33
|
|
|
|
|
|
|
'AC1018' => { 'name' => 'DWG 2004', 'order' => 23 }, |
|
34
|
|
|
|
|
|
|
'AC1021' => { 'name' => 'DWG 2007', 'order' => 24 }, |
|
35
|
|
|
|
|
|
|
'AC1024' => { 'name' => 'DWG 2010', 'order' => 25 }, |
|
36
|
|
|
|
|
|
|
'AC1027' => { 'name' => 'DWG 2013', 'order' => 26 }, |
|
37
|
|
|
|
|
|
|
'AC1032' => { 'name' => 'DWG 2018', 'order' => 27 }, |
|
38
|
|
|
|
|
|
|
'AC103-4' => { 'name' => 'DWG 2022 beta', 'order' => 28 }, |
|
39
|
|
|
|
|
|
|
); |
|
40
|
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
our $VERSION = 0.01; |
|
42
|
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
# Constructor. |
|
44
|
|
|
|
|
|
|
sub new { |
|
45
|
2
|
|
|
2
|
1
|
573899
|
my ($class, @params) = @_; |
|
46
|
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
# Create object. |
|
48
|
2
|
|
|
|
|
9
|
my $self = bless {}, $class; |
|
49
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
# Process params. |
|
51
|
2
|
|
|
|
|
19
|
set_params($self, @params); |
|
52
|
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
# Object. |
|
54
|
2
|
|
|
|
|
23
|
return $self; |
|
55
|
|
|
|
|
|
|
} |
|
56
|
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
sub list_of_dwg_identifiers { |
|
58
|
1
|
|
|
1
|
1
|
5
|
my $self = shift; |
|
59
|
|
|
|
|
|
|
|
|
60
|
1
|
|
|
|
|
12
|
my @keys = sort { $DWGVER{$a}->{'order'} <=> $DWGVER{$b}->{'order'} } keys %DWGVER; |
|
|
88
|
|
|
|
|
2157
|
|
|
61
|
|
|
|
|
|
|
|
|
62
|
1
|
|
|
|
|
52
|
return @keys; |
|
63
|
|
|
|
|
|
|
} |
|
64
|
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
1; |
|
66
|
|
|
|
|
|
|
|
|
67
|
|
|
|
|
|
|
__END__ |