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

A preview panel that renders the pictures using the panotools library. More...

#include <PreviewPanel.h>

Inheritance diagram for PreviewPanel:
Inheritance graph

Public Types

enum  BlendMode { BLEND_COPY, BLEND_DIFFERENCE }
 

Public Member Functions

 PreviewPanel ()
 ctor. More...
 
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 (PreviewFrame *parent, HuginBase::Panorama *pano)
 
virtual ~PreviewPanel ()
 dtor. More...
 
void panoramaChanged (HuginBase::Panorama &pano)
 Notification about a Panorama change. More...
 
void panoramaImagesChanged (HuginBase::Panorama &pano, const HuginBase::UIntSet &imgNr)
 notifies about changes to images More...
 
void SetAutoUpdate (bool enabled)
 
void ForceUpdate ()
 
void SetBlendMode (BlendMode b)
 
- Public Member Functions inherited from HuginBase::PanoramaObserver
virtual ~PanoramaObserver ()
 

Private Types

typedef
HuginBase::Nona::RemappedPanoImage
< vigra::BRGBImage,
vigra::BImage > 
RemappedImage
 

Private Member Functions

void DrawPreview (wxDC &dc)
 
void updatePreview ()
 
void mapPreviewImage (unsigned int imgNr)
 
void OnResize (wxSizeEvent &e)
 recalculate panorama to fit the panel More...
 
void OnDraw (wxPaintEvent &event)
 
void OnMouse (wxMouseEvent &e)
 
void mousePressRMBEvent (wxMouseEvent &e)
 
void mousePressLMBEvent (wxMouseEvent &e)
 
void OnUpdatePreview (wxCommandEvent &e)
 
void DrawOutline (const std::vector< hugin_utils::FDiff2D > &points, wxDC &dc, int offX, int offY)
 
void mouse2erect (int xm, int ym, double &xd, double &yd)
 

Private Attributes

HuginBase::Panoramapano
 the model More...
 
bool m_autoPreview
 
vigra::Diff2D m_panoImgSize
 
wxBitmap * m_panoBitmap
 
HuginBase::UIntSet m_dirtyImgs
 
HuginBase::PanoramaOptions opts
 
HuginBase::PTools::Transformm_pano2erect
 
SmallRemappedImageCache m_remapCache
 
BlendMode m_blendMode
 
PreviewFrameparentWindow
 
wxCursor * m_cursor
 
bool m_state_rendering
 
bool m_rerender
 
bool m_imgsDirty
 

Detailed Description

A preview panel that renders the pictures using the panotools library.

Lets hope this works out fine..

Definition at line 40 of file PreviewPanel.h.

Member Typedef Documentation

typedef HuginBase::Nona::RemappedPanoImage<vigra::BRGBImage, vigra::BImage> PreviewPanel::RemappedImage
private

Definition at line 42 of file PreviewPanel.h.

Member Enumeration Documentation

Enumerator
BLEND_COPY 
BLEND_DIFFERENCE 

Definition at line 69 of file PreviewPanel.h.

Constructor & Destructor Documentation

PreviewPanel::PreviewPanel ( )

ctor.

Definition at line 56 of file PreviewPanel.cpp.

PreviewPanel::~PreviewPanel ( )
virtual

Member Function Documentation

bool PreviewPanel::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 PreviewPanel::DrawOutline ( const std::vector< hugin_utils::FDiff2D > &  points,
wxDC &  dc,
int  offX,
int  offY 
)
private

Definition at line 710 of file PreviewPanel.cpp.

References m_panoImgSize, and hugin_utils::roundi().

void PreviewPanel::DrawPreview ( wxDC &  dc)
private
void PreviewPanel::ForceUpdate ( )
void PreviewPanel::Init ( PreviewFrame parent,
HuginBase::Panorama pano 
)

Definition at line 88 of file PreviewPanel.cpp.

References HuginBase::Panorama::addObserver(), pano, and parentWindow.

Referenced by PreviewFrame::PreviewFrame().

void PreviewPanel::mapPreviewImage ( unsigned int  imgNr)
private
void PreviewPanel::mouse2erect ( int  xm,
int  ym,
double &  xd,
double &  yd 
)
private
void PreviewPanel::mousePressLMBEvent ( wxMouseEvent &  e)
private
void PreviewPanel::mousePressRMBEvent ( wxMouseEvent &  e)
private
void PreviewPanel::OnDraw ( wxPaintEvent &  event)
private

Definition at line 608 of file PreviewPanel.cpp.

References DrawPreview().

void PreviewPanel::OnMouse ( wxMouseEvent &  e)
private

Definition at line 683 of file PreviewPanel.cpp.

References mouse2erect(), and parentWindow.

void PreviewPanel::OnResize ( wxSizeEvent &  e)
private

recalculate panorama to fit the panel

Definition at line 614 of file PreviewPanel.cpp.

References DEBUG_TRACE, ForceUpdate(), HuginBase::SmallRemappedImageCache::invalidate(), m_autoPreview, m_panoImgSize, and m_remapCache.

void PreviewPanel::OnUpdatePreview ( wxCommandEvent &  e)
private
void PreviewPanel::panoramaChanged ( HuginBase::Panorama pano)
virtual
void PreviewPanel::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 164 of file PreviewPanel.cpp.

References DEBUG_TRACE, and m_imgsDirty.

void PreviewPanel::SetAutoUpdate ( bool  enabled)
void PreviewPanel::SetBlendMode ( BlendMode  b)

Definition at line 170 of file PreviewPanel.cpp.

References m_blendMode, and updatePreview().

Referenced by PreviewFrame::OnBlendChoice(), and PreviewFrame::PreviewFrame().

void PreviewPanel::updatePreview ( )
private

Definition at line 230 of file PreviewPanel.cpp.

References vigra_ext::applyMapping(), BLEND_COPY, BLEND_DIFFERENCE, HuginBase::Color::CorrectImage(), vigra_ext::EMoR::createEMoRLUT(), vigra_ext::createGammaLUT(), HuginBase::PTools::Transform::createTransform(), DEBUG_DEBUG, DEBUG_ERROR, DEBUG_INFO, DEBUG_TRACE, vigra_ext::destImage(), vigra_ext::destImageRange(), DrawPreview(), HuginBase::BaseSrcPanoImage::EQUIRECTANGULAR, huginApp::Get(), HuginBase::Panorama::getActiveImages(), HuginBase::PanoramaOptions::getHeight(), HuginBase::Color::detail::GetMonitorProfile(), HuginBase::Panorama::getOptions(), HuginBase::PanoramaOptions::getSize(), HuginBase::Panorama::getSrcImage(), HuginBase::PanoramaOptions::getWidth(), huginApp::HasMonitorProfile(), HUGIN_IMGCACHE_MAPPING_FLOAT, HuginBase::Nona::ReduceStitcher< ImageType, AlphaType >::iccProfile, HuginBase::Nona::SimpleStitcher< ImageType, AlphaType >::iccProfile, vigra_ext::INTERP_BILINEAR, HuginBase::PanoramaOptions::interpolator, m_blendMode, m_pano2erect, m_panoBitmap, m_panoImgSize, m_remapCache, m_rerender, m_state_rendering, celeste::max(), celeste::min(), opts, HuginBase::PanoramaOptions::OUTPUT_HDR, HuginBase::PanoramaOptions::outputExposureValue, HuginBase::PanoramaOptions::outputMode, HuginBase::PanoramaOptions::outputRangeCompression, pano, parentWindow, vigra_ext::pow(), HuginBase::PanoramaOptions::remapUsingGPU, HuginBase::BaseSrcPanoImage::RESPONSE_EMOR, HuginBase::BaseSrcPanoImage::RESPONSE_GAMMA, HuginBase::BaseSrcPanoImage::RESPONSE_LINEAR, hugin_utils::round(), HuginBase::PanoramaOptions::setHeight(), HuginBase::PanoramaOptions::setROI(), HuginBase::SrcPanoImage::setSize(), HuginBase::PanoramaOptions::setWidth(), vigra_ext::srcImage(), vigra_ext::srcImageRange(), HuginBase::Nona::ReduceStitcher< ImageType, AlphaType >::stitch(), HuginBase::Nona::SimpleStitcher< ImageType, AlphaType >::stitch(), and vigra::omp::transformImage().

Referenced by ForceUpdate(), panoramaChanged(), SetAutoUpdate(), and SetBlendMode().

Member Data Documentation

bool PreviewPanel::m_autoPreview
private
BlendMode PreviewPanel::m_blendMode
private

Definition at line 116 of file PreviewPanel.h.

Referenced by SetBlendMode(), and updatePreview().

wxCursor* PreviewPanel::m_cursor
private

Definition at line 119 of file PreviewPanel.h.

Referenced by Create(), and ~PreviewPanel().

HuginBase::UIntSet PreviewPanel::m_dirtyImgs
private

Definition at line 105 of file PreviewPanel.h.

bool PreviewPanel::m_imgsDirty
private

Definition at line 123 of file PreviewPanel.h.

Referenced by panoramaChanged(), and panoramaImagesChanged().

HuginBase::PTools::Transform* PreviewPanel::m_pano2erect
private

Definition at line 111 of file PreviewPanel.h.

Referenced by mouse2erect(), updatePreview(), and ~PreviewPanel().

wxBitmap* PreviewPanel::m_panoBitmap
private

Definition at line 102 of file PreviewPanel.h.

Referenced by DrawPreview(), updatePreview(), and ~PreviewPanel().

vigra::Diff2D PreviewPanel::m_panoImgSize
private

Definition at line 100 of file PreviewPanel.h.

Referenced by DrawOutline(), DrawPreview(), mouse2erect(), OnResize(), and updatePreview().

SmallRemappedImageCache PreviewPanel::m_remapCache
private

Definition at line 114 of file PreviewPanel.h.

Referenced by OnResize(), panoramaChanged(), and updatePreview().

bool PreviewPanel::m_rerender
private

Definition at line 122 of file PreviewPanel.h.

Referenced by updatePreview().

bool PreviewPanel::m_state_rendering
private

Definition at line 121 of file PreviewPanel.h.

Referenced by Create(), and updatePreview().

HuginBase::PanoramaOptions PreviewPanel::opts
private

Definition at line 108 of file PreviewPanel.h.

Referenced by panoramaChanged(), and updatePreview().

HuginBase::Panorama* PreviewPanel::pano
private

the model

Definition at line 96 of file PreviewPanel.h.

Referenced by DrawPreview(), Init(), mousePressLMBEvent(), mousePressRMBEvent(), updatePreview(), and ~PreviewPanel().

PreviewFrame* PreviewPanel::parentWindow
private

Definition at line 118 of file PreviewPanel.h.

Referenced by Init(), OnMouse(), and updatePreview().


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