XPlor/libs/xassets/xcomprimarylight.h

71 lines
1.9 KiB
C
Raw Normal View History

2025-08-14 18:50:13 -04:00
#ifndef XCOMPRIMARYLIGHT_H
#define XCOMPRIMARYLIGHT_H
2025-08-14 17:30:25 -04:00
#include "xasset.h"
#include "xstring.h"
#include <QVector3D>
#include <QColor>
2025-08-14 18:50:13 -04:00
class XComPrimaryLight;
typedef QVector<XComPrimaryLight*> XComPrimaryLightArray;
2025-08-14 17:30:25 -04:00
2025-08-14 18:50:13 -04:00
class XComPrimaryLight : public XAsset
2025-08-14 17:30:25 -04:00
{
public:
2025-08-14 18:50:13 -04:00
XComPrimaryLight();
~XComPrimaryLight();
2025-08-14 17:30:25 -04:00
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;
2025-09-10 21:58:26 -04:00
static XComPrimaryLightArray* ParseArray(XDataStream *aStream, int aCount);
2025-08-14 17:30:25 -04:00
virtual void Clear() override;
2025-09-10 21:58:26 -04:00
virtual void ParseData(XDataStream *aStream) override;
2025-08-14 17:30:25 -04:00
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);
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;
2025-09-10 21:58:26 -04:00
XString mDefName;
2025-08-14 17:30:25 -04:00
};
2025-08-14 18:50:13 -04:00
#endif // XCOMPRIMARYLIGHT_H