tge/lib/maxsdk40/snap.h
2017-04-17 06:17:10 -06:00

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_