Initial
This commit is contained in:
90
engine/VIEWSYS.HPP
Normal file
90
engine/VIEWSYS.HPP
Normal file
@@ -0,0 +1,90 @@
|
||||
#ifndef _ENGINE_VIEWSYSTEM_HPP_
|
||||
#define _ENGINE_VIEWSYSTEM_HPP_
|
||||
#ifndef _ENGINE_PUREVIEWSYSTEM_HPP_
|
||||
#include <engine/purevsys.hpp>
|
||||
#endif
|
||||
#ifndef _ENGINE_TRIANGLE3D_HPP_
|
||||
#include <engine/angle3d.hpp>
|
||||
#endif
|
||||
#ifndef _ENGINE_TRIANGLE_HPP_
|
||||
#include <engine/angle.hpp>
|
||||
#endif
|
||||
|
||||
class ViewSystem : public PureViewSystem
|
||||
{
|
||||
public:
|
||||
ViewSystem(void);
|
||||
virtual ~ViewSystem();
|
||||
void translatePoint(const Vector3D &vector3D,Vector2D &vector2D,PureViewSystem::MapMode mapMode=CartesianSystem);
|
||||
void translatePoint(Polygon3D &polygon,PureViewSystem::MapMode mapMode=CartesianSystem);
|
||||
void translatePoint(Point &dimensionPoint,Point &screenPoint,const Point3D &initialPoint,PureViewSystem::MapMode mapMode=CartesianSystem);
|
||||
void mapCoordinates(Point3D &firstPoint3D,Point &firstPoint,bool useCartesian=true);
|
||||
void mapCoordinates(Triangle3D &triangle3D,Triangle &triangle);
|
||||
WORD isInView(const Point &somePoint)const;
|
||||
WORD isInView(const Vector3D &vector3D);
|
||||
protected:
|
||||
virtual WORD viewPortWidth(void)const=0;
|
||||
virtual WORD viewPortHeight(void)const=0;
|
||||
private:
|
||||
};
|
||||
|
||||
inline
|
||||
ViewSystem::ViewSystem(void)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
ViewSystem::~ViewSystem()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
WORD ViewSystem::isInView(const Point &somePoint)const
|
||||
{
|
||||
if(somePoint.x()>viewPortWidth()||somePoint.x()<0)return FALSE;
|
||||
if(somePoint.y()>viewPortHeight()||somePoint.y()<0)return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
inline
|
||||
void ViewSystem::translatePoint(const Vector3D &vector3D,Vector2D &vector2D,PureViewSystem::MapMode mapMode)
|
||||
{
|
||||
PureViewSystem::viewPortWidth(viewPortWidth());
|
||||
PureViewSystem::viewPortHeight(viewPortHeight());
|
||||
PureViewSystem::translatePoint(vector3D,vector2D,mapMode);
|
||||
}
|
||||
|
||||
inline
|
||||
void ViewSystem::translatePoint(Polygon3D &polygon,PureViewSystem::MapMode mapMode)
|
||||
{
|
||||
PureViewSystem::viewPortWidth(viewPortWidth());
|
||||
PureViewSystem::viewPortHeight(viewPortHeight());
|
||||
PureViewSystem::translatePoint(polygon,mapMode);
|
||||
}
|
||||
|
||||
inline
|
||||
void ViewSystem::translatePoint(Point &dimensionPoint,Point &screenPoint,const Point3D &initialPoint,PureViewSystem::MapMode mapMode)
|
||||
{
|
||||
PureViewSystem::viewPortWidth(viewPortWidth());
|
||||
PureViewSystem::viewPortHeight(viewPortHeight());
|
||||
PureViewSystem::translatePoint(dimensionPoint,screenPoint,initialPoint,mapMode);
|
||||
}
|
||||
|
||||
inline
|
||||
void ViewSystem::mapCoordinates(Point3D &firstPoint3D,Point &firstPoint,bool useCartesian)
|
||||
{
|
||||
PureViewSystem::viewPortWidth(viewPortWidth());
|
||||
PureViewSystem::viewPortHeight(viewPortHeight());
|
||||
PureViewSystem::mapCoordinates(firstPoint3D,firstPoint,useCartesian);
|
||||
}
|
||||
|
||||
inline
|
||||
void ViewSystem::mapCoordinates(Triangle3D &triangle3D,Triangle &triangle)
|
||||
{
|
||||
PureViewSystem::viewPortWidth(viewPortWidth());
|
||||
PureViewSystem::viewPortHeight(viewPortHeight());
|
||||
PureViewSystem::mapCoordinates(triangle3D[0],triangle[0]);
|
||||
PureViewSystem::mapCoordinates(triangle3D[1],triangle[1]);
|
||||
PureViewSystem::mapCoordinates(triangle3D[2],triangle[2]);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user