X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=contrib%2Fbobtoolz%2FDPatch.h;h=4d0c26c5718acdad9708811fe1ca654e4dce3a34;hb=refs%2Fheads%2Fmaster;hp=d04121ea9731062588732fc8fa4e84c5dcad5fd0;hpb=80378101101ca1762bbf5638a9e3566893096d8a;p=xonotic%2Fnetradiant.git diff --git a/contrib/bobtoolz/DPatch.h b/contrib/bobtoolz/DPatch.h index d04121ea..4d0c26c5 100644 --- a/contrib/bobtoolz/DPatch.h +++ b/contrib/bobtoolz/DPatch.h @@ -1,62 +1,81 @@ -/* -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 -*/ - -// DPatch.h: interface for the DPatch class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_) -#define AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_ - -#include "StdAfx.h" // Added by ClassView -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -typedef struct -{ - bool mergable; - int pos1; - int pos2; -} patch_merge_t; - -class DPatch -{ -public: - list Split(bool rows, bool cols); - void Transpose(); - void Invert(); - DPatch* MergePatches(patch_merge_t merge_info, DPatch* p1, DPatch* p2); - patch_merge_t IsMergable(DPatch* other); - bool ResetTextures(const char *oldTextureName, const char *newTextureName); - void RemoveFromRadiant(void); - brush_t* QER_brush; - void LoadFromBrush_t(brush_t* brush); - patchMesh_t* QER_patch; - void BuildInRadiant(void* entity = NULL); - void SetTexture(const char* textureName); - char texture[256]; - int width, height; - drawVert_t points[MAX_PATCH_WIDTH][MAX_PATCH_HEIGHT]; - DPatch(); - virtual ~DPatch(); - -}; - -#endif // !defined(AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_) +/* + 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 + */ + +// DPatch.h: interface for the DPatch class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined( AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_ ) +#define AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_ + +#include +#include + +typedef struct +{ + bool mergable; + int pos1; + int pos2; +} patch_merge_t; + +typedef struct { + float xyz[3]; + float st[2]; + float normal[3]; + float lightmap[2]; +} drawVert_t; + +namespace scene +{ +class Node; +class Instance; +} + +const int MAX_PATCH_WIDTH = 32; +const int MAX_PATCH_HEIGHT = 32; +const int MIN_PATCH_WIDTH = 3; +const int MIN_PATCH_HEIGHT = 3; + +class DPatch +{ +public: +std::list SplitRows(); +std::list SplitCols(); +std::list Split(); +void Transpose(); +//DPatch* TransposePatch(DPatch* p1); +//void DebugPrint(); +void Invert(); +DPatch* MergePatches( patch_merge_t merge_info, DPatch* p1, DPatch* p2 ); +patch_merge_t IsMergable( DPatch* other ); +bool ResetTextures( const char *oldTextureName, const char *newTextureName ); +scene::Node* QER_entity; +scene::Node* QER_brush; +void LoadFromPatch( scene::Instance& patch ); +void BuildInRadiant( scene::Node* entity = NULL ); +void SetTexture( const char* textureName ); +char texture[256]; +int width, height; +drawVert_t points[MAX_PATCH_WIDTH][MAX_PATCH_HEIGHT]; +DPatch(); +virtual ~DPatch(); + +}; + +#endif // !defined(AFX_DPATCH_H__26C6B083_CE5B_420B_836B_1DDA733C04CE__INCLUDED_)