From: uis Date: Sat, 4 May 2024 20:12:08 +0000 (+0300) Subject: Remove h2data-exclusive mathlib X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=2ba0acff3fc881ea0b4aff00d5656f7688c64852;p=xonotic%2Fnetradiant.git Remove h2data-exclusive mathlib --- diff --git a/tools/heretic2/CMakeLists.txt b/tools/heretic2/CMakeLists.txt index 2a9f0982..2255c58f 100644 --- a/tools/heretic2/CMakeLists.txt +++ b/tools/heretic2/CMakeLists.txt @@ -13,7 +13,6 @@ radiant_tool(h2data common/inout.c common/inout.h common/l3dslib.c common/l3dslib.h common/lbmlib.c common/lbmlib.h - common/mathlib.c common/mathlib.h common/md4.c common/md4.h common/path_init.c common/polylib.c common/polylib.h @@ -63,6 +62,7 @@ target_compile_definitions(h2data target_link_libraries(h2data ${LIBXML2_LIBRARIES} l_net + mathlib ) add_custom_target(heretic2) diff --git a/tools/heretic2/common/mathlib.c b/tools/heretic2/common/mathlib.c deleted file mode 100644 index 8243d86d..00000000 --- a/tools/heretic2/common/mathlib.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - Copyright (C) 1999-2007 id Software, Inc. and contributors. - For a list of contributors, see the accompanying CONTRIBUTORS file. - - This file is part of GtkRadiant. - - GtkRadiant is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - GtkRadiant 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 GtkRadiant; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -// mathlib.c -- math primitives - -#include "cmdlib.h" -#include "mathlib.h" - -vec3_t vec3_origin = {0,0,0}; - - -double VectorLength( vec3_t v ){ - int i; - double length; - - length = 0; - for ( i = 0 ; i < 3 ; i++ ) - length += v[i] * v[i]; - length = sqrt( length ); // FIXME - - return length; -} - -qboolean VectorCompare( vec3_t v1, vec3_t v2 ){ - int i; - - for ( i = 0 ; i < 3 ; i++ ) - if ( fabs( v1[i] - v2[i] ) > EQUAL_EPSILON ) { - return false; - } - - return true; -} - -vec_t Q_rint( vec_t in ){ - return floor( in + 0.5 ); -} - -void VectorMA( vec3_t va, double scale, vec3_t vb, vec3_t vc ){ - vc[0] = va[0] + scale * vb[0]; - vc[1] = va[1] + scale * vb[1]; - vc[2] = va[2] + scale * vb[2]; -} - -void CrossProduct( vec3_t v1, vec3_t v2, vec3_t cross ){ - cross[0] = v1[1] * v2[2] - v1[2] * v2[1]; - cross[1] = v1[2] * v2[0] - v1[0] * v2[2]; - cross[2] = v1[0] * v2[1] - v1[1] * v2[0]; -} - -vec_t _DotProduct( vec3_t v1, vec3_t v2 ){ - return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2]; -} - -void _VectorSubtract( vec3_t va, vec3_t vb, vec3_t out ){ - out[0] = va[0] - vb[0]; - out[1] = va[1] - vb[1]; - out[2] = va[2] - vb[2]; -} - -void _VectorAdd( vec3_t va, vec3_t vb, vec3_t out ){ - out[0] = va[0] + vb[0]; - out[1] = va[1] + vb[1]; - out[2] = va[2] + vb[2]; -} - -void _VectorCopy( vec3_t in, vec3_t out ){ - out[0] = in[0]; - out[1] = in[1]; - out[2] = in[2]; -} - -void _VectorScale( vec3_t v, vec_t scale, vec3_t out ){ - out[0] = v[0] * scale; - out[1] = v[1] * scale; - out[2] = v[2] * scale; -} - -#if GDEF_COMPILER_MSVC -#pragma optimize("g", off) // went back to turning optimization off, - // the bug_fix thing stopped working -#endif - -vec_t VectorNormalize( vec3_t in, vec3_t out ){ - vec_t length, ilength; - - length = sqrt( in[0] * in[0] + in[1] * in[1] + in[2] * in[2] ); - if ( length == 0 ) { - VectorClear( out ); - return 0; - } - - ilength = 1.0 / length; - out[0] = in[0] * ilength; - out[1] = in[1] * ilength; - out[2] = in[2] * ilength; - - return length; -} - -vec_t ColorNormalize( vec3_t in, vec3_t out ){ - float max, scale; - - max = in[0]; - if ( in[1] > max ) { - max = in[1]; - } - if ( in[2] > max ) { - max = in[2]; - } - - if ( max == 0 ) { - return 0; - } - - scale = 1.0 / max; - - VectorScale( in, scale, out ); - - return max; -} - -#if GDEF_COMPILER_MSVC -#pragma optimize("", on) -#endif - -void VectorInverse( vec3_t v ){ - v[0] = -v[0]; - v[1] = -v[1]; - v[2] = -v[2]; -} - -void ClearBounds( vec3_t mins, vec3_t maxs ){ - mins[0] = mins[1] = mins[2] = 99999; - maxs[0] = maxs[1] = maxs[2] = -99999; -} - -void AddPointToBounds( vec3_t v, vec3_t mins, vec3_t maxs ){ - int i; - vec_t val; - - for ( i = 0 ; i < 3 ; i++ ) - { - val = v[i]; - if ( val < mins[i] ) { - mins[i] = val; - } - if ( val > maxs[i] ) { - maxs[i] = val; - } - } -} diff --git a/tools/heretic2/common/mathlib.h b/tools/heretic2/common/mathlib.h deleted file mode 100644 index cd989ea3..00000000 --- a/tools/heretic2/common/mathlib.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright (C) 1999-2007 id Software, Inc. and contributors. - For a list of contributors, see the accompanying CONTRIBUTORS file. - - This file is part of GtkRadiant. - - GtkRadiant is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - GtkRadiant 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 GtkRadiant; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __MATHLIB__ -#define __MATHLIB__ - -// mathlib.h - -#include -/* - #ifdef DOUBLEVEC_T - typedef double vec_t; - #else - typedef float vec_t; - #endif - typedef vec_t vec3_t[3]; - */ -#define SIDE_FRONT 0 -#define SIDE_ON 2 -#define SIDE_BACK 1 -#define SIDE_CROSS -2 - -#define Q_PI 3.14159265358979323846 - -extern vec3_t vec3_origin; - -#define EQUAL_EPSILON 0.001 - -qboolean VectorCompare( vec3_t v1, vec3_t v2 ); - -#define DotProduct( x,y ) ( x[0] * y[0] + x[1] * y[1] + x[2] * y[2] ) -#define VectorSubtract( a,b,c ) {c[0] = a[0] - b[0]; c[1] = a[1] - b[1]; c[2] = a[2] - b[2]; } -#define VectorAdd( a,b,c ) {c[0] = a[0] + b[0]; c[1] = a[1] + b[1]; c[2] = a[2] + b[2]; } -#define VectorCopy( a,b ) {b[0] = a[0]; b[1] = a[1]; b[2] = a[2]; } -#define VectorScale( a,b,c ) {c[0] = b * a[0]; c[1] = b * a[1]; c[2] = b * a[2]; } -#define VectorClear( x ) {x[0] = x[1] = x[2] = 0; } -#define VectorNegate( x ) {x[0] = -x[0]; x[1] = -x[1]; x[2] = -x[2]; } - -vec_t Q_rint( vec_t in ); -vec_t _DotProduct( vec3_t v1, vec3_t v2 ); -void _VectorSubtract( vec3_t va, vec3_t vb, vec3_t out ); -void _VectorAdd( vec3_t va, vec3_t vb, vec3_t out ); -void _VectorCopy( vec3_t in, vec3_t out ); -void _VectorScale( vec3_t v, vec_t scale, vec3_t out ); - -double VectorLength( vec3_t v ); - -void VectorMA( vec3_t va, double scale, vec3_t vb, vec3_t vc ); - -void CrossProduct( vec3_t v1, vec3_t v2, vec3_t cross ); -vec_t VectorNormalize( vec3_t in, vec3_t out ); -vec_t ColorNormalize( vec3_t in, vec3_t out ); -void VectorInverse( vec3_t v ); - -void ClearBounds( vec3_t mins, vec3_t maxs ); -void AddPointToBounds( vec3_t v, vec3_t mins, vec3_t maxs ); - -#endif