15 #ifndef __IPSDKGEOMETRY_MESH3DTRIANGLECONSTITERATOR_H__ 16 #define __IPSDKGEOMETRY_MESH3DTRIANGLECONSTITERATOR_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 25 #include <IPSDKGeometry/Entity/3d/Triangle/Triangle3d.h> 34 template <
typename MeshType>
58 typedef UInt32Vector::difference_type difference_type;
70 const UInt64Vector::const_iterator& iterTriangleIdx) :
82 Mesh3dTriangleConstIterator& operator= (
const Iterator& iter)
88 ~Mesh3dTriangleConstIterator()
135 template <
typename MeshType>
145 template <
typename MeshType>
155 template <
typename MeshType>
156 IPSDK_FORCEINLINE
bool 162 template <
typename MeshType>
163 IPSDK_FORCEINLINE
bool 169 template <
typename MeshType>
176 template <
typename MeshType>
183 template <
typename MeshType>
184 IPSDK_FORCEINLINE
void 187 if (_iterTriangleIdx != _pMesh->getTriangleToHalfEdgeColl().end())
189 const ipUInt64 halfEdgeIdx = *_iterTriangleIdx;
190 const Mesh3dHalfEdge& curHalfEdge = _pMesh->getHalfEdgeColl()[halfEdgeIdx];
197 _triangle.setCoords(v0, v1, v2);
201 template <
typename MeshType>
205 std::swap(_pMesh, iter.
_pMesh);
216 #pragma warning (pop) 218 #endif // __IPSDKGEOMETRY_MESH3DTRIANGLECONSTITERATOR_H__ MeshType::VertexType VertexType
underlying mesh 3d vertex type
Definition: Mesh3dTriangleConstIterator.h:43
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
bool operator==(const Iterator &iter) const
iterator comparison
Definition: Mesh3dTriangleConstIterator.h:157
UInt64Vector::const_iterator _iterTriangleIdx
current iterator on triangle index collection
Definition: Mesh3dTriangleConstIterator.h:126
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
const TriangleType * pointer
pointer type for iterator
Definition: Mesh3dTriangleConstIterator.h:61
Definition: Mesh3dTypes.h:52
Iterator & operator--()
decrement of iterator
Definition: Mesh3dTriangleConstIterator.h:147
const TriangleType & operator*() const
retrieve current triangle associated to iterator position
Definition: Mesh3dTriangleConstIterator.h:178
bool operator!=(const Iterator &iter) const
iterator comparison
Definition: Mesh3dTriangleConstIterator.h:164
Iterator & operator++()
increment of iterator
Definition: Mesh3dTriangleConstIterator.h:137
Triangle3d< T > TriangleType
underlying triangle 3d type
Definition: Mesh3dTriangleConstIterator.h:46
Predefined types for mesh 3d management.
Definition of import/export macro for library.
const TriangleType * operator->() const
retrieve current triangle associated to iterator position
Definition: Mesh3dTriangleConstIterator.h:171
3d triangle associated to cartesian 3d coordinates
Definition: Triangle3d.h:37
std::input_iterator_tag iterator_category
iterator category
Definition: Mesh3dTriangleConstIterator.h:52
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
ipUInt64 _startVertexIdx
index of start vertex for half edge
Definition: Mesh3dTypes.h:55
Iterator class allowing to parse triangles associated to a mesh 3d.
Definition: Mesh3dTriangleConstIterator.h:35
void swap(Iterator &iter)
swap between iterators
Definition: Mesh3dTriangleConstIterator.h:203
TriangleType value_type
value type associated to iterator
Definition: Mesh3dTriangleConstIterator.h:55
ipUInt64 _nextHalfEdgeIdx
index of next half edge inside left triangle
Definition: Mesh3dTypes.h:65
void updateData()
method allowing to update iterator internal data
Definition: Mesh3dTriangleConstIterator.h:185
const MeshType * _pMesh
reference to mesh 3d associated to iterator
Definition: Mesh3dTriangleConstIterator.h:123
TriangleType _triangle
triangle data associated to current iterator position
Definition: Mesh3dTriangleConstIterator.h:129
MeshType::DataType T
underlying mesh 3d data type
Definition: Mesh3dTriangleConstIterator.h:40
Mesh3dTriangleConstIterator< MeshType > Iterator
iterator type
Definition: Mesh3dTriangleConstIterator.h:49