Initial
This commit is contained in:
52
engine/PUREVSYS.CPP
Normal file
52
engine/PUREVSYS.CPP
Normal file
@@ -0,0 +1,52 @@
|
||||
#include <common/vector2d.hpp>
|
||||
#include <engine/purevsys.hpp>
|
||||
#include <engine/polygon.hpp>
|
||||
#include <engine/vector3d.hpp>
|
||||
|
||||
void PureViewSystem::translatePoint(const Vector3D &vector3D,Vector2D &vector2D,MapMode mapMode)
|
||||
{
|
||||
::initView((PureViewSystem*)this);
|
||||
::mapVectorCoordinates(&((Vector3D&)vector3D)[0],&vector2D[0],(DWORD)mapMode);
|
||||
}
|
||||
|
||||
void PureViewSystem::translatePoint(Polygon3D &polygon,MapMode /*mapMode*/)
|
||||
{
|
||||
::initView((PureViewSystem*)this);
|
||||
::mapPolygonCoordinates(&polygon);
|
||||
}
|
||||
|
||||
void PureViewSystem::translatePoint(Point &dimensionPoint,Point &screenPoint,const Point3D &initialPoint,MapMode mapMode)
|
||||
{
|
||||
Vector3D worldPoints;
|
||||
Vector2D screenPoints;
|
||||
|
||||
worldPoints[0]=initialPoint;
|
||||
worldPoints[1].x(initialPoint.x()+dimensionPoint.x());
|
||||
worldPoints[1].y(initialPoint.y());
|
||||
worldPoints[1].z(initialPoint.z());
|
||||
worldPoints[2].x(initialPoint.x()+dimensionPoint.x());
|
||||
worldPoints[2].y(initialPoint.y()-dimensionPoint.y());
|
||||
worldPoints[2].z(initialPoint.z());
|
||||
worldPoints[3].x(initialPoint.x());
|
||||
worldPoints[3].y(initialPoint.y()-dimensionPoint.y());
|
||||
worldPoints[3].z(initialPoint.z());
|
||||
translatePoint(worldPoints,screenPoints,mapMode);
|
||||
dimensionPoint.x((worldPoints[1].x()-worldPoints[0].x())+1);
|
||||
dimensionPoint.y((worldPoints[2].y()-worldPoints[1].y())+1);
|
||||
screenPoint.x(screenPoints[0].x());
|
||||
screenPoint.y(screenPoints[0].y());
|
||||
}
|
||||
|
||||
void PureViewSystem::cameraTwistDegrees(float cameraTwistDegrees)
|
||||
{
|
||||
float cameraTwistRadians(Math::radians(cameraTwistDegrees));
|
||||
float sinCameraTwistRadians(Math::sin(cameraTwistRadians));
|
||||
float cosCameraTwistRadians(Math::cos(cameraTwistRadians));
|
||||
float cosCameraTwistRadiansSinCameraTwistRadians(cosCameraTwistRadians*sinCameraTwistRadians);
|
||||
|
||||
mCameraTwistRadians=cameraTwistRadians*(LONG)Precision;
|
||||
mCosCameraTwistRadians=cosCameraTwistRadians*(LONG)Precision;
|
||||
mSinCameraTwistRadians=sinCameraTwistRadians*(LONG)Precision;
|
||||
mCosCameraTwistRadiansSinCameraTwistRadians=cosCameraTwistRadiansSinCameraTwistRadians*(LONG)Precision;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user