22#include <kiwano-physics/Contact.h>
50 b2ContactEdge* GetB2ContactEdge()
const;
54 void SetB2ContactEdge(b2ContactEdge* edge);
67 template <
typename _Ty>
71 using iterator_category = std::forward_iterator_tag;
74 using reference = _Ty&;
75 using difference_type = ptrdiff_t;
77 inline IteratorImpl(
const _Ty& elem)
82 inline reference operator*()
const
84 return const_cast<reference
>(elem_);
87 inline pointer operator->()
const
89 return std::pointer_traits<pointer>::pointer_to(**
this);
92 inline IteratorImpl& operator++()
94 elem_.SetB2ContactEdge(elem_.GetB2ContactEdge()->next);
98 inline IteratorImpl operator++(
int)
100 IteratorImpl old = *
this;
105 inline bool operator==(
const IteratorImpl& rhs)
const
107 return elem_ == rhs.elem_;
110 inline bool operator!=(
const IteratorImpl& rhs)
const
112 return !operator==(rhs);
121 using iterator = IteratorImpl<value_type>;
122 using const_iterator = IteratorImpl<const value_type>;
141 inline iterator begin()
143 return iterator(first_);
146 inline const_iterator begin()
const
151 inline const_iterator cbegin()
const
153 return const_iterator(first_);
156 inline iterator end()
161 inline const_iterator end()
const
166 inline const_iterator cend()
const
180 return static_cast<PhysicBody*
>(edge_->other->GetUserData());
193inline bool ContactEdge::operator==(
const ContactEdge& rhs)
const
195 return edge_ == rhs.edge_;
198inline bool ContactEdge::operator!=(
const ContactEdge& rhs)
const
200 return edge_ != rhs.edge_;
物体
Definition: PhysicBody.h:40