TABLE OF CONTENTS


::pwtk::scaleVec

SYNOPSIS

proc ::pwtk::scaleVec {args} {

PURPOSE

Scale (lattice) vectors

ARGUMENTS

SOURCE

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

    # parse args

    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 vec [lindex $args end]

    # scale vectors

    foreach {x y z} $vec {
        set vx [expr $scale(0) * $x]
        set vy [expr $scale(1) * $y]
        set vz [expr $scale(2) * $z]

        append result "  $vx   $vy   $vz\n"
    }
    
    return $result
}