#ifndef __PVS_H #define __PVS_H #include class KdNode; class Ray; struct LtKdNode { bool operator()(const KdNode *a, const KdNode *b) const { return a < b; } }; struct KdPvsData { int mVisibleSamples; KdPvsData() {} KdPvsData(const int samples):mVisibleSamples(samples) {} }; typedef std::map KdPvsMap; class KdPvs { public: int mSamples; KdPvsMap mEntries; KdPvs():mSamples(0),mEntries() {} KdPvsData *Find(KdNode *node); int AddNodeSample(KdNode *node); int Compress() {return 0;} int GetSize() { return mEntries.size(); } void GetData(const int index, KdNode *&node, KdPvsData &data ); }; #endif