MaskImageCtrl Class Reference

mask editor More...

#include <MaskImageCtrl.h>

List of all members.

Public Types

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

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]
 

Enumeration values:
CLICK_OUTSIDE 
CLICK_INSIDE 
CLICK_LEFT 
CLICK_RIGHT 
CLICK_TOP 
CLICK_BOTTOM 
CLICK_CIRCLE 

Definition at line 270 of file MaskImageCtrl.h.

Referenced by GetClickPos().

enum MaskImageCtrl::ImageRotation
 

image rotation.

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

Enumeration values:
ROT0 
ROT90 
ROT180 
ROT270 

Definition at line 64 of file MaskImageCtrl.h.

Referenced by getCurrentRotation().

enum MaskImageCtrl::MaskEditorState [private]
 

different states of the editor

Enumeration values:
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.

References m_fitToWindow, m_maskEditState, m_scaleFactor, and NO_IMAGE.


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_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_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, m_imgRotation, 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.

Referenced by MaskEditorPanelXmlHandler::DoCreateResource().

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(), hugin_utils::FDiff2D, m_cropMode, m_cropRect, 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, 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 hugin_utils::FDiff2D, 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 ClickPos, 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.

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

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.

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.

double MaskImageCtrl::getScaleFactor  )  const [protected]
 

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

Definition at line 1434 of file MaskImageCtrl.cpp.

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 hugin_utils::FDiff2D, 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().

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().

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(), DrawCrop(), DrawPolygon(), hugin_utils::FDiff2D, HuginBase::MaskPolygon::getMaskPolygon(), m_bitmap, m_cropMode, m_cropRect, m_disabledBitmap, m_editingMask, m_imageMask, m_maskEditState, m_maskMode, m_masksToDraw, m_realSize, m_showActiveMasks, 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_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, 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(), hugin_utils::FDiff2D, MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_selectedPoints, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, 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_SHOWING, DEBUG_DEBUG, DrawCrop(), DrawSelectionRectangle(), hugin_utils::FDiff2D, HuginBase::MaskPolygon::FindPointNearPos(), GetClickPos(), HuginBase::MaskPolygon::getMaskPolygon(), HuginBase::MaskPolygon::insertPoint(), invtransform(), m_cropMode, m_cropRect, m_currentPos, m_dragStartPos, m_editingMask, m_maskEditState, m_selectedPoints, maxSelectionDistance, NEW_POLYGON_STARTED, NO_MASK, NO_SELECTION, POINTS_SELECTED, SelectPointsInsideMouseRect(), update(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

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_TOP_MOVING, DEBUG_DEBUG, DrawCrop(), DrawSelectionRectangle(), hugin_utils::FDiff2D, FindPolygon(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_selectedPoints, maxSelectionDistance, HuginBase::MaskPolygon::movePointTo(), NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, POINTS_ADDING, POINTS_MOVING, 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 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(), hugin_utils::FDiff2D, GetClickPos(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, 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(), MaskEditorPanel::UpdateCropFromImage(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

void MaskImageCtrl::OnRightMouseDown wxMouseEvent &  mouse  ) 
 

event handler when right mouse button is pressed

Definition at line 789 of file MaskImageCtrl.cpp.

References applyRotInv(), DrawSelectionRectangle(), hugin_utils::FDiff2D, fill_set(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), HuginBase::MaskPolygon::isInside(), m_currentPos, m_dragStartPos, m_editingMask, m_maskEditState, m_selectedPoints, NO_SELECTION, 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(), hugin_utils::FDiff2D, MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_activeMask, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_selectedPoints, maxSelectionDistance, HuginBase::MaskPolygon::movePointTo(), NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, POINTS_DELETING, POINTS_MOVING, 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::OnSize wxSizeEvent &  e  )  [protected]
 

handler called when size of control was changed

Definition at line 1231 of file MaskImageCtrl.cpp.

References DEBUG_TRACE, 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_imageSize, m_img, m_imgRotation, m_maskEditState, m_realSize, m_scaleFactor, ROT180, ROT270, ROT90, and scale().

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(), hugin_utils::FDiff2D, HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), m_currentPos, m_dragStartPos, m_editingMask, m_selectedPoints, celeste::max(), 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 m_activeMask, m_editingMask, m_imageFilename, m_imageMask, m_maskEditState, and m_selectedPoints.

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 hugin_utils::FDiff2D, 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 DEBUG_TRACE, hugin_utils::FileExists(), m_bitmap, m_imageFilename, m_imageMask, m_img, m_imgRotation, m_maskEditState, m_masksToDraw, rescaleImage(), 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 m_maskEditState, m_maskMode, 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, and m_selectedPoints.

Referenced by MaskEditorPanel::OnMaskAdd().

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

Definition at line 186 of file MaskImageCtrl.h.

References hugin_utils::FDiff2D, 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().

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().

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, hugin_utils::FDiff2D, invtransform(), m_cropCenter, m_cropRect, m_currentPos, m_dragStartPos, hugin_utils::roundi(), sqr(), 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 308 of file MaskImageCtrl.h.

Referenced by OnKeyUp(), OnLeftMouseDblClick(), 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 setCrop().

bool MaskImageCtrl::m_cropCircle [private]
 

Definition at line 165 of file MaskImageCtrl.h.

Referenced by 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(), 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(), MaskImageCtrl(), 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(), 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 calcAutoScaleFactor(), rescaleImage(), and setImage().

MaskEditorState MaskImageCtrl::m_maskEditState [private]
 

Definition at line 299 of file MaskImageCtrl.h.

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

bool MaskImageCtrl::m_maskMode [private]
 

Definition at line 170 of file MaskImageCtrl.h.

Referenced by OnDraw(), 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 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 MaskImageCtrl(), 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 Sun Apr 20 01:25:49 2014 for Hugintrunk by  doxygen 1.3.9.1