#ifndef _PROTO_GEOMETRY_HPP_ #define _PROTO_GEOMETRY_HPP_ #ifndef _PROTO_FIXEDPOINT_HPP_ #include #endif class Geometry { public: enum {Magic=64,HeightFieldWidth=512,HeightFieldHeight=512,HeightFieldBitShift=9,TerrainScalex2=3, MaxSteps=200}; Geometry(void); virtual ~Geometry(); int viewPlaneDistance(void)const; int deltaSlope(void)const; void screenWidth(int screenWidth); private: int mDeltaSlope; int mViewPlaneDistance; }; inline Geometry::Geometry(void) : mDeltaSlope(0), mViewPlaneDistance(0) { } inline Geometry::~Geometry() { } inline int Geometry::viewPlaneDistance(void)const { return mViewPlaneDistance; } inline int Geometry::deltaSlope(void)const { return mDeltaSlope; } inline void Geometry::screenWidth(int screenWidth) { mViewPlaneDistance=screenWidth/Magic; mDeltaSlope=(1.00/(double)mViewPlaneDistance)*FixedPoint::FPMul; } #endif