Revision: 50573
          http://brlcad.svn.sourceforge.net/brlcad/?rev=50573&view=rev
Author:   bob1961
Date:     2012-05-17 11:48:11 +0000 (Thu, 17 May 2012)
Log Message:
-----------
Added a perspective angle preference.

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

Modified: brlcad/trunk/src/tclscripts/archer/Archer.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/Archer.tcl       2012-05-16 18:08:49 UTC 
(rev 50572)
+++ brlcad/trunk/src/tclscripts/archer/Archer.tcl       2012-05-17 11:48:11 UTC 
(rev 50573)
@@ -499,6 +499,7 @@
     Load ""
 
     if {!$mViewOnly} {
+       pushPerspectiveSettings
        pushZClipSettings
     }
 
@@ -2288,6 +2289,22 @@
 
     set parent $itk_component(displayF)
 
+    itk_component add perspectiveL {
+       ::ttk::label $parent.perspectiveL \
+           -anchor se \
+           -text "Perspective Angle:"
+    } {}
+    itk_component add perspectiveS {
+       ::scale $parent.perspectiveS \
+           -showvalue 1 \
+           -orient horizontal \
+           -from 0.0 \
+           -to 175.0 \
+           -resolution 5 \
+           -variable [::itcl::scope mPerspectivePref] \
+           -command [::itcl::code $this updatePerspective]
+    }
+
     itk_component add zclipFrontL {
        ::ttk::label $parent.zclipFrontL \
            -anchor se \
@@ -2422,6 +2439,9 @@
     grid columnconfigure $itk_component(lightModeF) 0 -weight 1
 
     set i 0
+    grid $itk_component(perspectiveL) -column 0 -row $i -sticky se
+    grid $itk_component(perspectiveS) -column 1 -row $i -sticky ew
+    incr i
     grid $itk_component(zclipBackL) -column 0 -row $i -sticky se
     grid $itk_component(zclipBackS) -column 1 -row $i -sticky ew
     incr i
@@ -7511,11 +7531,13 @@
 
 ::itcl::body Archer::applyDisplayPreferences {} {
     updateDisplaySettings
-    doLighting
 }
 
 
 ::itcl::body Archer::applyDisplayPreferencesIfDiff {} {
+    set rflag 0
+    $itk_component(ged) refresh_off
+
     if {$mZClipBackMaxPref != $mZClipBackMax ||
        $mZClipFrontMaxPref != $mZClipFrontMax ||
        $mZClipBackPref != $mZClipBack ||
@@ -7524,18 +7546,33 @@
        set mZClipFrontMax $mZClipFrontMaxPref
        set mZClipBack $mZClipBackPref
        set mZClipFront $mZClipFrontPref
-       updateDisplaySettings
+
+       updateZClipPlanes 0
+       set rflag 1
     }
 
+    if {$mPerspectivePref != $mPerspective} {
+       set mPerspective $mPerspectivePref
+       updatePerspective 0
+       set rflag 1
+    }
+
     if {$mLightingModePref != $mLightingMode} {
        set mLightingMode $mLightingModePref
        doLighting
+       set rflag 1
     }
 
     if {$mDisplayListModePref != $mDisplayListMode} {
        set mDisplayListMode $mDisplayListModePref
        gedCmd dlist_on $mDisplayListMode
+       set rflag 1
     }
+
+    $itk_component(ged) refresh_on
+    if {$rflag} {
+       $itk_component(ged) refresh_all
+    }
 }
 
 
@@ -8107,18 +8144,34 @@
 
 
 ::itcl::body Archer::cancelPreferences {} {
+    set rflag 0
+    $itk_component(ged) refresh_off
 
     # Handling special case for zclip prefences (i.e. put zclip planes back 
where they were)
     if {$mZClipBackMaxPref != $mZClipBackMax ||
        $mZClipFrontMaxPref != $mZClipFrontMax ||
        $mZClipBackPref != $mZClipBack ||
        $mZClipFrontPref != $mZClipFront} {
+
        set mZClipBackMaxPref $mZClipBackMax
        set mZClipFrontMaxPref $mZClipFrontMax
        set mZClipBackPref $mZClipBack
        set mZClipFrontPref $mZClipFront
-       updateDisplaySettings
+
+       updateZClipPlanes 0
+       set rflag 1
     }
+
+    if {$mPerspectivePref != $mPerspective} {
+       set mPerspectivePref $mPerspective
+       updatePerspective 0
+       set rflag 1
+    }
+
+    $itk_component(ged) refresh_on
+    if {$rflag} {
+       $itk_component(ged) refresh_all
+    }
 }
 
 ::itcl::body Archer::doPreferences {} {
@@ -8183,6 +8236,8 @@
     set mModelAxesTickColorPref $mModelAxesTickColor
     set mModelAxesTickMajorColorPref $mModelAxesTickMajorColor
 
+    set mPerspectivePref $mPerspective
+
     set mZClipBackMaxPref $mZClipBackMax
     set mZClipFrontMaxPref $mZClipFrontMax
     set mZClipBackPref $mZClipBack
@@ -8337,6 +8392,7 @@
     puts $_pfile "set mModelAxesTickMajorColor \"$mModelAxesTickMajorColor\""
 
     puts $_pfile "set mLastSelectedDir \"$mLastSelectedDir\""
+    puts $_pfile "set mPerspective $mPerspective"
     puts $_pfile "set mZClipBackMax $mZClipBackMax"
     puts $_pfile "set mZClipFrontMax $mZClipFrontMax"
     puts $_pfile "set mZClipBack $mZClipBack"

Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl   2012-05-16 18:08:49 UTC 
(rev 50572)
+++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl   2012-05-17 11:48:11 UTC 
(rev 50573)
@@ -380,6 +380,9 @@
        variable mCompSelectGroupPref ""
        variable mCompSelectGroupList ""
 
+       variable mPerspective 0
+       variable mPerspectivePref 0
+
        variable mZClipBack 100.0
        variable mZClipBackPref 100.0
        variable mZClipFront 100.0
@@ -565,10 +568,12 @@
        method launchRtApp {_app _size}
 
        method updateDisplaySettings {}
+       method updatePerspective {_unused}
        method updateZClipPlanes {_unused}
        method calculateZClipMax {}
        method calculateZClipBackMax {}
        method calculateZClipFrontMax {}
+       method pushPerspectiveSettings {}
        method pushZClipSettings {}
 
        method shootRay_doit {_start _op _target _prep _no_bool _onehit 
_bot_dflag _objects}
@@ -5100,9 +5105,21 @@
 }
 
 ::itcl::body ArcherCore::updateDisplaySettings {} {
+    $itk_component(ged) refresh_off
+
     updateZClipPlanes 0
+    updatePerspective 0
+    doLighting
+    gedCmd dlist_on $mDisplayListMode
+
+    $itk_component(ged) refresh_on
+    $itk_component(ged) refresh_all
 }
 
+::itcl::body ArcherCore::updatePerspective {_unused} {
+    $itk_component(ged) perspective_all $mPerspectivePref
+}
+
 ::itcl::body ArcherCore::updateZClipPlanes {_unused} {
     set near [expr {0.01 * $mZClipFrontPref * $mZClipFrontMaxPref}]
     set far [expr {0.01 * $mZClipBackPref * $mZClipBackMaxPref}]
@@ -5132,12 +5149,17 @@
     updateZClipPlanes 0
 }
 
+::itcl::body ArcherCore::pushPerspectiveSettings {} {
+    set mPerspectivePref $mPerspective
+    updatePerspective 0
+}
+
 ::itcl::body ArcherCore::pushZClipSettings {} {
     set mZClipBackMaxPref $mZClipBackMax
     set mZClipFrontMaxPref $mZClipFrontMax
     set mZClipBackPref $mZClipBack
     set mZClipFrontPref $mZClipFront
-    updateDisplaySettings
+    updateZClipPlanes 0
 }
 
 ::itcl::body ArcherCore::shootRay_doit {_start _op _target _prep _no_bool 
_onehit _bot_dflag _objects} {

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


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to