diff --git a/src/lay/lay/doc/about/25d_screenshot.png b/src/lay/lay/doc/about/25d_screenshot.png index 4515ae722..1796a0573 100644 Binary files a/src/lay/lay/doc/about/25d_screenshot.png and b/src/lay/lay/doc/about/25d_screenshot.png differ diff --git a/src/lay/lay/doc/about/25d_view.xml b/src/lay/lay/doc/about/25d_view.xml index f112260b7..a23667f30 100644 --- a/src/lay/lay/doc/about/25d_view.xml +++ b/src/lay/lay/doc/about/25d_view.xml @@ -143,5 +143,38 @@ end
  • Up/down/left/right keys: move the pivot on the horizontal plane
  • +

    + Note: if the Shift key does not switch to top level view, click into the + scene view once. +

    + +

    Colors in the 2.5d View

    + +

    + While the 2.5d view window is open, the layout view is still active. Layer + colors are applied also to the 2.5d view. Changing the fill color will change + the 2.5d view's face color. The frame color will be applied to the wire frame. + If a hollow stipple is selected, only the wire frame is shown. If a layer is + made invisible in the layout view, the corresponding blocks will also be + made invisible in the 2.5d view. +

    + +

    Other controls

    + +

    + The left zoom slider changes the overall scale factor. The right slider only changes the z (height) axis zoom factor. + This is useful as in many cases, the real height profile will result in a rather flat arrangement. Increasing the + z zoom factor will exaggerate the vertical axis hence making height variations more pronounced. +

    + +

    + The edit boxes next to the scale sliders allow entering the scale factors manually. +

    + +

    + The button bar at the top right side holds the view presets. Use them to reset the window to + front view, top view etc. +

    + diff --git a/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.cc b/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.cc index 6fab0152e..f83b57214 100644 --- a/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.cc +++ b/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.cc @@ -657,8 +657,6 @@ D25ViewWidget::prepare_view () double z0 = zi->zstart (); double z1 = zi->zstop (); - lay::color_t color = lp->fill_color (true); - m_vertex_chunks.push_back (triangle_chunks_type ()); m_line_chunks.push_back (line_chunks_type ()); @@ -667,7 +665,7 @@ D25ViewWidget::prepare_view () info.vertex_chunk = &m_vertex_chunks.back (); info.line_chunk = &m_line_chunks.back (); - m_layer_to_info [std::make_pair (lp->cellview_index (), lp->layer_index ())] = m_layers.size (); + m_layer_to_info.insert (std::make_pair (std::make_pair (lp->cellview_index (), lp->layer_index ()), m_layers.size ())); m_layers.push_back (info); const lay::CellView &cv = mp_view->cellview ((unsigned int) lp->cellview_index ()); @@ -698,12 +696,17 @@ D25ViewWidget::refresh_view () } for (lay::LayerPropertiesConstIterator lp = mp_view->begin_layers (); ! lp.at_end (); ++lp) { - std::map, size_t>::const_iterator l = m_layer_to_info.find (std::make_pair (lp->cellview_index (), lp->layer_index ())); - if (l != m_layer_to_info.end ()) { + + std::pair key = std::make_pair (lp->cellview_index (), lp->layer_index ()); + + std::multimap, size_t>::const_iterator l = m_layer_to_info.find (key); + while (l != m_layer_to_info.end () && l->first == key) { if (l->second < m_layers.size ()) { lp_to_info (*lp, m_layers [l->second]); } + ++l; } + } refresh (); diff --git a/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.h b/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.h index 3975c1913..bf98f147f 100644 --- a/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.h +++ b/src/plugins/tools/view_25d/lay_plugin/layD25ViewWidget.h @@ -168,7 +168,7 @@ private: }; std::vector m_layers; - std::map, size_t> m_layer_to_info; + std::multimap, size_t> m_layer_to_info; void initializeGL (); void paintGL ();