Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ImagesPanel Class Reference

Hugin's first panel. More...

#include <ImagesPanel.h>

Inheritance diagram for ImagesPanel:
Inheritance graph

Public Member Functions

 ImagesPanel ()
 
bool Create (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL, const wxString &name=wxT("panel"))
 
void Init (HuginBase::Panorama *pano)
 
 ~ImagesPanel ()
 
virtual void panoramaChanged (HuginBase::Panorama &pano)
 this is called whenever the panorama has changed. More...
 
virtual void panoramaImagesChanged (HuginBase::Panorama &pano, const HuginBase::UIntSet &imgNr)
 notifies about changes to images More...
 
void ReloadCPDetectorSettings ()
 Reloads the cp detector settings from config, necessary after edit preferences. More...
 
CPDetectorSettingGetDefaultSetting ()
 returns the default cp detector settings More...
 
void SetGuiLevel (GuiLevel newGuiLevel)
 sets the GuiLevel for all controls on this panel More...
 
wxString GetCurrentOptimizerString ()
 return the currently selected optimizer setting as string from the drop down list box More...
 
void RunCPGenerator (CPDetectorSetting &setting, const HuginBase::UIntSet &img)
 run the cp generator with the given setting on selected images More...
 
void RunCPGenerator (const HuginBase::UIntSet &img)
 runs the currently selected cp generator on given images More...
 
const wxString GetSelectedCPGenerator ()
 return the currently selected cp generator description More...
 
- Public Member Functions inherited from HuginBase::PanoramaObserver
virtual ~PanoramaObserver ()
 

Protected Member Functions

void OnOptimizeButton (wxCommandEvent &e)
 event handler for geometric optimizer More...
 
void OnPhotometricOptimizeButton (wxCommandEvent &e)
 event handler for photometric optimizer More...
 

Private Member Functions

void OnSize (wxSizeEvent &e)
 
void CPGenerate (wxCommandEvent &e)
 control point detection event handler More...
 
void OnSelectionChanged (wxTreeEvent &e)
 change displayed variables if the selection has changed. More...
 
void OnLensTypeChanged (wxCommandEvent &e)
 updates the lens type for the selected images More...
 
void OnFocalLengthChanged (wxCommandEvent &e)
 updates the focal length for the selected images More...
 
void OnCropFactorChanged (wxCommandEvent &e)
 updates the crop factor for the selected images More...
 
void OnMinimumOverlapChanged (wxCommandEvent &e)
 updates the minimum overlap More...
 
void OnMaxEvDiffChanged (wxCommandEvent &e)
 updates the max ev difference More...
 
void OnGroupModeChanged (wxCommandEvent &e)
 event handler when grouping selection was changed More...
 
void OnDisplayModeChanged (wxCommandEvent &e)
 event handler when display mode (which information should be shown) was changed More...
 
void OnOptimizerSwitchChanged (wxCommandEvent &e)
 event handler, when optimizer master switch was changed More...
 
void OnPhotometricOptimizerSwitchChanged (wxCommandEvent &e)
 event handler, when photometric optimizer master switch was changed More...
 
void FillGroupChoice ()
 fills the grouping wxChoice with values depending on GuiLevel More...
 
void FillOptimizerChoice ()
 fills the optmizer wxChoices with values depending on GuiLevel More...
 
void DisableImageCtrls ()
 
void EnableImageCtrls ()
 
void ShowImage (unsigned int imgNr)
 show a bigger thumbnail More...
 
void UpdatePreviewImage ()
 

Private Attributes

HuginBase::Panoramam_pano
 the model More...
 
wxBitmap m_empty
 bitmap with default image More...
 
HuginBase::ImageCache::RequestPtr thumbnail_request
 Request for thumbnail image. More...
 
ImagesTreeCtrlm_images_tree
 pointer to the main control More...
 
wxStaticBitmap * m_smallImgCtrl
 pointer to the preview image control More...
 
wxChoice * m_lenstype
 pointer to lens type selector More...
 
wxChoice * m_optChoice
 pointer to optimizer switch selector More...
 
wxChoice * m_optPhotoChoice
 pointer to photometric optimizer switch selector More...
 
wxTextCtrl * m_focallength
 the text input control for focal length More...
 
wxTextCtrl * m_cropfactor
 the text input control for crop factor More...
 
wxTextCtrl * m_overlap
 the text input control for minimum overlap More...
 
wxTextCtrl * m_maxEv
 the text input control for max ev difference More...
 
size_t m_showImgNr
 
wxButton * m_matchingButton
 
wxChoice * m_CPDetectorChoice
 
CPDetectorConfig cpdetector_config
 
GuiLevel m_guiLevel
 
int m_degDigits
 

Detailed Description

Hugin's first panel.

This Panel is for loading of images into Panorama. Here one can set first values vor the camera orientation and link these parameters for the optimization.

Definition at line 40 of file ImagesPanel.h.

Constructor & Destructor Documentation

ImagesPanel::ImagesPanel ( )

Definition at line 73 of file ImagesPanel.cpp.

References GUI_SIMPLE.

ImagesPanel::~ImagesPanel ( )

Member Function Documentation

void ImagesPanel::CPGenerate ( wxCommandEvent &  e)
private

control point detection event handler

run control point detector on selected images, and add control points

Definition at line 290 of file ImagesPanel.cpp.

References cpdetector_config, fill_set(), HuginBase::Panorama::getNrOfImages(), ImagesTreeCtrl::GetSelectedImages(), m_CPDetectorChoice, m_images_tree, m_pano, RunCPGenerator(), and CPDetectorConfig::settings.

bool ImagesPanel::Create ( wxWindow *  parent,
wxWindowID  id = wxID_ANY,
const wxPoint &  pos = wxDefaultPosition,
const wxSize &  size = wxDefaultSize,
long  style = wxTAB_TRAVERSAL,
const wxString &  name = wxT("panel") 
)
void ImagesPanel::DisableImageCtrls ( )
private

Definition at line 430 of file ImagesPanel.cpp.

References m_cropfactor, m_empty, m_focallength, m_lenstype, and m_smallImgCtrl.

Referenced by OnSelectionChanged(), and panoramaImagesChanged().

void ImagesPanel::EnableImageCtrls ( )
private

Definition at line 441 of file ImagesPanel.cpp.

References m_cropfactor, m_focallength, and m_lenstype.

Referenced by OnSelectionChanged().

void ImagesPanel::FillGroupChoice ( )
private
void ImagesPanel::FillOptimizerChoice ( )
private
wxString ImagesPanel::GetCurrentOptimizerString ( )

return the currently selected optimizer setting as string from the drop down list box

Definition at line 821 of file ImagesPanel.cpp.

References m_optChoice.

Referenced by MainFrame::GetCurrentOptimizerString().

CPDetectorSetting& ImagesPanel::GetDefaultSetting ( )
inline

returns the default cp detector settings

Definition at line 74 of file ImagesPanel.h.

References cpdetector_config, CPDetectorConfig::GetDefaultGenerator(), and CPDetectorConfig::settings.

Referenced by MainFrame::GetDefaultSetting().

const wxString ImagesPanel::GetSelectedCPGenerator ( )

return the currently selected cp generator description

Definition at line 348 of file ImagesPanel.cpp.

References cpdetector_config, m_CPDetectorChoice, and CPDetectorConfig::settings.

Referenced by MainFrame::GetSelectedCPGenerator().

void ImagesPanel::Init ( HuginBase::Panorama pano)
void ImagesPanel::OnCropFactorChanged ( wxCommandEvent &  e)
private
void ImagesPanel::OnDisplayModeChanged ( wxCommandEvent &  e)
private

event handler when display mode (which information should be shown) was changed

Definition at line 841 of file ImagesPanel.cpp.

References m_images_tree, and ImagesTreeCtrl::SetDisplayMode().

void ImagesPanel::OnFocalLengthChanged ( wxCommandEvent &  e)
private
void ImagesPanel::OnGroupModeChanged ( wxCommandEvent &  e)
private

event handler when grouping selection was changed

Definition at line 826 of file ImagesPanel.cpp.

References ImagesTreeCtrl::GROUP_OUTPUTLAYERS, ImagesTreeCtrl::GROUP_OUTPUTSTACK, m_images_tree, m_maxEv, m_overlap, and ImagesTreeCtrl::SetGroupMode().

Referenced by FillGroupChoice().

void ImagesPanel::OnLensTypeChanged ( wxCommandEvent &  e)
private
void ImagesPanel::OnMaxEvDiffChanged ( wxCommandEvent &  e)
private
void ImagesPanel::OnMinimumOverlapChanged ( wxCommandEvent &  e)
private
void ImagesPanel::OnOptimizeButton ( wxCommandEvent &  e)
protected

event handler for geometric optimizer

Definition at line 893 of file ImagesPanel.cpp.

References MainFrame::Get(), and MainFrame::OnOptimize().

void ImagesPanel::OnOptimizerSwitchChanged ( wxCommandEvent &  e)
private

event handler, when optimizer master switch was changed

Definition at line 847 of file ImagesPanel.cpp.

References PanoCommand::CommandHistory::addCommand(), PanoCommand::GlobalCmdHist::getInstance(), HuginBase::Panorama::getOptimizerSwitch(), m_optChoice, and m_pano.

void ImagesPanel::OnPhotometricOptimizeButton ( wxCommandEvent &  e)
protected

event handler for photometric optimizer

Definition at line 898 of file ImagesPanel.cpp.

References MainFrame::Get(), and MainFrame::OnPhotometricOptimize().

void ImagesPanel::OnPhotometricOptimizerSwitchChanged ( wxCommandEvent &  e)
private

event handler, when photometric optimizer master switch was changed

Definition at line 858 of file ImagesPanel.cpp.

References PanoCommand::CommandHistory::addCommand(), PanoCommand::GlobalCmdHist::getInstance(), HuginBase::Panorama::getPhotometricOptimizerSwitch(), m_optPhotoChoice, and m_pano.

void ImagesPanel::OnSelectionChanged ( wxTreeEvent &  e)
private
void ImagesPanel::OnSize ( wxSizeEvent &  e)
private

Definition at line 204 of file ImagesPanel.cpp.

References DEBUG_INFO, and UpdatePreviewImage().

void ImagesPanel::panoramaChanged ( HuginBase::Panorama pano)
virtual

this is called whenever the panorama has changed.

This function must now update all the gui representations of the panorama to display the new state.

Functions that change the panororama must not update the GUI directly. The GUI should always be updated to reflect the current panorama state in this function.

This avoids unnessecary close coupling between the controller and the view (even if they sometimes are in the same object). See model view controller pattern.

Todo:
react on different update signals more special

receives notification about panorama changes

Implements HuginBase::PanoramaObserver.

Definition at line 214 of file ImagesPanel.cpp.

References PanoCommand::CommandHistory::addCommand(), hugin_utils::doubleTowxString(), PanoCommand::GlobalCmdHist::getInstance(), HuginBase::Panorama::getOptimizerSwitch(), HuginBase::Panorama::getOptions(), HuginBase::Panorama::getPhotometricOptimizerSwitch(), m_maxEv, m_optChoice, m_optPhotoChoice, m_overlap, m_pano, HuginBase::PanoramaOptions::outputLayersExposureDiff, and HuginBase::PanoramaOptions::outputStacksMinOverlap.

Referenced by SetGuiLevel().

void ImagesPanel::panoramaImagesChanged ( HuginBase::Panorama pano,
const HuginBase::UIntSet changed 
)
virtual

notifies about changes to images

Images might have been added/removed. to find out how many images are still there, use Panorama::getNrOfImages.

Parameters
panothe panorama object that changed
changedset of changed images

Implements HuginBase::PanoramaObserver.

Definition at line 264 of file ImagesPanel.cpp.

References DEBUG_DEBUG, DEBUG_TRACE, DisableImageCtrls(), HuginBase::Panorama::getNrOfImages(), ImagesTreeCtrl::GetSelectedImages(), m_images_tree, m_matchingButton, and OnSelectionChanged().

void ImagesPanel::ReloadCPDetectorSettings ( )

Reloads the cp detector settings from config, necessary after edit preferences.

Definition at line 523 of file ImagesPanel.cpp.

References cpdetector_config, CPDetectorConfig::FillControl(), m_CPDetectorChoice, and CPDetectorConfig::Read().

Referenced by MainFrame::OnShowPrefs().

void ImagesPanel::RunCPGenerator ( CPDetectorSetting setting,
const HuginBase::UIntSet img 
)
void ImagesPanel::RunCPGenerator ( const HuginBase::UIntSet img)

runs the currently selected cp generator on given images

Definition at line 309 of file ImagesPanel.cpp.

References cpdetector_config, m_CPDetectorChoice, RunCPGenerator(), and CPDetectorConfig::settings.

void ImagesPanel::SetGuiLevel ( GuiLevel  newGuiLevel)

sets the GuiLevel for all controls on this panel

Definition at line 869 of file ImagesPanel.cpp.

References FillGroupChoice(), FillOptimizerChoice(), GUI_ADVANCED, GUI_EXPERT, GUI_SIMPLE, m_guiLevel, m_images_tree, m_pano, panoramaChanged(), and ImagesTreeCtrl::SetGuiLevel().

Referenced by MainFrame::SetGuiLevel().

void ImagesPanel::ShowImage ( unsigned int  imgNr)
private

show a bigger thumbnail

Definition at line 449 of file ImagesPanel.cpp.

References m_showImgNr, and UpdatePreviewImage().

Referenced by OnSelectionChanged().

void ImagesPanel::UpdatePreviewImage ( )
private

Member Data Documentation

CPDetectorConfig ImagesPanel::cpdetector_config
private
wxChoice* ImagesPanel::m_CPDetectorChoice
private
wxTextCtrl* ImagesPanel::m_cropfactor
private

the text input control for crop factor

Definition at line 156 of file ImagesPanel.h.

Referenced by Create(), DisableImageCtrls(), EnableImageCtrls(), OnCropFactorChanged(), OnSelectionChanged(), and ~ImagesPanel().

int ImagesPanel::m_degDigits
private

Definition at line 169 of file ImagesPanel.h.

Referenced by Create(), and OnSelectionChanged().

wxBitmap ImagesPanel::m_empty
private

bitmap with default image

Definition at line 138 of file ImagesPanel.h.

Referenced by Create(), DisableImageCtrls(), and OnSelectionChanged().

wxTextCtrl* ImagesPanel::m_focallength
private

the text input control for focal length

Definition at line 154 of file ImagesPanel.h.

Referenced by Create(), DisableImageCtrls(), EnableImageCtrls(), OnFocalLengthChanged(), OnSelectionChanged(), and ~ImagesPanel().

GuiLevel ImagesPanel::m_guiLevel
private

Definition at line 168 of file ImagesPanel.h.

Referenced by FillGroupChoice(), FillOptimizerChoice(), and SetGuiLevel().

ImagesTreeCtrl* ImagesPanel::m_images_tree
private
wxChoice* ImagesPanel::m_lenstype
private

pointer to lens type selector

Definition at line 148 of file ImagesPanel.h.

Referenced by Create(), DisableImageCtrls(), EnableImageCtrls(), OnLensTypeChanged(), and OnSelectionChanged().

wxButton* ImagesPanel::m_matchingButton
private

Definition at line 163 of file ImagesPanel.h.

Referenced by Create(), and panoramaImagesChanged().

wxTextCtrl* ImagesPanel::m_maxEv
private

the text input control for max ev difference

Definition at line 160 of file ImagesPanel.h.

Referenced by Create(), OnGroupModeChanged(), OnMaxEvDiffChanged(), panoramaChanged(), and ~ImagesPanel().

wxChoice* ImagesPanel::m_optChoice
private

pointer to optimizer switch selector

Definition at line 150 of file ImagesPanel.h.

Referenced by Create(), FillOptimizerChoice(), GetCurrentOptimizerString(), OnOptimizerSwitchChanged(), panoramaChanged(), and ~ImagesPanel().

wxChoice* ImagesPanel::m_optPhotoChoice
private

pointer to photometric optimizer switch selector

Definition at line 152 of file ImagesPanel.h.

Referenced by Create(), FillOptimizerChoice(), OnPhotometricOptimizerSwitchChanged(), panoramaChanged(), and ~ImagesPanel().

wxTextCtrl* ImagesPanel::m_overlap
private

the text input control for minimum overlap

Definition at line 158 of file ImagesPanel.h.

Referenced by Create(), OnGroupModeChanged(), OnMinimumOverlapChanged(), panoramaChanged(), and ~ImagesPanel().

HuginBase::Panorama* ImagesPanel::m_pano
private
size_t ImagesPanel::m_showImgNr
private

Definition at line 161 of file ImagesPanel.h.

Referenced by Create(), ShowImage(), and UpdatePreviewImage().

wxStaticBitmap* ImagesPanel::m_smallImgCtrl
private

pointer to the preview image control

Definition at line 146 of file ImagesPanel.h.

Referenced by Create(), DisableImageCtrls(), OnSelectionChanged(), and UpdatePreviewImage().

HuginBase::ImageCache::RequestPtr ImagesPanel::thumbnail_request
private

Request for thumbnail image.

Definition at line 141 of file ImagesPanel.h.

Referenced by UpdatePreviewImage().


The documentation for this class was generated from the following files: