Krita Source Code Documentation
Loading...
Searching...
No Matches
WeightMap Struct Reference

Public Types

typedef double data_type
 
typedef std::pair< VertexDescriptor, VertexDescriptorkey_type
 
typedef std::pair< key_type, data_typevalue_type
 

Public Member Functions

data_typeoperator[] (key_type const &k)
 
 WeightMap ()=default
 
 WeightMap (const KisMagneticGraph &g)
 

Private Attributes

KisMagneticGraph m_graph
 
std::map< key_type, data_typem_map
 

Detailed Description

Definition at line 113 of file KisMagneticWorker.cc.

Member Typedef Documentation

◆ data_type

typedef double WeightMap::data_type

Definition at line 115 of file KisMagneticWorker.cc.

◆ key_type

Definition at line 114 of file KisMagneticWorker.cc.

◆ value_type

Definition at line 116 of file KisMagneticWorker.cc.

Constructor & Destructor Documentation

◆ WeightMap() [1/2]

WeightMap::WeightMap ( )
default

◆ WeightMap() [2/2]

WeightMap::WeightMap ( const KisMagneticGraph & g)
inlineexplicit

Definition at line 120 of file KisMagneticWorker.cc.

120 :
121 m_graph(g)
122 { }
KisMagneticGraph m_graph

Member Function Documentation

◆ operator[]()

data_type & WeightMap::operator[] ( key_type const & k)
inline

Definition at line 124 of file KisMagneticWorker.cc.

125 {
126 if (m_map.find(k) == m_map.end()) {
127 double edge_gradient = (m_graph.getIntensity(k.first) + m_graph.getIntensity(k.second)) / 2.0;
128 m_map[k] = EuclideanDistance(k.first, k.second) + 255.0 - edge_gradient;
129 }
130 return m_map[k];
131 }
double EuclideanDistance(VertexDescriptor p1, VertexDescriptor p2)
quint8 getIntensity(VertexDescriptor pt)
std::map< key_type, data_type > m_map

References EuclideanDistance(), KisMagneticGraph::getIntensity(), m_graph, and m_map.

Member Data Documentation

◆ m_graph

KisMagneticGraph WeightMap::m_graph
private

Definition at line 135 of file KisMagneticWorker.cc.

◆ m_map

std::map<key_type, data_type> WeightMap::m_map
private

Definition at line 134 of file KisMagneticWorker.cc.


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