68 lines
2.2 KiB
C
Executable File
68 lines
2.2 KiB
C
Executable File
/**********************************************************************
|
|
*<
|
|
FILE: snap.h
|
|
|
|
DESCRIPTION: Definitions for snap functionality
|
|
|
|
CREATED BY: Tom Hudson
|
|
|
|
HISTORY:
|
|
|
|
*> Copyright (c) 1995, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef _SNAP_H_
|
|
|
|
#define _SNAP_H_
|
|
|
|
// Snap types used in Jaguar
|
|
#define SNAP_2D 1 // 2-D Snap
|
|
#define SNAP_25D 2 // 2 1/2-D Snap
|
|
#define SNAP_3D 3 // 3-D Snap
|
|
|
|
// Snap modes
|
|
|
|
#define SNAPMODE_RELATIVE 0
|
|
#define SNAPMODE_ABSOLUTE 1
|
|
|
|
// Snap flags
|
|
|
|
#define SNAP_IN_3D (0) // Snap to all points (looks dumb here, but code reads easier)
|
|
#define SNAP_IN_PLANE (1<<0) // Snap only to points in plane
|
|
#define SNAP_UNSEL_OBJS_ONLY (1<<1) // Ignore selected nodes
|
|
#define SNAP_SEL_OBJS_ONLY (1<<2) // Ignore unselected nodes
|
|
#define SNAP_UNSEL_SUBOBJ_ONLY (1<<3) // Ignore selected geometry
|
|
#define SNAP_SEL_SUBOBJ_ONLY (1<<4) // Ignore unselected geometry
|
|
#define SNAP_FORCE_3D_RESULT (1<<5) // Override user settings to force snap in 3D
|
|
#define SNAP_OFF_PLANE (1<<6) // snap Only to points off the plane
|
|
#define SNAP_TRANSPARENTLY (1<<7) //This suppresses any display in the views
|
|
|
|
#define SNAP_APPLY_CONSTRAINTS (1<<8) //
|
|
#define SNAP_PROJ_XAXIS (1<<9) //
|
|
#define SNAP_PROJ_YAXIS (1<<10) //
|
|
#define SNAP_PROJ_ZAXIS (1<<11) //
|
|
|
|
#define SNAP_XFORM_AXIS (1<<12) //informs the osnapmanager to invalidate the com axis
|
|
#define SNAP_BEGIN_SEQ (1<<13) //
|
|
#define SNAP_END_SEQ (1<<14) //
|
|
|
|
// Snap information structure
|
|
typedef struct {
|
|
// The snap settings for this operation
|
|
int snapType; // See above
|
|
int strength; // Maximum snap distance
|
|
int vertPriority; // Geometry vertex priority
|
|
int edgePriority; // Geometry edge priority
|
|
int gIntPriority; // Grid intersection priority
|
|
int gLinePriority; // Grid line priority
|
|
DWORD flags; // See above
|
|
Matrix3 plane; // Plane to use for snap computations
|
|
// The best snap so far...
|
|
Point3 bestWorld; // Best snap point in world space
|
|
Point2 bestScreen; // Best snap point in screen space
|
|
int bestDist; // Best snap point distance
|
|
int priority; // Best point's priority
|
|
} SnapInfo;
|
|
|
|
#endif // _SNAP_H_
|