16 #ifndef __IPSDKGEOMETRY_MESH3DVERTEXVERTEXCONSTCIRCULATOR_H__ 17 #define __IPSDKGEOMETRY_MESH3DVERTEXVERTEXCONSTCIRCULATOR_H__ 30 template <
typename MeshType>
77 Mesh3dVertexVertexConstCirculator(
const Iterator& iter) :
83 Mesh3dVertexVertexConstCirculator& operator= (
const Iterator& iter)
89 ~Mesh3dVertexVertexConstCirculator()
139 template <
typename MeshType>
143 return _startHalfEdgeIdx;
146 template <
typename MeshType>
150 return _curHalfEdgeIdx;
153 template <
typename MeshType>
157 const Mesh3dHalfEdge& startHalfEdge = _pMesh->getHalfEdgeColl()[_startHalfEdgeIdx];
163 template <
typename MeshType>
168 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
171 if (_curHalfEdgeIdx == _startHalfEdgeIdx)
177 template <
typename MeshType>
178 IPSDK_FORCEINLINE
bool 184 template <
typename MeshType>
185 IPSDK_FORCEINLINE
bool 191 template <
typename MeshType>
195 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
201 template <
typename MeshType>
205 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
211 template <
typename MeshType>
215 std::swap(_pMesh, iter.
_pMesh);
226 #endif // __IPSDKGEOMETRY_MESH3DVERTEXVERTEXCONSTCIRCULATOR_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
MeshType::VertexType VertexType
underlying mesh 3d vertex type
Definition: Mesh3dVertexVertexConstCirculator.h:39
std::input_iterator_tag iterator_category
iterator category
Definition: Mesh3dVertexVertexConstCirculator.h:45
bool operator==(const Iterator &iter) const
iterator comparison
Definition: Mesh3dVertexVertexConstCirculator.h:179
VertexType value_type
value type associated to iterator
Definition: Mesh3dVertexVertexConstCirculator.h:48
MeshType::DataType T
underlying mesh 3d data type
Definition: Mesh3dVertexVertexConstCirculator.h:36
Definition: Mesh3dTypes.h:52
Definition: NumericLimits.h:27
IPSDK_FORCEINLINE PackT max(const PackT &in1, const PackT &in2)
returns the maximum of 2 packs
Definition: max.h:40
bool operator!=(const Iterator &iter) const
iterator comparison
Definition: Mesh3dVertexVertexConstCirculator.h:186
Predefined types for mesh 3d management.
Definition of import/export macro for library.
Mesh3dVertexVertexConstCirculator< MeshType > Iterator
iterator type
Definition: Mesh3dVertexVertexConstCirculator.h:42
Iterator class allowing to circulate over vertices immediatly neighbors of a given vertex...
Definition: Mesh3dVertexVertexConstCirculator.h:31
ipUInt64 _oppositeHalfEdgeIdx
Definition: Mesh3dTypes.h:62
const VertexType & getStartVertex() const
retrieve starting vertex associated to circulator
Definition: Mesh3dVertexVertexConstCirculator.h:155
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
void swap(Iterator &iter)
swap between iterators
Definition: Mesh3dVertexVertexConstCirculator.h:213
ipUInt64 _startVertexIdx
index of start vertex for half edge
Definition: Mesh3dTypes.h:55
const VertexType * pointer
pointer type for iterator
Definition: Mesh3dVertexVertexConstCirculator.h:54
ipUInt32 _curHalfEdgeIdx
Definition: Mesh3dVertexVertexConstCirculator.h:133
ipUInt64 _nextHalfEdgeIdx
index of next half edge inside left triangle
Definition: Mesh3dTypes.h:65
const MeshType * _pMesh
reference to mesh 3d associated to iterator
Definition: Mesh3dVertexVertexConstCirculator.h:126
const ipUInt32 getCurHalfEdgeIdx() const
retrieve current half edge index associated to circulator
Definition: Mesh3dVertexVertexConstCirculator.h:148
const ipUInt32 getStartHalfEdgeIdx() const
retrieve starting half edge index associated to circulator
Definition: Mesh3dVertexVertexConstCirculator.h:141
const VertexType & operator*() const
retrieve current triangle associated to iterator position
Definition: Mesh3dVertexVertexConstCirculator.h:203
ipUInt32 _startHalfEdgeIdx
starting half edge index
Definition: Mesh3dVertexVertexConstCirculator.h:129
const VertexType * operator->() const
retrieve current triangle associated to iterator position
Definition: Mesh3dVertexVertexConstCirculator.h:193
Iterator & operator++()
increment of iterator
Definition: Mesh3dVertexVertexConstCirculator.h:165
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53