From: <hug...@li...> - 2011-07-12 08:43:13
|
branch: details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/acafcb92e599 changeset: 5388:acafcb92e599 user: Yuval Levy <yu...@us...> date: Tue Jul 12 04:43:00 2011 -0400 description: Let user switch inside/outside view of the panosphere diffstat: src/hugin1/hugin/GLPreviewFrame.cpp | 18 ++++++++++++++++++ src/hugin1/hugin/GLPreviewFrame.h | 5 +++++ src/hugin1/hugin/GLRenderer.cpp | 12 ++++++++---- src/hugin1/hugin/xrc/preview_frame.xrc | 17 ++++++++++++++++- 4 files changed, 47 insertions(+), 5 deletions(-) diffs (134 lines): diff -r 11c8d2ddb71f -r acafcb92e599 src/hugin1/hugin/GLPreviewFrame.cpp --- a/src/hugin1/hugin/GLPreviewFrame.cpp Tue Jul 12 02:58:51 2011 -0400 +++ b/src/hugin1/hugin/GLPreviewFrame.cpp Tue Jul 12 04:43:00 2011 -0400 @@ -172,6 +172,7 @@ EVT_TOOL(ID_UNDO, GLPreviewFrame::OnUndo) EVT_TOOL(ID_REDO, GLPreviewFrame::OnRedo) EVT_COLOURPICKER_CHANGED(XRCID("preview_background"), GLPreviewFrame::OnPreviewBackgroundColorChanged) + EVT_CHECKBOX(XRCID("preview_flip"), GLPreviewFrame::OnFlip) END_EVENT_TABLE() BEGIN_EVENT_TABLE(ImageToogleButtonEventHandler, wxEvtHandler) @@ -530,6 +531,9 @@ m_topsizer->Add(vis_panel, 1, wxEXPAND); + // initialize flip status + m_flipSwitch = XRCCTRL(*this, "preview_flip", wxCheckBox); + m_flip=false; m_ProjectionChoice = XRCCTRL(*this,"projection_choice",wxChoice); @@ -2612,3 +2616,17 @@ wxColor GLPreviewFrame::GetPreviewBackgroundColor() { return m_preview_background_color; } + +void GLPreviewFrame::OnFlip(wxCommandEvent & e) { + if(m_flipSwitch->GetValue()) { + m_flip = true; + } else { + m_flip = false; + } + m_GLOverview->Refresh(); + redrawPreview(); +} + +bool GLPreviewFrame::GetFlip() { + return m_flip; +} \ No newline at end of file diff -r 11c8d2ddb71f -r acafcb92e599 src/hugin1/hugin/GLPreviewFrame.h --- a/src/hugin1/hugin/GLPreviewFrame.h Tue Jul 12 02:58:51 2011 -0400 +++ b/src/hugin1/hugin/GLPreviewFrame.h Tue Jul 12 04:43:00 2011 -0400 @@ -246,6 +246,7 @@ void UpdateIdentifyTools(std::set<unsigned int> new_image_set); wxColour GetPreviewBackgroundColor(); + bool GetFlip(); protected: @@ -317,6 +318,8 @@ void OnColorPicker(wxCommandEvent &e); /** event handler when user changes background color */ void OnPreviewBackgroundColorChanged(wxColourPickerEvent & e); + /** event handler when user flips pano overview inside out */ + void OnFlip(wxCommandEvent & e); private: /** changes the visibility of the group check boxes @@ -357,6 +360,7 @@ wxBitmapButton * m_defaultExposureBut; wxSpinButton * m_exposureSpinBut; wxCheckBox * m_previewGrid; + wxCheckBox * m_flipSwitch; #if wxCHECK_VERSION(2, 9, 1) /// Bar for context sensitive projection information. wxInfoBar * m_infoBar; @@ -366,6 +370,7 @@ #endif wxColour m_preview_background_color; + bool m_flip; wxString m_choices[3]; int m_oldProjFormat; diff -r 11c8d2ddb71f -r acafcb92e599 src/hugin1/hugin/GLRenderer.cpp --- a/src/hugin1/hugin/GLRenderer.cpp Tue Jul 12 02:58:51 2011 -0400 +++ b/src/hugin1/hugin/GLRenderer.cpp Tue Jul 12 04:43:00 2011 -0400 @@ -224,11 +224,15 @@ double R = m_visualization_state->getR(); double angx = m_visualization_state->getAngX(); double angy = m_visualization_state->getAngY(); - - gluLookAt(R * cos(angy) * cos(angx), R * sin(angy), R * cos(angy) * sin(angx), 0, 0, 0, 0, 1, 0); - //for look from inside -// gluLookAt(0,0,0,R * cos(angy) * cos(angx), R * sin(angy), R * cos(angy) * sin(angx), 0, 1, 0); + + gluLookAt(R * cos(angy) * cos(angx), R * sin(angy), R * cos(angy) * sin(angx), 0, 0, 0, 0, 1, 0); + + if (m_tool_helper->GetPreviewFrame()->GetFlip()) { + // look from inside + gluLookAt(0,0,0,R * cos(angy) * cos(angx), R * sin(angy), R * cos(angy) * sin(angx), 0, 1, 0); + } + // draw things under the preview images // draw each active image. int imgs = m_pano->getNrOfImages(); diff -r 11c8d2ddb71f -r acafcb92e599 src/hugin1/hugin/xrc/preview_frame.xrc --- a/src/hugin1/hugin/xrc/preview_frame.xrc Tue Jul 12 02:58:51 2011 -0400 +++ b/src/hugin1/hugin/xrc/preview_frame.xrc Tue Jul 12 04:43:00 2011 -0400 @@ -359,6 +359,11 @@ </object> <flag>wxALIGN_CENTRE_VERTICAL</flag> </object> + </object> + <flag>wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag> + </object> + <object class="sizeritem"> + <object class="wxBoxSizer"> <object class="sizeritem"> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> @@ -381,8 +386,18 @@ </object> <flag>wxALIGN_CENTRE_VERTICAL</flag> </object> + <object class="sizeritem"> + <object class="wxCheckBox" name="preview_flip"> + <label>Flip</label> + <tooltip>Flip the overview inside out.</tooltip> + </object> + <flag>wxALL</flag> + <border>2</border> + </object> + <orient>wxVERTICAL</orient> </object> - <flag>wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag> + <flag>wxLEFT|wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag> + <border>4</border> </object> </object> <tooltip>Preview panorama</tooltip> |