16 #ifndef __IPSDKGEOMETRY_MESH3DVERTEXEDGECONSTCIRCULATOR_H__ 17 #define __IPSDKGEOMETRY_MESH3DVERTEXEDGECONSTCIRCULATOR_H__ 21 #pragma warning (push) 35 template <
typename MeshType>
82 Mesh3dVertexEdgeConstCirculator(
const Iterator& iter) :
88 Mesh3dVertexEdgeConstCirculator& operator= (
const Iterator& iter)
94 ~Mesh3dVertexEdgeConstCirculator()
120 inline const Mesh3dHalfEdge*
operator->()
const;
123 inline const Mesh3dHalfEdge&
operator*()
const;
144 template <
typename MeshType>
148 return _startHalfEdgeIdx;
151 template <
typename MeshType>
155 return _curHalfEdgeIdx;
158 template <
typename MeshType>
162 const Mesh3dHalfEdge& startHalfEdge = _pMesh->getHalfEdgeColl()[_startHalfEdgeIdx];
168 template <
typename MeshType>
173 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
176 if (_curHalfEdgeIdx == _startHalfEdgeIdx)
182 template <
typename MeshType>
183 IPSDK_FORCEINLINE
bool 189 template <
typename MeshType>
190 IPSDK_FORCEINLINE
bool 196 template <
typename MeshType>
200 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
205 template <
typename MeshType>
209 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[_curHalfEdgeIdx];
214 template <
typename MeshType>
218 std::swap(_pMesh, iter.
_pMesh);
229 #pragma warning (pop) 231 #endif // __IPSDKGEOMETRY_MESH3DVERTEXEDGECONSTCIRCULATOR_H__ const Mesh3dHalfEdge * pointer
pointer type for iterator
Definition: Mesh3dVertexEdgeConstCirculator.h:59
ipUInt32 _curHalfEdgeIdx
Definition: Mesh3dVertexEdgeConstCirculator.h:138
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
const VertexType & getStartVertex() const
retrieve starting vertex associated to circulator
Definition: Mesh3dVertexEdgeConstCirculator.h:160
Mesh3dHalfEdge value_type
value type associated to iterator
Definition: Mesh3dVertexEdgeConstCirculator.h:53
Iterator class allowing to circulate over half edges starting from a given vertex.
Definition: Mesh3dVertexEdgeConstCirculator.h:36
const MeshType * _pMesh
reference to mesh 3d associated to iterator
Definition: Mesh3dVertexEdgeConstCirculator.h:131
bool operator==(const Iterator &iter) const
iterator comparison
Definition: Mesh3dVertexEdgeConstCirculator.h:184
Definition: Mesh3dTypes.h:52
Definition: NumericLimits.h:27
bool operator!=(const Iterator &iter) const
iterator comparison
Definition: Mesh3dVertexEdgeConstCirculator.h:191
const Mesh3dHalfEdge * operator->() const
retrieve current triangle associated to iterator position
Definition: Mesh3dVertexEdgeConstCirculator.h:198
Mesh3dVertexEdgeConstCirculator< MeshType > Iterator
iterator type
Definition: Mesh3dVertexEdgeConstCirculator.h:47
IPSDK_FORCEINLINE PackT max(const PackT &in1, const PackT &in2)
returns the maximum of 2 packs
Definition: max.h:40
Predefined types for mesh 3d management.
Definition of import/export macro for library.
Iterator & operator++()
increment of iterator
Definition: Mesh3dVertexEdgeConstCirculator.h:170
const ipUInt32 getCurHalfEdgeIdx() const
retrieve current half edge index associated to circulator
Definition: Mesh3dVertexEdgeConstCirculator.h:153
std::input_iterator_tag iterator_category
iterator category
Definition: Mesh3dVertexEdgeConstCirculator.h:50
ipUInt64 _oppositeHalfEdgeIdx
Definition: Mesh3dTypes.h:62
void swap(Iterator &iter)
swap between iterators
Definition: Mesh3dVertexEdgeConstCirculator.h:216
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
MeshType::VertexType VertexType
underlying mesh 3d vertex type
Definition: Mesh3dVertexEdgeConstCirculator.h:44
ipUInt64 _startVertexIdx
index of start vertex for half edge
Definition: Mesh3dTypes.h:55
MeshType::DataType T
underlying mesh 3d data type
Definition: Mesh3dVertexEdgeConstCirculator.h:41
const Mesh3dHalfEdge & operator*() const
retrieve current triangle associated to iterator position
Definition: Mesh3dVertexEdgeConstCirculator.h:207
ipUInt32 _startHalfEdgeIdx
starting half edge index
Definition: Mesh3dVertexEdgeConstCirculator.h:134
const ipUInt32 getStartHalfEdgeIdx() const
retrieve starting half edge index associated to circulator
Definition: Mesh3dVertexEdgeConstCirculator.h:146
ipUInt64 _nextHalfEdgeIdx
index of next half edge inside left triangle
Definition: Mesh3dTypes.h:65
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53