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