Revision: 54433
          http://brlcad.svn.sourceforge.net/brlcad/?rev=54433&view=rev
Author:   bob1961
Date:     2013-02-19 17:52:49 +0000 (Tue, 19 Feb 2013)
Log Message:
-----------
Refactored a bit of code related to the various edit panels. Also added code to 
clear data associated with highlighting the primitives being edited.

Modified Paths:
--------------
    brlcad/trunk/src/tclscripts/archer/Archer.tcl
    brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
    brlcad/trunk/src/tclscripts/archer/BotEditFrame.tcl
    brlcad/trunk/src/tclscripts/archer/GeometryEditFrame.tcl

Modified: brlcad/trunk/src/tclscripts/archer/Archer.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/Archer.tcl       2013-02-19 15:51:30 UTC 
(rev 54432)
+++ brlcad/trunk/src/tclscripts/archer/Archer.tcl       2013-02-19 17:52:49 UTC 
(rev 54433)
@@ -290,6 +290,8 @@
        method initMode {{_updateFractions 0}}
 
        # Object Edit Section
+       method clearEditState {{_clearModeOnly 0}}
+       method getEditView {}
        method initEdit {{_initEditMode 1}}
 
        # Object Edit VIA Mouse Section
@@ -1684,11 +1686,6 @@
     set mDbTitle [$itk_component(ged) title]
     set mDbUnits [$itk_component(ged) units -s]
 
-    # Reset the bot edit panel
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
     if {!$mViewOnly} {
        initDbAttrView $mTarget
        applyPreferences
@@ -2002,28 +1999,19 @@
 
 
 ::itcl::body Archer::beginViewRotate {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
+    clearEditState
     ArcherCore::beginViewRotate
 }
 
 
 ::itcl::body Archer::beginViewScale {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
+    clearEditState
     ArcherCore::beginViewScale
 }
 
 
 ::itcl::body Archer::beginViewTranslate {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
+    clearEditState
     ArcherCore::beginViewTranslate
 }
 
@@ -2168,23 +2156,20 @@
                    }
            }
        }
+
+       clearEditState
     }
 }
 
 
 ::itcl::body Archer::initCompPick {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
+    clearEditState
     ArcherCore::initCompPick
 }
 
 
 ::itcl::body Archer::initCompSelect {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState 1
-    }
+    clearEditState 1
 
     if {$mCompSelectMode != $COMP_SELECT_LIST_MODE &&
        $mCompSelectMode != $COMP_SELECT_LIST_PARTIAL_MODE &&
@@ -2259,10 +2244,7 @@
 
 
 ::itcl::body Archer::initViewCenterMode {} {
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
-
+    clearEditState
     ArcherCore::initViewCenterMode
 }
 
@@ -6015,177 +5997,237 @@
 ################################### Object Edit Section 
###################################
 
 
-::itcl::body Archer::initEdit {{_initEditMode 1}} {
-    if {[catch {gedCmd get_type $mSelectedObj} mSelectedObjType]} {
-       if {![info exists itk_component(invalidView)]} {
-           buildInvalidObjEditView
-       }
+::itcl::body Archer::clearEditState {{_clearModeOnly 0}} {
+    set editView [getEditView]
 
-       initInvalidObjEditView $mSelectedObj
-       return
+    if {$editView != ""} {
+       $editView clearEditState $_clearModeOnly
     }
+}
 
-    set odata [lrange [gedCmd get $mSelectedObj] 1 end]
-    restoreCanvas
 
-    if {$_initEditMode && [info exists GeometryEditFrame::mEditCommand]} {
-       set GeometryEditFrame::mEditMode 0
-       set GeometryEditFrame::mEditClass $GeometryEditFrame::EDIT_CLASS_NONE
-       set GeometryEditFrame::mEditCommand ""
-       set GeometryEditFrame::mEditParam1 0
-       set GeometryEditFrame::mEditParam2 0
-       set GeometryEditFrame::mEditPCommand ""
-    }
-
+::itcl::body Archer::getEditView {} {
     switch -- $mSelectedObjType {
        "arb4" {
            if {![info exists itk_component(arb4View)]} {
                buildArb4EditView
            }
-           initArb4EditView $odata
+
+           return $itk_component(arb4View)
        }
        "arb5" {
            if {![info exists itk_component(arb5View)]} {
                buildArb5EditView
            }
-           initArb5EditView $odata
+
+           return $itk_component(arb5View)
        }
        "arb6" {
            if {![info exists itk_component(arb6View)]} {
                buildArb6EditView
            }
-           initArb6EditView $odata
+
+           return $itk_component(arb6View)
        }
        "arb7" {
            if {![info exists itk_component(arb7View)]} {
                buildArb7EditView
            }
-           initArb7EditView $odata
+
+           return $itk_component(arb7View)
        }
        "arb8" {
            if {![info exists itk_component(arb8View)]} {
                buildArb8EditView
            }
-           initArb8EditView $odata
+
+           return $itk_component(arb8View)
        }
        "bot" {
            if {![info exists itk_component(botView)]} {
                buildBotEditView
            }
-           initBotEditView $odata
+
+           return $itk_component(botView)
        }
        "comb" {
            if {![info exists itk_component(combView)]} {
                buildCombEditView
            }
-           initCombEditView $odata
+
+           return $itk_component(combView)
        }
        "ell" {
            if {![info exists itk_component(ellView)]} {
                buildEllEditView
            }
-           initEllEditView $odata
+
+           return $itk_component(ellView)
        }
        "ehy" {
            if {![info exists itk_component(ehyView)]} {
                buildEhyEditView
            }
-           initEhyEditView $odata
+
+           return $itk_component(ehyView)
        }
        "epa" {
            if {![info exists itk_component(epaView)]} {
                buildEpaEditView
            }
-           initEpaEditView $odata
+
+           return $itk_component(epaView)
        }
        "eto" {
            if {![info exists itk_component(etoView)]} {
                buildEtoEditView
            }
-           initEtoEditView $odata
+
+           return $itk_component(etoView)
        }
        "extrude" {
            if {![info exists itk_component(extrudeView)]} {
                buildExtrudeEditView
            }
-           initExtrudeEditView $odata
+
+           return $itk_component(extrudeView)
        }
        "grip" {
            if {![info exists itk_component(gripView)]} {
                buildGripEditView
            }
-           initGripEditView $odata
+
+           return $itk_component(gripView)
        }
        "half" {
            if {![info exists itk_component(halfView)]} {
                buildHalfEditView
            }
-           initHalfEditView $odata
+
+           return $itk_component(halfView)
        }
        "hyp" {
            if {![info exists itk_component(hypView)]} {
                buildHypEditView
            }
-           initHypEditView $odata
+
+           return $itk_component(hypView)
        }
        "part" {
            if {![info exists itk_component(partView)]} {
                buildPartEditView
            }
-           initPartEditView $odata
+
+           return $itk_component(partView)
        }
        "pipe" {
            if {![info exists itk_component(pipeView)]} {
                buildPipeEditView
            }
-           initPipeEditView $odata
+
+           return $itk_component(pipeView)
        }
        "rpc" {
            if {![info exists itk_component(rpcView)]} {
                buildRpcEditView
            }
-           initRpcEditView $odata
+
+           return $itk_component(rpcView)
        }
        "rhc" {
            if {![info exists itk_component(rhcView)]} {
                buildRhcEditView
            }
-           initRhcEditView $odata
+
+           return $itk_component(rhcView)
        }
        "sketch" {
            if {![info exists itk_component(sketchView)]} {
                buildSketchEditView
            }
-           initSketchEditView $odata
+
+           return $itk_component(sketchView)
        }
        "sph" {
            if {![info exists itk_component(sphView)]} {
                buildSphereEditView
            }
-           initSphereEditView $odata
+
+           return $itk_component(sphView)
        }
        "superell" {
            if {![info exists itk_component(superellView)]} {
                buildSuperellEditView
            }
-           initSuperellEditView $odata
+
+           return $itk_component(superellView)
        }
        "tgc" {
            if {![info exists itk_component(tgcView)]} {
                buildTgcEditView
            }
-           initTgcEditView $odata
+
+           return $itk_component(tgcView)
        }
        "tor" {
            if {![info exists itk_component(torView)]} {
                buildTorusEditView
            }
-           initTorusEditView $odata
+
+           return $itk_component(torView)
        }
     }
+
+    return ""
 }
 
 
+::itcl::body Archer::initEdit {{_initEditMode 1}} {
+    if {[catch {gedCmd get_type $mSelectedObj} mSelectedObjType]} {
+       if {![info exists itk_component(invalidView)]} {
+           buildInvalidObjEditView
+       }
+
+       initInvalidObjEditView $mSelectedObj
+       return
+    }
+
+    set odata [lrange [gedCmd get $mSelectedObj] 1 end]
+    restoreCanvas
+
+    if {$_initEditMode && [info exists GeometryEditFrame::mEditCommand]} {
+       set GeometryEditFrame::mEditMode 0
+       set GeometryEditFrame::mEditClass $GeometryEditFrame::EDIT_CLASS_NONE
+       set GeometryEditFrame::mEditCommand ""
+       set GeometryEditFrame::mEditParam1 0
+       set GeometryEditFrame::mEditParam2 0
+       set GeometryEditFrame::mEditPCommand ""
+    }
+
+    if {$mAllowDataClear} {
+       gedCmd data_axes points {}
+       gedCmd data_lines points {}
+    }
+
+    set editView [getEditView]
+    if {$editView == ""} {
+       return
+    }
+
+    $editView configure \
+       -geometryObject $mSelectedObj \
+       -geometryObjectPath $mSelectedObjPath \
+       -geometryChangedCallback [::itcl::code $this updateObjEditView] \
+       -mged $itk_component(ged) \
+       -labelFont $mFontText \
+       -boldLabelFont $mFontTextBold \
+       -entryFont $mFontText
+    $editView initGeometry $odata
+
+    pack $editView -expand yes -fill both
+}
+
+
 ################################### Object Edit via Mouse Section 
###################################
 
 ::itcl::body Archer::beginObjRotate {} {
@@ -6197,9 +6239,7 @@
        return
     }
 
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
+    clearEditState
 
     if {$GeometryEditFrame::mEditClass != $GeometryEditFrame::EDIT_CLASS_ROT} {
        initEdit
@@ -6236,9 +6276,7 @@
        return
     }
 
-    if {[info exists itk_component(botView)]} {
-       $itk_component(botView) clearEditState
-    }
+    clearEditState
 
     if {$GeometryEditFrame::mEditClass != 
$GeometryEditFrame::EDIT_CLASS_SCALE} {
        initEdit
@@ -6323,7 +6361,7 @@
        set mNumSelectedBotPts [$itk_component(botView) setMoveMode]
 
        if {$mNumSelectedBotPts != 1} {
-           $itk_component(botView) clearEditState
+           clearEditState
        }
     }
 

Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl   2013-02-19 15:51:30 UTC 
(rev 54432)
+++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl   2013-02-19 17:52:49 UTC 
(rev 54433)
@@ -345,6 +345,7 @@
        variable mPasteActive 0
        variable mMultiPane 0
        variable mTransparency 0
+       variable mAllowDataClear 1
 
        variable mHPaneFraction1 80
        variable mHPaneFraction2 20
@@ -3539,6 +3540,11 @@
            gedCmd configure -primitiveLabels $plnode
        } else {
            gedCmd configure -primitiveLabels {}
+
+           if {$mAllowDataClear} {
+               gedCmd data_axes points {}
+               gedCmd data_lines points {}
+           }
        }
     } else {
        set soi -1
@@ -3550,6 +3556,11 @@
 
        if {$soi != -1} {
            gedCmd configure -primitiveLabels {}
+
+           if {$mAllowDataClear} {
+               gedCmd data_axes points {}
+               gedCmd data_lines points {}
+           }
        }
     }
 
@@ -5842,6 +5853,11 @@
 
     if {$soi != -1} {
        gedCmd configure -primitiveLabels {}
+
+       if {$mAllowDataClear} {
+           gedCmd data_axes points {}
+           gedCmd data_lines points {}
+       }
     }
 
     updateTreeDrawLists

Modified: brlcad/trunk/src/tclscripts/archer/BotEditFrame.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/BotEditFrame.tcl 2013-02-19 15:51:30 UTC 
(rev 54432)
+++ brlcad/trunk/src/tclscripts/archer/BotEditFrame.tcl 2013-02-19 17:52:49 UTC 
(rev 54433)
@@ -75,12 +75,12 @@
            {Split Face}
        }
 
-       method clearEditState {{_clearModeOnly 0}}
        method clearAllTables {}
        method selectBotPts {_plist}
        method setMoveMode {{_tflag 0}}
 
        # Override what's in GeometryEditFrame
+       method clearEditState {{_clearModeOnly 0}}
        method initGeometry {_gdata}
        method updateGeometry {}
        method createGeometry {_name}
@@ -172,18 +172,6 @@
 
 
 
-::itcl::body BotEditFrame::clearEditState {{_clearModeOnly 0}} {
-    set mEditMode 0
-
-    if {$_clearModeOnly} {
-       return
-    }
-
-    clearAllTables
-    set itk_option(-prevGeometryObject) ""
-}
-
-
 ::itcl::body BotEditFrame::clearAllTables {} {
     $itk_option(-mged) data_axes points {}
     $itk_option(-mged) data_lines points {}
@@ -234,6 +222,18 @@
 }
 
 
+::itcl::body BotEditFrame::clearEditState {{_clearModeOnly 0}} {
+    set mEditMode 0
+
+    if {$_clearModeOnly} {
+       return
+    }
+
+    clearAllTables
+    set itk_option(-prevGeometryObject) ""
+}
+
+
 ## - initGeometry
 #
 # Initialize the variables containing the object's specification.
@@ -253,11 +253,11 @@
        set mCurrentBotEdges ""
        set mCurrentBotFaces ""
        set itk_option(-prevGeometryObject) $itk_option(-geometryObject)
-
-       $itk_component(edgeTab) unselectAllRows
-       $itk_component(faceTab) unselectAllRows
     }
 
+    $itk_component(edgeTab) unselectAllRows
+    $itk_component(faceTab) unselectAllRows
+
     selectCurrentBotPoints
 }
 
@@ -958,7 +958,6 @@
        return
     }
 
-
     set hpoints {}
     foreach index $mCurrentBotPoints {
        incr index -1

Modified: brlcad/trunk/src/tclscripts/archer/GeometryEditFrame.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/GeometryEditFrame.tcl    2013-02-19 
15:51:30 UTC (rev 54432)
+++ brlcad/trunk/src/tclscripts/archer/GeometryEditFrame.tcl    2013-02-19 
17:52:49 UTC (rev 54433)
@@ -63,6 +63,7 @@
        proc validateColorComp {c}
        proc validateColor {color}
 
+       method clearEditState {{_clearModeOnly 0}}
        method childsite {{site upper}}
 
        method initGeometry {gdata}
@@ -238,6 +239,12 @@
 #                      PUBLIC METHODS
 # ------------------------------------------------------------
 
+
+::itcl::body GeometryEditFrame::clearEditState {{_clearModeOnly 0}} {
+    # Nothing for now
+}
+
+
 ::itcl::body GeometryEditFrame::childsite {{site upper}} {
     switch -- $site {
        "lower" {
@@ -308,6 +315,8 @@
 }
 
 ::itcl::body GeometryEditFrame::initEditState {} {
+    set itk_option(-prevGeometryObject) $itk_option(-geometryObject)
+
     if {$mEditClass == $EDIT_CLASS_ROT} {
        $::ArcherCore::application setDefaultBindingMode 
$::ArcherCore::OBJECT_ROTATE_MODE
     } elseif {$mEditClass == $EDIT_CLASS_SCALE} {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to