]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bobtoolz/DTrainDrawer.h
fix Q1pack URL
[xonotic/netradiant.git] / contrib / bobtoolz / DTrainDrawer.h
index 3c7ac77971fa3d3e6c238b76c194d1b200f43c22..2b79f6749a31091bb327c3c280aacc1eec92274c 100644 (file)
@@ -1,36 +1,43 @@
 /*
-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];
 
@@ -43,40 +50,39 @@ typedef struct {
        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;
 } 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_)