Files
Work/proto/source/GEOM.HPP
2024-08-07 09:16:27 -04:00

51 lines
900 B
C++

#ifndef _PROTO_GEOMETRY_HPP_
#define _PROTO_GEOMETRY_HPP_
#ifndef _PROTO_FIXEDPOINT_HPP_
#include <proto/fixed.hpp>
#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