Ipelib
Public Types | Public Member Functions | Public Attributes
ipe::Snap Class Reference

#include <ipesnap.h>

List of all members.

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

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: