XPlor/libs/xassets/xcollisionaabbtree.cpp
2025-09-10 21:58:26 -04:00

85 lines
2.1 KiB
C++

#include "xcollisionaabbtree.h"
XCollisionAabbTree::XCollisionAabbTree()
: XAsset()
, mOrigin()
, mHalfSize()
, mMaterialIndex(0)
, mChildCount(0)
, mTreeIndex()
{
SetName("Collision AABB Tree");
}
XCollisionAabbTree::~XCollisionAabbTree()
{
}
void XCollisionAabbTree::ParseData(XDataStream *aStream)
{
if (GetPtr() == -1)
{
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())));
mHalfSize.setX(aStream->ParseSingle(QString("%1 half size x").arg(GetName())));
mHalfSize.setY(aStream->ParseSingle(QString("%1 half size y").arg(GetName())));
mHalfSize.setZ(aStream->ParseSingle(QString("%1 half size z").arg(GetName())));
mMaterialIndex = aStream->ParseUInt32(QString("%1 material index").arg(GetName()));
mChildCount = aStream->ParseUInt32(QString("%1 child count").arg(GetName()));
mTreeIndex.ParseData(aStream);
}
}
void XCollisionAabbTree::Clear()
{
mOrigin = QVector3D();
mHalfSize = QVector3D();
mMaterialIndex = 0;
mChildCount = 0;
mTreeIndex.Clear();
}
QVector3D XCollisionAabbTree::GetOrigin() const {
return mOrigin;
}
void XCollisionAabbTree::SetOrigin(QVector3D aOrigin) {
mOrigin = aOrigin;
}
QVector3D XCollisionAabbTree::GetHalfSize() const {
return mHalfSize;
}
void XCollisionAabbTree::SetHalfSize(QVector3D aHalfSize) {
mHalfSize = aHalfSize;
}
quint32 XCollisionAabbTree::GetMaterialIndex() const {
return mMaterialIndex;
}
void XCollisionAabbTree::SetMaterialIndex(quint32 aIndex) {
mMaterialIndex = aIndex;
}
quint32 XCollisionAabbTree::GetChildCount() const {
return mChildCount;
}
void XCollisionAabbTree::SetChildCount(quint32 count) {
mChildCount = count;
}
XCollisionAabbTreeIndex& XCollisionAabbTree::GetTreeIndex() {
return mTreeIndex;
}
void XCollisionAabbTree::SetTreeIndex(const XCollisionAabbTreeIndex& aTreeIndex) {
mTreeIndex = aTreeIndex;
}