#ifndef XGFXWORLDDPVSSTATIC_H
#define XGFXWORLDDPVSSTATIC_H

#include "xasset.h"
#include "xgfxsurface.h"
#include "xgfxcullgroup.h"
#include "xgfxstaticmodelinst.h"
#include "xgfxstaticmodeldrawinst.h"

#include <QVector>

class XGfxWorldDpvsStatic : public XAsset
{
public:
    XGfxWorldDpvsStatic();
    ~XGfxWorldDpvsStatic();

    virtual void ParseData(QDataStream* aStream) override;
    virtual void Clear() override;

private:
    uint mModelCount;
    uint mStaticSurfaceCount;
    uint mLitSurfsBegin;
    uint mLitSurfsEnd;
    uint mDecalSurfsBegin;
    uint mDecalSurfsEnd;
    uint mEmissiveSurfsBegin;
    uint mEmissiveSurfsEnd;
    uint mModelVisDataCount;
    uint mSurfaceVisDataCount;
    QVector<quint8*> mSmodelVisData;
    QVector<quint8*> mSurfaceVisData;
    uint *mLodData;
    quint32 *mSortedSurfIndex;
    QVector<XGfxStaticModelInst> *mModelInsts;
    QVector<XGfxSurface> *mSurfaces;
    QVector<XGfxCullGroup> *mCullGroups;
    QVector<XGfxStaticModelDrawInst> *mModelDrawInsts;
    QVector<XGfxDrawSurfFields> *mSurfaceMaterials;
    uint *mSurfaceCastsSunShadow;
    int mUsageCount;
};

#endif // XGFXWORLDDPVSSTATIC_H
