





#ifndef XCSTATICMODELS_H
#define XCSTATICMODELS_H

#include "xasset.h"
#include "xcstaticmodelwritable.h"

class XModel; // Forward declaration

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

    void ParseData(QDataStream *aStream) override;

    const XCStaticModelWritable& GetWritable() const;
    void SetWritable(const XCStaticModelWritable& writable);

    // Note: In a real implementation, we would have an XModel class
    // For now, we'll just use a pointer to Model as a placeholder
    void* GetXModel() const;
    void SetXModel(void* model);

    const float* GetOrigin() const;
    void SetOrigin(const float* origin, size_t count = 3);

    const float* GetInvScaledAxis() const;
    void SetInvScaledAxis(const float* axis, size_t rows = 3, size_t cols = 3);

    const float* GetAbsmin() const;
    void SetAbsmin(const float* absmin, size_t count = 3);

    const float* GetAbsmax() const;
    void SetAbsmax(const float* absmax, size_t count = 3);

private:
    XCStaticModelWritable mWritable;
    void* mXModel = nullptr; // Placeholder for Model*
    float mOrigin[3] = {0.0f, 0.0f, 0.0f};
    float mInvScaledAxis[3][3] = {{0.0f}};
    float mAbsmin[3] = {0.0f, 0.0f, 0.0f};
    float mAbsmax[3] = {0.0f, 0.0f, 0.0f};
};

#endif // XCSTATICMODELS_H





