#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_RECASTMESHOBJECT_H #define OPENMW_COMPONENTS_DETOURNAVIGATOR_RECASTMESHOBJECT_H #include #include #include class btCollisionShape; class btCompoundShape; namespace DetourNavigator { class RecastMeshObject { public: RecastMeshObject(const btCollisionShape& shape, const btTransform& transform); bool update(const btTransform& transform); const btCollisionShape& getShape() const { return mShape; } const btTransform& getTransform() const { return mTransform; } private: std::reference_wrapper mShape; btTransform mTransform; std::vector mChildren; static bool updateCompoundObject(const btCompoundShape& shape, std::vector& children); }; std::vector makeChildrenObjects(const btCollisionShape& shape); std::vector makeChildrenObjects(const btCompoundShape& shape); } #endif