Ipelib

- Main Page
- Related Pages
- Modules
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Public Attributes | List of all members
ipe::Snap Class Reference
Ipe Utilities

`#include <ipesnap.h>`

## Public Types

enum | TSnapModes { ESnapNone = 0, ESnapVtx = 1, ESnapBd = 2, ESnapInt = 4, ESnapGrid = 8, ESnapAngle = 0x10, ESnapAuto = 0x20 }

## Public Member Functions

bool | intersectionSnap (Vector &pos, const Page *page, double snapDist) const
bool | snapAngularIntersection (Vector &pos, const Line &l, const Page *page, double snapDist) const
bool | simpleSnap (Vector &pos, const Page *page, double snapDist) const
bool | snap (Vector &pos, const Page *page, double snapDist, Vector *autoOrg=0) const
Line | getLine (const Vector &mouse, const Vector &base) const
bool | setEdge (const Vector &pos, const Page *page)

## Public Attributes

int | iSnap
bool | iGridVisible
int | iGridSize
double | iAngleSize
int | iSnapDistance
bool | iWithAxes
Vector | iOrigin
Angle | iDir

## Detailed Description

Performs snapping operations, and stores snapping state.

## Member Enumeration Documentation

enum ipe::Snap::TSnapModes

The different snap modes as bitmasks.

Enumerator:

  ESnapNone |
  ESnapVtx |
  ESnapBd |
  ESnapInt |
  ESnapGrid |
  ESnapAngle |
  ESnapAuto |

## Member Function Documentation

bool Snap::intersectionSnap | ( | Vector & | pos,
|  | const Page * | page,
|  | double | snapDist
| ) |  | const

Perform intersection snapping.

bool Snap::snapAngularIntersection | ( | Vector & | pos,
|  | const Line & | l,
|  | const Page * | page,
|  | double | snapDist
| ) |  | const

Perform snapping to intersection of angular line and pos.

bool Snap::simpleSnap | ( | Vector & | pos,
|  | const Page * | page,
|  | double | snapDist
| ) |  | const

Tries vertex, intersection, boundary, and grid snapping.

If snapping occurred, pos is set to the new user space position.

bool Snap::snap | ( | Vector & | pos,
|  | const Page * | page,
|  | double | snapDist,
|  | Vector * | autoOrg = `0`
| ) |  | const

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.

Line Snap::getLine | ( | const Vector & | mouse,
|  | const Vector & | base
| ) |  | const

Find line through base with slope determined by angular snap size and direction.

bool Snap::setEdge | ( | const Vector & | pos,
|  | const Page * | page
| ) |  |

Set axis origin and direction from edge near mouse.

Returns `true` if successful.

## Member Data Documentation

int ipe::Snap::iSnap

Activated snapping modes (TSnapModes)

bool ipe::Snap::iGridVisible

Is the grid visible?

int ipe::Snap::iGridSize

Snap grid spacing.

double ipe::Snap::iAngleSize

Angle for angular snapping.

int ipe::Snap::iSnapDistance

Snap distance (in pixels).

bool ipe::Snap::iWithAxes

Show coordinate system?

Vector ipe::Snap::iOrigin

Origin of coordinate system.

Angle ipe::Snap::iDir

Direction of x-axis.

The documentation for this class was generated from the following files:

- ipesnap.h
- ipesnap.cpp