XPlor/libs/assets/comprimarylight.h

75 lines
2.0 KiB
C
Raw Normal View History

2025-08-14 17:30:25 -04:00
#ifndef COMPRIMARYLIGHT_H
#define COMPRIMARYLIGHT_H
#include "xasset.h"
#include "xstring.h"
#include <QVector3D>
#include <QColor>
class ComPrimaryLight;
typedef QVector<ComPrimaryLight*> 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