- Radiant is now Vista compatible (Aero must be disabled)
[xonotic/netradiant.git] / contrib / bobtoolz / DShape.h
1 /*
2 BobToolz plugin for GtkRadiant
3 Copyright (C) 2001 Gordon Biggans
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19
20 // DShape.h: interface for the DShape class.
21 //
22 //////////////////////////////////////////////////////////////////////
23
24 #if !defined(AFX_DSHAPE_H__0B30B302_9D21_4C2D_836A_61F3C8D4244D__INCLUDED_)
25 #define AFX_DSHAPE_H__0B30B302_9D21_4C2D_836A_61F3C8D4244D__INCLUDED_
26
27 #if _MSC_VER > 1000
28 #pragma once
29 #endif // _MSC_VER > 1000
30
31 #include "mathlib.h"
32 #include "DMap.h"
33 class DBrush;
34 class DEntity;
35
36 // defines for polygon stuff
37 #define MAX_POLYGON_FACES       128
38
39 extern bool bFacesAll[];
40
41 class DShape  
42 {
43 public:
44         bool BuildPit(vec3_t min, vec3_t max);
45         void BuildBorderedPrism(vec3_t min, vec3_t max, int nSides, int nBorder, bool bAlignTop);
46         void BuildInversePrism(vec3_t min, vec3_t max, int nSides, bool bAlignTop);
47         void BuildRegularPrism(vec3_t min, vec3_t max, int nSides, bool bAlignTop);
48         
49         int m_nNextBrush;
50         static DBrush* GetBoundingCube_Ext(vec3_t min, vec3_t max, const char* textureName, bool* bUseFaces = bFacesAll, bool detail = false);
51
52         DShape();
53         virtual ~DShape();
54
55         void Commit();
56 private:
57         DBrush* GetBoundingCube(vec3_t min, vec3_t max, const char* textureName, DEntity* ent = NULL, bool* bUseFaces = bFacesAll);
58
59         DMap m_Container;
60 };
61
62 #endif // !defined(AFX_DSHAPE_H__0B30B302_9D21_4C2D_836A_61F3C8D4244D__INCLUDED_)