]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - radiant/select.h
get the basics of a new scons build system together
[xonotic/netradiant.git] / radiant / select.h
1 /*\r
2 Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.\r
4 \r
5 This file is part of GtkRadiant.\r
6 \r
7 GtkRadiant is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU General Public License as published by\r
9 the Free Software Foundation; either version 2 of the License, or\r
10 (at your option) any later version.\r
11 \r
12 GtkRadiant is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU General Public License\r
18 along with GtkRadiant; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
20 */\r
21 \r
22 typedef struct\r
23 {\r
24         brush_t         *brush;\r
25         face_t          *face;\r
26         float           dist;\r
27         qboolean        selected;\r
28 } trace_t;\r
29 \r
30 #define SF_SELECTED_ONLY        0x0001\r
31 #define SF_ENTITIES_FIRST       0x0002\r
32 #define SF_SINGLEFACE                   0x0004\r
33 #define SF_IGNORECURVES         0x0008\r
34 #define SF_IGNOREGROUPS         0x0010\r
35 #define SF_CYCLE                                        0x0020\r
36 #define SF_CAMERA         0x0040 // set when the operation happens through camera view, otherwise XY\r
37 #define SF_DRAG_ON                              0x0080\r
38 #define SF_DRAG_OFF                     0x0100\r
39 #define SF_DRAG                                         (SF_DRAG_ON | SF_DRAG_OFF)\r
40 \r
41 trace_t Test_Ray (vec3_t origin, vec3_t dir, int flags);\r
42 \r
43 void Select_GetBounds (vec3_t mins, vec3_t maxs);\r
44 void Select_GetMid (vec3_t mid);\r
45 void Select_Brush (brush_t *b, bool bComplete = true, bool bStatus = true);\r
46 void Select_Ray (vec3_t origin, vec3_t dir, int flags);\r
47 void Select_Delete (void);\r
48 void Select_Deselect (bool bDeselectFaces = true);\r
49 void Select_Invert(void);\r
50 void Select_Clone (void);\r
51 void Select_Move (vec3_t delta, bool bSnap = true);\r
52 void Select_NudgePoint(vec3_t delta, qboolean bSnap = true);\r
53 void WINAPI Select_SetTexture (texdef_t *texdef, brushprimit_texdef_t *brushprimit_texdef, bool bFitScale = false, void* pPlugTexdef = NULL);\r
54 void Select_FlipAxis (int axis);\r
55 void Select_RotateAxis (int axis, float deg, bool bPaint = true, bool bMouse = false);\r
56 void Select_RealCompleteTall(vec3_t mins, vec3_t maxs);\r
57 void Select_CompleteTall (void);\r
58 void Select_PartialTall (void);\r
59 void Select_Touching (void);\r
60 void Select_Inside (void);\r
61 void Select_Seperate (void);\r
62 void Select_MakeStructural (void);\r
63 void Select_MakeDetail (void);\r
64 void Select_AllOfType();\r
65 void Select_Reselect();\r
66 void Select_FitTexture(int nHeight = 1, int nWidth = 1);\r
67 \r
68 // absolute texture coordinates\r
69 // TTimo NOTE: this is stuff for old brushes format and rotation texture lock .. sort of in-between with bush primitives\r
70 void ComputeAbsolute(face_t* f, vec3_t& p1, vec3_t& p2, vec3_t& p3);\r
71 void AbsoluteToLocal(plane_t normal2, face_t* f, vec3_t& p1, vec3_t& p2, vec3_t& p3);\r
72 void Select_Hide();\r
73 void Select_ShowAllHidden();\r
74 // add selected brushes to a group, update the tree\r
75 //void Select_AddToGroup(const char *pName);\r
76 //void Select_Name(const char *pName);\r
77 \r
78 // updating workzone to a given brush (depends on current view)\r
79 void UpdateWorkzone_ForBrush( brush_t* b );\r
80 \r
81 void Select_GroupEntity(entity_t* e);\r
82 void Select_MergeEntity();\r