functions; also remove a lot of idiotic "using namespace std" from the codebase.legacy
@@ -14,6 +14,7 @@ liblol_a_SOURCES = \ | |||
\ | |||
lol/unit.h lol/debug.h \ | |||
lol/math/vector.h lol/math/half.h lol/math/real.h lol/math/remez.h \ | |||
lol/math/trig.h \ | |||
\ | |||
generated/location.hh generated/position.hh generated/stack.hh \ | |||
\ | |||
@@ -35,7 +36,7 @@ liblol_a_SOURCES = \ | |||
\ | |||
thread/threadbase.h thread/thread.h \ | |||
\ | |||
math/vector.cpp math/real.cpp math/half.cpp math/trig.cpp math/trig.h \ | |||
math/vector.cpp math/real.cpp math/half.cpp math/trig.cpp \ | |||
\ | |||
input/input.cpp input/input.h \ | |||
input/stick.cpp input/stick.h \ | |||
@@ -1,7 +1,7 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||
// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
@@ -68,10 +68,10 @@ static inline int isnan(float f) | |||
// Base types | |||
#include "lol/debug.h" | |||
#include "math/trig.h" | |||
#include "lol/math/half.h" | |||
#include "lol/math/real.h" | |||
#include "lol/math/vector.h" | |||
#include "lol/math/trig.h" | |||
#include "numeric.h" | |||
#include "timer.h" | |||
#include "thread/thread.h" | |||
@@ -15,6 +15,12 @@ | |||
# include "config.h" | |||
#endif | |||
#include <cstdlib> | |||
using std::exit; | |||
using std::malloc; | |||
using std::realloc; | |||
using std::free; | |||
#include "core.h" | |||
#include "easymesh/easymesh-compiler.h" | |||
@@ -77,14 +83,14 @@ aq { return token::T_QUAD; } | |||
acg { return token::T_COG; } | |||
#[0-9a-f]{3} { | |||
uint32_t tmp = strtol(yytext + 1, NULL, 16); | |||
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = 0x11000000u * (tmp >> 8) | |||
| 0x00110000u * ((tmp >> 4) & 0xf) | |||
| 0x00001100u * (tmp & 0xf) | |||
| 0x000000ffu; | |||
return token::COLOR; } | |||
#[0-9a-f]{4} { | |||
uint32_t tmp = strtol(yytext + 1, NULL, 16); | |||
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = 0x11000000u * (tmp >> 12) | |||
| 0x00110000u * ((tmp >> 8) & 0xf) | |||
| 0x00001100u * ((tmp >> 4) & 0xf) | |||
@@ -92,13 +98,13 @@ acg { return token::T_COG; } | |||
return token::COLOR; } | |||
#[0-9a-f]{6} { | |||
yylval->u32val = 0xffu | |||
| 0x100u * (uint32_t)strtol(yytext + 1, NULL, 16); | |||
| 0x100u * (uint32_t)std::strtol(yytext + 1, NULL, 16); | |||
return token::COLOR; } | |||
#[0-9a-f]{8} { | |||
yylval->u32val = (uint32_t)strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16); | |||
return token::COLOR; } | |||
[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)? { | |||
yylval->fval = atof(yytext); return token::NUMBER; } | |||
yylval->fval = std::atof(yytext); return token::NUMBER; } | |||
- { return token_type('-'); } | |||
"[" { return token_type('['); } | |||
"]" { return token_type(']'); } | |||
@@ -352,12 +352,12 @@ void EasyMesh::AppendSphere(int ndivisions, vec3 const &size) | |||
int vbase = m_vert.Count(); | |||
vec3 d = size * 0.5f; | |||
float const pi = std::acos(-1.0f); | |||
float const pi = acos(-1.0f); | |||
Array<vec2> table; | |||
for (int i = 0; i <= ndivisions; i++) | |||
table.Push(vec2(std::sin(pi * 2 / ndivisions * i) + 1e-5f, | |||
std::cos(pi * 2 / ndivisions * i) + 1e-5f)); | |||
table.Push(vec2(sin(pi * 2 / ndivisions * i) + 1e-5f, | |||
cos(pi * 2 / ndivisions * i) + 1e-5f)); | |||
for (int j = 0; j <= ndivisions / 2; j++) | |||
for (int i = 0; i < ndivisions; i++) | |||
@@ -474,6 +474,12 @@ static yyconst flex_int16_t yy_chk[124] = | |||
# include "config.h" | |||
#endif | |||
#include <cstdlib> | |||
using std::exit; | |||
using std::malloc; | |||
using std::realloc; | |||
using std::free; | |||
#include "core.h" | |||
#include "easymesh/easymesh-compiler.h" | |||
@@ -489,7 +495,7 @@ typedef lol::EasyMeshParser::token_type token_type; | |||
#define yyterminate() return token::T_END | |||
#define YY_NO_UNISTD_H | |||
#define YY_USER_ACTION yylloc->columns(yyleng); | |||
#line 493 "generated/easymesh-scanner.cpp" | |||
#line 499 "generated/easymesh-scanner.cpp" | |||
#define INITIAL 0 | |||
@@ -594,7 +600,7 @@ YY_DECL | |||
register char *yy_cp, *yy_bp; | |||
register int yy_act; | |||
#line 38 "easymesh/easymesh-scanner.l" | |||
#line 44 "easymesh/easymesh-scanner.l" | |||
@@ -602,7 +608,7 @@ YY_DECL | |||
yylloc->step(); | |||
#line 606 "generated/easymesh-scanner.cpp" | |||
#line 612 "generated/easymesh-scanner.cpp" | |||
if ( !(yy_init) ) | |||
{ | |||
@@ -683,164 +689,164 @@ do_action: /* This label is used only to access EOF actions. */ | |||
case 1: | |||
YY_RULE_SETUP | |||
#line 45 "easymesh/easymesh-scanner.l" | |||
#line 51 "easymesh/easymesh-scanner.l" | |||
{ return token::T_COLOR; } | |||
YY_BREAK | |||
case 2: | |||
YY_RULE_SETUP | |||
#line 46 "easymesh/easymesh-scanner.l" | |||
#line 52 "easymesh/easymesh-scanner.l" | |||
{ return token::T_BGCOLOR; } | |||
YY_BREAK | |||
case 3: | |||
YY_RULE_SETUP | |||
#line 48 "easymesh/easymesh-scanner.l" | |||
#line 54 "easymesh/easymesh-scanner.l" | |||
{ return token::T_CHAMFER; } | |||
YY_BREAK | |||
case 4: | |||
YY_RULE_SETUP | |||
#line 49 "easymesh/easymesh-scanner.l" | |||
#line 55 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TRANSLATEX; } | |||
YY_BREAK | |||
case 5: | |||
YY_RULE_SETUP | |||
#line 50 "easymesh/easymesh-scanner.l" | |||
#line 56 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TRANSLATEY; } | |||
YY_BREAK | |||
case 6: | |||
YY_RULE_SETUP | |||
#line 51 "easymesh/easymesh-scanner.l" | |||
#line 57 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TRANSLATEZ; } | |||
YY_BREAK | |||
case 7: | |||
YY_RULE_SETUP | |||
#line 52 "easymesh/easymesh-scanner.l" | |||
#line 58 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TRANSLATE; } | |||
YY_BREAK | |||
case 8: | |||
YY_RULE_SETUP | |||
#line 53 "easymesh/easymesh-scanner.l" | |||
#line 59 "easymesh/easymesh-scanner.l" | |||
{ return token::T_ROTATEX; } | |||
YY_BREAK | |||
case 9: | |||
YY_RULE_SETUP | |||
#line 54 "easymesh/easymesh-scanner.l" | |||
#line 60 "easymesh/easymesh-scanner.l" | |||
{ return token::T_ROTATEY; } | |||
YY_BREAK | |||
case 10: | |||
YY_RULE_SETUP | |||
#line 55 "easymesh/easymesh-scanner.l" | |||
#line 61 "easymesh/easymesh-scanner.l" | |||
{ return token::T_ROTATEZ; } | |||
YY_BREAK | |||
case 11: | |||
YY_RULE_SETUP | |||
#line 56 "easymesh/easymesh-scanner.l" | |||
#line 62 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TAPERX; } | |||
YY_BREAK | |||
case 12: | |||
YY_RULE_SETUP | |||
#line 57 "easymesh/easymesh-scanner.l" | |||
#line 63 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TAPERY; } | |||
YY_BREAK | |||
case 13: | |||
YY_RULE_SETUP | |||
#line 58 "easymesh/easymesh-scanner.l" | |||
#line 64 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TAPERZ; } | |||
YY_BREAK | |||
case 14: | |||
YY_RULE_SETUP | |||
#line 59 "easymesh/easymesh-scanner.l" | |||
#line 65 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SCALEX; } | |||
YY_BREAK | |||
case 15: | |||
YY_RULE_SETUP | |||
#line 60 "easymesh/easymesh-scanner.l" | |||
#line 66 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SCALEY; } | |||
YY_BREAK | |||
case 16: | |||
YY_RULE_SETUP | |||
#line 61 "easymesh/easymesh-scanner.l" | |||
#line 67 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SCALEZ; } | |||
YY_BREAK | |||
case 17: | |||
YY_RULE_SETUP | |||
#line 62 "easymesh/easymesh-scanner.l" | |||
#line 68 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SCALE; } | |||
YY_BREAK | |||
case 18: | |||
YY_RULE_SETUP | |||
#line 63 "easymesh/easymesh-scanner.l" | |||
#line 69 "easymesh/easymesh-scanner.l" | |||
{ return token::T_MIRRORX; } | |||
YY_BREAK | |||
case 19: | |||
YY_RULE_SETUP | |||
#line 64 "easymesh/easymesh-scanner.l" | |||
#line 70 "easymesh/easymesh-scanner.l" | |||
{ return token::T_MIRRORY; } | |||
YY_BREAK | |||
case 20: | |||
YY_RULE_SETUP | |||
#line 65 "easymesh/easymesh-scanner.l" | |||
#line 71 "easymesh/easymesh-scanner.l" | |||
{ return token::T_MIRRORZ; } | |||
YY_BREAK | |||
case 21: | |||
YY_RULE_SETUP | |||
#line 67 "easymesh/easymesh-scanner.l" | |||
#line 73 "easymesh/easymesh-scanner.l" | |||
{ return token::T_CYLINDER; } | |||
YY_BREAK | |||
case 22: | |||
YY_RULE_SETUP | |||
#line 68 "easymesh/easymesh-scanner.l" | |||
#line 74 "easymesh/easymesh-scanner.l" | |||
{ return token::T_BOX; } | |||
YY_BREAK | |||
case 23: | |||
YY_RULE_SETUP | |||
#line 69 "easymesh/easymesh-scanner.l" | |||
#line 75 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SMOOTHCHAMFBOX; } | |||
YY_BREAK | |||
case 24: | |||
YY_RULE_SETUP | |||
#line 70 "easymesh/easymesh-scanner.l" | |||
#line 76 "easymesh/easymesh-scanner.l" | |||
{ return token::T_FLATCHAMFBOX; } | |||
YY_BREAK | |||
case 25: | |||
YY_RULE_SETUP | |||
#line 71 "easymesh/easymesh-scanner.l" | |||
#line 77 "easymesh/easymesh-scanner.l" | |||
{ return token::T_SPHERE; } | |||
YY_BREAK | |||
case 26: | |||
YY_RULE_SETUP | |||
#line 72 "easymesh/easymesh-scanner.l" | |||
#line 78 "easymesh/easymesh-scanner.l" | |||
{ return token::T_STAR; } | |||
YY_BREAK | |||
case 27: | |||
YY_RULE_SETUP | |||
#line 73 "easymesh/easymesh-scanner.l" | |||
#line 79 "easymesh/easymesh-scanner.l" | |||
{ return token::T_EXPANDEDSTAR; } | |||
YY_BREAK | |||
case 28: | |||
YY_RULE_SETUP | |||
#line 74 "easymesh/easymesh-scanner.l" | |||
#line 80 "easymesh/easymesh-scanner.l" | |||
{ return token::T_DISC; } | |||
YY_BREAK | |||
case 29: | |||
YY_RULE_SETUP | |||
#line 75 "easymesh/easymesh-scanner.l" | |||
#line 81 "easymesh/easymesh-scanner.l" | |||
{ return token::T_TRIANGLE; } | |||
YY_BREAK | |||
case 30: | |||
YY_RULE_SETUP | |||
#line 76 "easymesh/easymesh-scanner.l" | |||
#line 82 "easymesh/easymesh-scanner.l" | |||
{ return token::T_QUAD; } | |||
YY_BREAK | |||
case 31: | |||
YY_RULE_SETUP | |||
#line 77 "easymesh/easymesh-scanner.l" | |||
#line 83 "easymesh/easymesh-scanner.l" | |||
{ return token::T_COG; } | |||
YY_BREAK | |||
case 32: | |||
YY_RULE_SETUP | |||
#line 79 "easymesh/easymesh-scanner.l" | |||
#line 85 "easymesh/easymesh-scanner.l" | |||
{ | |||
uint32_t tmp = strtol(yytext + 1, NULL, 16); | |||
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = 0x11000000u * (tmp >> 8) | |||
| 0x00110000u * ((tmp >> 4) & 0xf) | |||
| 0x00001100u * (tmp & 0xf) | |||
@@ -849,9 +855,9 @@ YY_RULE_SETUP | |||
YY_BREAK | |||
case 33: | |||
YY_RULE_SETUP | |||
#line 86 "easymesh/easymesh-scanner.l" | |||
#line 92 "easymesh/easymesh-scanner.l" | |||
{ | |||
uint32_t tmp = strtol(yytext + 1, NULL, 16); | |||
uint32_t tmp = std::strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = 0x11000000u * (tmp >> 12) | |||
| 0x00110000u * ((tmp >> 8) & 0xf) | |||
| 0x00001100u * ((tmp >> 4) & 0xf) | |||
@@ -860,62 +866,62 @@ YY_RULE_SETUP | |||
YY_BREAK | |||
case 34: | |||
YY_RULE_SETUP | |||
#line 93 "easymesh/easymesh-scanner.l" | |||
#line 99 "easymesh/easymesh-scanner.l" | |||
{ | |||
yylval->u32val = 0xffu | |||
| 0x100u * (uint32_t)strtol(yytext + 1, NULL, 16); | |||
| 0x100u * (uint32_t)std::strtol(yytext + 1, NULL, 16); | |||
return token::COLOR; } | |||
YY_BREAK | |||
case 35: | |||
YY_RULE_SETUP | |||
#line 97 "easymesh/easymesh-scanner.l" | |||
#line 103 "easymesh/easymesh-scanner.l" | |||
{ | |||
yylval->u32val = (uint32_t)strtol(yytext + 1, NULL, 16); | |||
yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16); | |||
return token::COLOR; } | |||
YY_BREAK | |||
case 36: | |||
YY_RULE_SETUP | |||
#line 100 "easymesh/easymesh-scanner.l" | |||
#line 106 "easymesh/easymesh-scanner.l" | |||
{ | |||
yylval->fval = atof(yytext); return token::NUMBER; } | |||
yylval->fval = std::atof(yytext); return token::NUMBER; } | |||
YY_BREAK | |||
case 37: | |||
YY_RULE_SETUP | |||
#line 102 "easymesh/easymesh-scanner.l" | |||
#line 108 "easymesh/easymesh-scanner.l" | |||
{ return token_type('-'); } | |||
YY_BREAK | |||
case 38: | |||
YY_RULE_SETUP | |||
#line 103 "easymesh/easymesh-scanner.l" | |||
#line 109 "easymesh/easymesh-scanner.l" | |||
{ return token_type('['); } | |||
YY_BREAK | |||
case 39: | |||
YY_RULE_SETUP | |||
#line 104 "easymesh/easymesh-scanner.l" | |||
#line 110 "easymesh/easymesh-scanner.l" | |||
{ return token_type(']'); } | |||
YY_BREAK | |||
case 40: | |||
YY_RULE_SETUP | |||
#line 105 "easymesh/easymesh-scanner.l" | |||
#line 111 "easymesh/easymesh-scanner.l" | |||
{ /* ignore this */ } | |||
YY_BREAK | |||
case 41: | |||
/* rule 41 can match eol */ | |||
YY_RULE_SETUP | |||
#line 106 "easymesh/easymesh-scanner.l" | |||
#line 112 "easymesh/easymesh-scanner.l" | |||
{ /* ignore this */ } | |||
YY_BREAK | |||
case 42: | |||
YY_RULE_SETUP | |||
#line 107 "easymesh/easymesh-scanner.l" | |||
#line 113 "easymesh/easymesh-scanner.l" | |||
{ return token::T_ERROR; } | |||
YY_BREAK | |||
case 43: | |||
YY_RULE_SETUP | |||
#line 109 "easymesh/easymesh-scanner.l" | |||
#line 115 "easymesh/easymesh-scanner.l" | |||
ECHO; | |||
YY_BREAK | |||
#line 919 "generated/easymesh-scanner.cpp" | |||
#line 925 "generated/easymesh-scanner.cpp" | |||
case YY_STATE_EOF(INITIAL): | |||
yyterminate(); | |||
@@ -1816,7 +1822,7 @@ void EasyMeshfree (void * ptr ) | |||
#define YYTABLES_NAME "yytables" | |||
#line 109 "easymesh/easymesh-scanner.l" | |||
#line 115 "easymesh/easymesh-scanner.l" | |||
@@ -233,7 +233,7 @@ void VertexDeclaration::Unbind() | |||
} | |||
if (FAILED(g_d3ddevice->SetVertexDeclaration(NULL))) | |||
Abort(); | |||
#else | |||
#elif !defined __CELLOS_LV2__ | |||
/* FIXME: we need to unbind what we bound */ | |||
//glDisableVertexAttribArray(m_attrib); | |||
/* FIXME: temporary kludge */ | |||
@@ -244,6 +244,7 @@ void VertexDeclaration::Unbind() | |||
//glBindBuffer(GL_ARRAY_BUFFER, 0); | |||
/* Or: */ | |||
//glDisableVertexAttribArray(m_attrib); | |||
#else | |||
/* Or even: */ | |||
//glDisableClientState(GL_VERTEX_ARRAY); | |||
#endif | |||
@@ -0,0 +1,77 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
// http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||
// | |||
// | |||
// Trigonometry functions | |||
// ---------------------- | |||
// | |||
#if !defined __LOL_MATH_TRIG_H__ | |||
#define __LOL_MATH_TRIG_H__ | |||
#include <cstdio> | |||
#include <stdint.h> | |||
namespace lol | |||
{ | |||
/* Standard cmath functions */ | |||
static inline double sin(double const &x) { return std::sin(x); } | |||
static inline double cos(double const &x) { return std::cos(x); } | |||
static inline double tan(double const &x) { return std::tan(x); } | |||
static inline double asin(double const &x) { return std::asin(x); } | |||
static inline double acos(double const &x) { return std::acos(x); } | |||
static inline double atan(double const &x) { return std::atan(x); } | |||
static inline float sin(float const &x) { return std::sin(x); } | |||
static inline float cos(float const &x) { return std::cos(x); } | |||
static inline float tan(float const &x) { return std::tan(x); } | |||
static inline float asin(float const &x) { return std::asin(x); } | |||
static inline float acos(float const &x) { return std::acos(x); } | |||
static inline float atan(float const &x) { return std::atan(x); } | |||
static inline double atan2(double const &y, double const &x) | |||
{ | |||
return std::atan2(y, x); | |||
} | |||
static inline float atan2(float const &y, float const &x) | |||
{ | |||
return std::atan2(y, x); | |||
} | |||
/* Our extensions */ | |||
static inline void sincos(double const &x, double *s, double *c) | |||
{ | |||
*s = std::sin(x); | |||
*c = std::cos(x); | |||
} | |||
static inline void sincos(float const &x, float *s, float *c) | |||
{ | |||
*s = std::sin(x); | |||
*c = std::cos(x); | |||
} | |||
/* These accelerated functions will be merged into the above, one day */ | |||
double lol_sin(double); | |||
double lol_cos(double); | |||
double lol_tan(double); | |||
void lol_sincos(double, double*, double*); | |||
void lol_sincos(float, float*, float*); | |||
double lol_asin(double); | |||
double lol_acos(double); | |||
double lol_atan(double); | |||
double lol_atan2(double, double); | |||
} /* namespace lol */ | |||
#endif // __LOL_MATH_TRIG_H__ | |||
@@ -1,38 +0,0 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
// http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||
// | |||
// | |||
// Trigonometry functions | |||
// ---------------------- | |||
// | |||
#if !defined __LOL_TRIG_H__ | |||
#define __LOL_TRIG_H__ | |||
#include <cstdio> | |||
#include <stdint.h> | |||
namespace lol | |||
{ | |||
double lol_sin(double); | |||
double lol_cos(double); | |||
double lol_tan(double); | |||
void lol_sincos(double, double*, double*); | |||
void lol_sincos(float, float*, float*); | |||
double lol_asin(double); | |||
double lol_acos(double); | |||
double lol_atan(double); | |||
double lol_atan2(double, double); | |||
} /* namespace lol */ | |||
#endif // __LOL_TRIG_H__ | |||
@@ -340,8 +340,8 @@ template<> mat2 mat2::rotate(float angle) | |||
{ | |||
angle *= (M_PI / 180.0f); | |||
float st = std::sin(angle); | |||
float ct = std::cos(angle); | |||
float st = sin(angle); | |||
float ct = cos(angle); | |||
mat2 ret; | |||
@@ -358,8 +358,8 @@ template<> mat3 mat3::rotate(float angle, float x, float y, float z) | |||
{ | |||
angle *= (M_PI / 180.0f); | |||
float st = std::sin(angle); | |||
float ct = std::cos(angle); | |||
float st = sin(angle); | |||
float ct = cos(angle); | |||
float len = std::sqrt(x * x + y * y + z * z); | |||
float invlen = len ? 1.0f / len : 0.0f; | |||
@@ -477,9 +477,9 @@ template<> quat quat::rotate(float angle, vec3 const &v) | |||
{ | |||
angle *= (M_PI / 360.0f); | |||
vec3 tmp = normalize(v) * std::sin(angle); | |||
vec3 tmp = normalize(v) * sin(angle); | |||
return quat(std::cos(angle), tmp.x, tmp.y, tmp.z); | |||
return quat(cos(angle), tmp.x, tmp.y, tmp.z); | |||
} | |||
template<> quat quat::rotate(float angle, float x, float y, float z) | |||
@@ -489,9 +489,6 @@ template<> quat quat::rotate(float angle, float x, float y, float z) | |||
template<> vec3 vec3::toeuler(quat const &q) | |||
{ | |||
using std::atan2; | |||
using std::asin; | |||
float n = norm(q); | |||
if (!n) | |||
@@ -508,8 +505,6 @@ template<> vec3 vec3::toeuler(quat const &q) | |||
static inline mat3 mat3_fromeuler_generic(vec3 const &v, int i, int j, int k) | |||
{ | |||
using std::sin; | |||
using std::cos; | |||
mat3 ret; | |||
vec3 radians = (M_PI / 180.0f) * v; | |||
@@ -578,9 +573,6 @@ static inline mat3 mat3_fromeuler_generic(vec3 const &v, int i, int j, int k) | |||
static inline quat quat_fromeuler_generic(vec3 const &v, int i, int j, int k) | |||
{ | |||
using std::sin; | |||
using std::cos; | |||
vec3 half_angles = (M_PI / 360.0f) * v; | |||
float s0 = sin(half_angles[0]), c0 = cos(half_angles[0]); | |||
float s1 = sin(half_angles[1]), c1 = cos(half_angles[1]); | |||
@@ -19,7 +19,6 @@ | |||
#include "lolgl.h" | |||
#include "loldebug.h" | |||
using namespace std; | |||
using namespace lol; | |||
#if defined _WIN32 && defined USE_D3D9 | |||
@@ -236,7 +235,7 @@ public: | |||
m_drag = false; | |||
if (m_translate != 0.0) | |||
{ | |||
m_translate *= pow(2.0, -seconds * 5.0); | |||
m_translate *= std::pow(2.0, -seconds * 5.0); | |||
if (m_translate.norm() / m_radius < 1e-4) | |||
m_translate = 0.0; | |||
} | |||
@@ -251,7 +250,7 @@ public: | |||
} | |||
else if (m_zoom_speed) | |||
{ | |||
m_zoom_speed *= pow(2.0, -seconds * 5.0); | |||
m_zoom_speed *= std::pow(2.0, -seconds * 5.0); | |||
if (abs(m_zoom_speed) < 1e-5 || m_drag) | |||
m_zoom_speed = 0.0; | |||
} | |||
@@ -261,7 +260,7 @@ public: | |||
{ | |||
dcmplx oldcenter = m_center; | |||
double oldradius = m_radius; | |||
double zoom = pow(2.0, seconds * 1e3f * m_zoom_speed); | |||
double zoom = std::pow(2.0, seconds * 1e3f * m_zoom_speed); | |||
if (m_radius * zoom > 8.0) | |||
{ | |||
m_zoom_speed *= -1.0; | |||
@@ -1,7 +1,7 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||
// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
@@ -25,7 +25,6 @@ LOLUNIT_FIXTURE(TrigTest) | |||
LOLUNIT_TEST(Sin) | |||
{ | |||
using std::fabs; | |||
using std::sin; | |||
for (int i = -10000; i < 10000; i++) | |||
{ | |||
@@ -33,7 +32,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_sin(f); | |||
#else | |||
double a = sin(f); | |||
double a = std::sin(f); | |||
#endif | |||
double b = lol_sin(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -46,7 +45,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_sin(f); | |||
#else | |||
double a = sin(f); | |||
double a = std::sin(f); | |||
#endif | |||
double b = lol_sin(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -57,7 +56,6 @@ LOLUNIT_FIXTURE(TrigTest) | |||
LOLUNIT_TEST(Cos) | |||
{ | |||
using std::fabs; | |||
using std::cos; | |||
for (int i = -10000; i < 10000; i++) | |||
{ | |||
@@ -65,7 +63,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_cos(f); | |||
#else | |||
double a = cos(f); | |||
double a = std::cos(f); | |||
#endif | |||
double b = lol_cos(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -78,7 +76,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_cos(f); | |||
#else | |||
double a = cos(f); | |||
double a = std::cos(f); | |||
#endif | |||
double b = lol_cos(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -89,8 +87,6 @@ LOLUNIT_FIXTURE(TrigTest) | |||
LOLUNIT_TEST(SinCos) | |||
{ | |||
using std::fabs; | |||
using std::sin; | |||
using std::cos; | |||
for (int i = -10000; i < 10000; i++) | |||
{ | |||
@@ -99,8 +95,8 @@ LOLUNIT_FIXTURE(TrigTest) | |||
double a1 = __builtin_sin(f); | |||
double a2 = __builtin_cos(f); | |||
#else | |||
double a1 = sin(f); | |||
double a2 = cos(f); | |||
double a1 = std::sin(f); | |||
double a2 = std::cos(f); | |||
#endif | |||
double b1, b2; | |||
lol_sincos(f, &b1, &b2); | |||
@@ -116,8 +112,8 @@ LOLUNIT_FIXTURE(TrigTest) | |||
double a1 = __builtin_sin(f); | |||
double a2 = __builtin_cos(f); | |||
#else | |||
double a1 = sin(f); | |||
double a2 = cos(f); | |||
double a1 = std::sin(f); | |||
double a2 = std::cos(f); | |||
#endif | |||
double b1, b2; | |||
lol_sincos(f, &b1, &b2); | |||
@@ -130,7 +126,6 @@ LOLUNIT_FIXTURE(TrigTest) | |||
LOLUNIT_TEST(Tan) | |||
{ | |||
using std::fabs; | |||
using std::tan; | |||
for (int i = -100000; i < 100000; i++) | |||
{ | |||
@@ -138,7 +133,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_tan(f); | |||
#else | |||
double a = tan(f); | |||
double a = std::tan(f); | |||
#endif | |||
double b = lol_tan(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -156,7 +151,7 @@ LOLUNIT_FIXTURE(TrigTest) | |||
#if defined __GNUC__ | |||
double a = __builtin_tan(f); | |||
#else | |||
double a = tan(f); | |||
double a = std::tan(f); | |||
#endif | |||
double b = lol_tan(f); | |||
LOLUNIT_SET_CONTEXT(f); | |||
@@ -17,7 +17,6 @@ | |||
#include "lolgl.h" | |||
#include "loldebug.h" | |||
using namespace std; | |||
using namespace lol; | |||
#if USE_SDL && defined __APPLE__ | |||
@@ -70,7 +69,7 @@ int main(int argc, char **argv) | |||
/* Register some debug stuff */ | |||
new DebugFps(5, 5); | |||
Cell<3> c; | |||
Cell<3> c; | |||
app.Run(); | |||
return EXIT_SUCCESS; | |||
@@ -174,10 +174,10 @@ | |||
<ClInclude Include="..\src\lol\math\half.h" /> | |||
<ClInclude Include="..\src\lol\math\real.h" /> | |||
<ClInclude Include="..\src\lol\math\remez.h" /> | |||
<ClInclude Include="..\src\lol\math\trig.h" /> | |||
<ClInclude Include="..\src\lol\math\vector.h" /> | |||
<ClInclude Include="..\src\lol\unit.h" /> | |||
<ClInclude Include="..\src\map.h" /> | |||
<ClInclude Include="..\src\math\trig.h" /> | |||
<ClInclude Include="..\src\numeric.h" /> | |||
<ClInclude Include="..\src\platform.h" /> | |||
<ClInclude Include="..\src\platform\d3d9\d3d9input.h" /> | |||
@@ -216,4 +216,4 @@ | |||
<ImportGroup Label="ExtensionTargets"> | |||
<Import Project="$(SolutionDir)\Lol.Fx.targets" /> | |||
</ImportGroup> | |||
</Project> | |||
</Project> |
@@ -261,9 +261,6 @@ | |||
<ClInclude Include="..\src\platform\sdl\sdlapp.h"> | |||
<Filter>src\platform\sdl</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\src\math\trig.h"> | |||
<Filter>src\math</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\src\lol\math\half.h"> | |||
<Filter>src\lol\math</Filter> | |||
</ClInclude> | |||
@@ -273,6 +270,9 @@ | |||
<ClInclude Include="..\src\lol\math\remez.h"> | |||
<Filter>src\lol\math</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\src\lol\math\trig.h"> | |||
<Filter>src\lol\math</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\src\lol\math\vector.h"> | |||
<Filter>src\lol\math</Filter> | |||
</ClInclude> | |||
@@ -464,4 +464,4 @@ | |||
<Filter>src\easymesh</Filter> | |||
</None> | |||
</ItemGroup> | |||
</Project> | |||
</Project> |