XPlor/libs/xassets/xcollisionaabbtree.cpp

85 lines
2.1 KiB
C++
Raw Permalink Normal View History

2025-08-17 13:14:17 -04:00
#include "xcollisionaabbtree.h"
XCollisionAabbTree::XCollisionAabbTree()
2025-09-05 18:35:17 -04:00
: XAsset()
, mOrigin()
, mHalfSize()
, mMaterialIndex(0)
, mChildCount(0)
, mTreeIndex()
{
2025-09-10 21:58:26 -04:00
SetName("Collision AABB Tree");
2025-09-05 18:35:17 -04:00
}
XCollisionAabbTree::~XCollisionAabbTree()
{
2025-08-17 13:14:17 -04:00
}
2025-09-10 21:58:26 -04:00
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()));
2025-09-05 18:35:17 -04:00
mTreeIndex.ParseData(aStream);
2025-08-17 13:14:17 -04:00
}
}
2025-09-10 21:58:26 -04:00
void XCollisionAabbTree::Clear()
{
mOrigin = QVector3D();
mHalfSize = QVector3D();
mMaterialIndex = 0;
mChildCount = 0;
mTreeIndex.Clear();
}
2025-09-05 18:35:17 -04:00
QVector3D XCollisionAabbTree::GetOrigin() const {
2025-08-17 13:14:17 -04:00
return mOrigin;
}
2025-09-05 18:35:17 -04:00
void XCollisionAabbTree::SetOrigin(QVector3D aOrigin) {
mOrigin = aOrigin;
2025-08-17 13:14:17 -04:00
}
2025-09-05 18:35:17 -04:00
QVector3D XCollisionAabbTree::GetHalfSize() const {
2025-08-17 13:14:17 -04:00
return mHalfSize;
}
2025-09-05 18:35:17 -04:00
void XCollisionAabbTree::SetHalfSize(QVector3D aHalfSize) {
mHalfSize = aHalfSize;
2025-08-17 13:14:17 -04:00
}
2025-09-07 12:36:08 -04:00
quint32 XCollisionAabbTree::GetMaterialIndex() const {
2025-08-17 13:14:17 -04:00
return mMaterialIndex;
}
2025-09-07 12:36:08 -04:00
void XCollisionAabbTree::SetMaterialIndex(quint32 aIndex) {
2025-09-05 18:35:17 -04:00
mMaterialIndex = aIndex;
2025-08-17 13:14:17 -04:00
}
2025-09-07 12:36:08 -04:00
quint32 XCollisionAabbTree::GetChildCount() const {
2025-08-17 13:14:17 -04:00
return mChildCount;
}
2025-09-07 12:36:08 -04:00
void XCollisionAabbTree::SetChildCount(quint32 count) {
2025-08-17 13:14:17 -04:00
mChildCount = count;
}
2025-09-05 18:35:17 -04:00
XCollisionAabbTreeIndex& XCollisionAabbTree::GetTreeIndex() {
return mTreeIndex;
2025-08-17 13:14:17 -04:00
}
2025-09-05 18:35:17 -04:00
void XCollisionAabbTree::SetTreeIndex(const XCollisionAabbTreeIndex& aTreeIndex) {
mTreeIndex = aTreeIndex;
2025-08-17 13:14:17 -04:00
}