throw( "Need GraphViz installed to output SVG" )
unless File::Which::which( 'dot' );
my $want_subgraph = exists $opts->{'from'} || exists $opts->{'to'};
- $self->calculate_ranks() unless( $self->_graphcalc_done || $opts->{'nocalc'} );
+ $self->calculate_ranks()
+ unless( $self->_graphcalc_done || $opts->{'nocalc'} || !$self->linear );
if( !$self->has_cached_svg || $opts->{'recalc'} || $want_subgraph ) {
my @cmd = qw/dot -Tsvg/;
my( $svg, $err );
# See if we are in a majority situation.
my $maj = scalar( $self->tradition->witnesses ) * 0.6;
+ $maj = $maj > 5 ? $maj : 5;
if( scalar keys %wits > $maj ) {
unshift( @disp_ac, 'majority' );
return join( ', ', @disp_ac );
$collation->add_path( $from->{$IDKEY}, $to->{$IDKEY}, $wit );
}
} else { # type 'relationship'
- $collation->add_relationship( $from->{$IDKEY}, $to->{$IDKEY},
- { 'type' => 'transposition' } );
+ if( $collation->linear ) {
+ $collation->add_relationship( $from->{$IDKEY}, $to->{$IDKEY},
+ { 'type' => 'transposition' } );
+ } else {
+ $collation->merge_readings( $from->{$IDKEY}, $to->{$IDKEY} );
+ }
}
}
# Rank the readings.
- $collation->calculate_common_readings(); # will implicitly rank
+ $collation->calculate_common_readings()
+ if $collation->linear; # will implicitly rank
# Save the text for each witness so that we can ensure consistency
# later on