Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const > Class Template Reference
+ Inheritance diagram for KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >:

Public Member Functions

bool isValid () const
 
ControlPointIteratorType nodeBottomLeft () const
 
ControlPointIteratorType nodeBottomRight () const
 
ControlPointIteratorType nodeTopLeft () const
 
ControlPointIteratorType nodeTopRight () const
 
 patch_iterator_impl ()
 
 patch_iterator_impl (MeshType *mesh, int col, int row)
 
Mesh::PatchIndex patchIndex () const
 
SegmentIteratorType segmentP () const
 
SegmentIteratorType segmentQ () const
 
SegmentIteratorType segmentR () const
 
SegmentIteratorType segmentS () const
 

Private Types

using ControlPointIteratorType = control_point_iterator_impl<is_const>
 
using MeshType = std::add_const_if_t<is_const, Mesh>
 
using PointType = std::add_const_if_t<is_const, QPointF>
 
using SegmentIteratorType = segment_iterator_impl<is_const>
 

Private Member Functions

void advance (int n)
 
void decrement ()
 
Patch dereference () const
 
int distance_to (const patch_iterator_impl &z) const
 
bool equal (patch_iterator_impl const &other) const
 
void increment ()
 

Private Attributes

int m_col
 
MeshTypem_mesh
 
int m_row
 

Friends

class boost::iterator_core_access
 

Detailed Description

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
class KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >

Definition at line 248 of file KisBezierMesh.h.

Member Typedef Documentation

◆ ControlPointIteratorType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
using KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::ControlPointIteratorType = control_point_iterator_impl<is_const>
private

Definition at line 257 of file KisBezierMesh.h.

◆ MeshType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
using KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::MeshType = std::add_const_if_t<is_const, Mesh>
private

Definition at line 255 of file KisBezierMesh.h.

◆ PointType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
using KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::PointType = std::add_const_if_t<is_const, QPointF>
private

Definition at line 254 of file KisBezierMesh.h.

◆ SegmentIteratorType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
using KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::SegmentIteratorType = segment_iterator_impl<is_const>
private

Definition at line 256 of file KisBezierMesh.h.

Constructor & Destructor Documentation

◆ patch_iterator_impl() [1/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::patch_iterator_impl ( )
inline

◆ patch_iterator_impl() [2/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::patch_iterator_impl ( MeshType * mesh,
int col,
int row )
inline

Definition at line 265 of file KisBezierMesh.h.

266 : m_mesh(mesh),
267 m_col(col),
268 m_row(row)
269 {
270 }

Member Function Documentation

◆ advance()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
void KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::advance ( int n)
inlineprivate

◆ decrement()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
void KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::decrement ( )
inlineprivate

◆ dereference()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
Patch KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::dereference ( ) const
inlineprivate

◆ distance_to()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
int KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::distance_to ( const patch_iterator_impl< is_const > & z) const
inlineprivate

Definition at line 322 of file KisBezierMesh.h.

322 {
323 const int index = m_row * (m_mesh->m_size.width() - 1) + m_col;
324 const int otherIndex = z.m_row * (m_mesh->m_size.width() - 1) + z.m_col;
325
326 return otherIndex - index;
327 }

References KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_col, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_mesh, and KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_row.

◆ equal()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
bool KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::equal ( patch_iterator_impl< is_const > const & other) const
inlineprivate

◆ increment()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
void KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::increment ( )
inlineprivate

◆ isValid()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
bool KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::isValid ( ) const
inline

◆ nodeBottomLeft()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::ControlPointIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::nodeBottomLeft ( ) const

Definition at line 1362 of file KisBezierMesh.h.

1363{
1364 using ControlPointIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::ControlPointIteratorType;
1365 return ControlPointIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col, m_row + 1, Mesh::ControlType::Node);
1366}
control_point_iterator_impl< is_const > ControlPointIteratorType

◆ nodeBottomRight()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::ControlPointIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::nodeBottomRight ( ) const

Definition at line 1371 of file KisBezierMesh.h.

1372{
1373 using ControlPointIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::ControlPointIteratorType;
1374 return ControlPointIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col + 1, m_row + 1, Mesh::ControlType::Node);
1375}

◆ nodeTopLeft()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::ControlPointIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::nodeTopLeft ( ) const

Definition at line 1344 of file KisBezierMesh.h.

1345{
1346 using ControlPointIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::ControlPointIteratorType;
1347 return ControlPointIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col, m_row, Mesh::ControlType::Node);
1348}

◆ nodeTopRight()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::ControlPointIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::nodeTopRight ( ) const

Definition at line 1353 of file KisBezierMesh.h.

1354{
1355 using ControlPointIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::ControlPointIteratorType;
1356 return ControlPointIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col + 1, m_row, Mesh::ControlType::Node);
1357}

◆ patchIndex()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
Mesh::PatchIndex KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::patchIndex ( ) const
inline

◆ segmentP()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::SegmentIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::segmentP ( ) const

Definition at line 1308 of file KisBezierMesh.h.

1309{
1310 using SegmentIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::SegmentIteratorType;
1312}
segment_iterator_impl< is_const > SegmentIteratorType

◆ segmentQ()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::SegmentIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::segmentQ ( ) const

Definition at line 1317 of file KisBezierMesh.h.

1318{
1319 using SegmentIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::SegmentIteratorType;
1320 return SegmentIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col, m_row + 1, 1);
1321}

◆ segmentR()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::SegmentIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::segmentR ( ) const

Definition at line 1326 of file KisBezierMesh.h.

1327{
1328 using SegmentIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::SegmentIteratorType;
1329 return SegmentIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col, m_row, 0);
1330}

◆ segmentS()

template<typename NodeArg , typename PatchArg >
template<bool is_const>
Mesh< NodeArg, PatchArg >::template patch_iterator_impl< is_const >::SegmentIteratorType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::segmentS ( ) const

Definition at line 1335 of file KisBezierMesh.h.

1336{
1337 using SegmentIteratorType = typename Mesh<NodeArg, PatchArg>::template patch_iterator_impl<is_const>::SegmentIteratorType;
1338 return SegmentIteratorType(const_cast<Mesh<NodeArg, PatchArg>*>(m_mesh), m_col + 1, m_row, 0);
1339}

Friends And Related Symbol Documentation

◆ boost::iterator_core_access

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
friend class boost::iterator_core_access
friend

Definition at line 295 of file KisBezierMesh.h.

Member Data Documentation

◆ m_col

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
int KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_col
private

Definition at line 342 of file KisBezierMesh.h.

◆ m_mesh

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
MeshType* KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_mesh
private

Definition at line 341 of file KisBezierMesh.h.

◆ m_row

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<bool is_const>
int KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::patch_iterator_impl< is_const >::m_row
private

Definition at line 343 of file KisBezierMesh.h.


The documentation for this class was generated from the following file: