Physics3D/PhysWorld3D: Take BodyIterator by const reference

This commit is contained in:
Lynix 2018-02-12 21:26:14 +01:00
parent 1ca4839def
commit 6e3bcac25d
2 changed files with 4 additions and 4 deletions

View File

@ -37,7 +37,7 @@ namespace Nz
int CreateMaterial(Nz::String name = Nz::String());
void ForEachBodyInAABB(const Nz::Boxf& box, BodyIterator iterator);
void ForEachBodyInAABB(const Nz::Boxf& box, const BodyIterator& iterator);
Vector3f GetGravity() const;
NewtonWorld* GetHandle() const;

View File

@ -37,16 +37,16 @@ namespace Nz
return materialId;
}
void PhysWorld3D::ForEachBodyInAABB(const Nz::Boxf& box, BodyIterator iterator)
void PhysWorld3D::ForEachBodyInAABB(const Nz::Boxf& box, const BodyIterator& iterator)
{
auto NewtonCallback = [](const NewtonBody* const body, void* const userdata) -> int
{
BodyIterator& iterator = *static_cast<BodyIterator*>(userdata);
const BodyIterator& iterator = *static_cast<BodyIterator*>(userdata);
RigidBody3D* nzBody = static_cast<RigidBody3D*>(NewtonBodyGetUserData(body));
return iterator(*nzBody);
};
NewtonWorldForEachBodyInAABBDo(m_world, box.GetMinimum(), box.GetMaximum(), NewtonCallback, &iterator);
NewtonWorldForEachBodyInAABBDo(m_world, box.GetMinimum(), box.GetMaximum(), NewtonCallback, const_cast<void*>(static_cast<const void*>(&iterator)));
}
Vector3f PhysWorld3D::GetGravity() const