0027731: Visualization, OpenGl_AspectMarker - handle fractional marker Scale when...
[occt.git] / samples / tcl / markers.tcl
CommitLineData
fd59283a 1# Markers demo
2#
3# It shows the various marker types supported by OCCT.
4
5#Category: Visualization
6#Title: Markers in 3d viewer
7
8pload MODELING VISUALIZATION
9
10# reflects Aspect_TypeOfMarker enumeration
11set aMarkerTypeNames {
12 Aspect_TOM_POINT
13 Aspect_TOM_PLUS
14 Aspect_TOM_STAR
15 Aspect_TOM_X
16 Aspect_TOM_O
17 Aspect_TOM_O_POINT
18 Aspect_TOM_O_PLUS
19 Aspect_TOM_O_STAR
20 Aspect_TOM_O_X
21 Aspect_TOM_RING1
22 Aspect_TOM_RING2
23 Aspect_TOM_RING3
24 Aspect_TOM_BALL
25 Aspect_TOM_USERDEFINED
26}
27
28# custom marker
29set aCustom1 [locate_data_file images/marker_box1.png]
30set aCustom2 [locate_data_file images/marker_box2.png]
31set aCustom3 [locate_data_file images/marker_kr.png]
32set aCustom4 [locate_data_file images/marker_dot.png]
33
d509e5a4 34set aFontFile ""
35catch { set aFontFile [locate_data_file DejaVuSans.ttf] }
fd59283a 36set aLabelFont "Arial"
37if { "$aFontFile" != "" } {
38 vfont add "$aFontFile" SansFont
39 set aLabelFont "SansFont"
40}
41
42# reset the viewer
43vclear
44vclose ALL
45vinit name=View1 l=32 t=32 w=512 h=512
46
47puts "Draw box in advance which should fit all our markers"
48box b -8 -8 0 16 16 2
49vbottom
50vdisplay -noupdate -dispmode 0 b
51vfit
52vremove -noupdate b
53
54puts "Draw markers of different type and size"
55for { set aMarkerType 0 } { $aMarkerType <= 13 } { incr aMarkerType } {
56 set aRow [expr $aMarkerType - 7]
57 set aCol 5
58 set aName [lindex $aMarkerTypeNames $aMarkerType]
d509e5a4 59 vdrawtext "$aName" "$aName" -pos 0 [expr $aRow + 0.5] 0 -color 0.5 1.0 1.0 -halign center -valign center -angle 000 -zoom 0 -height 12 -aspect bold -font $aLabelFont -noupdate
60 vdisplay -top -noupdate "$aName"
fd59283a 61 if { $aMarkerType == 13 } {
62 vmarkerstest m${aMarkerType}_${aCol} $aCol $aRow 0 PointsOnSide=1 FileName=$aCustom1
63 set aCol [expr $aCol - 1]
64 vmarkerstest m${aMarkerType}_${aCol} $aCol $aRow 0 PointsOnSide=1 FileName=$aCustom2
65 set aCol [expr $aCol - 1]
66 vmarkerstest m${aMarkerType}_${aCol} $aCol $aRow 0 PointsOnSide=1 FileName=$aCustom3
67 set aCol [expr $aCol - 1]
68 vmarkerstest m${aMarkerType}_${aCol} $aCol $aRow 0 PointsOnSide=1 FileName=$aCustom4
69 } else {
70 for { set aMarkerScale 1.0 } { $aMarkerScale <= 7 } { set aMarkerScale [expr $aMarkerScale + 0.5] } {
71 vmarkerstest m${aMarkerType}_${aCol} $aCol $aRow 0 MarkerType=$aMarkerType Scale=$aMarkerScale PointsOnSide=1
72 set aCol [expr $aCol - 1]
73 }
74 }
75}
76puts "All markers have been displayed"