00001 #ifndef CYBGRAPHICChannelC_H
00002 #define CYBGRAPHICChannelC_H
00003
00004 #include "cybchannelc.h"
00005 #include "../oawconfig.h"
00006
00007 OAW_BEGIN_NAMESPACE
00008
00009
00010 class OAW_DLLMAPPING CybGraphicChannelC : public CybChannelC
00011 {
00012 public:
00013 CybGraphicChannelC();
00014 virtual void ClearBuffers()=0;
00015
00016 void GetScreenSize(double& x, double& y) const {x=m_vww;y=m_vwh;}
00017 double GetFar() const {return m_far;}
00018 double GetNear() const {return m_near;}
00019 VectorC GetViewplanePos() const {return m_viewplanePos;}
00020 VectorC GetViewplaneNorm() const {return m_viewplaneNorm;}
00021 VectorC GetProjectionpoint() const {return m_projectionpoint;}
00022 double GetViewplaneRol() const {return m_viewplaneRol;}
00023
00024 virtual void SetViewplanePos(const VectorC& v);
00025 virtual void SetViewplaneNorm(const VectorC& v);
00026 virtual void SetProjectionpoint(const VectorC& v);
00027 virtual void SetScreenSize(double x, double y){m_vww=x;m_vwh=y;}
00028 virtual void SetViewplaneRol(double rol);
00029 virtual void SetFar(const double& f){m_far=f;}
00030 virtual void SetNear(const double& n){m_near=n;}
00031 virtual short TestBInfo(const CybBInfoC&);
00032
00033 void HeadLightOn(short b){m_headLightOn=b;}
00034 short HeadLightIsOn() const {return m_headLightOn;}
00035 void SetWireFrame(short b){m_bWireFrame = b;}
00036 short GetWireFrame() const {return m_bWireFrame;}
00037 long GetCullingStat(){return m_cullingCount;}
00038
00039
00040 protected:
00041 void UpdateFrustumNormals();
00042
00043 protected:
00044 VectorC m_viewplanePos;
00045 VectorC m_viewplaneNorm;
00046 double m_viewplaneRol;
00047 double m_near,m_far;
00048
00049 VectorC m_frustumTopNormal;
00050 VectorC m_frustumBottomNormal;
00051 VectorC m_frustumLeftNormal;
00052 VectorC m_frustumRightNormal;
00053 VectorC m_frustumBase;
00054
00055 long m_cullingCount;
00056 long m_noCullLevel;
00057
00058 VectorC m_projectionpoint;
00059 double m_vww,m_vwh;
00060
00061 short m_headLightOn;
00062 short m_bWireFrame;
00063
00064 };
00065
00066 OAW_END_NAMESPACE
00067
00068
00069 #endif
00070
00071
00072
00073
00074
00075