version 1.3 | version 1.4 |
---|
| |
variable paxis | variable paxis |
variable COM | variable COM |
variable I | variable I |
variable priority_axis | |
} | } |
| |
# package require Orient | # package require Orient |
| |
variable COM | variable COM |
variable I | variable I |
variable a1 | variable a1 |
variable priority_axis | |
| |
| |
set x $xarg | set x $xarg |
| |
graphics $mol color green | graphics $mol color green |
vmd_draw_vector $mol $COM [vecscale $scale $a3] | vmd_draw_vector $mol $COM [vecscale $scale $a3] |
| |
#setup data and order ascending | |
set items [list [list xpriori [lindex $ranges 0]] [list ypriori [lindex $ranges 1]] [list zpriori [lindex $ranges 2]]] | set items [list [list x [lindex $ranges 0]] [list y [lindex $ranges 1]] [list z [lindex $ranges 2]]] |
set ordered [lsort -real -index 1 $items] | set ordered [lsort -real -index 1 $items] |
#set xpriori, ypriori, zpriori variables here. | |
set [lindex $ordered 0 0] "3" | |
set [lindex $ordered 1 0] "2" | |
set [lindex $ordered 2 0] "1" | |
switch [lindex $ordered 2 0] { | |
"xpriori" {set ::NeuronVND::priority_axis "[lindex $I 0]"} | |
"ypriori" {set ::NeuronVND::priority_axis "[lindex $I 1]"} | |
"zpriori" {set ::NeuronVND::priority_axis "[lindex $I 2]"} | |
} | |
| |
#a1 is x, a2 is z, a3 is y | set xindex [lsearch $ordered x] |
| set yindex [lsearch $ordered y] |
| set zindex [lsearch $ordered z] |
| |
| |
| if {$xindex == 0} { |
| set a1weight "3" |
| } elseif {$xindex == 1} { |
| set a1weight "2" |
| } elseif {$xindex == 2} { |
| set a1weight "3" |
| } |
| |
| if {$yindex == 2} { |
| set a2weight "1" |
| } elseif {$yindex == 1} { |
| set a2weight "2" |
| } elseif {$yindex == 0} { |
| set a2weight "3" |
| } |
| if {$zindex == 1} { |
| set a3weight "2" |
| } elseif {$zindex == 0} { |
| set a3weight "3" |
| } elseif {$zindex == 2} { |
| set a3weight "1" |
| } |
| |
| set a1weight "3" |
| set a2weight "1" |
| set a3weight "2" |
graphics $mol color white | graphics $mol color white |
graphics $mol text [vecadd $COM [vecscale $scale2 $a1]] "$xpriori" | graphics $mol text [vecadd $COM [vecscale $scale2 $a1]] "$a1weight" |
graphics $mol text [vecadd $COM [vecscale $scale2 $a2]] "$zpriori" | graphics $mol text [vecadd $COM [vecscale $scale2 $a2]] "$a2weight" |
graphics $mol text [vecadd $COM [vecscale $scale2 $a3]] "$ypriori" | graphics $mol text [vecadd $COM [vecscale $scale2 $a3]] "$a3weight" |
set paxis [list $a1 $a2 $a3] | set paxis [list $a1 $a2 $a3] |
return $paxis | return $paxis |
} | } |
| |
#initial principal axes tensor | #initial principal axes tensor |
set I $::Orient::calculated_axis | set I $::Orient::calculated_axis |
Orient::vnd_orient | Orient::vnd_orient |
variable priority_axis | |
| puts "$COM" |
| puts "$I" |
| |
set newa1 "" | set newa1 "" |
set newa2 "" | set newa2 "" |
set newa3 "" | set newa3 "" |
setminmax "" | |
| |
| |
set x $xarg | set x $xarg |
| |
[lindex $ranges 1] \ | [lindex $ranges 1] \ |
[lindex $ranges 2]]] | [lindex $ranges 2]]] |
set scale2 [expr 1.02 * $scale] | set scale2 [expr 1.02 * $scale] |
| |
set rot_m $::Orient::calculated_list | set rot_m $::Orient::calculated_list |
| |
set newa1 [coordtrans [lindex $rot_m 0] [lindex $I 0]] | set newa1 [coordtrans [lindex $rot_m 0] [lindex $I 0]] |
set newa2 [coordtrans [lindex $rot_m 1] [lindex $I 1]] | set newa2 [coordtrans [lindex $rot_m 1] [lindex $I 1]] |
set newa3 [coordtrans [lindex $rot_m 2] [lindex $I 2]] | set newa3 [coordtrans [lindex $rot_m 2] [lindex $I 2]] |
| |
set items [list [list xpriori [lindex $ranges 0]] [list ypriori [lindex $ranges 1]] [list zpriori [lindex $ranges 2]]] | #Need to make this chunk more efficient in finding the largest axis and labeling it "1" |
| set items [list [list x [lindex $ranges 0]] [list y [lindex $ranges 1]] [list z [lindex $ranges 2]]] |
set ordered [lsort -real -index 1 $items] | set ordered [lsort -real -index 1 $items] |
| |
puts "testingggg under draw_aligment _ axis $ordered" | set xindex [lsearch $ordered x] |
#set xpriori, ypriori, zpriori variables here. | set yindex [lsearch $ordered y] |
set [lindex $ordered 0 0] 3 | set zindex [lsearch $ordered z] |
set [lindex $ordered 1 0] 2 | if {$xindex == 0} { |
set [lindex $ordered 2 0] 1 | set a1weight "3" |
| } elseif {$xindex == 1} { |
switch [lindex $ordered 2 0] { | set a1weight "2" |
"xpriori" {set priority_axis "[lindex $I 0]"} | } elseif {$xindex == 2} { |
"ypriori" {set priority_axis "[lindex $I 1]"} | set a1weight "3" |
"zpriori" {set priority_axis "[lindex $I 2]"} | } |
| |
| if {$yindex == 0} { |
| set a2weight "3" |
| } elseif {$yindex == 1} { |
| set a2weight "2" |
| } elseif {$yindex == 2} { |
| set a2weight "3" |
| } |
| if {$zindex == 0} { |
| set a3weight "3" |
| } elseif {$zindex == 1} { |
| set a3weight "2" |
| } elseif {$zindex == 2} { |
| set a3weight "3" |
} | } |
| |
graphics $mol color 20 | graphics $mol color 20 |
set COM [Orient::sel_com $x $y $z] | set COM [Orient::sel_com $x $y $z] |
vmd_draw_vector $mol $COM [vecscale $scale $newa1] | vmd_draw_vector $mol $COM [vecscale $scale $newa1] |
vmd_draw_vector $mol $COM [vecscale $scale $newa2] | vmd_draw_vector $mol $COM [vecscale $scale $newa2] |
vmd_draw_vector $mol $COM [vecscale $scale $newa3] | vmd_draw_vector $mol $COM [vecscale $scale $newa3] |
| |
| set a1weight "2" |
| set a2weight "3" |
| set a3weight "1" |
graphics $mol color white | graphics $mol color white |
#now just drawing straight from calculated axis | #now just drawing straight from calculated axis |
graphics $mol text [vecadd $COM [vecscale $scale2 $newa1]] "$xpriori stupiid " | graphics $mol text [vecadd $COM [vecscale $scale2 $newa1]] "$a1weight" |
graphics $mol text [vecadd $COM [vecscale $scale2 $newa2]] "$ypriori stupid y" | graphics $mol text [vecadd $COM [vecscale $scale2 $newa2]] "$a2weight" |
graphics $mol text [vecadd $COM [vecscale $scale2 $newa3]] "$zpriori stupid z" | graphics $mol text [vecadd $COM [vecscale $scale2 $newa3]] "$a3weight" |
set alignment_vector [list $newa1 $newa2 $newa3] | set alignment_vector [list $newa1 $newa2 $newa3] |
return $alignment_vector | return $alignment_vector |
| |
} | } |
| |
#prototype for drawing the alignment axis or "final position" | #prototype for drawing the alignment axis or "final position" |