#ifndef XGFXSTREAMINGAABBTREE_H
#define XGFXSTREAMINGAABBTREE_H

#include "xasset.h"

class XGfxStreamingAabbTree : public XAsset
{
public:
    explicit XGfxStreamingAabbTree();

    void ParseData(XDataStream *aStream) override;

    unsigned short GetFirstItem() const;
    void SetFirstItem(unsigned short item);

    unsigned short GetItemCount() const;
    void SetItemCount(unsigned short count);

    unsigned short GetFirstChild() const;
    void SetFirstChild(unsigned short child);

    unsigned short GetChildCount() const;
    void SetChildCount(unsigned short count);

    const float* GetMins() const;
    void SetMins(const float* mins, size_t count = 3);

    const float* GetMaxs() const;
    void SetMaxs(const float* maxs, size_t count = 3);

private:
    unsigned short mFirstItem = 0;
    unsigned short mItemCount = 0;
    unsigned short mFirstChild = 0;
    unsigned short mChildCount = 0;
    float mMins[3] = {0.0f, 0.0f, 0.0f};
    float mMaxs[3] = {0.0f, 0.0f, 0.0f};
};

#endif // XGFXSTREAMINGAABBTREE_H






