Changeset 4294 for trunk/gui


Ignore:
Timestamp:
Mar 28, 2014 8:23:09 PM (10 years ago)
Author:
ldelgass
Message:

Some work on map and layer styles (not complete)

Location:
trunk/gui/scripts
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/map.tcl

    r4292 r4294  
    123123        }
    124124        $_tree set $child "type" $layerType
    125         foreach key { label description url } {
     125        foreach key { label description opacity status style url } {
    126126            $_tree set $child $key [$layers get $layer.$key]
    127127        }
  • trunk/gui/scripts/mapviewer.tcl

    r4288 r4294  
    101101    private method GetImage { args }
    102102    private method PanCamera {}
    103     private method SetObjectStyle { dataobj layer }
     103    private method SetLayerStyle { dataobj layer }
     104    private method SetMapStyle { style }
    104105    private method SetOpacity { dataset }
    105106    private method SetOrientation { side }
     
    268269
    269270    BuildLayerTab
     271    BuildTerrainTab
    270272    BuildCameraTab
    271273
     
    596598        array unset hints
    597599        array set hints [$dataobj hints]
    598         if { ![info exists overall(type)] } {
     600        if { ![info exists _mapsettings(style)] } {
     601            set _mapsettings(style) $hints(style)
     602        }
     603        if { ![info exists _mapsettings(type)] } {
    599604            set _mapsettings(type) $hints(type)
    600605        } elseif { $hints(type) != $_mapsettings(type) } {
     
    620625    }
    621626    if { $_haveTerrain } {
    622         if { ![$itk_component(main) exists "Terrain Settings"] } {
    623             if { [catch { BuildTerrainTab } errs ]  != 0 } {
    624                 puts stderr "errs=$errs"
    625             }
     627        if { [$itk_component(main) exists "Terrain Settings"] } {
     628            # TODO: Enable controls like vertical scale that only have
     629            # an effect when terrain is present
    626630        }
    627631    }
     
    861865
    862866            if { $_mapsettings(type) == "geocentric" } {
    863                 SendCmd [list map reset "geocentric"]
     867                SendCmd "map reset geocentric"
    864868            }  else {
    865869                set proj $_mapsettings(projection)
    866                 if { $_mapsettings(extents) == "" } {
     870                if { $proj == "" } {
     871                    SendCmd "map reset projected global-mercator"
     872                } elseif { $_mapsettings(extents) == "" } {
    867873                    SendCmd [list map reset "projected" $proj]
    868874                } else {
     
    871877                }
    872878            }
    873             if { $_haveTerrain } {
     879            # FIXME: need to specify initial layer in one command
     880            SendCmd "map layer delete base"
     881            if { [info exists _mapsettings(style)] } {
     882                SetMapStyle $_mapsettings(style)
     883            } else {
    874884                FixSettings terrain-edges terrain-lighting terrain-vertscale \
    875885                    terrain-wireframe
    876886            }
    877             # FIXME: need to specify initial layer in one command
    878             SendCmd "map layer delete base"
    879887            SendCmd "imgflush"
    880888        }
     
    917925                SendCmd [list map layer add $type $info(url) $tag]
    918926                set _datasets($tag) 1
    919                 SetObjectStyle $dataobj $layer
     927                SetLayerStyle $dataobj $layer
    920928            }
    921929            lappend _obj2datasets($dataobj) $tag
     
    15731581}
    15741582
    1575 itcl::body Rappture::MapViewer::SetObjectStyle { dataobj layer } {
     1583itcl::body Rappture::MapViewer::SetMapStyle { style } {
     1584    array set settings {
     1585        -color white
     1586        -edgecolor black
     1587        -edges 0
     1588        -lighting 0
     1589        -linewidth 1.0
     1590        -vertscale 1.0
     1591        -wireframe 0
     1592    }
     1593    array set settings $style
     1594
     1595    SendCmd "map terrain edges $settings(-edges)"
     1596    set _settings(terrain-edges) $settings(-edges)
     1597    #SendCmd "map terrain color [Color2RGB $settings(-color)]"
     1598    #SendCmd "map terrain colormode constant"
     1599    SendCmd "map terrain lighting $settings(-lighting)"
     1600    set _settings(terrain-lighting) $settings(-lighting)
     1601    SendCmd "map terrain linecolor [Color2RGB $settings(-edgecolor)]"
     1602    #SendCmd "map terrain linewidth $settings(-linewidth)"
     1603    SendCmd "map terrain vertscale $settings(-vertscale)"
     1604    set _settings(terrain-vertscale) $settings(-vertscale)
     1605    SendCmd "map terrain wireframe $settings(-wireframe)"
     1606    set _settings(terrain-wireframe) $settings(-wireframe)
     1607}
     1608
     1609itcl::body Rappture::MapViewer::SetLayerStyle { dataobj layer } {
    15761610    set tag $dataobj-$layer
     1611    array set info [$dataobj layer $layer]
    15771612    set _visibility($tag) 1
    1578 
    1579     array set info [$dataobj layer $layer]
     1613    if { [info exists info(status)] } {
     1614        if { $info(status) == "hidden" } {
     1615            set _visibility($tag) 0
     1616            SendCmd "map layer visible 0 $tag"
     1617        }
     1618    }
     1619
    15801620    switch -- $info(type) {
     1621        "raster" {
     1622            array set settings {
     1623                -min_level 0
     1624                -max_level 23
     1625                -opacity 1.0
     1626            }
     1627            if { [info exists info(style)] } {
     1628                array set settings $info(style)
     1629            }
     1630            if { [info exists info(opacity)] } {
     1631                set $_settings(-opacity) $info(opacity)
     1632            }
     1633            SendCmd "map layer opacity $_settings(-opacity) $tag"
     1634        }
    15811635        "elevation" {
    15821636            array set settings {
    1583                 -edgecolor black
    1584                 -edges 0
    1585                 -lighting 1
    1586                 -linewidth 1.0
    1587                 -vertscale 1.0
    1588                 -wireframe 0
     1637                -min_level 0
     1638                -max_level 23
    15891639            }
    15901640            if { [info exists info(style)] } {
    15911641                array set settings $info(style)
    15921642            }
    1593             SendCmd "map terrain edges $settings(-edges)"
    1594             set _settings(terrain-edges) $settings(-edges)
    1595             #SendCmd "map terrain color [Color2RGB $settings(-color)]"
    1596             #SendCmd "map terrain colormode constant {}"
    1597             SendCmd "map terrain lighting $settings(-lighting)"
    1598             set _settings(terrain-lighting) $settings(-lighting)
    1599             SendCmd "map terrain linecolor [Color2RGB $settings(-edgecolor)]"
    1600             #SendCmd "map terrain linewidth $settings(-linewidth)"
    1601             SendCmd "map terrain wireframe $settings(-wireframe)"
    1602             set _settings(terrain-wireframe) $settings(-wireframe)
    1603         }
    1604     }
    1605     #SetColormap $dataobj $layer
     1643        }
     1644        "line" {
     1645            array set settings {
     1646                -color black
     1647                -minbias 1000
     1648                -opacity 1.0
     1649                -width 1
     1650            }
     1651            if { [info exists info(style)] } {
     1652                array set settings $info(style)
     1653            }
     1654            if { [info exists info(opacity)] } {
     1655                set $_settings(-opacity) $info(opacity)
     1656            }
     1657            SendCmd "map layer opacity $_settings(-opacity) $tag"
     1658        }
     1659        "polygon" {
     1660            array set settings {
     1661                -color black
     1662                -minbias 1000
     1663                -opacity 1.0
     1664            }
     1665            if { [info exists info(style)] } {
     1666                array set settings $info(style)
     1667            }
     1668            if { [info exists info(opacity)] } {
     1669                set $_settings(-opacity) $info(opacity)
     1670            }
     1671            SendCmd "map layer opacity $_settings(-opacity) $tag"
     1672        }
     1673    }
    16061674}
    16071675
Note: See TracChangeset for help on using the changeset viewer.