manticore/Manticore/Layer/Traverse.pm

32 lines
635 B
Perl

package Manticore::Layer::Traverse;
# Implementation of the traverse line variant of the layer
use strict;
use warnings;
sub fromText {
my @all = @_;
my @data = ();
for my $bli(0..$#all) {
my $bl = $all[$bli];
my $v = Manticore::Geometry::Point->new($bl);
if('HASH' eq ref $v) {
if($bl=~m#^([^\(\)]+)\((.*)\)$#) {
push @data, {function=>$1, param=>$2}
} else {
return { error=>'Not a traverse function', position=>$bli }
}
} else { # we have a point
push @data, $v;
}
}
return bless {
data => \@data,
srcdata => \@all,
mode => "traverse",
};
}
1;