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 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


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 270 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 278 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 212 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 236 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 1415 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 63 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 1007 of file MaskImageCtrl.cpp.

References m_imageSize.

void MaskImageCtrl::DrawCrop (  )  [private]

Definition at line 1071 of file MaskImageCtrl.cpp.

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

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

Definition at line 1078 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 1019 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_positive, polygonPointSize, set_contains(), and transform().

Referenced by OnDraw().

void MaskImageCtrl::DrawSelectionRectangle (  )  [private]

Definition at line 1340 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 1356 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 220 of file MaskImageCtrl.cpp.

References CLICK_BOTTOM, CLICK_CIRCLE, CLICK_INSIDE, CLICK_LEFT, CLICK_OUTSIDE, CLICK_RIGHT, CLICK_TOP, 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 122 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 118 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 1434 of file MaskImageCtrl.cpp.

References m_scaleFactor.

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

void MaskImageCtrl::Init ( MaskEditorPanel parent  ) 

Definition at line 82 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 201 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 198 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 195 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 973 of file MaskImageCtrl.cpp.

References OnKillFocus().

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

drawing routine

Definition at line 1107 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, 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 928 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 979 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 744 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 469 of file MaskImageCtrl.cpp.

References HuginBase::MaskPolygon::addPoint(), 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, 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, 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 610 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 364 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 789 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 823 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::OnSize ( wxSizeEvent &  e  )  [protected]

handler called when size of control was changed

Definition at line 1231 of file MaskImageCtrl.cpp.

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

void MaskImageCtrl::rescaleImage (  )  [protected]

rescale the image

Definition at line 1242 of file MaskImageCtrl.cpp.

References calcAutoScaleFactor(), getScaleFactor(), 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 176 of file MaskImageCtrl.h.

References getScaleFactor().

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

scale of width/height

Definition at line 173 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 212 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 1370 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 165 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 156 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 1439 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 108 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, 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 87 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 147 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 1394 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 132 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 133 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 130 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 131 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 999 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 186 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 183 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 180 of file MaskImageCtrl.h.

References getScaleFactor(), and HuginBase::maskOffset.

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

void MaskImageCtrl::update (  ) 

initiate redraw

Definition at line 1012 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 259 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 308 of file MaskImageCtrl.h.

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

wxBitmap MaskImageCtrl::m_bitmap [private]

Definition at line 151 of file MaskImageCtrl.h.

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

wxColor MaskImageCtrl::m_colour_point_selected [private]

Definition at line 323 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointSelected().

wxColor MaskImageCtrl::m_colour_point_unselected [private]

Definition at line 324 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPointUnselected().

wxColor MaskImageCtrl::m_colour_polygon_negative [private]

Definition at line 321 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonNegative().

wxColor MaskImageCtrl::m_colour_polygon_positive [private]

Definition at line 322 of file MaskImageCtrl.h.

Referenced by DrawPolygon(), and SetUserColourPolygonPositive().

hugin_utils::FDiff2D MaskImageCtrl::m_cropCenter [private]

Definition at line 166 of file MaskImageCtrl.h.

Referenced by setCrop(), and UpdateCrop().

bool MaskImageCtrl::m_cropCentered [private]

Definition at line 164 of file MaskImageCtrl.h.

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

bool MaskImageCtrl::m_cropCircle [private]

Definition at line 165 of file MaskImageCtrl.h.

Referenced by OnLeftMouseDown(), and setCrop().

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

Definition at line 162 of file MaskImageCtrl.h.

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

vigra::Rect2D MaskImageCtrl::m_cropRect [private]

Definition at line 163 of file MaskImageCtrl.h.

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

wxPoint MaskImageCtrl::m_currentPos [private]

Definition at line 318 of file MaskImageCtrl.h.

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

wxBitmap MaskImageCtrl::m_disabledBitmap [private]

Definition at line 152 of file MaskImageCtrl.h.

Referenced by OnDraw(), and rescaleImage().

wxPoint MaskImageCtrl::m_dragStartPos [private]

Definition at line 317 of file MaskImageCtrl.h.

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

HuginBase::MaskPolygon MaskImageCtrl::m_editingMask [private]

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

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

bool MaskImageCtrl::m_fitToWindow [private]

Definition at line 302 of file MaskImageCtrl.h.

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

std::string MaskImageCtrl::m_imageFilename [private]

Definition at line 154 of file MaskImageCtrl.h.

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

HuginBase::MaskPolygonVector MaskImageCtrl::m_imageMask [private]

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

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

ImageCache::EntryPtr MaskImageCtrl::m_img [private]

Definition at line 314 of file MaskImageCtrl.h.

Referenced by rescaleImage(), and setImage().

ImageRotation MaskImageCtrl::m_imgRotation [private]

Definition at line 156 of file MaskImageCtrl.h.

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

MaskEditorState MaskImageCtrl::m_maskEditState [private]

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

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

HuginBase::MaskPolygonVector MaskImageCtrl::m_masksToDraw [private]

Definition at line 307 of file MaskImageCtrl.h.

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

bool MaskImageCtrl::m_previewOnly [private]

Definition at line 303 of file MaskImageCtrl.h.

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

wxSize MaskImageCtrl::m_realSize [private]

Definition at line 160 of file MaskImageCtrl.h.

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

double MaskImageCtrl::m_scaleFactor [private]

Definition at line 301 of file MaskImageCtrl.h.

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

HuginBase::UIntSet MaskImageCtrl::m_selectedPoints [private]

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

Referenced by OnDraw(), and setDrawingActiveMasks().


The documentation for this class was generated from the following files:
Generated on 1 Nov 2014 for Hugintrunk by  doxygen 1.4.7