X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fselect.h;h=4a158fd41d86994e629d507ccd15ba2f8a693741;hb=7e8f20bf007190a80b919a13aee8fa1bfa9dc509;hp=5cf2181c5b73fc7c1aaab416b4a85ed24e1f6d4d;hpb=cc4e44e31a89c8efed942ca26e2a341466f9a3b2;p=xonotic%2Fnetradiant.git diff --git a/radiant/select.h b/radiant/select.h index 5cf2181c..4a158fd4 100644 --- a/radiant/select.h +++ b/radiant/select.h @@ -1,84 +1,90 @@ /* -Copyright (C) 1999-2007 id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. + Copyright (C) 1999-2006 Id Software, Inc. and contributors. + For a list of contributors, see the accompanying CONTRIBUTORS file. -This file is part of GtkRadiant. + This file is part of GtkRadiant. -GtkRadiant is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + GtkRadiant is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -GtkRadiant is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GtkRadiant is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if !defined( INCLUDED_SELECT_H ) +#define INCLUDED_SELECT_H + +#include "math/vector.h" + +void Select_GetBounds( Vector3& mins, Vector3& maxs ); +void Select_GetMid( Vector3& mid ); + +void Select_Delete(); +void Select_Invert(); +void Select_Inside(); +void Select_Touching(); +void Scene_ExpandSelectionToEntities(); + +void Selection_Flipx(); +void Selection_Flipy(); +void Selection_Flipz(); +void Selection_Rotatex(); +void Selection_Rotatey(); +void Selection_Rotatez(); + + +void Selection_MoveDown(); +void Selection_MoveUp(); -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); void Select_AllOfType(); -void Select_Reselect(); -void Select_FitTexture(int nHeight = 1, int nWidth = 1); -void Select_SelectGroup(entity_t* group); +void DoRotateDlg(); +void DoScaleDlg(); + + +void Select_SetShader( const char* shader ); -// absolute texture coordinates -// TTimo NOTE: this is stuff for old brushes format and rotation texture lock .. sort of in-between with bush primitives -void ComputeAbsolute(face_t* f, vec3_t& p1, vec3_t& p2, vec3_t& p3); -void AbsoluteToLocal(plane_t normal2, face_t* f, vec3_t& p1, vec3_t& p2, vec3_t& p3); -void Select_Hide(); +class TextureProjection; +void Select_SetTexdef( const TextureProjection& projection ); + +class ContentsFlagsValue; +void Select_SetFlags( const ContentsFlagsValue& flags ); + +void Select_RotateTexture( float amt ); +void Select_ScaleTexture( float x, float y ); +void Select_ShiftTexture( float x, float y ); +void Select_FitTexture( float horizontal = 1, float vertical = 1 ); +void FindReplaceTextures( const char* pFind, const char* pReplace, bool bSelected ); + +void HideSelected(); void Select_ShowAllHidden(); -// add selected brushes to a group, update the tree -//void Select_AddToGroup(const char *pName); -//void Select_Name(const char *pName); // updating workzone to a given brush (depends on current view) -void UpdateWorkzone_ForBrush( brush_t* b ); -void Select_GroupEntity(entity_t* e); -void Select_MergeEntity(); +void Selection_construct(); +void Selection_destroy(); + + +struct select_workzone_t +{ + // defines the boundaries of the current work area + // is used to guess brushes and drop points third coordinate when creating from 2D view + Vector3 d_work_min, d_work_max; + + select_workzone_t() : + d_work_min( -64.0f,-64.0f,-64.0f ), + d_work_max( 64.0f, 64.0f, 64.0f ){ + } +}; + +const select_workzone_t& Select_getWorkZone(); + +#endif