Use immediately after warp.
obj method canvaseditor connectWarpedLineToDot dot1 {
$self buildInfoWindow
$self statusLine Failure: not connected
# exactly one object selected?
set selection [my selection]
if {[llength $selection] != 1} then {
$self statusLine Failure: more than 1 object selected
return
}
# not a chaining dot?
set lines [$dot1 private lines]
if {[llength $lines] != 1} then {
$self statusLine Failure: target ist connection of [llength $lines] lines
return
}
lassign $lines line1
lassign $selection line0
# is object a line?
if {![$line0 isa line]} then {
$self statusLine Failure: [$line0 info class] selected
return
}
# same group?
if {[$line0 group] ne [$line1 group]} then {
$self statusLine Failure: not same group
return
}
set dot0 [$self memory currentDot]
# exactly one line?
if {[llength [$dot0 lines]] != 1} then {
$self statusLine Failure: warped line already connected
return
}
#
if {
($dot0 eq [$line0 lastDot] && $dot1 eq [$line1 lastDot] ) ||
($dot0 eq [$line0 firstDot] && $dot1 eq [$line1 firstDot] )
} then {
foreach line [$line0 chainedList] {
$line private dots [lreverse [$line private dots]]
}
}
if {[$line0 lastDot] eq $dot0} then {
$line0 joinEnd $line1
} else {
$line0 joinEnd $line1 first
}
$self statusLine Success: lines connected
}
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z