#ifndef __GLOBALLINESRENDERER_H #define __GLOBALLINESRENDERER_H #include "common.h" #include "Containers.h" class Beam; class Intersectable; class QGLPixelBuffer; struct VssRayContainer; namespace GtpVisibilityPreprocessor { class __declspec(dllexport) GlobalLinesRenderer { GlobalLinesRenderer(QGLPixelBuffer *buffer1, QGLPixelBuffer *buffer2); ~GlobalLinesRenderer(); void CastGlobalLines(Beam &beam, const int samples); void InitGL(); /** Computes rays from information gained with hw sampling */ void ComputeRays(Intersectable *sourceObj, VssRayContainer &rays); float GetPixelError(int &pvsSize); int ComputePvs(ObjectContainer &objects, ObjectContainer &pvs) const; private: /** Draws the geometry for one pass. */ void DrawGeometry(); void ApplyDepthPeeling(Beam &beam, const int samples); void SetupProjection(const Vector3 &viewPoint, const Beam &beam); QGLPixelBuffer *mNewBuffer; QGLPixelBuffer *mOldBuffer; }; }; #endif