ab14c358336dc1d0f07d263a4bb79c9bb598a133
[scpubgit/DX.git] / lib / DX / ResolutionSpace.pm
1 package DX::ResolutionSpace;
2
3 use DX::Class;
4
5 has geometry_depends_on => (is => 'ro', required => 1);
6
7 has members => (is => 'ro', required => 1);
8
9 sub next_resolution {
10   my ($self) = @_;
11   return undef unless my ($first) = @{$self->members};
12   return $first->next_resolution;
13 }
14
15 sub remaining_resolution_space {
16   my ($self) = @_;
17   die "Sense makes not" unless my ($first, @rest) = @{$self->members};
18   return $self->but(members => [ $first->remainder, @rest ]);
19 }
20
21 1;