AI-Pathfinding-SMAstar

 view release on metacpan or  search on metacpan

lib/AI/Pathfinding/SMAstar/PairObj.pm  view on Meta::CPAN

sub compare_vals{
    my ($self,$arg_obj) = @_;
    
    my $arg_value = $arg_obj->{_value};
    my $value = $self->{_value};
    
    if($arg_value gt $value){
	return -1;
    }
    elsif($arg_value eq $value){
	return 0;
    }
    return 1;	    
}


# compare_keys
#
# usage:  $pair_obj->compare($other_pair_obj)
#
# Accepts another PairObj object as an argument.
# Returns 1 if greater than argument, 0 if equal, and -1 if 
# less than argument
sub compare_keys{
    my ($self,$arg_obj) = @_;
    
    my $arg_key = $arg_obj->{_key};
    my $key = $self->{_key};
    
    if($arg_key gt $key){
	return -1;
    }
    elsif($arg_key eq $key){
	return 0;
    }
    return 1;	    
}


sub compare_keys_numeric{
    my ($self,$arg_obj) = @_;
    
    my $arg_key = $arg_obj->{_key};
    my $key = $self->{_key};
    
    if($arg_key > $key){
	return -1;
    }
    elsif($self->fp_equal($arg_key, $key, 10)){
	return 0;
    }
    return 1;	    
}




sub fp_equal {
    my ($self, $A, $B, $dp) = @_;

    return sprintf("%.${dp}g", $A) eq sprintf("%.${dp}g", $B);
}




1;  # so the require or use succeeds



( run in 0.427 second using v1.01-cache-2.11-cpan-39bf76dae61 )