2025-08-14 18:50:13 -04:00
|
|
|
#include "xcomprimarylight.h"
|
|
|
|
|
|
|
|
|
|
XComPrimaryLight::XComPrimaryLight()
|
|
|
|
|
: XAsset()
|
|
|
|
|
, mType(-1)
|
|
|
|
|
, mCanUseShadowMap(-1)
|
|
|
|
|
, mExponent(-1)
|
|
|
|
|
, mUnused(-1)
|
|
|
|
|
, mColor(0, 0, 0)
|
|
|
|
|
, mDir(0, 0, 0)
|
|
|
|
|
, mOrigin(0, 0, 0)
|
|
|
|
|
, mRadius(0.0)
|
|
|
|
|
, mCosHalfFovOuter(0.0)
|
|
|
|
|
, mCosHalfFovInner(0.0)
|
|
|
|
|
, mCosHalfFovExpanded(0.0)
|
|
|
|
|
, mRotationLimit(0.0)
|
|
|
|
|
, mTranslationLimit(0.0)
|
2025-09-10 21:58:26 -04:00
|
|
|
, mDefName()
|
2025-08-14 18:50:13 -04:00
|
|
|
{
|
2025-09-10 21:58:26 -04:00
|
|
|
SetName("Com Primary Light");
|
2025-08-14 18:50:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
XComPrimaryLight::~XComPrimaryLight()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::Clear()
|
|
|
|
|
{
|
2025-09-10 21:58:26 -04:00
|
|
|
|
2025-08-14 18:50:13 -04:00
|
|
|
}
|
|
|
|
|
|
2025-09-10 21:58:26 -04:00
|
|
|
XComPrimaryLightArray *XComPrimaryLight::ParseArray(XDataStream *aStream, int aCount)
|
2025-08-14 18:50:13 -04:00
|
|
|
{
|
|
|
|
|
XComPrimaryLightArray* result = new XComPrimaryLightArray();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < aCount; i++)
|
|
|
|
|
{
|
|
|
|
|
XComPrimaryLight* comPrimaryLight = new XComPrimaryLight();
|
|
|
|
|
comPrimaryLight->ParseData(aStream);
|
|
|
|
|
|
|
|
|
|
result->append(comPrimaryLight);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-10 21:58:26 -04:00
|
|
|
void XComPrimaryLight::ParseData(XDataStream *aStream)
|
2025-08-14 18:50:13 -04:00
|
|
|
{
|
2025-09-10 21:58:26 -04:00
|
|
|
if (GetPtr() == -1)
|
|
|
|
|
{
|
|
|
|
|
mType = aStream->ParseUInt8(QString("%1 type").arg(GetName()));
|
|
|
|
|
mCanUseShadowMap = aStream->ParseUInt8(QString("%1 can use shadow map").arg(GetName()));
|
|
|
|
|
mExponent = aStream->ParseUInt8(QString("%1 exponent").arg(GetName()));
|
|
|
|
|
mUnused = aStream->ParseUInt8(QString("%1 unused").arg(GetName()));
|
|
|
|
|
|
|
|
|
|
float r = aStream->ParseSingle(QString("%1 color r").arg(GetName()));
|
|
|
|
|
float g = aStream->ParseSingle(QString("%1 color g").arg(GetName()));
|
|
|
|
|
float b = aStream->ParseSingle(QString("%1 color b").arg(GetName()));
|
|
|
|
|
mColor = QColor::fromRgbF(r, g, b);
|
|
|
|
|
|
|
|
|
|
mDir.setX(aStream->ParseSingle(QString("%1 dir x").arg(GetName())));
|
|
|
|
|
mDir.setY(aStream->ParseSingle(QString("%1 dir y").arg(GetName())));
|
|
|
|
|
mDir.setZ(aStream->ParseSingle(QString("%1 dir z").arg(GetName())));
|
|
|
|
|
|
|
|
|
|
mOrigin.setX(aStream->ParseSingle(QString("%1 origin x").arg(GetName())));
|
|
|
|
|
mOrigin.setY(aStream->ParseSingle(QString("%1 origin y").arg(GetName())));
|
|
|
|
|
mOrigin.setZ(aStream->ParseSingle(QString("%1 origin z").arg(GetName())));
|
|
|
|
|
|
|
|
|
|
mRadius = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
|
|
|
|
|
mCosHalfFovOuter = aStream->ParseSingle(QString("%1 cos half fov outer").arg(GetName()));
|
|
|
|
|
mCosHalfFovInner = aStream->ParseSingle(QString("%1 cos half fov inner").arg(GetName()));
|
|
|
|
|
mCosHalfFovExpanded = aStream->ParseSingle(QString("%1 cos half fov expanded").arg(GetName()));
|
|
|
|
|
mRotationLimit = aStream->ParseSingle(QString("%1 rotation limit").arg(GetName()));
|
|
|
|
|
mTranslationLimit = aStream->ParseSingle(QString("%1 translation limit").arg(GetName()));
|
|
|
|
|
|
|
|
|
|
mDefName.ParseData(aStream);
|
|
|
|
|
}
|
2025-08-14 18:50:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint8 XComPrimaryLight::GetType() const
|
|
|
|
|
{
|
|
|
|
|
return mType;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint8 XComPrimaryLight::GetCanUseShadowMap() const
|
|
|
|
|
{
|
|
|
|
|
return mCanUseShadowMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint8 XComPrimaryLight::GetExponent() const
|
|
|
|
|
{
|
|
|
|
|
return mExponent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint8 XComPrimaryLight::GetUnused() const
|
|
|
|
|
{
|
|
|
|
|
return mUnused;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QColor XComPrimaryLight::GetColor() const
|
|
|
|
|
{
|
|
|
|
|
return mColor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QVector3D XComPrimaryLight::GetDir() const
|
|
|
|
|
{
|
|
|
|
|
return mDir;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QVector3D XComPrimaryLight::GetOrigin() const
|
|
|
|
|
{
|
|
|
|
|
return mOrigin;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetRadius() const
|
|
|
|
|
{
|
|
|
|
|
return mRadius;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetCosHalfFovOuter() const
|
|
|
|
|
{
|
|
|
|
|
return mCosHalfFovOuter;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetCosHalfFovInner() const
|
|
|
|
|
{
|
|
|
|
|
return mCosHalfFovInner;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetCosHalfFovExpanded() const
|
|
|
|
|
{
|
|
|
|
|
return mCosHalfFovExpanded;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetRotationLimit() const
|
|
|
|
|
{
|
|
|
|
|
return mRotationLimit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float XComPrimaryLight::GetTranslationLimit() const
|
|
|
|
|
{
|
|
|
|
|
return mTranslationLimit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetType(quint8 aType)
|
|
|
|
|
{
|
|
|
|
|
mType = aType;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetCanUseShadowMap(quint8 aCanUseShadowMap)
|
|
|
|
|
{
|
|
|
|
|
mCanUseShadowMap = aCanUseShadowMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetExponent(quint8 aExponent)
|
|
|
|
|
{
|
|
|
|
|
mExponent = aExponent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetUnused(quint8 aUnused)
|
|
|
|
|
{
|
|
|
|
|
mUnused = aUnused;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetColor(const QColor aColor)
|
|
|
|
|
{
|
|
|
|
|
mColor = aColor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetDir(const QVector3D aDir)
|
|
|
|
|
{
|
|
|
|
|
mDir = aDir;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetOrigin(const QVector3D aOrigin)
|
|
|
|
|
{
|
|
|
|
|
mOrigin = aOrigin;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetRadius(float aRadius)
|
|
|
|
|
{
|
|
|
|
|
mRadius = aRadius;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetCosHalfFovOuter(float aCosHalfFovOuter)
|
|
|
|
|
{
|
|
|
|
|
mCosHalfFovOuter = aCosHalfFovOuter;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetCosHalfFovInner(float aCosHalfFovInner)
|
|
|
|
|
{
|
|
|
|
|
mCosHalfFovInner = aCosHalfFovInner;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetCosHalfFovExpanded(float aCosHalfFovExpanded)
|
|
|
|
|
{
|
|
|
|
|
mCosHalfFovExpanded = aCosHalfFovExpanded;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetRotationLimit(float aRotationLimit)
|
|
|
|
|
{
|
|
|
|
|
mRotationLimit = aRotationLimit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XComPrimaryLight::SetTranslationLimit(float aTranslationLimit)
|
|
|
|
|
{
|
|
|
|
|
mTranslationLimit = aTranslationLimit;
|
|
|
|
|
}
|