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 53 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 278 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 70 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 286 of file MaskImageCtrl.h.


Constructor & Destructor Documentation

MaskImageCtrl::MaskImageCtrl (  )  [inline]

ctor.

Definition at line 58 of file MaskImageCtrl.h.


Member Function Documentation

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

Definition at line 220 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 244 of file MaskImageCtrl.h.

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

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

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

calculate new scale factor for this image

Definition at line 1457 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 64 of file MaskImageCtrl.cpp.

References wxcode::NO_IMAGE.

MaskImageCtrl::DECLARE_EVENT_TABLE (  )  [private]

wxSize MaskImageCtrl::DoGetBestSize (  )  const

returns size of currently scaled image

Definition at line 1050 of file MaskImageCtrl.cpp.

References m_imageSize.

void MaskImageCtrl::DrawCrop (  )  [private]

Definition at line 1117 of file MaskImageCtrl.cpp.

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

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

Definition at line 1124 of file MaskImageCtrl.cpp.

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

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

Definition at line 1062 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(), and transform().

Referenced by OnDraw().

void MaskImageCtrl::DrawSelectionRectangle (  )  [private]

Definition at line 1382 of file MaskImageCtrl.cpp.

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

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

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

Definition at line 1398 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 254 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 81 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 130 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 85 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 126 of file MaskImageCtrl.h.

References m_fitToWindow, and m_scaleFactor.

Referenced by MaskEditorPanel::OnZoom().

double MaskImageCtrl::getScaleFactor (  )  const [protected]

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

Definition at line 1476 of file MaskImageCtrl.cpp.

References m_scaleFactor.

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

void MaskImageCtrl::Init ( MaskEditorPanel parent  ) 

Definition at line 85 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 209 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 206 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 203 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

Referenced by invtransform(), 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 1021 of file MaskImageCtrl.cpp.

References OnKillFocus().

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

drawing routine

Definition at line 1153 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(), and transform().

Referenced by DrawSelectionRectangle(), and update().

void MaskImageCtrl::OnKeyUp ( wxKeyEvent &  e  ) 

event handler for keyboard

Definition at line 976 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 1027 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 795 of file MaskImageCtrl.cpp.

References MaskEditorPanel::AddMask(), MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), 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 514 of file MaskImageCtrl.cpp.

References HuginBase::MaskPolygon::addPoint(), applyRotInv(), CLICK_BOTTOM, CLICK_CIRCLE, CLICK_INSIDE, CLICK_LEFT, CLICK_OUTSIDE, 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 661 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(), hugin_utils::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 402 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, NEW_POLYGON_STARTED, NO_IMAGE, NO_MASK, NO_SELECTION, POINTS_ADDING, POINTS_DELETING, POINTS_MOVING, POINTS_SELECTED, 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 839 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 869 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(), hugin_utils::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 1292 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 1281 of file MaskImageCtrl.cpp.

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

void MaskImageCtrl::rescaleImage (  )  [protected]

rescale the image

Definition at line 1299 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 184 of file MaskImageCtrl.h.

References getScaleFactor().

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

scale of width/height

Definition at line 181 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 246 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 1412 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 199 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 190 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 1481 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 111 of file MaskImageCtrl.cpp.

References CROP_SHOWING, DEBUG_TRACE, MainFrame::Get(), 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 90 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 175 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 73 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 1436 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 140 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 141 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 138 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 139 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 1042 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 194 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 191 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 188 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

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

void MaskImageCtrl::update (  ) 

initiate redraw

Definition at line 1055 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 293 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(), hugin_utils::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 316 of file MaskImageCtrl.h.

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

wxBitmap MaskImageCtrl::m_bitmap [private]

Definition at line 159 of file MaskImageCtrl.h.

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

wxColor MaskImageCtrl::m_colour_point_selected [private]

Definition at line 331 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointSelected().

wxColor MaskImageCtrl::m_colour_point_unselected [private]

Definition at line 332 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointUnselected().

wxColor MaskImageCtrl::m_colour_polygon_negative [private]

Definition at line 329 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonNegative().

wxColor MaskImageCtrl::m_colour_polygon_positive [private]

Definition at line 330 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonPositive().

hugin_utils::FDiff2D MaskImageCtrl::m_cropCenter [private]

Definition at line 174 of file MaskImageCtrl.h.

Referenced by setCrop(), and UpdateCrop().

bool MaskImageCtrl::m_cropCentered [private]

Definition at line 172 of file MaskImageCtrl.h.

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

bool MaskImageCtrl::m_cropCircle [private]

Definition at line 173 of file MaskImageCtrl.h.

Referenced by OnLeftMouseDown(), and setCrop().

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

Definition at line 170 of file MaskImageCtrl.h.

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

vigra::Rect2D MaskImageCtrl::m_cropRect [private]

Definition at line 171 of file MaskImageCtrl.h.

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

wxPoint MaskImageCtrl::m_currentPos [private]

Definition at line 326 of file MaskImageCtrl.h.

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

wxBitmap MaskImageCtrl::m_disabledBitmap [private]

Definition at line 160 of file MaskImageCtrl.h.

Referenced by OnDraw(), and rescaleImage().

wxPoint MaskImageCtrl::m_dragStartPos [private]

Definition at line 325 of file MaskImageCtrl.h.

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

HuginBase::MaskPolygon MaskImageCtrl::m_editingMask [private]

Definition at line 318 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 313 of file MaskImageCtrl.h.

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

bool MaskImageCtrl::m_fitToWindow [private]

Definition at line 310 of file MaskImageCtrl.h.

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

std::string MaskImageCtrl::m_imageFilename [private]

Definition at line 162 of file MaskImageCtrl.h.

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

HuginBase::MaskPolygonVector MaskImageCtrl::m_imageMask [private]

Definition at line 314 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 166 of file MaskImageCtrl.h.

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

ImageCache::EntryPtr MaskImageCtrl::m_img [private]

Definition at line 322 of file MaskImageCtrl.h.

Referenced by rescaleImage(), and setImage().

ImageRotation MaskImageCtrl::m_imgRotation [private]

Definition at line 164 of file MaskImageCtrl.h.

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

MaskEditorState MaskImageCtrl::m_maskEditState [private]

Definition at line 307 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 178 of file MaskImageCtrl.h.

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

HuginBase::MaskPolygonVector MaskImageCtrl::m_masksToDraw [private]

Definition at line 315 of file MaskImageCtrl.h.

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

int MaskImageCtrl::m_oldScrollPosX [private]

Definition at line 336 of file MaskImageCtrl.h.

Referenced by OnScroll(), and setImage().

int MaskImageCtrl::m_oldScrollPosY [private]

Definition at line 336 of file MaskImageCtrl.h.

Referenced by OnScroll(), and setImage().

bool MaskImageCtrl::m_previewOnly [private]

Definition at line 311 of file MaskImageCtrl.h.

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

wxSize MaskImageCtrl::m_realSize [private]

Definition at line 168 of file MaskImageCtrl.h.

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

double MaskImageCtrl::m_scaleFactor [private]

Definition at line 309 of file MaskImageCtrl.h.

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

HuginBase::UIntSet MaskImageCtrl::m_selectedPoints [private]

Definition at line 320 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 176 of file MaskImageCtrl.h.

Referenced by OnDraw(), and setDrawingActiveMasks().


The documentation for this class was generated from the following files:
Generated on 4 Dec 2016 for Hugintrunk by  doxygen 1.4.7