]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bobtoolz/DTrainDrawer.h
reformat code! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / contrib / bobtoolz / DTrainDrawer.h
index 3c7ac77971fa3d3e6c238b76c194d1b200f43c22..b8ae15c92659ec3db7e3ae6c0974f222d7b63191 100644 (file)
@@ -1,82 +1,97 @@
 /*
-BobToolz plugin for GtkRadiant
-Copyright (C) 2001 Gordon Biggans
+   BobToolz plugin for GtkRadiant
+   Copyright (C) 2001 Gordon Biggans
 
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
-This library 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
-Lesser General Public License for more details.
+   This library 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
+   Lesser General Public License for more details.
 
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
 
 // DTrainDrawer.h: interface for the DTrainDrawer class.
 //
 //////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)
+#if !defined( AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_ )
 #define AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_
 
-#include "DEntity.h"
-
 #if _MSC_VER > 1000
 
 #pragma once
 #endif // _MSC_VER > 1000
 
+#include <list>
+#include "mathlib.h"
+
+#include "irender.h"
+#include "renderable.h"
+
+class DPoint;
+
+class Shader;
+
 typedef struct {
-       char strName[64];
+    char strName[64];
 
-       vec3_t vOrigin;
+    vec3_t vOrigin;
 } controlPoint_t;
 
 typedef struct {
-       controlPoint_t point;
+    controlPoint_t point;
 
-       char strControl[64];
-       char strTarget[64];
+    char strControl[64];
+    char strTarget[64];
 
-       list<controlPoint_t> m_pointList;
-       list<DPoint> m_vertexList;
+    std::list<controlPoint_t> m_pointList;
+    std::list<DPoint> m_vertexList;
 
-       controlPoint_t* pTarget;
+    controlPoint_t *pTarget;
 } splinePoint_t;
 
-class DTrainDrawer :
-       public IGL2DWindow,
-       public IGL3DWindow
-{
+class DTrainDrawer : public Renderable, public OpenGLRenderable {
 private:
-       list<splinePoint_t*> m_splineList;
-       list<controlPoint_t*> m_pointList;
-       int refCount;
+    std::list<splinePoint_t *> m_splineList;
+    std::list<controlPoint_t *> m_pointList;
 
-       bool m_bHooked;
-       bool m_bDisplay;
+    bool m_bDisplay;
+    Shader *m_shader_wireframe;
+    Shader *m_shader_solid;
 public:
-       void UnRegister();
-       void Register();
-       
-       DTrainDrawer();
-       virtual ~DTrainDrawer(void);
-
-       void Draw3D();
-       void Draw2D(VIEWTYPE vt);
-       void IncRef() { refCount++; }
-       void DecRef() { refCount--; if (refCount <= 0) delete this; }
-       void ClearSplines();
-       void ClearPoints();
-       void BuildPaths();
-       void AddControlPoint(const char* name, vec_t* origin);
-       splinePoint_t* AddSplinePoint(const char* name, const char* target, vec_t* origin);
-       controlPoint_t* FindControlPoint(const char* name);
+
+    DTrainDrawer();
+
+    virtual ~DTrainDrawer(void);
+
+    void render(RenderStateFlags state) const;
+
+    void renderSolid(Renderer &renderer, const VolumeTest &volume) const;
+
+    void renderWireframe(Renderer &renderer, const VolumeTest &volume) const;
+
+    void constructShaders();
+
+    void destroyShaders();
+
+    void ClearSplines();
+
+    void ClearPoints();
+
+    void BuildPaths();
+
+    void AddControlPoint(const char *name, vec_t *origin);
+
+    splinePoint_t *AddSplinePoint(const char *name, const char *target, vec_t *origin);
+
+    controlPoint_t *FindControlPoint(const char *name);
 };
 
 #endif // !defined(AFX_TRAINDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)