--- /dev/null
+/*
+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 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
+*/
+
+// DEntity.h: interface for the DEntity class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_DENTITY_H__35B2C523_F0A7_11D4_ACF7_004095A18133__INCLUDED_)
+#define AFX_DENTITY_H__35B2C523_F0A7_11D4_ACF7_004095A18133__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include <list>
+#include "str.h"
+#include "mathlib.h"
+
+class DEPair;
+class DBrush;
+class DPlane;
+class DPatch;
+class Entity;
+
+namespace scene
+{
+ class Node;
+}
+class _QERFaceData;
+
+class DEntity
+{
+public:
+ void RemoveFromRadiant();
+ scene::Node* QER_Entity;
+ int m_nID;
+
+// Constrcution/Destruction
+ DEntity(const char* classname = "worldspawn", int ID = -1); // sets classname
+ virtual ~DEntity();
+// ---------------------------------------------
+
+// epair functions........
+ void LoadEPairList(Entity* epl);
+ void AddEPair(const char* key, const char* value);
+ void ClearEPairs();
+ DEPair* FindEPairByKey(const char* keyname);
+// ---------------------------------------------
+
+// random functions........
+ 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 rebuild);
+ void SaveToFile(FILE* pFile);
+ void SetClassname(const char* classname);
+ int GetIDMax();
+
+ void BuildInRadiant(bool allowDestruction);
+ void ResetChecks(std::list<Str>* exclusionList);
+ void RemoveNonCheckBrushes(std::list<Str>* exclusionList, bool useDetail);
+
+ DPlane* AddFaceToBrush(vec3_t va, vec3_t vb, vec3_t vc, _QERFaceData* faceData, int ID); // slow, try not to use much
+ int GetBrushCount( void );
+ DBrush* FindBrushByPointer( scene::Node& brush );
+// ---------------------------------------------
+
+
+// bool list functions
+ void SelectBrushes(bool* selectList);
+ bool* BuildDuplicateList();
+ bool* BuildIntersectList();
+// ---------------------------------------------
+
+
+// brush operations
+ void ClearBrushes(); // clears brush list and frees memory for brushes
+
+ DBrush* GetBrushForID(int ID);
+ DBrush* NewBrush(int ID = -1);
+// ---------------------------------------------
+
+// patch operations
+ void ClearPatches();
+
+ DPatch* NewPatch();
+// ---------------------------------------------
+
+// vars
+ std::list<DEPair*> epairList;
+ std::list<DBrush*> brushList;
+ // new patches, wahey!!!
+ std::list<DPatch*> patchList;
+ Str m_Classname;
+// ---------------------------------------------
+
+
+ int FixBrushes();
+
+ bool LoadFromEntity(scene::Node& ent, bool bLoadPatches = false);
+ void LoadSelectedBrushes();
+ void LoadSelectedPatches();
+
+ bool LoadFromPrt(char* filename);
+// ---------------------------------------------
+ void SpawnString(const char* key, const char* defaultstring, const char** out);
+ void SpawnInt(const char* key, const char* defaultstring, int* out);
+ void SpawnFloat(const char* key, const char* defaultstring, float* out);
+ void SpawnVector(const char* key, const char* defaultstring, vec_t* out);
+};
+
+#endif // !defined(AFX_DENTITY_H__35B2C523_F0A7_11D4_ACF7_004095A18133__INCLUDED_)