+++ /dev/null
-puts "============"
-puts "0025098: Visualization - Calculation of depth on selection of a wire is not accurate"
-puts "============"
-puts ""
-
-proc ParseEntityInfo {theInfoString} {
- set aStringArr [split $theInfoString " "]
- set isEdgeInfo 0
- set aDepth ""
- set aPoint ""
- set aType ""
- set aSize [llength $aStringArr]
- for {set aIdx 0} {$aIdx < $aSize} {incr aIdx} {
- set aItem [lindex $theInfoString $aIdx]
- if {[string compare $aItem "e"] == 0} {
- set isEdgeInfo 1
- } elseif {[string compare $aItem "Depth:"] == 0} {
- set aDepth [string trim [lindex $theInfoString [expr $aIdx + 1]]]
- } elseif {[string compare $aItem "Point:"] == 0} {
- set aPoint [string trim [lindex $theInfoString [expr $aIdx + 1]]]
- append aPoint " "
- append aPoint [string trim [lindex $theInfoString [expr $aIdx + 2]]]
- append aPoint " "
- append aPoint [string trim [lindex $theInfoString [expr $aIdx + 3]]]
- } elseif {[string compare [string index $aItem 0] "("] == 0} {
- set aType [string trim $aItem]
- }
- }
-
- return [list $isEdgeInfo $aDepth $aPoint $aType]
-}
-
-pload VISUALIZATION MODELING
-vinit View1
-
-box b 10 10 10
-vdisplay b
-vremove b
-
-explode b w
-vdisplay b_5
-
-vertex v1 10 0 0
-vertex v2 10 10 0
-edge e v1 v2
-vdisplay e
-
-vfit
-vmoveto 240 300
-set aOut [split [vstate -entities] "\n"]
-
-# compare parameters of detected match: depth, distance and point
-set anInfoList1Idx 1
-set anInfoList2Idx -1
-set anInfoList1 [ParseEntityInfo [lindex $aOut $anInfoList1Idx]]
-if {[string equal [lindex $anInfoList1 0] "1"]} {
- set anInfoList2Idx 3
-} else {
- set anInfoList2Idx 4
-}
-set anInfoList2 [ParseEntityInfo [lindex $aOut $anInfoList2Idx]]
-for {set aIdx 1} {$aIdx < 3} {incr aIdx} {
- if {[string equal [lindex $anInfoList1 $aIdx] [lindex $anInfoList2 $aIdx]] == 0} {
- set aDebugInfo "Characteristics are not equal at value nb: "
- append aDebugInfo [expr $aIdx + 1]
- puts $aDebugInfo
- set aDebugInfo "The values are: "
- append aDebugInfo [lindex $anInfoList1 $aIdx]
- append aDebugInfo " and "
- append aDebugInfo [lindex $anInfoList2 $aIdx]
- puts $aDebugInfo
- puts "ERROR"
- puts ""
- }
-}
-
-set anEdgeSensitiveType ""
-set aWireSensitiveType ""
-set anEdgeTypeStringNb -1
-set aWireTypeStringNb -1
-if {[string equal [lindex $anInfoList1 0] "1"]} {
- set anEdgeTypeStringNb 2
- set anEdgeSensitiveType [lindex $anInfoList1 3]
- set aWireTypeStringNb 4
- set aWireSensitiveType [lindex $anInfoList2 3]
-} else {
- set anEdgeTypeStringNb 5
- set anEdgeSensitiveType [lindex $anInfoList2 3]
- set aWireTypeStringNb 2
- set aWireSensitiveType [lindex $anInfoList1 3]
-}
-
-# checks that edge e is represented by correct shape and sensitive entity
-if {[string equal $anEdgeSensitiveType "(Select3D_SensitiveSegment)"] == 0} {
- puts "Wrong sensitive for segment! Value is: "
- puts $anEdgeSensitiveType
- puts "Must be: (Select3D_SensitiveSegment)"
- puts "ERROR"
- puts ""
-}
-
-set aEdgeType [string trim [lindex $aOut $anEdgeTypeStringNb]]
-if {[string equal $aEdgeType "Detected Shape: BRep_TEdge"] == 0} {
- puts "Wrong type of edge! Value is: "
- puts $aEdgeType
- puts "Must be: Detected Shape: BRep_TEdge"
- puts "ERROR"
- puts ""
-}
-
-# checks that wire b_5 is represented by correct shape and sensitive entity
-if {[string equal $aWireSensitiveType "(Select3D_SensitiveWire)"] == 0} {
- puts "Wrong sensitive for wire! Value is: "
- puts $aWireSensitiveType
- puts "Must be: (Select3D_SensitiveWire)"
- puts "ERROR"
- puts ""
-}
-
-set aWireType [string trim [lindex $aOut $aWireTypeStringNb]]
-if {[string equal $aWireType "Detected Shape: TopoDS_TWire"] == 0} {
- puts "Wrong type of wire! Value is: "
- puts $aWireType
- puts "Must be: Detected Shape: TopoDS_TWire"
- puts "ERROR"
- puts ""
-}
-
-set aWireChildSensitiveType [string trim [lindex $aOut [expr $aWireTypeStringNb + 1]]]
-if {[string equal $aWireChildSensitiveType "Detected Child: Select3D_SensitiveSegment"] == 0} {
- puts "Wrong type of wire's inner sensitive! Value is: "
- puts $aWireChildSensitiveType
- puts "Must be: Detected Child: Select3D_SensitiveSegment"
- puts "ERROR"
-}