Physics3D/PhysWorld3D: Take BodyIterator by const reference
This commit is contained in:
parent
1ca4839def
commit
6e3bcac25d
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue