MaskImageCtrl Class Reference

mask editor More...

#include <MaskImageCtrl.h>

List of all members.

Public Types

 ROT0 = 0
 ROT90
 ROT180
 ROT270
enum  ImageRotation { ROT0 = 0, ROT90, ROT180, ROT270 }
 image rotation. More...

Public Member Functions

 MaskImageCtrl ()
 ctor.
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 (MaskEditorPanel *parent)
void setPreviewOnly ()
 if called, the mouse handlers are deactivated
void setImage (const std::string &filename, HuginBase::MaskPolygonVector newMask, HuginBase::MaskPolygonVector masksToDraw, ImageRotation rot)
 set the current image and mask list, this loads also the image from cache
void setNewMasks (HuginBase::MaskPolygonVector newMasks, HuginBase::MaskPolygonVector masksToDraw)
 updates masks for currently selected image
void setCrop (HuginBase::SrcPanoImage::CropMode newCropMode, vigra::Rect2D newCropRect, bool isCentered, hugin_utils::FDiff2D center, bool isCircleCrop)
 updates the crop mode and crop rect
vigra::Rect2D getCrop ()
 returns the current crop rect
void setActiveMask (unsigned int newMask, bool doUpdate=true)
 mark mask with image as beeing editing
HuginBase::MaskPolygonVector getNewMask () const
 returns the vector of all mask (including new created mask)
void selectAllMarkers ()
 select all points of active mask
void OnMouseMove (wxMouseEvent &mouse)
 event handler when mouse is moving
void OnLeftMouseDown (wxMouseEvent &mouse)
 event handler when left mouse button is pressed
void OnLeftMouseUp (wxMouseEvent &mouse)
 event handler when right mouse button is released
void OnLeftMouseDblClick (wxMouseEvent &mouse)
 event handler for left double click
void OnRightMouseDown (wxMouseEvent &mouse)
 event handler when right mouse button is pressed
void OnRightMouseUp (wxMouseEvent &mouse)
 event handler when right mouse button is released
void OnKeyUp (wxKeyEvent &e)
 event handler for keyboard
void OnCaptureLost (wxMouseCaptureLostEvent &e)
 event handler, when mouse capture is lost, e.g.
void OnKillFocus (wxFocusEvent &e)
 event handler, when editor lost focus, mainly cancels creating new polygon
void OnScroll (wxScrollWinEvent &e)
 event handler for remember scroll position
void startNewPolygon ()
 starts creating a new polygon
wxSize DoGetBestSize () const
 returns size of currently scaled image
void SetMaskMode (bool newMaskMode)
 sets the control to mask (newMaskMode=true) or crop (newMaskMode=false) mode
void setScale (double factor)
 set the scaling factor for mask editing display.
double getScale ()
 return scale factor, 0 for autoscale
ImageRotation getCurrentRotation ()
 returns the current rotation of displayed image
void setDrawingActiveMasks (bool newDrawActiveMasks)
 set if active masks should be drawn
void update ()
 initiate redraw
void SetUserColourPolygonNegative (wxColour newColour)
 sets the colour for different parts
void SetUserColourPolygonPositive (wxColour newColour)
void SetUserColourPointSelected (wxColour newColour)
void SetUserColourPointUnselected (wxColour newColour)

Protected Member Functions

void OnDraw (wxDC &dc)
 drawing routine
void OnSize (wxSizeEvent &e)
 handler called when size of control was changed
double getScaleFactor () const
 get scale factor (calculates factor when fit to window is active)
double calcAutoScaleFactor (wxSize size)
 calculate new scale factor for this image
void rescaleImage ()
 rescale the image

Private Types

 CLICK_OUTSIDE
 CLICK_INSIDE
 CLICK_LEFT
 CLICK_RIGHT
 CLICK_TOP
 CLICK_BOTTOM
 CLICK_CIRCLE
 NO_IMAGE = 0
 NO_MASK
 NO_SELECTION
 POINTS_SELECTED
 POINTS_MOVING
 POINTS_DELETING
 POINTS_ADDING
 POLYGON_SELECTING
 REGION_SELECTING
 NEW_POLYGON_STARTED
 NEW_POLYGON_CREATING
 CROP_SHOWING
 CROP_MOVING
 CROP_CIRCLE_SCALING
 CROP_LEFT_MOVING
 CROP_RIGHT_MOVING
 CROP_TOP_MOVING
 CROP_BOTTOM_MOVING
enum  ClickPos {
  CLICK_OUTSIDE, CLICK_INSIDE, CLICK_LEFT, CLICK_RIGHT,
  CLICK_TOP, CLICK_BOTTOM, CLICK_CIRCLE
}
enum  MaskEditorState {
  NO_IMAGE = 0, NO_MASK, NO_SELECTION, POINTS_SELECTED,
  POINTS_MOVING, POINTS_DELETING, POINTS_ADDING, POLYGON_SELECTING,
  REGION_SELECTING, NEW_POLYGON_STARTED, NEW_POLYGON_CREATING, CROP_SHOWING,
  CROP_MOVING, CROP_CIRCLE_SCALING, CROP_LEFT_MOVING, CROP_RIGHT_MOVING,
  CROP_TOP_MOVING, CROP_BOTTOM_MOVING
}
 different states of the editor More...

Private Member Functions

int scale (int x) const
 scale of width/height
double scale (double x) const
int transform (int x) const
 convert image coordinate to screen coordinates, considers additional added border
double transform (double x) const
wxPoint transform (const hugin_utils::FDiff2D &p) const
int invtransform (int x) const
 translate screen coordinates to image coordinates, considers additional added border
double invtransform (double x) const
hugin_utils::FDiff2D invtransform (const wxPoint &p) const
template<class T>
applyRot (const T &p) const
template<class T>
applyRotInv (const T &p) const
void DrawPolygon (wxDC &dc, HuginBase::MaskPolygon poly, bool isSelected, bool drawMarker)
void DrawSelectionRectangle ()
void DrawCrop (wxDC &dc)
void DrawCrop ()
void FindPolygon (hugin_utils::FDiff2D p)
bool SelectPointsInsideMouseRect (HuginBase::UIntSet &points, const bool considerSelectedOnly)
void UpdateCrop (hugin_utils::FDiff2D delta)
ClickPos GetClickPos (vigra::Point2D pos)
 DECLARE_EVENT_TABLE ()

Private Attributes

wxBitmap m_bitmap
wxBitmap m_disabledBitmap
std::string m_imageFilename
ImageRotation m_imgRotation
wxSize m_imageSize
wxSize m_realSize
HuginBase::SrcPanoImage::CropMode m_cropMode
vigra::Rect2D m_cropRect
bool m_cropCentered
bool m_cropCircle
hugin_utils::FDiff2D m_cropCenter
bool m_showActiveMasks
bool m_maskMode
MaskEditorState m_maskEditState
double m_scaleFactor
bool m_fitToWindow
bool m_previewOnly
MaskEditorPanelm_editPanel
HuginBase::MaskPolygonVector m_imageMask
HuginBase::MaskPolygonVector m_masksToDraw
unsigned int m_activeMask
HuginBase::MaskPolygon m_editingMask
HuginBase::UIntSet m_selectedPoints
ImageCache::EntryPtr m_img
wxPoint m_dragStartPos
wxPoint m_currentPos
wxColor m_colour_polygon_negative
wxColor m_colour_polygon_positive
wxColor m_colour_point_selected
wxColor m_colour_point_unselected
int m_oldScrollPosX
int m_oldScrollPosY


Detailed Description

mask editor

This class handles all mask editing.

Definition at line 47 of file MaskImageCtrl.h.


Member Enumeration Documentation

enum MaskImageCtrl::ClickPos [private]

Enumerator:
CLICK_OUTSIDE 
CLICK_INSIDE 
CLICK_LEFT 
CLICK_RIGHT 
CLICK_TOP 
CLICK_BOTTOM 
CLICK_CIRCLE 

Definition at line 272 of file MaskImageCtrl.h.

enum MaskImageCtrl::ImageRotation

image rotation.

Useful to display images depending on their roll setting. rotation is clockwise

Enumerator:
ROT0 
ROT90 
ROT180 
ROT270 

Definition at line 64 of file MaskImageCtrl.h.

enum MaskImageCtrl::MaskEditorState [private]

different states of the editor

Enumerator:
NO_IMAGE 
NO_MASK 
NO_SELECTION 
POINTS_SELECTED 
POINTS_MOVING 
POINTS_DELETING 
POINTS_ADDING 
POLYGON_SELECTING 
REGION_SELECTING 
NEW_POLYGON_STARTED 
NEW_POLYGON_CREATING 
CROP_SHOWING 
CROP_MOVING 
CROP_CIRCLE_SCALING 
CROP_LEFT_MOVING 
CROP_RIGHT_MOVING 
CROP_TOP_MOVING 
CROP_BOTTOM_MOVING 

Definition at line 280 of file MaskImageCtrl.h.


Constructor & Destructor Documentation

MaskImageCtrl::MaskImageCtrl (  )  [inline]

ctor.

Definition at line 52 of file MaskImageCtrl.h.


Member Function Documentation

template<class T>
T MaskImageCtrl::applyRot ( const T &  p  )  const [inline, private]

Definition at line 214 of file MaskImageCtrl.h.

References m_imgRotation, m_realSize, ROT0, ROT180, ROT270, and ROT90.

Referenced by DrawCrop(), DrawPolygon(), and OnDraw().

template<class T>
T MaskImageCtrl::applyRotInv ( const T &  p  )  const [inline, private]

Definition at line 238 of file MaskImageCtrl.h.

References m_imgRotation, m_realSize, ROT0, ROT180, ROT270, and ROT90.

Referenced by OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().

double MaskImageCtrl::calcAutoScaleFactor ( wxSize  size  )  [protected]

calculate new scale factor for this image

Definition at line 1449 of file MaskImageCtrl.cpp.

References DEBUG_DEBUG, vigra_ext::EMoR::h, m_imgRotation, ROT270, and ROT90.

Referenced by rescaleImage(), and setScale().

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

Definition at line 73 of file MaskImageCtrl.cpp.

References NO_IMAGE.

MaskImageCtrl::DECLARE_EVENT_TABLE (  )  [private]

wxSize MaskImageCtrl::DoGetBestSize (  )  const

returns size of currently scaled image

Definition at line 1026 of file MaskImageCtrl.cpp.

References m_imageSize.

void MaskImageCtrl::DrawCrop (  )  [private]

Definition at line 1093 of file MaskImageCtrl.cpp.

Referenced by OnDraw(), OnLeftMouseDown(), OnLeftMouseUp(), and OnMouseMove().

void MaskImageCtrl::DrawCrop ( wxDC &  dc  )  [private]

Definition at line 1100 of file MaskImageCtrl.cpp.

References applyRot(), HuginBase::BaseSrcPanoImage::CROP_CIRCLE, m_cropMode, m_cropRect, m_maskMode, scale(), transform(), and wxPENSTYLE_SOLID.

void MaskImageCtrl::DrawPolygon ( wxDC &  dc,
HuginBase::MaskPolygon  poly,
bool  isSelected,
bool  drawMarker 
) [private]

Definition at line 1038 of file MaskImageCtrl.cpp.

References applyRot(), HuginBase::MaskPolygon::getMaskPolygon(), HuginBase::MaskPolygon::getMaskType(), m_colour_point_selected, m_colour_point_unselected, m_colour_polygon_negative, m_colour_polygon_positive, m_selectedPoints, HuginBase::MaskPolygon::Mask_negative, HuginBase::MaskPolygon::Mask_negative_lens, HuginBase::MaskPolygon::Mask_positive, HuginBase::MaskPolygon::Mask_Stack_negative, HuginBase::MaskPolygon::Mask_Stack_positive, polygonPointSize, set_contains(), transform(), and wxPENSTYLE_SOLID.

Referenced by OnDraw().

void MaskImageCtrl::DrawSelectionRectangle (  )  [private]

Definition at line 1374 of file MaskImageCtrl.cpp.

References m_currentPos, m_dragStartPos, OnDraw(), scale(), and wxPENSTYLE_DOT.

Referenced by OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), and OnRightMouseUp().

void MaskImageCtrl::FindPolygon ( hugin_utils::FDiff2D  p  )  [private]

Definition at line 1390 of file MaskImageCtrl.cpp.

References m_editPanel, m_imageMask, and MaskEditorPanel::SelectMask().

Referenced by OnLeftMouseUp().

MaskImageCtrl::ClickPos MaskImageCtrl::GetClickPos ( vigra::Point2D  pos  )  [private]

Definition at line 239 of file MaskImageCtrl.cpp.

References CLICK_BOTTOM, CLICK_CIRCLE, CLICK_INSIDE, CLICK_LEFT, CLICK_OUTSIDE, CLICK_RIGHT, CLICK_TOP, HuginBase::BaseSrcPanoImage::CROP_CIRCLE, m_cropMode, m_cropRect, and maxSelectionDistance.

Referenced by OnLeftMouseDown(), and OnMouseMove().

vigra::Rect2D MaskImageCtrl::getCrop (  )  [inline]

returns the current crop rect

Definition at line 75 of file MaskImageCtrl.h.

References m_cropRect.

Referenced by MaskEditorPanel::UpdateCrop(), and MaskEditorPanel::UpdateCropFromImage().

ImageRotation MaskImageCtrl::getCurrentRotation (  )  [inline]

returns the current rotation of displayed image

Definition at line 124 of file MaskImageCtrl.h.

References m_imgRotation.

Referenced by MaskEditorPanel::setImage().

HuginBase::MaskPolygonVector MaskImageCtrl::getNewMask (  )  const [inline]

returns the vector of all mask (including new created mask)

Definition at line 79 of file MaskImageCtrl.h.

References m_imageMask.

Referenced by MaskEditorPanel::AddMask(), and MaskEditorPanel::UpdateMask().

double MaskImageCtrl::getScale (  )  [inline]

return scale factor, 0 for autoscale

Definition at line 120 of file MaskImageCtrl.h.

References m_fitToWindow, and m_scaleFactor.

double MaskImageCtrl::getScaleFactor (  )  const [protected]

get scale factor (calculates factor when fit to window is active)

Definition at line 1468 of file MaskImageCtrl.cpp.

References m_scaleFactor.

Referenced by invtransform(), rescaleImage(), scale(), and transform().

void MaskImageCtrl::Init ( MaskEditorPanel parent  ) 

Definition at line 94 of file MaskImageCtrl.cpp.

References m_editPanel.

Referenced by MaskEditorPanel::Create().

hugin_utils::FDiff2D MaskImageCtrl::invtransform ( const wxPoint &  p  )  const [inline, private]

Definition at line 203 of file MaskImageCtrl.h.

References invtransform(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

double MaskImageCtrl::invtransform ( double  x  )  const [inline, private]

Definition at line 200 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

int MaskImageCtrl::invtransform ( int  x  )  const [inline, private]

translate screen coordinates to image coordinates, considers additional added border

Definition at line 197 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

Referenced by invtransform(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().

void MaskImageCtrl::OnCaptureLost ( wxMouseCaptureLostEvent &  e  ) 

event handler, when mouse capture is lost, e.g.

user click outside of window cancels creating of new mask

Definition at line 992 of file MaskImageCtrl.cpp.

References OnKillFocus().

void MaskImageCtrl::OnDraw ( wxDC &  dc  )  [protected]

drawing routine

Definition at line 1129 of file MaskImageCtrl.cpp.

References applyRot(), HuginBase::BaseSrcPanoImage::CROP_CIRCLE, HuginBase::BaseSrcPanoImage::CROP_RECTANGLE, DrawCrop(), DrawPolygon(), m_activeMask, m_bitmap, m_cropMode, m_cropRect, m_disabledBitmap, m_editingMask, m_fitToWindow, m_imageMask, m_maskEditState, m_maskMode, m_masksToDraw, m_realSize, m_showActiveMasks, HuginBase::maskOffset, NEW_POLYGON_CREATING, HuginBase::BaseSrcPanoImage::NO_CROP, NO_IMAGE, PI, POINTS_ADDING, POINTS_MOVING, scale(), transform(), wxBRUSHSTYLE_SOLID, and wxPENSTYLE_SOLID.

Referenced by DrawSelectionRectangle(), and update().

void MaskImageCtrl::OnKeyUp ( wxKeyEvent &  e  ) 

event handler for keyboard

Definition at line 947 of file MaskImageCtrl.cpp.

References HuginBase::MaskPolygon::getMaskPolygon(), m_activeMask, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_selectedPoints, NO_SELECTION, MaskEditorPanel::OnMaskDelete(), POINTS_SELECTED, HuginBase::MaskPolygon::removePoint(), and MaskEditorPanel::UpdateMask().

void MaskImageCtrl::OnKillFocus ( wxFocusEvent &  e  ) 

event handler, when editor lost focus, mainly cancels creating new polygon

Definition at line 998 of file MaskImageCtrl.cpp.

References m_editingMask, m_maskEditState, m_selectedPoints, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, and update().

Referenced by OnCaptureLost().

void MaskImageCtrl::OnLeftMouseDblClick ( wxMouseEvent &  mouse  ) 

event handler for left double click

Definition at line 763 of file MaskImageCtrl.cpp.

References MaskEditorPanel::AddMask(), applyRotInv(), MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_previewOnly, m_selectedPoints, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, HuginBase::MaskPolygon::removePoint(), and update().

void MaskImageCtrl::OnLeftMouseDown ( wxMouseEvent &  mouse  ) 

event handler when left mouse button is pressed

Definition at line 488 of file MaskImageCtrl.cpp.

References HuginBase::MaskPolygon::addPoint(), applyRotInv(), CLICK_BOTTOM, CLICK_CIRCLE, CLICK_INSIDE, CLICK_LEFT, CLICK_RIGHT, CLICK_TOP, CROP_BOTTOM_MOVING, HuginBase::BaseSrcPanoImage::CROP_CIRCLE, CROP_CIRCLE_SCALING, CROP_LEFT_MOVING, CROP_MOVING, CROP_RIGHT_MOVING, CROP_SHOWING, CROP_TOP_MOVING, DEBUG_DEBUG, DrawCrop(), DrawSelectionRectangle(), HuginBase::MaskPolygon::FindPointNearPos(), GetClickPos(), HuginBase::MaskPolygon::getMaskPolygon(), HuginBase::MaskPolygon::insertPoint(), invtransform(), m_cropCentered, m_cropCircle, m_cropMode, m_cropRect, m_currentPos, m_dragStartPos, m_editingMask, m_maskEditState, m_maskMode, m_previewOnly, m_selectedPoints, maxSelectionDistance, NEW_POLYGON_STARTED, HuginBase::BaseSrcPanoImage::NO_CROP, NO_MASK, NO_SELECTION, POINTS_ADDING, POINTS_MOVING, POINTS_SELECTED, POLYGON_SELECTING, REGION_SELECTING, SelectPointsInsideMouseRect(), and update().

void MaskImageCtrl::OnLeftMouseUp ( wxMouseEvent &  mouse  ) 

event handler when right mouse button is released

Definition at line 629 of file MaskImageCtrl.cpp.

References HuginBase::MaskPolygon::addPoint(), applyRotInv(), CROP_BOTTOM_MOVING, CROP_CIRCLE_SCALING, CROP_LEFT_MOVING, CROP_MOVING, CROP_RIGHT_MOVING, CROP_SHOWING, CROP_TOP_MOVING, DEBUG_DEBUG, DrawCrop(), DrawSelectionRectangle(), FindPolygon(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_previewOnly, m_selectedPoints, maxSelectionDistance, HuginBase::MaskPolygon::movePointTo(), NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, POINTS_ADDING, POINTS_MOVING, POINTS_SELECTED, POLYGON_SELECTING, REGION_SELECTING, SelectPointsInsideMouseRect(), sqr(), update(), MaskEditorPanel::UpdateCrop(), UpdateCrop(), MaskEditorPanel::UpdateMask(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

void MaskImageCtrl::OnMouseMove ( wxMouseEvent &  mouse  ) 

event handler when mouse is moving

Definition at line 383 of file MaskImageCtrl.cpp.

References applyRotInv(), CLICK_BOTTOM, CLICK_CIRCLE, CLICK_INSIDE, CLICK_LEFT, CLICK_RIGHT, CLICK_TOP, CROP_BOTTOM_MOVING, CROP_CIRCLE_SCALING, CROP_LEFT_MOVING, CROP_MOVING, CROP_RIGHT_MOVING, CROP_SHOWING, CROP_TOP_MOVING, DrawCrop(), DrawSelectionRectangle(), GetClickPos(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_cropCentered, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_imgRotation, m_maskEditState, m_previewOnly, m_selectedPoints, HuginBase::MaskPolygon::movePointBy(), HuginBase::MaskPolygon::movePointTo(), NEW_POLYGON_CREATING, POINTS_ADDING, POINTS_DELETING, POINTS_MOVING, POLYGON_SELECTING, REGION_SELECTING, ROT270, ROT90, update(), UpdateCrop(), and MaskEditorPanel::UpdateCropFromImage().

void MaskImageCtrl::OnRightMouseDown ( wxMouseEvent &  mouse  ) 

event handler when right mouse button is pressed

Definition at line 808 of file MaskImageCtrl.cpp.

References applyRotInv(), DrawSelectionRectangle(), fill_set(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), HuginBase::MaskPolygon::isInside(), m_currentPos, m_dragStartPos, m_editingMask, m_maskEditState, m_previewOnly, m_selectedPoints, NO_SELECTION, POINTS_DELETING, POINTS_MOVING, POINTS_SELECTED, and update().

void MaskImageCtrl::OnRightMouseUp ( wxMouseEvent &  mouse  ) 

event handler when right mouse button is released

Definition at line 842 of file MaskImageCtrl.cpp.

References MaskEditorPanel::AddMask(), applyRotInv(), DrawSelectionRectangle(), MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_previewOnly, m_selectedPoints, maxSelectionDistance, HuginBase::MaskPolygon::movePointTo(), NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, POINTS_DELETING, POINTS_MOVING, POINTS_SELECTED, HuginBase::MaskPolygon::removePoint(), SelectPointsInsideMouseRect(), set_contains(), sqr(), update(), MaskEditorPanel::UpdateMask(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

void MaskImageCtrl::OnScroll ( wxScrollWinEvent &  e  ) 

event handler for remember scroll position

Definition at line 1264 of file MaskImageCtrl.cpp.

References m_oldScrollPosX, and m_oldScrollPosY.

void MaskImageCtrl::OnSize ( wxSizeEvent &  e  )  [protected]

handler called when size of control was changed

Definition at line 1253 of file MaskImageCtrl.cpp.

References DEBUG_TRACE, m_fitToWindow, m_imageFilename, and setScale().

void MaskImageCtrl::rescaleImage (  )  [protected]

rescale the image

Definition at line 1271 of file MaskImageCtrl.cpp.

References calcAutoScaleFactor(), HuginBase::Color::CorrectImage(), huginApp::Get(), huginApp::GetMonitorProfile(), getScaleFactor(), huginApp::HasMonitorProfile(), imageCacheEntry2wxImage(), m_bitmap, m_disabledBitmap, m_fitToWindow, m_imageSize, m_img, m_imgRotation, m_maskEditState, m_realSize, m_scaleFactor, HuginBase::maskOffset, NO_IMAGE, ROT180, ROT270, ROT90, scale(), and vigra_ext::srcImageRange().

Referenced by setImage(), and setScale().

double MaskImageCtrl::scale ( double  x  )  const [inline, private]

Definition at line 178 of file MaskImageCtrl.h.

References getScaleFactor().

int MaskImageCtrl::scale ( int  x  )  const [inline, private]

scale of width/height

Definition at line 175 of file MaskImageCtrl.h.

References getScaleFactor().

Referenced by DrawCrop(), DrawSelectionRectangle(), OnDraw(), and rescaleImage().

void MaskImageCtrl::selectAllMarkers (  ) 

select all points of active mask

Definition at line 231 of file MaskImageCtrl.cpp.

References fill_set(), m_activeMask, m_imageMask, and m_selectedPoints.

Referenced by MaskEditorPanel::AddMask().

bool MaskImageCtrl::SelectPointsInsideMouseRect ( HuginBase::UIntSet points,
const bool  considerSelectedOnly 
) [private]

Definition at line 1404 of file MaskImageCtrl.cpp.

References applyRotInv(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_currentPos, m_dragStartPos, m_editingMask, m_selectedPoints, celeste::max(), maxSelectionDistance, celeste::min(), set_contains(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by OnLeftMouseDown(), OnLeftMouseUp(), and OnRightMouseUp().

void MaskImageCtrl::setActiveMask ( unsigned int  newMask,
bool  doUpdate = true 
)

mark mask with image as beeing editing

Definition at line 184 of file MaskImageCtrl.cpp.

References CROP_SHOWING, m_activeMask, m_editingMask, m_imageFilename, m_imageMask, m_maskEditState, m_maskMode, m_selectedPoints, NO_MASK, NO_SELECTION, and POINTS_SELECTED.

Referenced by setImage(), MaskEditorPanel::setMask(), SetMaskMode(), and setNewMasks().

void MaskImageCtrl::setCrop ( HuginBase::SrcPanoImage::CropMode  newCropMode,
vigra::Rect2D  newCropRect,
bool  isCentered,
hugin_utils::FDiff2D  center,
bool  isCircleCrop 
)

updates the crop mode and crop rect

Definition at line 175 of file MaskImageCtrl.cpp.

References m_cropCenter, m_cropCentered, m_cropCircle, m_cropMode, and m_cropRect.

Referenced by MaskEditorPanel::setImage().

void MaskImageCtrl::setDrawingActiveMasks ( bool  newDrawActiveMasks  ) 

set if active masks should be drawn

Definition at line 1473 of file MaskImageCtrl.cpp.

References m_showActiveMasks, and update().

Referenced by MaskEditorPanel::Create(), and MaskEditorPanel::OnShowActiveMasks().

void MaskImageCtrl::setImage ( const std::string filename,
HuginBase::MaskPolygonVector  newMask,
HuginBase::MaskPolygonVector  masksToDraw,
ImageRotation  rot 
)

set the current image and mask list, this loads also the image from cache

Definition at line 120 of file MaskImageCtrl.cpp.

References CROP_SHOWING, DEBUG_TRACE, hugin_utils::FileExists(), HUGIN_CONV_FILENAME, m_bitmap, m_imageFilename, m_imageMask, m_img, m_imgRotation, m_maskEditState, m_maskMode, m_masksToDraw, m_oldScrollPosX, m_oldScrollPosY, NO_IMAGE, NO_MASK, rescaleImage(), ROT0, and setActiveMask().

Referenced by MaskLoadDialog::initValues(), and MaskEditorPanel::setImage().

void MaskImageCtrl::SetMaskMode ( bool  newMaskMode  ) 

sets the control to mask (newMaskMode=true) or crop (newMaskMode=false) mode

Definition at line 99 of file MaskImageCtrl.cpp.

References CROP_SHOWING, m_maskEditState, m_maskMode, NO_IMAGE, NO_SELECTION, and setActiveMask().

Referenced by MaskEditorPanel::OnModeChanged().

void MaskImageCtrl::setNewMasks ( HuginBase::MaskPolygonVector  newMasks,
HuginBase::MaskPolygonVector  masksToDraw 
)

updates masks for currently selected image

Definition at line 160 of file MaskImageCtrl.cpp.

References m_activeMask, m_imageMask, m_masksToDraw, and setActiveMask().

Referenced by MaskEditorPanel::setImage(), and MaskLoadDialog::UpdatePreviewImage().

void MaskImageCtrl::setPreviewOnly (  )  [inline]

if called, the mouse handlers are deactivated

Definition at line 67 of file MaskImageCtrl.h.

References m_previewOnly.

void MaskImageCtrl::setScale ( double  factor  ) 

set the scaling factor for mask editing display.

Parameters:
factor zoom factor, 0 means fit to window.

Definition at line 1428 of file MaskImageCtrl.cpp.

References calcAutoScaleFactor(), DEBUG_DEBUG, m_fitToWindow, m_imageSize, m_scaleFactor, and rescaleImage().

Referenced by MaskLoadDialog::initValues(), OnSize(), and MaskEditorPanel::OnZoom().

void MaskImageCtrl::SetUserColourPointSelected ( wxColour  newColour  )  [inline]

Definition at line 134 of file MaskImageCtrl.h.

References m_colour_point_selected.

Referenced by MaskEditorPanel::Create(), and MaskEditorPanel::OnColourChanged().

void MaskImageCtrl::SetUserColourPointUnselected ( wxColour  newColour  )  [inline]

Definition at line 135 of file MaskImageCtrl.h.

References m_colour_point_unselected.

Referenced by MaskEditorPanel::Create(), and MaskEditorPanel::OnColourChanged().

void MaskImageCtrl::SetUserColourPolygonNegative ( wxColour  newColour  )  [inline]

sets the colour for different parts

Definition at line 132 of file MaskImageCtrl.h.

References m_colour_polygon_negative.

Referenced by MaskEditorPanel::Create(), and MaskEditorPanel::OnColourChanged().

void MaskImageCtrl::SetUserColourPolygonPositive ( wxColour  newColour  )  [inline]

Definition at line 133 of file MaskImageCtrl.h.

References m_colour_polygon_positive.

Referenced by MaskEditorPanel::Create(), and MaskEditorPanel::OnColourChanged().

void MaskImageCtrl::startNewPolygon (  ) 

starts creating a new polygon

Definition at line 1018 of file MaskImageCtrl.cpp.

References m_editingMask, m_maskEditState, m_selectedPoints, and NEW_POLYGON_STARTED.

Referenced by MaskEditorPanel::OnMaskAdd().

wxPoint MaskImageCtrl::transform ( const hugin_utils::FDiff2D p  )  const [inline, private]

Definition at line 188 of file MaskImageCtrl.h.

References transform(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

double MaskImageCtrl::transform ( double  x  )  const [inline, private]

Definition at line 185 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

int MaskImageCtrl::transform ( int  x  )  const [inline, private]

convert image coordinate to screen coordinates, considers additional added border

Definition at line 182 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

Referenced by DrawCrop(), DrawPolygon(), OnDraw(), and transform().

void MaskImageCtrl::update (  ) 

initiate redraw

Definition at line 1031 of file MaskImageCtrl.cpp.

References OnDraw().

Referenced by OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), and setDrawingActiveMasks().

void MaskImageCtrl::UpdateCrop ( hugin_utils::FDiff2D  delta  )  [private]

Definition at line 278 of file MaskImageCtrl.cpp.

References applyRotInv(), CROP_BOTTOM_MOVING, CROP_CIRCLE_SCALING, CROP_LEFT_MOVING, CROP_MOVING, CROP_RIGHT_MOVING, CROP_TOP_MOVING, invtransform(), m_cropCenter, m_cropCentered, m_cropRect, m_currentPos, m_dragStartPos, m_maskEditState, hugin_utils::roundi(), sqr(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by OnLeftMouseUp(), and OnMouseMove().


Member Data Documentation

unsigned int MaskImageCtrl::m_activeMask [private]

Definition at line 310 of file MaskImageCtrl.h.

Referenced by OnDraw(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseUp(), selectAllMarkers(), setActiveMask(), and setNewMasks().

wxBitmap MaskImageCtrl::m_bitmap [private]

Definition at line 153 of file MaskImageCtrl.h.

Referenced by OnDraw(), rescaleImage(), and setImage().

wxColor MaskImageCtrl::m_colour_point_selected [private]

Definition at line 325 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointSelected().

wxColor MaskImageCtrl::m_colour_point_unselected [private]

Definition at line 326 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointUnselected().

wxColor MaskImageCtrl::m_colour_polygon_negative [private]

Definition at line 323 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonNegative().

wxColor MaskImageCtrl::m_colour_polygon_positive [private]

Definition at line 324 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonPositive().

hugin_utils::FDiff2D MaskImageCtrl::m_cropCenter [private]

Definition at line 168 of file MaskImageCtrl.h.

Referenced by setCrop(), and UpdateCrop().

bool MaskImageCtrl::m_cropCentered [private]

Definition at line 166 of file MaskImageCtrl.h.

Referenced by OnLeftMouseDown(), OnMouseMove(), setCrop(), and UpdateCrop().

bool MaskImageCtrl::m_cropCircle [private]

Definition at line 167 of file MaskImageCtrl.h.

Referenced by OnLeftMouseDown(), and setCrop().

HuginBase::SrcPanoImage::CropMode MaskImageCtrl::m_cropMode [private]

Definition at line 164 of file MaskImageCtrl.h.

Referenced by DrawCrop(), GetClickPos(), OnDraw(), OnLeftMouseDown(), and setCrop().

vigra::Rect2D MaskImageCtrl::m_cropRect [private]

Definition at line 165 of file MaskImageCtrl.h.

Referenced by DrawCrop(), GetClickPos(), getCrop(), OnDraw(), OnLeftMouseDown(), setCrop(), and UpdateCrop().

wxPoint MaskImageCtrl::m_currentPos [private]

Definition at line 320 of file MaskImageCtrl.h.

Referenced by DrawSelectionRectangle(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().

wxBitmap MaskImageCtrl::m_disabledBitmap [private]

Definition at line 154 of file MaskImageCtrl.h.

Referenced by OnDraw(), and rescaleImage().

wxPoint MaskImageCtrl::m_dragStartPos [private]

Definition at line 319 of file MaskImageCtrl.h.

Referenced by DrawSelectionRectangle(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().

HuginBase::MaskPolygon MaskImageCtrl::m_editingMask [private]

Definition at line 312 of file MaskImageCtrl.h.

Referenced by OnDraw(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), setActiveMask(), and startNewPolygon().

MaskEditorPanel* MaskImageCtrl::m_editPanel [private]

Definition at line 307 of file MaskImageCtrl.h.

Referenced by FindPolygon(), Init(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), and OnRightMouseUp().

bool MaskImageCtrl::m_fitToWindow [private]

Definition at line 304 of file MaskImageCtrl.h.

Referenced by getScale(), OnDraw(), OnSize(), rescaleImage(), and setScale().

std::string MaskImageCtrl::m_imageFilename [private]

Definition at line 156 of file MaskImageCtrl.h.

Referenced by OnSize(), setActiveMask(), and setImage().

HuginBase::MaskPolygonVector MaskImageCtrl::m_imageMask [private]

Definition at line 308 of file MaskImageCtrl.h.

Referenced by FindPolygon(), getNewMask(), OnDraw(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseUp(), selectAllMarkers(), setActiveMask(), setImage(), and setNewMasks().

wxSize MaskImageCtrl::m_imageSize [private]

Definition at line 160 of file MaskImageCtrl.h.

Referenced by DoGetBestSize(), rescaleImage(), and setScale().

ImageCache::EntryPtr MaskImageCtrl::m_img [private]

Definition at line 316 of file MaskImageCtrl.h.

Referenced by rescaleImage(), and setImage().

ImageRotation MaskImageCtrl::m_imgRotation [private]

Definition at line 158 of file MaskImageCtrl.h.

Referenced by applyRot(), applyRotInv(), calcAutoScaleFactor(), getCurrentRotation(), OnMouseMove(), rescaleImage(), and setImage().

MaskEditorState MaskImageCtrl::m_maskEditState [private]

Definition at line 301 of file MaskImageCtrl.h.

Referenced by OnDraw(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), rescaleImage(), setActiveMask(), setImage(), SetMaskMode(), startNewPolygon(), and UpdateCrop().

bool MaskImageCtrl::m_maskMode [private]

Definition at line 172 of file MaskImageCtrl.h.

Referenced by DrawCrop(), OnDraw(), OnLeftMouseDown(), setActiveMask(), setImage(), and SetMaskMode().

HuginBase::MaskPolygonVector MaskImageCtrl::m_masksToDraw [private]

Definition at line 309 of file MaskImageCtrl.h.

Referenced by OnDraw(), setImage(), and setNewMasks().

int MaskImageCtrl::m_oldScrollPosX [private]

Definition at line 330 of file MaskImageCtrl.h.

Referenced by OnScroll(), and setImage().

int MaskImageCtrl::m_oldScrollPosY [private]

Definition at line 330 of file MaskImageCtrl.h.

Referenced by OnScroll(), and setImage().

bool MaskImageCtrl::m_previewOnly [private]

Definition at line 305 of file MaskImageCtrl.h.

Referenced by OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), and setPreviewOnly().

wxSize MaskImageCtrl::m_realSize [private]

Definition at line 162 of file MaskImageCtrl.h.

Referenced by applyRot(), applyRotInv(), OnDraw(), and rescaleImage().

double MaskImageCtrl::m_scaleFactor [private]

Definition at line 303 of file MaskImageCtrl.h.

Referenced by getScale(), getScaleFactor(), rescaleImage(), and setScale().

HuginBase::UIntSet MaskImageCtrl::m_selectedPoints [private]

Definition at line 314 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), selectAllMarkers(), SelectPointsInsideMouseRect(), setActiveMask(), and startNewPolygon().

bool MaskImageCtrl::m_showActiveMasks [private]

Definition at line 170 of file MaskImageCtrl.h.

Referenced by OnDraw(), and setDrawingActiveMasks().


The documentation for this class was generated from the following files:
Generated on 29 Jul 2015 for Hugintrunk by  doxygen 1.4.7