diff --git a/Engine.cc b/Engine.cc index 22bf17c..c61550b 100644 --- a/Engine.cc +++ b/Engine.cc @@ -61,13 +61,6 @@ Engine * g_engine; /* static helper functions */ -static void cross_product(dVector3 result, dVector3 first, dVector3 second) -{ - result[0] = first[1] * second[2] - first[2] * second[1]; - result[1] = first[2] * second[0] - first[0] * second[2]; - result[2] = first[0] * second[1] - first[1] * second[0]; -} - static void debug_hook(lua_State * L, lua_Debug * debug) { g_engine->debug_hook(debug); @@ -714,7 +707,7 @@ refptr< vector > Engine::pickObjects(int x, int y) forward[0] = m_center[0] - m_eye[0]; forward[1] = m_center[1] - m_eye[1]; forward[2] = m_center[2] - m_eye[2]; - cross_product(right, forward, up); + dCROSS(right, =, forward, up); dRFrom2Axes(r, right[0], right[1], right[2], forward[0], forward[1], forward[2]); initial_direction[0] = x - m_av.getWidth() / 2; @@ -749,7 +742,7 @@ Engine::PickedObjectRef Engine::pickOne(int x, int y, Engine::Object *obj) forward[0] = m_center[0] - m_eye[0]; forward[1] = m_center[1] - m_eye[1]; forward[2] = m_center[2] - m_eye[2]; - cross_product(right, forward, up); + dCROSS(right, =, forward, up); dRFrom2Axes(r, right[0], right[1], right[2], forward[0], forward[1], forward[2]); initial_direction[0] = x - m_av.getWidth() / 2; diff --git a/Engine_Object.cc b/Engine_Object.cc index b9d9c88..68c8312 100644 --- a/Engine_Object.cc +++ b/Engine_Object.cc @@ -25,15 +25,6 @@ static void checkGLErrorLine(const char * function, int line) #define FP_EQ(a,b) (fabsf(a - b) < 0.0001) -/* static helper functions */ - -static void cross_product(dVector3 result, dVector3 first, dVector3 second) -{ - result[0] = first[1] * second[2] - first[2] * second[1]; - result[1] = first[2] * second[0] - first[0] * second[2]; - result[2] = first[0] * second[1] - first[1] * second[0]; -} - /* used for objects loaded directly from model files */ Engine::Object::Object(bool is_static, bool is_reference, bool enable_blending, OdeWorld & world, WFObj * obj, float scale) @@ -374,8 +365,8 @@ void Engine::Object::render() dVector3 cross_vec; for (int i = 0; i < 3; i++) cross_vec[i] = (i == min_component) ? 1 : 0; - cross_product(rotated_x, normal, cross_vec); - cross_product(rotated_y, normal, rotated_x); + dCROSS(rotated_x, =, normal, cross_vec); + dCROSS(rotated_y, =, normal, rotated_x); x_o = normal[0] * d; y_o = normal[1] * d; z_o = normal[2] * d;