Ipelib
|
#include <ipesnap.h>
Public Types | |
enum | TSnapModes { ESnapNone = 0 , ESnapVtx = 1 , ESnapCtl = 2 , ESnapBd = 4 , ESnapInt = 8 , ESnapGrid = 0x10 , ESnapAngle = 0x20 , ESnapAuto = 0x40 , ESnapCustom = 0x80 } |
Public Member Functions | |
void | intersectionSnap (const Vector &pos, Vector &fifi, const Page *page, int view, double &snapDist) const noexcept |
bool | snapAngularIntersection (Vector &pos, const Line &l, const Page *page, int view, double snapDist) const noexcept |
TSnapModes | simpleSnap (Vector &pos, const Page *page, int view, double snapDist, Tool *tool=nullptr) const noexcept |
TSnapModes | snap (Vector &pos, const Page *page, int view, double snapDist, Tool *tool=nullptr, Vector *autoOrg=nullptr) const noexcept |
Line | getLine (const Vector &mouse, const Vector &base) const noexcept |
bool | setEdge (const Vector &pos, const Page *page, int view) noexcept |
Public Attributes | |
int | iSnap |
bool | iGridVisible |
int | iGridSize |
double | iAngleSize |
int | iSnapDistance |
bool | iWithAxes |
Vector | iOrigin |
Angle | iDir |
Performs snapping operations, and stores snapping state.
|
noexcept |
Perform intersection snapping.
References ipe::size().
|
noexcept |
Perform snapping to intersection of angular line and pos.
|
noexcept |
Tries vertex, intersection, boundary, and grid snapping.
If snapping occurred, pos is set to the new user space position.
References ipe::Page::count(), ipe::Page::objSnapsInView(), ipe::Page::snapBnd(), ipe::Page::snapCtl(), ipe::Page::snapVtx(), ipe::Vector::x, and ipe::Vector::y.
Referenced by ipe::CanvasBase::simpleSnapPos().
|
noexcept |
Performs snapping of position pos.
Returns true
if snapping occurred. In that case pos is set to the new user space position.
Automatic angular snapping occurs if autoOrg is not null — the value is then used as the origin for automatic angular snapping.
References ipe::Line::intersects(), ipe::Line::project(), and ipe::Vector::sqLen().
Referenced by ipe::CanvasBase::computeFifi().
Find line through base with slope determined by angular snap size and direction.
References ipe::Vector::angle(), ipe::Vector::len(), and ipe::Angle::normalize().
Set axis origin and direction from edge near mouse.
Returns true
if successful.
References ipe::Vector::angle(), ipe::Line::dir(), ipe::Arc::distance(), ipe::Arc::iM, ipe::Segment::iP, ipe::Segment::iQ, ipe::Segment::line(), ipe::Matrix::linear(), ipe::Line::project(), ipe::Bezier::snap(), and ipe::Bezier::tangent().
int ipe::Snap::iSnap |
Activated snapping modes (TSnapModes)
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CanvasBase::computeFifi(), and ipe::CanvasBase::snapToPaperAndFrame().
bool ipe::Snap::iGridVisible |
Is the grid visible?
Referenced by ipe::CanvasBase::CanvasBase(), and ipe::CanvasBase::refreshSurface().
int ipe::Snap::iGridSize |
Snap grid spacing.
Referenced by ipe::CanvasBase::CanvasBase(), and ipe::CanvasBase::drawGrid().
double ipe::Snap::iAngleSize |
Angle for angular snapping.
Referenced by ipe::CanvasBase::CanvasBase(), and ipe::CanvasBase::drawAxes().
int ipe::Snap::iSnapDistance |
Snap distance (in pixels).
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CanvasBase::computeFifi(), ipe::CanvasBase::simpleSnapPos(), and ipe::CanvasBase::snapToPaperAndFrame().
bool ipe::Snap::iWithAxes |
Show coordinate system?
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CanvasBase::refreshSurface(), and ipe::TransformTool::TransformTool().
Vector ipe::Snap::iOrigin |
Origin of coordinate system.
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CanvasBase::drawAxes(), and ipe::TransformTool::TransformTool().
Angle ipe::Snap::iDir |
Direction of x-axis.
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CanvasBase::drawAxes(), and ipe::TransformTool::TransformTool().