2017-12-29 08:08:12 +00:00
|
|
|
#include "Actor.hpp"
|
|
|
|
#include "hecl/Blender/Connection.hpp"
|
|
|
|
|
|
|
|
namespace DataSpec::DNAMP1
|
|
|
|
{
|
|
|
|
|
|
|
|
zeus::CAABox Actor::getVISIAABB(hecl::blender::Token& btok) const
|
|
|
|
{
|
|
|
|
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
|
|
|
zeus::CAABox aabbOut;
|
|
|
|
|
|
|
|
if (model)
|
|
|
|
{
|
|
|
|
hecl::ProjectPath path = UniqueIDBridge::TranslatePakIdToPath(model);
|
|
|
|
conn.openBlend(path);
|
|
|
|
hecl::blender::DataStream ds = conn.beginData();
|
|
|
|
auto aabb = ds.getMeshAABB();
|
|
|
|
aabbOut = zeus::CAABox(aabb.first, aabb.second);
|
|
|
|
}
|
|
|
|
else if (animationParameters.animationCharacterSet)
|
|
|
|
{
|
|
|
|
hecl::ProjectPath path = UniqueIDBridge::TranslatePakIdToPath(
|
|
|
|
animationParameters.animationCharacterSet);
|
2018-10-14 20:16:21 +00:00
|
|
|
conn.openBlend(path.getWithExtension(_SYS_STR(".blend"), true));
|
2017-12-29 08:08:12 +00:00
|
|
|
hecl::blender::DataStream ds = conn.beginData();
|
|
|
|
auto aabb = ds.getMeshAABB();
|
|
|
|
aabbOut = zeus::CAABox(aabb.first, aabb.second);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (aabbOut.min.x > aabbOut.max.x)
|
|
|
|
return {};
|
|
|
|
|
|
|
|
zeus::CTransform xf = ConvertEditorEulerToTransform4f(scale, orientation, location);
|
|
|
|
return aabbOut.getTransformedAABox(xf);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|