Skip to content

Commit 947e92c

Browse files
committed
DegToRad
1 parent 77861f2 commit 947e92c

File tree

8 files changed

+86
-69
lines changed

8 files changed

+86
-69
lines changed

src/common/Math.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,26 @@ namespace Math {
6666
volatile uint64_t bits = Util::bit_cast<uint64_t>(x);
6767
return ~bits & 0x7ff0000000000000;
6868
}
69+
70+
inline float DegToRad( float angle )
71+
{
72+
return angle * divpi_180_f;
73+
}
74+
75+
inline float RadToDeg( float angle )
76+
{
77+
return angle * div180_pi_f;
78+
}
79+
80+
inline double DegToRad( double angle )
81+
{
82+
return angle * divpi_180_d;
83+
}
84+
85+
inline double RadToDeg( double angle )
86+
{
87+
return angle * div180_pi_d;
88+
}
6989
}
7090

7191
#include "math/Vector.h"

src/engine/qcommon/q_math.cpp

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point,
394394
float sind, cosd, expr;
395395
vec3_t dxp;
396396

397-
degrees = DEG2RAD( degrees );
397+
degrees = Math::DegToRad( degrees );
398398
sind = sinf( degrees );
399399
cosd = cosf( degrees );
400400
expr = ( 1 - cosd ) * DotProduct( dir, point );
@@ -452,7 +452,7 @@ void vectoangles( const vec3_t value1, vec3_t angles )
452452
{
453453
if ( value1[ 0 ] )
454454
{
455-
yaw = RAD2DEG( atan2f( value1[ 1 ], value1[ 0 ] ) );
455+
yaw = Math::RadToDeg( atan2f( value1[ 1 ], value1[ 0 ] ) );
456456
}
457457

458458
else if ( value1[ 1 ] > 0 )
@@ -471,7 +471,7 @@ void vectoangles( const vec3_t value1, vec3_t angles )
471471
}
472472

473473
forward = sqrtf( value1[ 0 ] * value1[ 0 ] + value1[ 1 ] * value1[ 1 ] );
474-
pitch = RAD2DEG( atan2f( value1[ 2 ], forward ) );
474+
pitch = Math::RadToDeg( atan2f( value1[ 2 ], forward ) );
475475

476476
if ( pitch < 0 )
477477
{
@@ -705,7 +705,7 @@ float AngleBetweenVectors( const vec3_t a, const vec3_t b )
705705
// this results in:
706706
//
707707
// angle = acos( (a * b) / (|a| * |b|) )
708-
return RAD2DEG( acosf( DotProduct( a, b ) / ( alen * blen ) ) );
708+
return Math::RadToDeg( acosf( DotProduct( a, b ) / ( alen * blen ) ) );
709709
}
710710

711711
//============================================================
@@ -1011,15 +1011,15 @@ void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up
10111011

10121012
// static to help MS compiler fp bugs
10131013

1014-
angle = DEG2RAD( angles[ YAW ] );
1014+
angle = Math::DegToRad( angles[ YAW ] );
10151015
sy = sinf( angle );
10161016
cy = cosf( angle );
10171017

1018-
angle = DEG2RAD( angles[ PITCH ] );
1018+
angle = Math::DegToRad( angles[ PITCH ] );
10191019
sp = sinf( angle );
10201020
cp = cosf( angle );
10211021

1022-
angle = DEG2RAD( angles[ ROLL ] );
1022+
angle = Math::DegToRad( angles[ ROLL ] );
10231023
sr = sinf( angle );
10241024
cr = cosf( angle );
10251025

@@ -1355,7 +1355,7 @@ void AxisToAngles( /*const*/ vec3_t axis[ 3 ], vec3_t angles )
13551355
{
13561356
if ( axis[ 0 ][ 0 ] )
13571357
{
1358-
yaw = RAD2DEG( atan2f( axis[ 0 ][ 1 ], axis[ 0 ][ 0 ] ) );
1358+
yaw = Math::RadToDeg( atan2f( axis[ 0 ][ 1 ], axis[ 0 ][ 0 ] ) );
13591359
}
13601360

13611361
else if ( axis[ 0 ][ 1 ] > 0 )
@@ -1374,14 +1374,14 @@ void AxisToAngles( /*const*/ vec3_t axis[ 3 ], vec3_t angles )
13741374
}
13751375

13761376
length1 = sqrtf( axis[ 0 ][ 0 ] * axis[ 0 ][ 0 ] + axis[ 0 ][ 1 ] * axis[ 0 ][ 1 ] );
1377-
pitch = RAD2DEG( atan2f( axis[ 0 ][ 2 ], length1 ) );
1377+
pitch = Math::RadToDeg( atan2f( axis[ 0 ][ 2 ], length1 ) );
13781378

13791379
if ( pitch < 0 )
13801380
{
13811381
pitch += 360;
13821382
}
13831383

1384-
roll = RAD2DEG( atan2f( axis[ 1 ][ 2 ], axis[ 2 ][ 2 ] ) );
1384+
roll = Math::RadToDeg( atan2f( axis[ 1 ][ 2 ], axis[ 2 ][ 2 ] ) );
13851385

13861386
if ( roll < 0 )
13871387
{
@@ -1577,7 +1577,7 @@ bool MatrixInverse( matrix_t matrix )
15771577
}
15781578
void MatrixSetupXRotation( matrix_t m, vec_t degrees )
15791579
{
1580-
vec_t a = DEG2RAD( degrees );
1580+
vec_t a = Math::DegToRad( degrees );
15811581

15821582
m[ 0 ] = 1;
15831583
m[ 4 ] = 0;
@@ -1598,7 +1598,7 @@ void MatrixSetupXRotation( matrix_t m, vec_t degrees )
15981598
}
15991599
void MatrixSetupYRotation( matrix_t m, vec_t degrees )
16001600
{
1601-
vec_t a = DEG2RAD( degrees );
1601+
vec_t a = Math::DegToRad( degrees );
16021602

16031603
m[ 0 ] = cosf( a );
16041604
m[ 4 ] = 0;
@@ -1619,7 +1619,7 @@ void MatrixSetupYRotation( matrix_t m, vec_t degrees )
16191619
}
16201620
void MatrixSetupZRotation( matrix_t m, vec_t degrees )
16211621
{
1622-
vec_t a = DEG2RAD( degrees );
1622+
vec_t a = Math::DegToRad( degrees );
16231623

16241624
m[ 0 ] = cosf( a );
16251625
m[ 4 ] = -sinf( a );
@@ -1774,7 +1774,7 @@ void MatrixMultiplyRotation( matrix_t m, vec_t pitch, vec_t yaw, vec_t roll )
17741774
void MatrixMultiplyZRotation( matrix_t m, vec_t degrees )
17751775
{
17761776
matrix_t tmp;
1777-
float angle = DEG2RAD( degrees );
1777+
float angle = Math::DegToRad( degrees );
17781778
float s = sinf( angle );
17791779
float c = cosf( angle );
17801780

@@ -1857,15 +1857,15 @@ void MatrixToAngles( const matrix_t m, vec3_t angles )
18571857

18581858
if ( cp > 8192 * FLT_EPSILON )
18591859
{
1860-
angles[ PITCH ] = RAD2DEG( theta );
1861-
angles[ YAW ] = RAD2DEG( atan2f( m[ 1 ], m[ 0 ] ) );
1862-
angles[ ROLL ] = RAD2DEG( atan2f( m[ 6 ], m[ 10 ] ) );
1860+
angles[ PITCH ] = Math::RadToDeg( theta );
1861+
angles[ YAW ] = Math::RadToDeg( atan2f( m[ 1 ], m[ 0 ] ) );
1862+
angles[ ROLL ] = Math::RadToDeg( atan2f( m[ 6 ], m[ 10 ] ) );
18631863
}
18641864

18651865
else
18661866
{
1867-
angles[ PITCH ] = RAD2DEG( theta );
1868-
angles[ YAW ] = RAD2DEG( -atan2f( m[ 4 ], m[ 5 ] ) );
1867+
angles[ PITCH ] = Math::RadToDeg( theta );
1868+
angles[ YAW ] = Math::RadToDeg( -atan2f( m[ 4 ], m[ 5 ] ) );
18691869
angles[ ROLL ] = 0;
18701870
}
18711871

@@ -1878,16 +1878,16 @@ void MatrixToAngles( const matrix_t m, vec3_t angles )
18781878
18791879
if ( fabsf( ca ) > 0.005f ) // Gimbal lock?
18801880
{
1881-
angles[ PITCH ] = RAD2DEG( atan2f( m[ 6 ] / ca, m[ 10 ] / ca ) );
1882-
angles[ YAW ] = RAD2DEG( a );
1883-
angles[ ROLL ] = RAD2DEG( atan2f( m[ 1 ] / ca, m[ 0 ] / ca ) );
1881+
angles[ PITCH ] = Math::RadToDeg( atan2f( m[ 6 ] / ca, m[ 10 ] / ca ) );
1882+
angles[ YAW ] = Math::RadToDeg( a );
1883+
angles[ ROLL ] = Math::RadToDeg( atan2f( m[ 1 ] / ca, m[ 0 ] / ca ) );
18841884
}
18851885
18861886
else
18871887
{
18881888
// Gimbal lock has occurred
1889-
angles[ PITCH ] = RAD2DEG( atan2f( -m[ 9 ], m[ 5 ] ) );
1890-
angles[ YAW ] = RAD2DEG( a );
1889+
angles[ PITCH ] = Math::RadToDeg( atan2f( -m[ 9 ], m[ 5 ] ) );
1890+
angles[ YAW ] = Math::RadToDeg( a );
18911891
angles[ ROLL ] = 0;
18921892
}
18931893
@@ -1900,14 +1900,14 @@ void MatrixFromAngles( matrix_t m, vec_t pitch, vec_t yaw, vec_t roll )
19001900
static float sr, sp, sy, cr, cp, cy;
19011901

19021902
// static to help MS compiler fp bugs
1903-
sp = sinf( DEG2RAD( pitch ) );
1904-
cp = cosf( DEG2RAD( pitch ) );
1903+
sp = sinf( Math::DegToRad( pitch ) );
1904+
cp = cosf( Math::DegToRad( pitch ) );
19051905

1906-
sy = sinf( DEG2RAD( yaw ) );
1907-
cy = cosf( DEG2RAD( yaw ) );
1906+
sy = sinf( Math::DegToRad( yaw ) );
1907+
cy = cosf( Math::DegToRad( yaw ) );
19081908

1909-
sr = sinf( DEG2RAD( roll ) );
1910-
cr = cosf( DEG2RAD( roll ) );
1909+
sr = sinf( Math::DegToRad( roll ) );
1910+
cr = cosf( Math::DegToRad( roll ) );
19111911

19121912
m[ 0 ] = cp * cy;
19131913
m[ 4 ] = ( sr * sp * cy + cr * -sy );
@@ -2467,7 +2467,7 @@ void MatrixPerspectiveProjectionFovYAspectLH( matrix_t m, vec_t fov, vec_t aspec
24672467
{
24682468
vec_t width, height;
24692469

2470-
width = tanf( DEG2RAD( fov * 0.5f ) );
2470+
width = tanf( Math::DegToRad( fov * 0.5f ) );
24712471
height = width / aspect;
24722472

24732473
m[ 0 ] = 1 / width;
@@ -2491,8 +2491,8 @@ void MatrixPerspectiveProjectionFovXYLH( matrix_t m, vec_t fovX, vec_t fovY, vec
24912491
{
24922492
vec_t width, height;
24932493

2494-
width = tanf( DEG2RAD( fovX * 0.5f ) );
2495-
height = tanf( DEG2RAD( fovY * 0.5f ) );
2494+
width = tanf( Math::DegToRad( fovX * 0.5f ) );
2495+
height = tanf( Math::DegToRad( fovY * 0.5f ) );
24962496

24972497
m[ 0 ] = 1 / width;
24982498
m[ 4 ] = 0;
@@ -2516,8 +2516,8 @@ void MatrixPerspectiveProjectionFovXYRH( matrix_t m, vec_t fovX, vec_t fovY, vec
25162516
{
25172517
vec_t width, height;
25182518

2519-
width = tanf( DEG2RAD( fovX * 0.5f ) );
2520-
height = tanf( DEG2RAD( fovY * 0.5f ) );
2519+
width = tanf( Math::DegToRad( fovX * 0.5f ) );
2520+
height = tanf( Math::DegToRad( fovY * 0.5f ) );
25212521

25222522
m[ 0 ] = 1 / width;
25232523
m[ 4 ] = 0;
@@ -2542,8 +2542,8 @@ void MatrixPerspectiveProjectionFovXYInfiniteRH( matrix_t m, vec_t fovX, vec_t f
25422542
{
25432543
vec_t width, height;
25442544

2545-
width = tanf( DEG2RAD( fovX * 0.5f ) );
2546-
height = tanf( DEG2RAD( fovY * 0.5f ) );
2545+
width = tanf( Math::DegToRad( fovX * 0.5f ) );
2546+
height = tanf( Math::DegToRad( fovY * 0.5f ) );
25472547

25482548
m[ 0 ] = 1 / width;
25492549
m[ 4 ] = 0;
@@ -2839,14 +2839,14 @@ void QuatFromAngles( quat_t q, vec_t pitch, vec_t yaw, vec_t roll )
28392839
static float sr, sp, sy, cr, cp, cy;
28402840
28412841
// static to help MS compiler fp bugs
2842-
sp = sinf(DEG2RAD(pitch) * 0.5);
2843-
cp = cosf(DEG2RAD(pitch) * 0.5);
2842+
sp = sinf(Math::DegToRad(pitch) * 0.5);
2843+
cp = cosf(Math::DegToRad(pitch) * 0.5);
28442844
2845-
sy = sinf(DEG2RAD(yaw) * 0.5);
2846-
cy = cosf(DEG2RAD(yaw) * 0.5);
2845+
sy = sinf(Math::DegToRad(yaw) * 0.5);
2846+
cy = cosf(Math::DegToRad(yaw) * 0.5);
28472847
2848-
sr = sinf(DEG2RAD(roll) * 0.5);
2849-
cr = cosf(DEG2RAD(roll) * 0.5);
2848+
sr = sinf(Math::DegToRad(roll) * 0.5);
2849+
cr = cosf(Math::DegToRad(roll) * 0.5);
28502850
28512851
q[0] = sr * cp * cy - cr * sp * sy; // x
28522852
q[1] = cr * sp * cy + sr * cp * sy; // y
@@ -3011,29 +3011,29 @@ void QuatToAngles( const quat_t q, vec3_t angles )
30113011

30123012
if ( test > 0.4995 )
30133013
{
3014-
angles[YAW] = RAD2DEG(-2 * atan2f(q[0], q[3]));
3014+
angles[YAW] = Math::RadToDeg(-2 * atan2f(q[0], q[3]));
30153015
angles[PITCH] = 90;
30163016
angles[ROLL] = 0;
30173017
return;
30183018
}
30193019

30203020
if ( test < -0.4995 )
30213021
{
3022-
angles[YAW] = RAD2DEG(2 * atan2f(q[0], q[3]));
3022+
angles[YAW] = Math::RadToDeg(2 * atan2f(q[0], q[3]));
30233023
angles[PITCH] = -90;
30243024
angles[ROLL] = 0;
30253025
return;
30263026
}
30273027

30283028
// original for normalized quaternions:
3029-
// angles[PITCH] = RAD2DEG(asinf( 2.0f * (q[3] * q[1] - q[2] * q[0])));
3030-
// angles[YAW] = RAD2DEG(atan2f(2.0f * (q[3] * q[2] + q[0] * q[1]), 1.0f - 2.0f * (q2[1] + q2[2])));
3031-
// angles[ROLL] = RAD2DEG(atan2f(2.0f * (q[3] * q[0] + q[1] * q[2]), 1.0f - 2.0f * (q2[0] + q2[1])));
3029+
// angles[PITCH] = Math::RadToDeg(asinf( 2.0f * (q[3] * q[1] - q[2] * q[0])));
3030+
// angles[YAW] = Math::RadToDeg(atan2f(2.0f * (q[3] * q[2] + q[0] * q[1]), 1.0f - 2.0f * (q2[1] + q2[2])));
3031+
// angles[ROLL] = Math::RadToDeg(atan2f(2.0f * (q[3] * q[0] + q[1] * q[2]), 1.0f - 2.0f * (q2[0] + q2[1])));
30323032

30333033
// optimized to work with both normalized and unnormalized quaternions:
3034-
angles[PITCH] = RAD2DEG(asinf(2.0f * test));
3035-
angles[YAW] = RAD2DEG(atan2f(2.0f * (q[3] * q[2] + q[0] * q[1]), q2[0] - q2[1] - q2[2] + q2[3]));
3036-
angles[ROLL] = RAD2DEG(atan2f(2.0f * (q[3] * q[0] + q[1] * q[2]), -q2[0] - q2[1] + q2[2] + q2[3]));
3034+
angles[PITCH] = Math::RadToDeg(asinf(2.0f * test));
3035+
angles[YAW] = Math::RadToDeg(atan2f(2.0f * (q[3] * q[2] + q[0] * q[1]), q2[0] - q2[1] - q2[2] + q2[3]));
3036+
angles[ROLL] = Math::RadToDeg(atan2f(2.0f * (q[3] * q[0] + q[1] * q[2]), -q2[0] - q2[1] + q2[2] + q2[3]));
30373037
}
30383038

30393039
void QuatMultiply( const quat_t qa, const quat_t qb, quat_t qc )

src/engine/qcommon/q_shared.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,6 @@ void Com_Free_Aligned( void *ptr );
318318
// FIXME/KILLME: not implemented!
319319
#define S_SKIPNOTIFY "[skipnotify]"
320320

321-
#define DEG2RAD( a ) ( ( ( a ) * M_PI ) / 180.0f )
322-
#define RAD2DEG( a ) ( ( ( a ) * 180.0f ) / M_PI )
323-
324321
struct cplane_t;
325322

326323
extern const vec3_t vec3_origin;

src/engine/renderer/tr_backend.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2857,8 +2857,8 @@ void RB_RenderPostDepthLightTile()
28572857
GL_Scissor( 0, 0, w, h );
28582858
gl_depthtile1Shader->BindProgram( 0 );
28592859

2860-
zParams[ 0 ] = 2.0f * tanf( DEG2RAD( backEnd.refdef.fov_x * 0.5f) ) / glConfig.vidWidth;
2861-
zParams[ 1 ] = 2.0f * tanf( DEG2RAD( backEnd.refdef.fov_y * 0.5f) ) / glConfig.vidHeight;
2860+
zParams[ 0 ] = 2.0f * tanf( Math::DegToRad( backEnd.refdef.fov_x * 0.5f) ) / glConfig.vidWidth;
2861+
zParams[ 1 ] = 2.0f * tanf( Math::DegToRad( backEnd.refdef.fov_y * 0.5f) ) / glConfig.vidHeight;
28622862
zParams[ 2 ] = backEnd.viewParms.zFar;
28632863

28642864
gl_depthtile1Shader->SetUniform_zFar( zParams );
@@ -2898,8 +2898,8 @@ void RB_RenderPostDepthLightTile()
28982898
GL_PopMatrix();
28992899

29002900
vec3_t projToViewParams;
2901-
projToViewParams[0] = tanf(DEG2RAD(backEnd.refdef.fov_x * 0.5f)) * backEnd.viewParms.zFar;
2902-
projToViewParams[1] = tanf(DEG2RAD(backEnd.refdef.fov_y * 0.5f)) * backEnd.viewParms.zFar;
2901+
projToViewParams[0] = tanf(Math::DegToRad(backEnd.refdef.fov_x * 0.5f)) * backEnd.viewParms.zFar;
2902+
projToViewParams[1] = tanf(Math::DegToRad(backEnd.refdef.fov_y * 0.5f)) * backEnd.viewParms.zFar;
29032903
projToViewParams[2] = backEnd.viewParms.zFar;
29042904

29052905
// render lights
@@ -3243,8 +3243,8 @@ void RB_RenderSSAO()
32433243
gl_ssaoShader->BindProgram( 0 );
32443244

32453245
vec3_t zParams;
3246-
zParams[ 0 ] = 2.0f * tanf( DEG2RAD( backEnd.refdef.fov_x * 0.5f ) ) / glConfig.vidWidth;
3247-
zParams[ 1 ] = 2.0f * tanf( DEG2RAD( backEnd.refdef.fov_y * 0.5f ) ) / glConfig.vidHeight;
3246+
zParams[ 0 ] = 2.0f * tanf( Math::DegToRad( backEnd.refdef.fov_x * 0.5f ) ) / glConfig.vidWidth;
3247+
zParams[ 1 ] = 2.0f * tanf( Math::DegToRad( backEnd.refdef.fov_y * 0.5f ) ) / glConfig.vidHeight;
32483248
zParams[ 2 ] = backEnd.viewParms.zFar;
32493249

32503250
gl_ssaoShader->SetUniform_zFar( zParams );
@@ -5201,8 +5201,8 @@ const RenderCommand *RotatedPicCommand::ExecuteSelf( ) const
52015201

52025202
mx = x + ( w / 2 );
52035203
my = y + ( h / 2 );
5204-
cosA = cosf( DEG2RAD( angle ) );
5205-
sinA = sinf( DEG2RAD( angle ) );
5204+
cosA = cosf( Math::DegToRad( angle ) );
5205+
sinA = sinf( Math::DegToRad( angle ) );
52065206
cw = cosA * ( w / 2 );
52075207
ch = cosA * ( h / 2 );
52085208
sw = sinA * ( w / 2 );

src/engine/renderer/tr_bsp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4139,8 +4139,8 @@ void R_LoadLightGrid( lump_t *l )
41394139
// Lat = 0 at (1,0,0) to 360 (-1,0,0), encoded in 8-bit sine table format
41404140
// Lng = 0 at (0,0,1) to 180 (0,0,-1), encoded in 8-bit sine table format
41414141

4142-
lat = DEG2RAD( in->latLong[ 1 ] * ( 360.0f / 255.0f ) );
4143-
lng = DEG2RAD( in->latLong[ 0 ] * ( 360.0f / 255.0f ) );
4142+
lat = Math::DegToRad( in->latLong[ 1 ] * ( 360.0f / 255.0f ) );
4143+
lng = Math::DegToRad( in->latLong[ 0 ] * ( 360.0f / 255.0f ) );
41444144

41454145
direction[ 0 ] = cosf( lat ) * sinf( lng );
41464146
direction[ 1 ] = sinf( lat ) * sinf( lng );

src/engine/renderer/tr_init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1400,7 +1400,7 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
14001400
// init function tables
14011401
for ( i = 0; i < FUNCTABLE_SIZE; i++ )
14021402
{
1403-
tr.sinTable[ i ] = sinf( DEG2RAD( i * 360.0f / ( ( float )( FUNCTABLE_SIZE - 1 ) ) ) );
1403+
tr.sinTable[ i ] = sinf( Math::DegToRad( i * 360.0f / ( ( float )( FUNCTABLE_SIZE - 1 ) ) ) );
14041404
tr.squareTable[ i ] = ( i < FUNCTABLE_SIZE / 2 ) ? 1.0f : -1.0f;
14051405
tr.sawToothTable[ i ] = ( float ) i / FUNCTABLE_SIZE;
14061406
tr.inverseSawToothTable[ i ] = 1.0f - tr.sawToothTable[ i ];

0 commit comments

Comments
 (0)