|
Hugin trunk 0.1
|
mask editor More...
#include <MaskImageCtrl.h>

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="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 | OnMiddleMouseDown (wxMouseEvent &mouse) |
| event handler for middle mouse button, start scrolling | |
| void | OnMiddleMouseUp (wxMouseEvent &mouse) |
| event handler for middle mouse button, end scrolling | |
| void | OnMouseWheel (wxMouseEvent &mouse) |
| event handler for mouse wheel | |
| void | OnKeyUp (wxKeyEvent &e) |
| event handler for keyboard | |
| void | OnChar (wxKeyEvent &e) |
| event handler for scrolling with 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 override |
| 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 | SetUserColourPolygonNegative (wxColour newColour) |
| sets the colour for different parts | |
| void | SetUserColourPolygonPositive (wxColour newColour) |
| void | SetUserColourPointSelected (wxColour newColour) |
| void | SetUserColourPointUnselected (wxColour newColour) |
| void | OnPaint (wxPaintEvent &e) |
| drawing routine | |
Protected Member Functions | |
| void | OnSize (wxSizeEvent &e) |
| handler called when size of control was changed | |
| void | OnSizeFinished (wxTimerEvent &e) |
| handler called at end of all resize | |
| 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 > | |
| T | applyRot (const T &p) const |
| template<class T > | |
| T | applyRotInv (const T &p) const |
| void | DrawPolygon (wxDC &dc, HuginBase::MaskPolygon poly, bool isSelected, bool drawMarker) |
| void | DrawSelectionRectangle () |
| void | DrawCrop (wxDC &dc) |
| 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) |
|
private |
| Enumerator | |
|---|---|
| CLICK_OUTSIDE | |
| CLICK_INSIDE | |
| CLICK_LEFT | |
| CLICK_RIGHT | |
| CLICK_TOP | |
| CLICK_BOTTOM | |
| CLICK_CIRCLE | |
Definition at line 272 of file MaskImageCtrl.h.
image rotation.
Useful to display images depending on their roll setting. rotation is clockwise
| Enumerator | |
|---|---|
| ROT0 | |
| ROT90 | |
| ROT180 | |
| ROT270 | |
Definition at line 55 of file MaskImageCtrl.h.
|
private |
different states of the editor
Definition at line 280 of file MaskImageCtrl.h.
|
inline |
ctor.
Definition at line 43 of file MaskImageCtrl.h.
Definition at line 215 of file MaskImageCtrl.h.
References m_imgRotation, m_realSize, ROT0, ROT180, ROT270, and ROT90.
Referenced by DrawCrop(), DrawPolygon(), and OnPaint().
Definition at line 239 of file MaskImageCtrl.h.
References m_imgRotation, m_realSize, ROT0, ROT180, ROT270, and ROT90.
Referenced by OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().
calculate new scale factor for this image
Definition at line 1584 of file MaskImageCtrl.cpp.
References DEBUG_DEBUG, m_imgRotation, ROT270, ROT90, and threshold().
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 = "panel" |
||
| ) |
Definition at line 48 of file MaskImageCtrl.cpp.
References m_activeMask, m_fitToWindow, m_imgRotation, m_maskEditState, m_maskMode, m_middleMouseScroll, m_oldScrollPosX, m_oldScrollPosY, m_previewOnly, m_resizeTimer, m_scaleFactor, m_showActiveMasks, NO_IMAGE, OnCaptureLost(), OnChar(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMiddleMouseDown(), OnMiddleMouseUp(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnRightMouseDown(), OnRightMouseUp(), OnScroll(), OnSize(), OnSizeFinished(), ROT0, and threshold().
|
override |
returns size of currently scaled image
Definition at line 1195 of file MaskImageCtrl.cpp.
References m_imageSize, and threshold().
Definition at line 1255 of file MaskImageCtrl.cpp.
References applyRot(), HuginBase::BaseSrcPanoImage::CROP_CIRCLE, m_color_selection, m_cropMode, m_cropRect, m_maskMode, scale(), threshold(), and transform().
Referenced by OnPaint().
|
private |
Definition at line 1200 of file MaskImageCtrl.cpp.
References applyRot(), 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(), threshold(), and transform().
Referenced by OnPaint().
|
private |
Definition at line 1507 of file MaskImageCtrl.cpp.
References m_color_selection, m_currentPos, m_dragStartPos, m_overlay, and threshold().
Referenced by OnMouseMove().
|
private |
Definition at line 1525 of file MaskImageCtrl.cpp.
References m_editPanel, m_imageMask, MaskEditorPanel::SelectMask(), and threshold().
Referenced by OnLeftMouseUp().
|
private |
Definition at line 271 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, maxSelectionDistance, and threshold().
Referenced by OnLeftMouseDown(), and OnMouseMove().
|
inline |
returns the current crop rect
Definition at line 66 of file MaskImageCtrl.h.
References m_cropRect.
Referenced by MaskEditorPanel::UpdateCrop(), and MaskEditorPanel::UpdateCropFromImage().
|
inline |
returns the current rotation of displayed image
Definition at line 123 of file MaskImageCtrl.h.
References m_imgRotation.
Referenced by MaskEditorPanel::setImage().
|
inline |
returns the vector of all mask (including new created mask)
Definition at line 70 of file MaskImageCtrl.h.
References m_imageMask.
Referenced by MaskEditorPanel::AddMask(), and MaskEditorPanel::UpdateMask().
|
inline |
return scale factor, 0 for autoscale
Definition at line 119 of file MaskImageCtrl.h.
References m_fitToWindow, and m_scaleFactor.
Referenced by MaskEditorPanel::OnZoom().
|
protected |
get scale factor (calculates factor when fit to window is active)
Definition at line 1603 of file MaskImageCtrl.cpp.
References m_scaleFactor.
Referenced by invtransform(), invtransform(), OnLeftMouseDown(), OnLeftMouseUp(), OnRightMouseUp(), rescaleImage(), scale(), scale(), SelectPointsInsideMouseRect(), transform(), and transform().
| void MaskImageCtrl::Init | ( | MaskEditorPanel * | parent | ) |
Definition at line 97 of file MaskImageCtrl.cpp.
References m_editPanel, and threshold().
Referenced by MaskEditorPanel::Create().
|
inlineprivate |
Definition at line 204 of file MaskImageCtrl.h.
References invtransform(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.
Definition at line 201 of file MaskImageCtrl.h.
References getScaleFactor(), and HuginBase::maskOffset.
translate screen coordinates to image coordinates, considers additional added border
Definition at line 198 of file MaskImageCtrl.h.
References getScaleFactor(), and HuginBase::maskOffset.
Referenced by invtransform(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), 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 1166 of file MaskImageCtrl.cpp.
References OnKillFocus(), and threshold().
Referenced by Create().
| void MaskImageCtrl::OnChar | ( | wxKeyEvent & | e | ) |
event handler for scrolling with keyboard
Definition at line 1135 of file MaskImageCtrl.cpp.
References m_bitmap, and threshold().
Referenced by Create().
| void MaskImageCtrl::OnKeyUp | ( | wxKeyEvent & | e | ) |
event handler for keyboard
Definition at line 1055 of file MaskImageCtrl.cpp.
References CROP_SHOWING, HuginBase::MaskPolygon::getMaskPolygon(), m_activeMask, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_selectedPoints, NO_MASK, NO_SELECTION, MaskEditorPanel::OnMaskDelete(), POINTS_SELECTED, HuginBase::MaskPolygon::removePoint(), threshold(), and MaskEditorPanel::UpdateMask().
Referenced by Create().
| void MaskImageCtrl::OnKillFocus | ( | wxFocusEvent & | e | ) |
event handler, when editor lost focus, mainly cancels creating new polygon
Definition at line 1172 of file MaskImageCtrl.cpp.
References m_editingMask, m_maskEditState, m_selectedPoints, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, and threshold().
Referenced by Create(), and OnCaptureLost().
| void MaskImageCtrl::OnLeftMouseDblClick | ( | wxMouseEvent & | mouse | ) |
event handler for left double click
Definition at line 788 of file MaskImageCtrl.cpp.
References MaskEditorPanel::AddMask(), MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), m_activeMask, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_middleMouseScroll, m_previewOnly, m_selectedPoints, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_SELECTION, HuginBase::MaskPolygon::removePoint(), and threshold().
Referenced by Create().
| void MaskImageCtrl::OnLeftMouseDown | ( | wxMouseEvent & | mouse | ) |
event handler when left mouse button is pressed
Definition at line 530 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, HuginBase::MaskPolygon::FindPointNearPos(), GetClickPos(), HuginBase::MaskPolygon::getMaskPolygon(), getScaleFactor(), 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 threshold().
Referenced by Create().
| void MaskImageCtrl::OnLeftMouseUp | ( | wxMouseEvent & | mouse | ) |
event handler when right mouse button is released
Definition at line 664 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, FindPolygon(), HuginBase::MaskPolygon::getMaskPolygon(), getScaleFactor(), invtransform(), m_activeMask, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_middleMouseScroll, m_overlay, 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(), threshold(), MaskEditorPanel::UpdateCrop(), UpdateCrop(), MaskEditorPanel::UpdateMask(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.
Referenced by Create().
| void MaskImageCtrl::OnMiddleMouseDown | ( | wxMouseEvent & | mouse | ) |
event handler for middle mouse button, start scrolling
Definition at line 969 of file MaskImageCtrl.cpp.
References CROP_SHOWING, m_maskEditState, m_middleMouseScroll, m_previewOnly, m_scrollPos, NEW_POLYGON_CREATING, NEW_POLYGON_STARTED, NO_MASK, NO_SELECTION, POINTS_ADDING, POINTS_SELECTED, and threshold().
Referenced by Create().
| void MaskImageCtrl::OnMiddleMouseUp | ( | wxMouseEvent & | mouse | ) |
event handler for middle mouse button, end scrolling
Definition at line 998 of file MaskImageCtrl.cpp.
References m_middleMouseScroll, m_previewOnly, and threshold().
Referenced by Create().
| void MaskImageCtrl::OnMouseMove | ( | wxMouseEvent & | mouse | ) |
event handler when mouse is moving
Definition at line 419 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, 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_middleMouseScroll, m_previewOnly, m_scrollPos, 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, threshold(), UpdateCrop(), and MaskEditorPanel::UpdateCropFromImage().
Referenced by Create().
| void MaskImageCtrl::OnMouseWheel | ( | wxMouseEvent & | mouse | ) |
event handler for mouse wheel
Definition at line 1011 of file MaskImageCtrl.cpp.
References applyRotInv(), CROP_SHOWING, HuginBase::MaskPolygon::getCenter(), invtransform(), HuginBase::MaskPolygon::isInside(), m_activeMask, m_cropCircle, m_cropRect, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_previewOnly, m_realSize, NO_SELECTION, POINTS_SELECTED, HuginBase::MaskPolygon::scale(), threshold(), MaskEditorPanel::UpdateCrop(), and MaskEditorPanel::UpdateMask().
Referenced by Create().
| void MaskImageCtrl::OnPaint | ( | wxPaintEvent & | e | ) |
drawing routine
Definition at line 1280 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_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(), threshold(), and transform().
Referenced by Create().
| void MaskImageCtrl::OnRightMouseDown | ( | wxMouseEvent & | mouse | ) |
event handler when right mouse button is pressed
Definition at line 832 of file MaskImageCtrl.cpp.
References applyRotInv(), fill_set(), HuginBase::MaskPolygon::getMaskPolygon(), invtransform(), HuginBase::MaskPolygon::isInside(), m_currentPos, m_dragStartPos, m_editingMask, m_maskEditState, m_middleMouseScroll, m_previewOnly, m_selectedPoints, NO_SELECTION, POINTS_DELETING, POINTS_MOVING, POINTS_SELECTED, and threshold().
Referenced by Create().
| void MaskImageCtrl::OnRightMouseUp | ( | wxMouseEvent & | mouse | ) |
event handler when right mouse button is released
Definition at line 861 of file MaskImageCtrl.cpp.
References MaskEditorPanel::AddMask(), applyRotInv(), MainFrame::Get(), HuginBase::MaskPolygon::getMaskPolygon(), getScaleFactor(), invtransform(), m_activeMask, m_currentPos, m_dragStartPos, m_editingMask, m_editPanel, m_imageMask, m_maskEditState, m_middleMouseScroll, m_overlay, 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(), threshold(), and MaskEditorPanel::UpdateMask().
Referenced by Create().
| void MaskImageCtrl::OnScroll | ( | wxScrollWinEvent & | e | ) |
event handler for remember scroll position
Definition at line 1404 of file MaskImageCtrl.cpp.
References m_oldScrollPosX, m_oldScrollPosY, and threshold().
Referenced by Create().
|
protected |
handler called when size of control was changed
Definition at line 1384 of file MaskImageCtrl.cpp.
References m_imageFilename, and m_resizeTimer.
Referenced by Create().
|
protected |
handler called at end of all resize
Definition at line 1394 of file MaskImageCtrl.cpp.
References m_fitToWindow, m_imageFilename, and setScale().
Referenced by Create().
|
protected |
rescale the image
Definition at line 1411 of file MaskImageCtrl.cpp.
References calcAutoScaleFactor(), HuginBase::Color::CorrectImage(), huginApp::Get(), getScaleFactor(), huginApp::HasMonitorProfile(), imageCacheEntry2wxImage(), m_bitmap, m_color_selection, m_disabledBitmap, m_fitToWindow, m_imageSize, m_img, m_imgRotation, m_maskEditState, m_overlay, m_realSize, m_scaleFactor, HuginBase::maskOffset, NO_IMAGE, ROT180, ROT270, ROT90, scale(), and threshold().
Referenced by setImage(), and setScale().
Definition at line 179 of file MaskImageCtrl.h.
References getScaleFactor().
scale of width/height
Definition at line 176 of file MaskImageCtrl.h.
References getScaleFactor().
Referenced by DrawCrop(), OnPaint(), and rescaleImage().
| void MaskImageCtrl::selectAllMarkers | ( | ) |
select all points of active mask
Definition at line 263 of file MaskImageCtrl.cpp.
References fill_set(), m_activeMask, m_imageMask, m_selectedPoints, and threshold().
Referenced by MaskEditorPanel::AddMask().
|
private |
Definition at line 1539 of file MaskImageCtrl.cpp.
References applyRotInv(), HuginBase::MaskPolygon::getMaskPolygon(), getScaleFactor(), invtransform(), m_currentPos, m_dragStartPos, m_editingMask, m_selectedPoints, maxSelectionDistance, set_contains(), threshold(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.
Referenced by OnLeftMouseDown(), OnLeftMouseUp(), and OnRightMouseUp().
mark mask with image as beeing editing
Definition at line 216 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, POINTS_SELECTED, and threshold().
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 207 of file MaskImageCtrl.cpp.
References m_cropCenter, m_cropCentered, m_cropCircle, m_cropMode, m_cropRect, and threshold().
Referenced by MaskEditorPanel::setImage().
set if active masks should be drawn
Definition at line 1608 of file MaskImageCtrl.cpp.
References m_showActiveMasks, and threshold().
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 125 of file MaskImageCtrl.cpp.
References CROP_SHOWING, DEBUG_TRACE, MainFrame::Get(), HUGIN_CONV_FILENAME, m_bitmap, m_disabledBitmap, m_imageFilename, m_imageMask, m_img, m_imgRotation, m_maskEditState, m_maskMode, m_masksToDraw, m_oldScrollPosX, m_oldScrollPosY, m_overlay, NO_IMAGE, NO_MASK, rescaleImage(), ROT0, setActiveMask(), and threshold().
Referenced by MaskLoadDialog::initValues(), and MaskEditorPanel::setImage().
sets the control to mask (newMaskMode=true) or crop (newMaskMode=false) mode
Definition at line 102 of file MaskImageCtrl.cpp.
References CROP_SHOWING, m_maskEditState, m_maskMode, m_overlay, NO_IMAGE, NO_SELECTION, setActiveMask(), and threshold().
Referenced by MaskEditorPanel::OnModeChanged().
| void MaskImageCtrl::setNewMasks | ( | HuginBase::MaskPolygonVector | newMasks, |
| HuginBase::MaskPolygonVector | masksToDraw | ||
| ) |
updates masks for currently selected image
Definition at line 192 of file MaskImageCtrl.cpp.
References m_activeMask, m_imageMask, m_masksToDraw, setActiveMask(), and threshold().
Referenced by MaskEditorPanel::setImage(), and MaskLoadDialog::UpdatePreviewImage().
|
inline |
if called, the mouse handlers are deactivated
Definition at line 58 of file MaskImageCtrl.h.
References m_previewOnly.
Referenced by MaskLoadDialog::MaskLoadDialog().
set the scaling factor for mask editing display.
| factor | zoom factor, 0 means fit to window. |
Definition at line 1563 of file MaskImageCtrl.cpp.
References calcAutoScaleFactor(), DEBUG_DEBUG, m_fitToWindow, m_imageSize, m_scaleFactor, and rescaleImage().
Referenced by MaskLoadDialog::initValues(), OnSizeFinished(), and MaskEditorPanel::OnZoom().
Definition at line 131 of file MaskImageCtrl.h.
References m_colour_point_selected, and threshold().
Referenced by MaskEditorPanel::Create(), MaskLoadDialog::MaskLoadDialog(), and MaskEditorPanel::OnColourChanged().
Definition at line 132 of file MaskImageCtrl.h.
References m_colour_point_unselected, and threshold().
Referenced by MaskEditorPanel::Create(), MaskLoadDialog::MaskLoadDialog(), and MaskEditorPanel::OnColourChanged().
sets the colour for different parts
Definition at line 129 of file MaskImageCtrl.h.
References m_colour_polygon_negative, and threshold().
Referenced by MaskEditorPanel::Create(), MaskLoadDialog::MaskLoadDialog(), and MaskEditorPanel::OnColourChanged().
Definition at line 130 of file MaskImageCtrl.h.
References m_colour_polygon_positive, and threshold().
Referenced by MaskEditorPanel::Create(), MaskLoadDialog::MaskLoadDialog(), and MaskEditorPanel::OnColourChanged().
| void MaskImageCtrl::startNewPolygon | ( | ) |
starts creating a new polygon
Definition at line 1187 of file MaskImageCtrl.cpp.
References m_editingMask, m_maskEditState, m_selectedPoints, NEW_POLYGON_STARTED, and threshold().
Referenced by MaskEditorPanel::OnMaskAdd().
|
inlineprivate |
Definition at line 189 of file MaskImageCtrl.h.
References threshold(), transform(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.
Definition at line 186 of file MaskImageCtrl.h.
References getScaleFactor(), and HuginBase::maskOffset.
convert image coordinate to screen coordinates, considers additional added border
Definition at line 183 of file MaskImageCtrl.h.
References getScaleFactor(), and HuginBase::maskOffset.
Referenced by DrawCrop(), DrawPolygon(), OnPaint(), and transform().
|
private |
Definition at line 310 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(), threshold(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.
Referenced by OnLeftMouseUp(), and OnMouseMove().
Definition at line 310 of file MaskImageCtrl.h.
Referenced by Create(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnRightMouseUp(), selectAllMarkers(), setActiveMask(), and setNewMasks().
|
private |
Definition at line 152 of file MaskImageCtrl.h.
Referenced by OnChar(), OnPaint(), rescaleImage(), and setImage().
|
private |
Definition at line 330 of file MaskImageCtrl.h.
Referenced by DrawCrop(), DrawSelectionRectangle(), and rescaleImage().
|
private |
Definition at line 328 of file MaskImageCtrl.h.
Referenced by DrawPolygon(), and SetUserColourPointSelected().
|
private |
Definition at line 329 of file MaskImageCtrl.h.
Referenced by DrawPolygon(), and SetUserColourPointUnselected().
|
private |
Definition at line 326 of file MaskImageCtrl.h.
Referenced by DrawPolygon(), and SetUserColourPolygonNegative().
|
private |
Definition at line 327 of file MaskImageCtrl.h.
Referenced by DrawPolygon(), and SetUserColourPolygonPositive().
|
private |
Definition at line 167 of file MaskImageCtrl.h.
Referenced by setCrop(), and UpdateCrop().
|
private |
Definition at line 165 of file MaskImageCtrl.h.
Referenced by OnLeftMouseDown(), OnMouseMove(), setCrop(), and UpdateCrop().
|
private |
Definition at line 166 of file MaskImageCtrl.h.
Referenced by OnLeftMouseDown(), OnMouseWheel(), and setCrop().
|
private |
Definition at line 163 of file MaskImageCtrl.h.
Referenced by DrawCrop(), GetClickPos(), OnLeftMouseDown(), OnPaint(), and setCrop().
|
private |
Definition at line 164 of file MaskImageCtrl.h.
Referenced by DrawCrop(), GetClickPos(), getCrop(), OnLeftMouseDown(), OnMouseWheel(), OnPaint(), setCrop(), and UpdateCrop().
|
private |
Definition at line 320 of file MaskImageCtrl.h.
Referenced by DrawSelectionRectangle(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().
|
private |
Definition at line 153 of file MaskImageCtrl.h.
Referenced by OnPaint(), rescaleImage(), and setImage().
|
private |
Definition at line 319 of file MaskImageCtrl.h.
Referenced by DrawSelectionRectangle(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), and UpdateCrop().
|
private |
Definition at line 312 of file MaskImageCtrl.h.
Referenced by OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnRightMouseDown(), OnRightMouseUp(), SelectPointsInsideMouseRect(), setActiveMask(), and startNewPolygon().
|
private |
Definition at line 307 of file MaskImageCtrl.h.
Referenced by FindPolygon(), Init(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), and OnRightMouseUp().
|
private |
Definition at line 304 of file MaskImageCtrl.h.
Referenced by Create(), getScale(), OnSizeFinished(), rescaleImage(), and setScale().
|
private |
Definition at line 155 of file MaskImageCtrl.h.
Referenced by OnSize(), OnSizeFinished(), setActiveMask(), and setImage().
|
private |
Definition at line 308 of file MaskImageCtrl.h.
Referenced by FindPolygon(), getNewMask(), OnKeyUp(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnRightMouseUp(), selectAllMarkers(), setActiveMask(), setImage(), and setNewMasks().
|
private |
Definition at line 159 of file MaskImageCtrl.h.
Referenced by DoGetBestSize(), rescaleImage(), and setScale().
|
private |
Definition at line 316 of file MaskImageCtrl.h.
Referenced by rescaleImage(), and setImage().
|
private |
Definition at line 157 of file MaskImageCtrl.h.
Referenced by applyRot(), applyRotInv(), calcAutoScaleFactor(), Create(), getCurrentRotation(), OnMouseMove(), rescaleImage(), and setImage().
|
private |
Definition at line 301 of file MaskImageCtrl.h.
Referenced by Create(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMiddleMouseDown(), OnMouseMove(), OnMouseWheel(), OnPaint(), OnRightMouseDown(), OnRightMouseUp(), rescaleImage(), setActiveMask(), setImage(), SetMaskMode(), startNewPolygon(), and UpdateCrop().
|
private |
Definition at line 171 of file MaskImageCtrl.h.
Referenced by Create(), DrawCrop(), OnLeftMouseDown(), OnPaint(), setActiveMask(), setImage(), and SetMaskMode().
|
private |
Definition at line 309 of file MaskImageCtrl.h.
Referenced by OnPaint(), setImage(), and setNewMasks().
|
private |
Definition at line 322 of file MaskImageCtrl.h.
Referenced by Create(), OnLeftMouseDblClick(), OnLeftMouseUp(), OnMiddleMouseDown(), OnMiddleMouseUp(), OnMouseMove(), OnRightMouseDown(), and OnRightMouseUp().
|
private |
Definition at line 332 of file MaskImageCtrl.h.
Referenced by Create(), OnScroll(), and setImage().
|
private |
Definition at line 332 of file MaskImageCtrl.h.
Referenced by Create(), OnScroll(), and setImage().
|
private |
Definition at line 331 of file MaskImageCtrl.h.
Referenced by DrawSelectionRectangle(), OnLeftMouseUp(), OnRightMouseUp(), rescaleImage(), setImage(), and SetMaskMode().
|
private |
Definition at line 305 of file MaskImageCtrl.h.
Referenced by Create(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMiddleMouseDown(), OnMiddleMouseUp(), OnMouseMove(), OnMouseWheel(), OnRightMouseDown(), OnRightMouseUp(), and setPreviewOnly().
|
private |
Definition at line 161 of file MaskImageCtrl.h.
Referenced by applyRot(), applyRotInv(), OnMouseWheel(), OnPaint(), and rescaleImage().
|
private |
Definition at line 173 of file MaskImageCtrl.h.
|
private |
Definition at line 303 of file MaskImageCtrl.h.
Referenced by Create(), getScale(), getScaleFactor(), rescaleImage(), and setScale().
|
private |
Definition at line 323 of file MaskImageCtrl.h.
Referenced by OnMiddleMouseDown(), and OnMouseMove().
|
private |
Definition at line 314 of file MaskImageCtrl.h.
Referenced by DrawPolygon(), OnKeyUp(), OnKillFocus(), OnLeftMouseDblClick(), OnLeftMouseDown(), OnLeftMouseUp(), OnMouseMove(), OnRightMouseDown(), OnRightMouseUp(), selectAllMarkers(), SelectPointsInsideMouseRect(), setActiveMask(), and startNewPolygon().
|
private |
Definition at line 169 of file MaskImageCtrl.h.
Referenced by Create(), OnPaint(), and setDrawingActiveMasks().