-typedef struct
-{
- brush_t *brush;
- face_t *face;
- float dist;
- qboolean selected;
-} trace_t;
-
-#define SF_SELECTED_ONLY 0x0001
-#define SF_ENTITIES_FIRST 0x0002
-#define SF_SINGLEFACE 0x0004
-#define SF_IGNORECURVES 0x0008
-#define SF_IGNOREGROUPS 0x0010
-#define SF_CYCLE 0x0020
-#define SF_CAMERA 0x0040 // set when the operation happens through camera view, otherwise XY
-#define SF_DRAG_ON 0x0080
-#define SF_DRAG_OFF 0x0100
-#define SF_DRAG (SF_DRAG_ON | SF_DRAG_OFF)
-
-trace_t Test_Ray (vec3_t origin, vec3_t dir, int flags);
-
-void Select_GetBounds (vec3_t mins, vec3_t maxs);
-void Select_GetMid (vec3_t mid);
-void Select_Brush (brush_t *b, bool bComplete = true, bool bStatus = true);
-void Select_Ray (vec3_t origin, vec3_t dir, int flags);
-void Select_Delete (void);
-void Select_Deselect (bool bDeselectFaces = true);
-void Select_Invert(void);
-void Select_Clone (void);
-void Select_Move (vec3_t delta, bool bSnap = true);
-void Select_NudgePoint(vec3_t delta, qboolean bSnap = true);
-void WINAPI Select_SetTexture (texdef_t *texdef, brushprimit_texdef_t *brushprimit_texdef, bool bFitScale = false, void* pPlugTexdef = NULL);
-void Select_FlipAxis (int axis);
-void Select_RotateAxis (int axis, float deg, bool bPaint = true, bool bMouse = false);
-void Select_RealCompleteTall(vec3_t mins, vec3_t maxs);
-void Select_CompleteTall (void);
-void Select_PartialTall (void);
-void Select_Touching (void);
-void Select_Inside (void);
-void Select_Seperate (void);
-void Select_MakeStructural (void);
-void Select_MakeDetail (void);