Mercurial > LightClone
view LightClone/Source/Core.cpp @ 0:7e3a0ae9c016
Initial commit
author | koryspansel <koryspansel@bendbroadband.com> |
---|---|
date | Wed, 07 Sep 2011 12:36:37 -0700 |
parents | |
children | 88b5c4d51c68 |
line wrap: on
line source
/* * Core */ #include "Core.h" /* * InterpolateDirection */ float InterpolateDirection(uint32 nStart, uint32 nEnd, float fParameter) { //A+t*(B-A) if(nStart == Direction_North) { if(nEnd == Direction_East) { //-90 -> 0 return -(D3DX_PI / 2.0f) * (1.0f - fParameter) + 0.0f * fParameter; //return (-(D3DX_PI / 2.0f)) + fParameter * ((0.0f) - -(D3DX_PI / 2.0f))); } else if(nEnd == Direction_West) { //-90 -> -180 return -(D3DX_PI / 2.0f) * (1.0f - fParameter) - D3DX_PI * fParameter; //return (A) + fParameter * ((B) - (A)); //return (-(D3DX_PI / 2.0f)) + fParameter * ((-D3DX_PI) - (-(D3DX_PI / 2.0f))); } } else if(nStart == Direction_East) { if(nEnd == Direction_North) { //0 -> -90 return 0.0f * (1.0f - fParameter) - (D3DX_PI / 2.0f) * fParameter; } else if(nEnd == Direction_South) { //-360 -> -270 return -2.0f * D3DX_PI * (1.0f - fParameter) - (3.0f * D3DX_PI / 2.0f) * fParameter; } } else if(nStart == Direction_South) { if(nEnd == Direction_East) { //-270 -> -360 return -(3.0f * D3DX_PI / 2.0f) * (1.0f - fParameter) - 2.0f * D3DX_PI * fParameter; } else if(nEnd == Direction_West) { //-270 -> -180 return -(3.0f * D3DX_PI / 2.0f) * (1.0f - fParameter) - (2.0f * D3DX_PI / 2.0f) * fParameter; } } else if(nStart == Direction_West) { if(nEnd == Direction_North) { //-180 -> -90 return -(2.0f * D3DX_PI / 2.0f) * (1.0f - fParameter) - (1.0f * D3DX_PI / 2.0f) * fParameter; } else if(nEnd == Direction_South) { //-180 -> -270 return -(2.0f * D3DX_PI / 2.0f) * (1.0f - fParameter) - (3.0f * D3DX_PI / 2.0f) * fParameter; } } return 0.0f; }