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