]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/bobtoolz/DTrainDrawer.h
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / contrib / bobtoolz / DTrainDrawer.h
1 /*\r
2 BobToolz plugin for GtkRadiant\r
3 Copyright (C) 2001 Gordon Biggans\r
4 \r
5 This library is free software; you can redistribute it and/or\r
6 modify it under the terms of the GNU Lesser General Public\r
7 License as published by the Free Software Foundation; either\r
8 version 2.1 of the License, or (at your option) any later version.\r
9 \r
10 This library is distributed in the hope that it will be useful,\r
11 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13 Lesser General Public License for more details.\r
14 \r
15 You should have received a copy of the GNU Lesser General Public\r
16 License along with this library; if not, write to the Free Software\r
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
18 */\r
19 \r
20 // DTrainDrawer.h: interface for the DTrainDrawer class.\r
21 //\r
22 //////////////////////////////////////////////////////////////////////\r
23 \r
24 #if !defined(AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)\r
25 #define AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_\r
26 \r
27 #include "DEntity.h"\r
28 \r
29 #if _MSC_VER > 1000\r
30 \r
31 #pragma once\r
32 #endif // _MSC_VER > 1000\r
33 \r
34 typedef struct {\r
35         char strName[64];\r
36 \r
37         vec3_t vOrigin;\r
38 } controlPoint_t;\r
39 \r
40 typedef struct {\r
41         controlPoint_t point;\r
42 \r
43         char strControl[64];\r
44         char strTarget[64];\r
45 \r
46         list<controlPoint_t> m_pointList;\r
47         list<DPoint> m_vertexList;\r
48 \r
49         controlPoint_t* pTarget;\r
50 } splinePoint_t;\r
51 \r
52 class DTrainDrawer :\r
53         public IGL2DWindow,\r
54         public IGL3DWindow\r
55 {\r
56 private:\r
57         list<splinePoint_t*> m_splineList;\r
58         list<controlPoint_t*> m_pointList;\r
59         int refCount;\r
60 \r
61         bool m_bHooked;\r
62         bool m_bDisplay;\r
63 public:\r
64         void UnRegister();\r
65         void Register();\r
66         \r
67         DTrainDrawer();\r
68         virtual ~DTrainDrawer(void);\r
69 \r
70         void Draw3D();\r
71         void Draw2D(VIEWTYPE vt);\r
72         void IncRef() { refCount++; }\r
73         void DecRef() { refCount--; if (refCount <= 0) delete this; }\r
74         void ClearSplines();\r
75         void ClearPoints();\r
76         void BuildPaths();\r
77         void AddControlPoint(const char* name, vec_t* origin);\r
78         splinePoint_t* AddSplinePoint(const char* name, const char* target, vec_t* origin);\r
79         controlPoint_t* FindControlPoint(const char* name);\r
80 };\r
81 \r
82 #endif // !defined(AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)\r