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 snapping to intersection of angular line and pos.
Referenced by snap().
|
noexcept |
Tries vertex, intersection, boundary, and grid snapping.
If snapping occurred, pos is set to the new user space position.
References ipe::Page::count(), ESnapBd, ESnapCtl, ESnapCustom, ESnapGrid, ESnapInt, ESnapNone, ESnapVtx, iGridSize, intersectionSnap(), iSnap, ipe::Page::objSnapsInView(), ipe::Page::snapBnd(), ipe::Page::snapCtl(), ipe::Page::snapVtx(), ipe::Vector::x, and ipe::Vector::y.
Referenced by snap().
|
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 ESnapAngle, ESnapAuto, ESnapBd, getLine(), ipe::Line::intersects(), iOrigin, iSnap, ipe::Line::project(), simpleSnap(), snapAngularIntersection(), and ipe::Vector::sqLen().
Find line through base with slope determined by angular snap size and direction.
References ipe::Vector::angle(), iAngleSize, iDir, ipe::Vector::len(), and ipe::Angle::normalize().
Referenced by snap().
Set axis origin and direction from edge near mouse.
Returns true
if successful.
References ipe::Vector::angle(), ipe::Line::dir(), ipe::Arc::distance(), iDir, ipe::Arc::iM, iOrigin, 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 simpleSnap(), and snap().
bool ipe::Snap::iGridVisible |
Is the grid visible?
int ipe::Snap::iGridSize |
Snap grid spacing.
Referenced by simpleSnap().
int ipe::Snap::iSnapDistance |
Snap distance (in pixels).
bool ipe::Snap::iWithAxes |
Show coordinate system?
Referenced by ipe::TransformTool::TransformTool().