X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=contrib%2Fbobtoolz%2FDTrainDrawer.h;h=b8ae15c92659ec3db7e3ae6c0974f222d7b63191;hb=9dfae1c9b270ee369c6362903a9205b30751b95f;hp=3c7ac77971fa3d3e6c238b76c194d1b200f43c22;hpb=5265d3cc1517566910718738ee6fa48e2466d3ea;p=xonotic%2Fnetradiant.git diff --git a/contrib/bobtoolz/DTrainDrawer.h b/contrib/bobtoolz/DTrainDrawer.h index 3c7ac779..b8ae15c9 100644 --- a/contrib/bobtoolz/DTrainDrawer.h +++ b/contrib/bobtoolz/DTrainDrawer.h @@ -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 +#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 m_pointList; - list m_vertexList; + std::list m_pointList; + std::list m_vertexList; - controlPoint_t* pTarget; + controlPoint_t *pTarget; } splinePoint_t; -class DTrainDrawer : - public IGL2DWindow, - public IGL3DWindow -{ +class DTrainDrawer : public Renderable, public OpenGLRenderable { private: - list m_splineList; - list m_pointList; - int refCount; + std::list m_splineList; + std::list 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_)