X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=contrib%2Fbobtoolz%2FDBrush.h;h=7b3e8d6035ca47b69e0f1eb1b5b36452e4cf2989;hb=7bfd2b428ff9b8e49c2291fa94163e293d364de6;hp=be60bfed4659f6493bb40cde1f53331d24f23bcf;hpb=830125fad042fad35dc029b6eb57c8156ad7e176;p=xonotic%2Fnetradiant.git diff --git a/contrib/bobtoolz/DBrush.h b/contrib/bobtoolz/DBrush.h index be60bfed..7b3e8d60 100644 --- a/contrib/bobtoolz/DBrush.h +++ b/contrib/bobtoolz/DBrush.h @@ -24,20 +24,34 @@ #if !defined( AFX_DBRUSH_H__35B2C522_F0A7_11D4_ACF7_004095A18133__INCLUDED_ ) #define AFX_DBRUSH_H__35B2C522_F0A7_11D4_ACF7_004095A18133__INCLUDED_ -#include "DPlane.h" - -#define POINT_IN_BRUSH 0 -#define POINT_ON_BRUSH 1 -#define POINT_OUT_BRUSH 2 - #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 +#include +#include +#include "mathlib.h" +#include "str.h" + +class DPlane; +class DWinding; +class DPoint; +class _QERFaceData; + +namespace scene +{ +class Node; +class Instance; +} + +const int POINT_IN_BRUSH = 0; +const int POINT_ON_BRUSH = 1; +const int POINT_OUT_BRUSH = 2; + class DBrush { public: -DPlane* AddFace( vec3_t va, vec3_t vb, vec3_t vc, const char* textureName, bool bDetail ); +DPlane* AddFace( const vec3_t va, const vec3_t vb, const vec3_t vc, const char* textureName, bool bDetail ); void SaveToFile( FILE* pFile ); void Rotate( vec3_t vOrigin, vec3_t vRotation ); @@ -45,7 +59,7 @@ void RotateAboutCentre( vec3_t vRotation ); DPlane* HasPlaneInverted( DPlane* chkPlane ); DPlane* HasPlane( DPlane* chkPlane ); -DPlane* AddFace( vec3_t va, vec3_t vb, vec3_t vc, _QERFaceData* texData ); +DPlane* AddFace( const vec3_t va, const vec3_t vb, const vec3_t vc, const _QERFaceData* texData ); bool ResetTextures( const char* textureName, float fScale[2], float fShift[2], int rotation, const char* newTextureName, int bResetTextureName, int bResetScale[2], int bResetShift[2], int bResetRotation ); bool IsDetail(); @@ -61,9 +75,9 @@ bool BBoxTouch( DBrush* chkBrush ); int BuildPoints(); void BuildBounds(); void BuildFromWinding( DWinding* w ); -brush_t* BuildInRadiant( bool allowDestruction, int* changeCnt, entity_t* entity = NULL ); +scene::Node* BuildInRadiant( bool allowDestruction, int* changeCnt, scene::Node* entity = NULL ); -void ResetChecks( list* exclusionList ); +void ResetChecks( std::list* exclusionList ); void ClearFaces(); void ClearPoints(); @@ -71,12 +85,11 @@ void ClearPoints(); int RemoveRedundantPlanes( void ); void RemovePlane( DPlane* plane ); int PointPosition( vec3_t pnt ); -void RemoveFromRadiant( void ); void CutByPlane( DPlane* cutPlane, DBrush** newBrush1, DBrush** newBrush2 ); -void LoadFromBrush_t( brush_t* brush, bool textured ); +void LoadFromBrush( scene::Instance& brush, bool textured ); void AddPoint( vec3_t pnt ); DPlane* FindPlaneWithClosestNormal( vec_t* normal ); @@ -88,9 +101,10 @@ virtual ~DBrush(); bool operator==( DBrush* other ); // members -brush_t* QER_brush; -list faceList; -list pointList; +scene::Node* QER_entity; +scene::Node* QER_brush; +std::list faceList; +std::list pointList; int m_nBrushID; vec3_t bbox_min, bbox_max; bool bBoundsBuilt;