Week - 7 - Checking and correcting the edges
AIM: To wirte a program to correcting and checking the edges.
PROCEDURE:
CODE:
#Display set to transperant mode
*setdisplayattributes 4 1
#Previewing equivalence
*createmark elements 1 "displayed"
*equivalence elements 1 0.01 0 0 0
#saving the equivalence node.
*createmark elements 1 "displayed"
*equivalence elements 1 0.01 3 0 0
#Retrieving the equivalence nodes
*createmark nodes 1
*nodemarkaddtempmark 1
#Finding free edges
*createmark elements 1 "displayed"
*findedges1 elements 1 0 0 0 30
#Renaming Free edges
*startnotehistorystate {Renamed Components from "^edges" to "Free Edges"}
*setvalue comps name=^edges name={Free Edges}
#Finding T-edges:
*createmark elements 1 "displayed"
*findedges1 elements 1 1 0 0 30
#Renaming T-edges
*startnotehistorystate {Renamed Components from "^edges" to "T edges"}
*setvalue comps name=^edges name={T edges}
#Changing Color for T edges
*createmark components 1 "T edges"
*setvalue comps mark=1 color=#FFFF00
*clearmark components 1
#Changing the display
*applydisplayattributes 4 1
*setcomponentdisplayattributes "T edges" 4 1
*setcomponentdisplayattributes "Free Edges" 4 1
*setcomponentdisplayattributes "T edges" 2 1
*setcomponentdisplayattributes "Free Edges" 2 1
#To delete the Edges
*clearmark components 1
*createmark components 1 "Free Edges" "T edges"
*deletemark components 1
#To get back to normal display
*setdisplayattributes 2 0
Now next is to add this on the widget:
# Setting up the window:
set a .window
catch {destroy $a}
toplevel $a -class TopLevel
wm title $a "EDGES"
wm geometry $a 220x200+100+200; update
wm resizable $a 0 0
wm deiconify $a
# Adding procedure 1
proc FREE {} {
*setdisplayattributes 4 1
*createmark elements 1 "displayed"
*equivalence elements 1 0.01 0 0 0
*createmark elements 1 "displayed"
*equivalence elements 1 0.01 3 0 0
*createmark nodes 1
*nodemarkaddtempmark 1
*createmark elements 1 "displayed"
*findedges1 elements 1 0 0 0 30
*startnotehistorystate {Renamed Components from "^edges" to "Free Edges"}
*setvalue comps name=^edges name={Free Edges}
*createmark elements 1 "displayed"
*findedges1 elements 1 1 0 0 30
*startnotehistorystate {Renamed Components from "^edges" to "T edges"}
*setvalue comps name=^edges name={T edges}
*createmark components 1 "T edges"
*setvalue comps mark=1 color=#FFFF00
*clearmark components 1
*applydisplayattributes 4 1
*setcomponentdisplayattributes "T edges" 4 1
*setcomponentdisplayattributes "Free Edges" 4 1
*setcomponentdisplayattributes "T edges" 2 1
*setcomponentdisplayattributes "Free Edges" 2 1
}
#Creating button 1button $a.01 -text "FREE EDGES" -command {FREE} -bg red -font {arial 10 } ; place $a.01 -x 60 -y 40 -width 100 -height 30
#Adding procedure 2
proc off {} {
*clearmark components 1
*createmark components 1 "Free Edges" "T edges"
*deletemark components 1
*setdisplayattributes 2 0
}
#Creating button 2
button $a.02 -text "TURN OFF EDGES" -command {off} -bg cyan -font {arial 10 } ; place $a.02 -x 35 -y 130 -width 150 -height 30
OUTPUT:
1: Widget:

1. FREE EDGES: After clicking on free edges it shows as below:

2. OFF EDGES: After clicking on off edges it shows as below:
- It came back to its original display.
