TABLE OF CONTENTS


::pwtk::scaleCoor

SYNOPSIS

proc ::pwtk::scaleCoor {args} {

PURPOSE

Scale given coordinates.

ARGUMENTS

SOURCE

    if { [ llength $args] < 2 || [llength $args] > 4 } {
        ::pwtk::error "wrong number of arguments, must be:   pwtk::scaleCoor scale_x ?scale_y? ?scale_z? coor"
    }

    set nargs [llength $args]
    set scale(0) [lindex $args 0]
    set scale(1) $scale(0)
    set scale(2) $scale(0)
    for {set i 1} {$i<$nargs-1} {incr i} {
        set scale($i) [lindex $args $i]
    }
    set coor [lindex $args end]

    set result ""
    foreach line [split $coor \n] {     
        set len [llength $line]
        if { $len == 4 } {      
            set sym [lindex $line 0]
            set x   [lindex $line 1]
            set y   [lindex $line 2]
            set z   [lindex $line 3]    
            append result [format "%3s   %15.10f %15.10f %15.10f\n" \
                               $sym [expr $x * $scale(0)] [expr $y * $scale(1)] [expr $z * $scale(2)]]
        }
    }
    return $result
}