SnapManager API
Less than 1 minute
SnapManager API
SnapManager handles object snapping so drawing and editing can snap to entity features.
Import
const { SnapManager, SnapMode, getSnapModeList } = vjmapext;Usually accessed via mapcadLayer.snapManager.
Properties
| Property | Type | Description |
|---|---|---|
enabled | boolean | Snap on/off, default true |
Methods
setSnapMode(mode)
Set snap mode.
| Parameter | Type | Description |
|---|---|---|
| mode | number | Bitwise combination of snap flags |
// Endpoint + midpoint + center
mapcadLayer.snapManager.setSnapMode(
SnapMode.Endpoint | SnapMode.Midpoint | SnapMode.Center
);MapCadLayer shortcuts
| Method | Description |
|---|---|
setSnapEnabled(enabled: boolean) | Same as snapManager.enabled = enabled |
setSnapMode(mode: number) | Same as snapManager.setSnapMode(mode) |
SnapMode flags
| Constant | Value | Description |
|---|---|---|
Endpoint | 1 | Endpoint snap |
Midpoint | 2 | Midpoint snap |
Center | 4 | Center / arc center snap |
Quadrant | 8 | Quadrant snap |
Intersection | 16 | Intersection snap |
Perpendicular | 32 | Perpendicular snap |
Tangent | 64 | Tangent snap |
Nearest | 128 | Nearest snap |
Node | 256 | Node snap |
Combining modes
Combine with bitwise OR: SnapMode.Endpoint | SnapMode.Center. Pass 0 to disable all snaps.
Types
SnapPoint
interface SnapPoint {
point: Point2D;
type: SnapType;
}SnapType
type SnapType = 'endpoint' | 'midpoint' | 'center' | 'quadrant'
| 'intersection' | 'perpendicular' | 'tangent' | 'nearest' | 'node';Helpers
getSnapModeList()
Returns a localized list of snap modes for building UI.
const { getSnapModeList } = vjmapext;
const modes = getSnapModeList();
// [{ name: 'Endpoint', mode: 1 }, { name: 'Midpoint', mode: 2 }, ...]