Serious-Engine/Sources/Engine/Brushes/BrushTransformed.h
2016-03-11 18:20:51 -06:00

75 lines
2.1 KiB
C++

/* Copyright (c) 2002-2012 Croteam Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
#ifndef SE_INCL_BRUSHTRANSFORMED_H
#define SE_INCL_BRUSHTRANSFORMED_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#undef ALIGNED_NEW_AND_DELETE
#ifdef NDEBUG
#define ALIGNED_NEW_AND_DELETE(align) \
void *operator new[] (size_t size) { return AllocMemoryAligned(size, align); }; \
void operator delete[] (void* ptr) { FreeMemoryAligned(ptr); };
#else
#define ALIGNED_NEW_AND_DELETE(align)
#endif
#include <Engine/Math/Vector.h>
#include <Engine/Math/Plane.h>
#include <Engine/Math/TextureMapping.h>
/*
* Cached transformed vertex.
*/
class CWorkingVertex {
public:
FLOAT3D wvx_vRelative; // coordinates in brush space
ALIGNED_NEW_AND_DELETE(32);
/* Clear the object. */
inline void Clear(void) {};
};
/*
* Cached transformed plane.
*/
class CWorkingPlane {
public:
FLOATplane3D wpl_plRelative; // coordinates in brush space
CMappingVectors wpl_mvRelative; // mapping vectors in brush space
FLOATplane3D wpl_plView; // coordinates in view space
CMappingVectors wpl_mvView; // mapping vectors in view space
CPlanarGradients wpl_pgOoK; // plane gradients in default mapping
BOOL wpl_bVisible; // set if the plane is visible
/* Clear the object. */
inline void Clear(void) {};
};
/*
* Cached transformed edge.
*/
class CWorkingEdge {
public:
INDEX wed_iwvx0; // working vertices in sector
INDEX wed_iwvx1;
/* Clear the object. */
inline void Clear(void) {};
};
#endif /* include-once check. */