Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex Struct Reference

#include <KisBezierMesh.h>

+ Inheritance diagram for KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex:

Public Types

enum  ControlType {
  LeftControl = 0 , TopControl , RightControl , BottomControl ,
  Node
}
 

Public Member Functions

QPointF & controlPoint (Mesh::Node &node)
 
 ControlPointIndex ()=default
 
 ControlPointIndex (NodeIndex _nodeIndex, ControlType _controlType)
 
bool isControlPoint () const
 
bool isNode () const
 

Static Public Member Functions

template<class NodeType , class PointType = std::copy_const_t<NodeType, QPointF>>
static PointType & controlPoint (NodeType &node, ControlType controlType)
 

Public Attributes

ControlType controlType
 
NodeIndex nodeIndex
 

Friends

QDebug operator<< (QDebug dbg, const Mesh::ControlPointIndex &index)
 
bool operator== (const ControlPointIndex &lhs, const ControlPointIndex &rhs)
 

Detailed Description

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
struct KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex

Definition at line 162 of file KisBezierMesh.h.

Member Enumeration Documentation

◆ ControlType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
enum KisBezierMeshDetails::Mesh::ControlPointIndex::ControlType
Enumerator
LeftControl 
TopControl 
RightControl 
BottomControl 
Node 

Definition at line 164 of file KisBezierMesh.h.

Constructor & Destructor Documentation

◆ ControlPointIndex() [1/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::ControlPointIndex ( )
default

◆ ControlPointIndex() [2/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::ControlPointIndex ( NodeIndex _nodeIndex,
ControlType _controlType )
inline

Definition at line 174 of file KisBezierMesh.h.

175 : nodeIndex(_nodeIndex),
176 controlType(_controlType)
177 {
178 }

Member Function Documentation

◆ controlPoint() [1/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
QPointF & KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::controlPoint ( Mesh::Node & node)
inline

◆ controlPoint() [2/2]

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
template<class NodeType , class PointType = std::copy_const_t<NodeType, QPointF>>
static PointType & KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::controlPoint ( NodeType & node,
ControlType controlType )
inlinestatic

◆ isControlPoint()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
bool KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::isControlPoint ( ) const
inline

◆ isNode()

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
bool KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::isNode ( ) const
inline

Friends And Related Symbol Documentation

◆ operator<<

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
QDebug operator<< ( QDebug dbg,
const Mesh::ControlPointIndex & index )
friend

Definition at line 211 of file KisBezierMesh.h.

211 {
212 dbg.nospace() << "ControlPointIndex ("
213 << index.nodeIndex.x() << ", " << index.nodeIndex.x() << ", ";
214
215 switch (index.controlType) {
216 case Mesh::ControlType::Node:
217 dbg.nospace() << "Node";
218 break;
219 case Mesh::ControlType::LeftControl:
220 dbg.nospace() << "LeftControl";
221 break;
222 case Mesh::ControlType::RightControl:
223 dbg.nospace() << "RightControl";
224 break;
225 case Mesh::ControlType::TopControl:
226 dbg.nospace() << "TopControl";
227 break;
228 case Mesh::ControlType::BottomControl:
229 dbg.nospace() << "BottomControl";
230 break;
231 }
232
233 dbg.nospace() << ")";
234 return dbg.space();
235 }

◆ operator==

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
bool operator== ( const ControlPointIndex & lhs,
const ControlPointIndex & rhs )
friend

Definition at line 207 of file KisBezierMesh.h.

207 {
208 return lhs.nodeIndex == rhs.nodeIndex && lhs.controlType == rhs.controlType;
209 }

Member Data Documentation

◆ controlType

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
ControlType KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::controlType

Definition at line 181 of file KisBezierMesh.h.

◆ nodeIndex

template<typename NodeArg = BaseMeshNode, typename PatchArg = KisBezierPatch>
NodeIndex KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::ControlPointIndex::nodeIndex

Definition at line 180 of file KisBezierMesh.h.


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