#include #include #include #include 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; }