diff options
Diffstat (limited to 'src/common/Collision/Models')
-rw-r--r-- | src/common/Collision/Models/GameObjectModel.cpp | 4 | ||||
-rw-r--r-- | src/common/Collision/Models/WorldModel.cpp | 5 | ||||
-rw-r--r-- | src/common/Collision/Models/WorldModel.h | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/common/Collision/Models/GameObjectModel.cpp b/src/common/Collision/Models/GameObjectModel.cpp index 9fcf1b85e20..7e8d0b9d438 100644 --- a/src/common/Collision/Models/GameObjectModel.cpp +++ b/src/common/Collision/Models/GameObjectModel.cpp @@ -122,7 +122,7 @@ bool GameObjectModel::initialize(std::unique_ptr<GameObjectModelOwnerBase> model iInvRot = iRotation.inverse(); // transform bounding box: mdl_box = AABox(mdl_box.low() * iScale, mdl_box.high() * iScale); - AABox rotated_bounds; + AABox rotated_bounds = G3D::AABox::empty(); for (int i = 0; i < 8; ++i) rotated_bounds.merge(iRotation * mdl_box.corner(i)); @@ -252,7 +252,7 @@ bool GameObjectModel::UpdatePosition() iInvRot = iRotation.inverse(); // transform bounding box: mdl_box = AABox(mdl_box.low() * iScale, mdl_box.high() * iScale); - AABox rotated_bounds; + AABox rotated_bounds = G3D::AABox::empty(); for (int i = 0; i < 8; ++i) rotated_bounds.merge(iRotation * mdl_box.corner(i)); diff --git a/src/common/Collision/Models/WorldModel.cpp b/src/common/Collision/Models/WorldModel.cpp index 68e9128a6e9..32548782103 100644 --- a/src/common/Collision/Models/WorldModel.cpp +++ b/src/common/Collision/Models/WorldModel.cpp @@ -26,7 +26,8 @@ using G3D::Vector3; template<> struct BoundsTrait<VMAP::GroupModel> { - static void getBounds(const VMAP::GroupModel& obj, G3D::AABox& out) { out = obj.GetBound(); } + static void getBounds(VMAP::GroupModel const& obj, G3D::AABox& out) { out = obj.GetBound(); } + void operator()(VMAP::GroupModel const& obj, G3D::AABox& out) const { getBounds(obj, out); } }; namespace VMAP @@ -477,7 +478,7 @@ namespace VMAP void WorldModel::setGroupModels(std::vector<GroupModel>& models) { groupModels.swap(models); - groupTree.build(groupModels, BoundsTrait<GroupModel>::getBounds, 1); + groupTree.build(groupModels, BoundsTrait<GroupModel>(), 1); } struct WModelRayCallBack diff --git a/src/common/Collision/Models/WorldModel.h b/src/common/Collision/Models/WorldModel.h index 5e6d2a8a2fb..fd09703cfc5 100644 --- a/src/common/Collision/Models/WorldModel.h +++ b/src/common/Collision/Models/WorldModel.h @@ -80,7 +80,7 @@ namespace VMAP class TC_COMMON_API GroupModel { public: - GroupModel() : iBound(), iMogpFlags(0), iGroupWMOID(0), iLiquid(nullptr) { } + GroupModel() : iBound(G3D::AABox::empty()), iMogpFlags(0), iGroupWMOID(0), iLiquid(nullptr) { } GroupModel(GroupModel const& other); GroupModel(uint32 mogpFlags, uint32 groupWMOID, G3D::AABox const& bound): iBound(bound), iMogpFlags(mogpFlags), iGroupWMOID(groupWMOID), iLiquid(nullptr) { } |