#ifndef COMPRIMARYLIGHT_H #define COMPRIMARYLIGHT_H #include "xasset.h" #include "xstring.h" #include #include class ComPrimaryLight; typedef QVector ComPrimaryLightArray; class ComPrimaryLight : public XAsset { Q_OBJECT public: explicit ComPrimaryLight(QObject *aParent = nullptr); quint8 GetType() const; quint8 GetCanUseShadowMap() const; quint8 GetExponent() const; quint8 GetUnused() const; QColor GetColor() const; QVector3D GetDir() const; QVector3D GetOrigin() const; float GetRadius() const; float GetCosHalfFovOuter() const; float GetCosHalfFovInner() const; float GetCosHalfFovExpanded() const; float GetRotationLimit() const; float GetTranslationLimit() const; XString* GetDefName() const; static ComPrimaryLightArray* ParseArray(QDataStream *aStream, int aCount); virtual void Clear() override; virtual void ParseData(QDataStream *aStream) override; public slots: void SetType(quint8 aType); void SetCanUseShadowMap(quint8 aCanUseShadowMap); void SetExponent(quint8 aExponent); void SetUnused(quint8 aUnused); void SetColor(const QColor aColor); void SetDir(const QVector3D aDir); void SetOrigin(const QVector3D aOrigin); void SetRadius(float aRadius); void SetCosHalfFovOuter(float aCosHalfFovOuter); void SetCosHalfFovInner(float aCosHalfFovInner); void SetCosHalfFovExpanded(float aCosHalfFovExpanded); void SetRotationLimit(float aRotationLimit); void SetTranslationLimit(float aTranslationLimit); void SetDefName(XString* aDefName); void SetDefName(const QString aDefName); private: quint8 mType; quint8 mCanUseShadowMap; quint8 mExponent; quint8 mUnused; QColor mColor; QVector3D mDir; QVector3D mOrigin; float mRadius; float mCosHalfFovOuter; float mCosHalfFovInner; float mCosHalfFovExpanded; float mRotationLimit; float mTranslationLimit; XString* mDefName; }; #endif // COMPRIMARYLIGHT_H