mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-31 10:20:13 +00:00
Remove redundant Navigator API functions
This commit is contained in:
parent
bd1bf4ec73
commit
4574e5f565
@ -221,7 +221,7 @@ namespace
|
|||||||
Vec3fEq(204, -204, 1.99998295307159423828125)
|
Vec3fEq(204, -204, 1.99998295307159423828125)
|
||||||
)) << mPath;
|
)) << mPath;
|
||||||
|
|
||||||
mNavigator->addObject(ObjectId(&compoundShape), compoundShape, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&compoundShape), ObjectShapes(compoundShape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -273,7 +273,7 @@ namespace
|
|||||||
|
|
||||||
mNavigator->addAgent(mAgentHalfExtents);
|
mNavigator->addAgent(mAgentHalfExtents);
|
||||||
mNavigator->addHeightfield(mCellPosition, mHeightfieldTileSize * (surface.mSize - 1), mShift, surface);
|
mNavigator->addHeightfield(mCellPosition, mHeightfieldTileSize * (surface.mSize - 1), mShift, surface);
|
||||||
mNavigator->addObject(ObjectId(&compoundShape), compoundShape, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&compoundShape), ObjectShapes(compoundShape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -307,7 +307,7 @@ namespace
|
|||||||
|
|
||||||
compoundShape.updateChildTransform(0, btTransform(btMatrix3x3::getIdentity(), btVector3(1000, 0, 0)));
|
compoundShape.updateChildTransform(0, btTransform(btMatrix3x3::getIdentity(), btVector3(1000, 0, 0)));
|
||||||
|
|
||||||
mNavigator->updateObject(ObjectId(&compoundShape), compoundShape, btTransform::getIdentity());
|
mNavigator->updateObject(ObjectId(&compoundShape), ObjectShapes(compoundShape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -364,8 +364,8 @@ namespace
|
|||||||
shape2.setLocalScaling(btVector3(128, 128, 1));
|
shape2.setLocalScaling(btVector3(128, 128, 1));
|
||||||
|
|
||||||
mNavigator->addAgent(mAgentHalfExtents);
|
mNavigator->addAgent(mAgentHalfExtents);
|
||||||
mNavigator->addObject(ObjectId(&shape), shape, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&shape), ObjectShapes(shape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->addObject(ObjectId(&shape2), shape2, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&shape2), ObjectShapes(shape2, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -670,7 +670,7 @@ namespace
|
|||||||
shape.setLocalScaling(btVector3(128, 128, 1));
|
shape.setLocalScaling(btVector3(128, 128, 1));
|
||||||
|
|
||||||
mNavigator->addAgent(mAgentHalfExtents);
|
mNavigator->addAgent(mAgentHalfExtents);
|
||||||
mNavigator->addObject(ObjectId(&shape), shape, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&shape), ObjectShapes(shape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -678,7 +678,7 @@ namespace
|
|||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
mNavigator->addObject(ObjectId(&shape), shape, btTransform::getIdentity());
|
mNavigator->addObject(ObjectId(&shape), ObjectShapes(shape, nullptr), btTransform::getIdentity());
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
|
|
||||||
@ -813,7 +813,7 @@ namespace
|
|||||||
for (std::size_t i = 0; i < boxShapes.size(); ++i)
|
for (std::size_t i = 0; i < boxShapes.size(); ++i)
|
||||||
{
|
{
|
||||||
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 10, i * 10, i * 10));
|
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 10, i * 10, i * 10));
|
||||||
mNavigator->addObject(ObjectId(&boxShapes[i]), boxShapes[i], transform);
|
mNavigator->addObject(ObjectId(&boxShapes[i]), ObjectShapes(boxShapes[i], nullptr), transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::this_thread::sleep_for(std::chrono::microseconds(1));
|
std::this_thread::sleep_for(std::chrono::microseconds(1));
|
||||||
@ -821,7 +821,7 @@ namespace
|
|||||||
for (std::size_t i = 0; i < boxShapes.size(); ++i)
|
for (std::size_t i = 0; i < boxShapes.size(); ++i)
|
||||||
{
|
{
|
||||||
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 10 + 1, i * 10 + 1, i * 10 + 1));
|
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 10 + 1, i * 10 + 1, i * 10 + 1));
|
||||||
mNavigator->updateObject(ObjectId(&boxShapes[i]), boxShapes[i], transform);
|
mNavigator->updateObject(ObjectId(&boxShapes[i]), ObjectShapes(boxShapes[i], nullptr), transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
@ -865,7 +865,7 @@ namespace
|
|||||||
for (std::size_t i = 0; i < shapes.size(); ++i)
|
for (std::size_t i = 0; i < shapes.size(); ++i)
|
||||||
{
|
{
|
||||||
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32, i * 32, i * 32));
|
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32, i * 32, i * 32));
|
||||||
mNavigator->addObject(ObjectId(&shapes[i]), shapes[i], transform);
|
mNavigator->addObject(ObjectId(&shapes[i]), ObjectShapes(shapes[i], nullptr), transform);
|
||||||
}
|
}
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
@ -874,7 +874,7 @@ namespace
|
|||||||
for (std::size_t i = 0; i < shapes.size(); ++i)
|
for (std::size_t i = 0; i < shapes.size(); ++i)
|
||||||
{
|
{
|
||||||
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32 + 1, i * 32 + 1, i * 32 + 1));
|
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32 + 1, i * 32 + 1, i * 32 + 1));
|
||||||
mNavigator->updateObject(ObjectId(&shapes[i]), shapes[i], transform);
|
mNavigator->updateObject(ObjectId(&shapes[i]), ObjectShapes(shapes[i], nullptr), transform);
|
||||||
}
|
}
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
@ -882,7 +882,7 @@ namespace
|
|||||||
for (std::size_t i = 0; i < shapes.size(); ++i)
|
for (std::size_t i = 0; i < shapes.size(); ++i)
|
||||||
{
|
{
|
||||||
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32 + 2, i * 32 + 2, i * 32 + 2));
|
const btTransform transform(btMatrix3x3::getIdentity(), btVector3(i * 32 + 2, i * 32 + 2, i * 32 + 2));
|
||||||
mNavigator->updateObject(ObjectId(&shapes[i]), shapes[i], transform);
|
mNavigator->updateObject(ObjectId(&shapes[i]), ObjectShapes(shapes[i], nullptr), transform);
|
||||||
}
|
}
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
@ -932,10 +932,10 @@ namespace
|
|||||||
|
|
||||||
mNavigator->addAgent(mAgentHalfExtents);
|
mNavigator->addAgent(mAgentHalfExtents);
|
||||||
mNavigator->addHeightfield(mCellPosition, mHeightfieldTileSize * (surface.mSize - 1), mShift, surface);
|
mNavigator->addHeightfield(mCellPosition, mHeightfieldTileSize * (surface.mSize - 1), mShift, surface);
|
||||||
mNavigator->addObject(ObjectId(&oscillatingBoxShape), oscillatingBoxShape,
|
mNavigator->addObject(ObjectId(&oscillatingBoxShape), ObjectShapes(oscillatingBoxShape, nullptr),
|
||||||
btTransform(btMatrix3x3::getIdentity(), oscillatingBoxShapePosition));
|
btTransform(btMatrix3x3::getIdentity(), oscillatingBoxShapePosition));
|
||||||
// add this box to make navmesh bound box independent from oscillatingBoxShape rotations
|
// add this box to make navmesh bound box independent from oscillatingBoxShape rotations
|
||||||
mNavigator->addObject(ObjectId(&boderBoxShape), boderBoxShape,
|
mNavigator->addObject(ObjectId(&boderBoxShape), ObjectShapes(boderBoxShape, nullptr),
|
||||||
btTransform(btMatrix3x3::getIdentity(), oscillatingBoxShapePosition + btVector3(0, 0, 200)));
|
btTransform(btMatrix3x3::getIdentity(), oscillatingBoxShapePosition + btVector3(0, 0, 200)));
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
@ -952,7 +952,7 @@ namespace
|
|||||||
{
|
{
|
||||||
const btTransform transform(btQuaternion(btVector3(0, 0, 1), n * 2 * osg::PI / 10),
|
const btTransform transform(btQuaternion(btVector3(0, 0, 1), n * 2 * osg::PI / 10),
|
||||||
oscillatingBoxShapePosition);
|
oscillatingBoxShapePosition);
|
||||||
mNavigator->updateObject(ObjectId(&oscillatingBoxShape), oscillatingBoxShape, transform);
|
mNavigator->updateObject(ObjectId(&oscillatingBoxShape), ObjectShapes(oscillatingBoxShape, nullptr), transform);
|
||||||
mNavigator->update(mPlayerPosition);
|
mNavigator->update(mPlayerPosition);
|
||||||
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
mNavigator->wait(mListener, WaitConditionType::allJobsDone);
|
||||||
}
|
}
|
||||||
|
@ -72,15 +72,6 @@ namespace DetourNavigator
|
|||||||
*/
|
*/
|
||||||
virtual void removeAgent(const osg::Vec3f& agentHalfExtents) = 0;
|
virtual void removeAgent(const osg::Vec3f& agentHalfExtents) = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief addObject is used to add object represented by single btCollisionShape and btTransform.
|
|
||||||
* @param id is used to distinguish different objects.
|
|
||||||
* @param shape must live until object is updated by another shape removed from Navigator.
|
|
||||||
* @param transform allows to setup object geometry according to its world state.
|
|
||||||
* @return true if object is added, false if there is already object with given id.
|
|
||||||
*/
|
|
||||||
virtual bool addObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform) = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief addObject is used to add complex object with allowed to walk and avoided to walk shapes
|
* @brief addObject is used to add complex object with allowed to walk and avoided to walk shapes
|
||||||
* @param id is used to distinguish different objects
|
* @param id is used to distinguish different objects
|
||||||
@ -99,15 +90,6 @@ namespace DetourNavigator
|
|||||||
*/
|
*/
|
||||||
virtual bool addObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) = 0;
|
virtual bool addObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief updateObject replace object geometry by given data.
|
|
||||||
* @param id is used to find object.
|
|
||||||
* @param shape must live until object is updated by another shape removed from Navigator.
|
|
||||||
* @param transform allows to setup objects geometry according to its world state.
|
|
||||||
* @return true if object is updated, false if there is no object with given id.
|
|
||||||
*/
|
|
||||||
virtual bool updateObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform) = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief updateObject replace object geometry by given data.
|
* @brief updateObject replace object geometry by given data.
|
||||||
* @param id is used to find object.
|
* @param id is used to find object.
|
||||||
|
@ -32,14 +32,9 @@ namespace DetourNavigator
|
|||||||
--it->second;
|
--it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NavigatorImpl::addObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform)
|
|
||||||
{
|
|
||||||
return mNavMeshManager.addObject(id, shape, transform, AreaType_ground);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NavigatorImpl::addObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform)
|
bool NavigatorImpl::addObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform)
|
||||||
{
|
{
|
||||||
bool result = addObject(id, shapes.mShape, transform);
|
bool result = mNavMeshManager.addObject(id, shapes.mShape, transform, AreaType_ground);
|
||||||
if (shapes.mAvoid)
|
if (shapes.mAvoid)
|
||||||
{
|
{
|
||||||
const ObjectId avoidId(shapes.mAvoid);
|
const ObjectId avoidId(shapes.mAvoid);
|
||||||
@ -65,14 +60,9 @@ namespace DetourNavigator
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NavigatorImpl::updateObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform)
|
|
||||||
{
|
|
||||||
return mNavMeshManager.updateObject(id, shape, transform, AreaType_ground);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NavigatorImpl::updateObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform)
|
bool NavigatorImpl::updateObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform)
|
||||||
{
|
{
|
||||||
bool result = updateObject(id, shapes.mShape, transform);
|
bool result = mNavMeshManager.updateObject(id, shapes.mShape, transform, AreaType_ground);
|
||||||
if (shapes.mAvoid)
|
if (shapes.mAvoid)
|
||||||
{
|
{
|
||||||
const ObjectId avoidId(shapes.mAvoid);
|
const ObjectId avoidId(shapes.mAvoid);
|
||||||
|
@ -21,14 +21,10 @@ namespace DetourNavigator
|
|||||||
|
|
||||||
void removeAgent(const osg::Vec3f& agentHalfExtents) override;
|
void removeAgent(const osg::Vec3f& agentHalfExtents) override;
|
||||||
|
|
||||||
bool addObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform) override;
|
|
||||||
|
|
||||||
bool addObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform) override;
|
bool addObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform) override;
|
||||||
|
|
||||||
bool addObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) override;
|
bool addObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) override;
|
||||||
|
|
||||||
bool updateObject(const ObjectId id, const btCollisionShape& shape, const btTransform& transform) override;
|
|
||||||
|
|
||||||
bool updateObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform) override;
|
bool updateObject(const ObjectId id, const ObjectShapes& shapes, const btTransform& transform) override;
|
||||||
|
|
||||||
bool updateObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) override;
|
bool updateObject(const ObjectId id, const DoorShapes& shapes, const btTransform& transform) override;
|
||||||
|
@ -19,11 +19,6 @@ namespace DetourNavigator
|
|||||||
|
|
||||||
void removeAgent(const osg::Vec3f& /*agentHalfExtents*/) override {}
|
void removeAgent(const osg::Vec3f& /*agentHalfExtents*/) override {}
|
||||||
|
|
||||||
bool addObject(const ObjectId /*id*/, const btCollisionShape& /*shape*/, const btTransform& /*transform*/) override
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool addObject(const ObjectId /*id*/, const ObjectShapes& /*shapes*/, const btTransform& /*transform*/) override
|
bool addObject(const ObjectId /*id*/, const ObjectShapes& /*shapes*/, const btTransform& /*transform*/) override
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -34,11 +29,6 @@ namespace DetourNavigator
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool updateObject(const ObjectId /*id*/, const btCollisionShape& /*shape*/, const btTransform& /*transform*/) override
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool updateObject(const ObjectId /*id*/, const ObjectShapes& /*shapes*/, const btTransform& /*transform*/) override
|
bool updateObject(const ObjectId /*id*/, const ObjectShapes& /*shapes*/, const btTransform& /*transform*/) override
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user