#ifndef SNAPENUMS_H_
#define SNAPENUMS_H_
/*
* Authors:
* Diederik van Lierop <mail@diedenrezi.nl>
*
* Copyright (C) 2010 - 2012 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
/**
* enumerations of snap source types and snap target types.
*/
enum SnapSourceType { // When adding source types here, then also update Inkscape::SnapPreferences::source2target!
SNAPSOURCE_UNDEFINED = 0,
//-------------------------------------------------------------------
// Bbox points can be located at the edge of the stroke (for visual bboxes); they will therefore not snap
// to nodes because these are always located at the center of the stroke
SNAPSOURCE_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
// must be larger than the largest number of targets in a single group
//-------------------------------------------------------------------
// For the same reason, nodes will not snap to bbox points
SNAPSOURCE_NODE_SMOOTH, // Symmetrical nodes are also considered to be smooth; there's no dedicated type for symm. nodes
SNAPSOURCE_NODE_HANDLE, // eg. nodes in the path editor, handles of stars or rectangles, etc. (tied to a stroke)
//-------------------------------------------------------------------
// Other points (e.g. guides) will snap to both bounding boxes and nodes
//-------------------------------------------------------------------
// Other points (e.g. gradient knots, image corners) will snap to both bounding boxes and nodes
SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient or of a connector (ie not being tied to a stroke)
SNAPSOURCE_GRID_PITCH, // eg. when pasting or alt-dragging in the selector tool; not realy a snap source
};
enum SnapTargetType {
SNAPTARGET_UNDEFINED = 0,
//-------------------------------------------------------------------
SNAPTARGET_BBOX_CATEGORY = 16, // will be used as a flag and must therefore be a power of two. Also,
// must be larger than the largest number of targets in a single group
// i.e > 15 because that's the number of targets in the "others" group
//-------------------------------------------------------------------
SNAPTARGET_PATH, // If path targets are added here, then also add them to the list in findBestSnap()
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//-------------------------------------------------------------------
};
}
#endif /* SNAPENUMS_H_ */