MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ radius_threshold_graph()

EdgeList MayaFlux::Kinesis::radius_threshold_graph ( const Eigen::MatrixXd &  points,
double  radius 
)

Compute radius threshold graph.

Parameters
pointsDx N matrix where each column is a point
radiusMaximum connection distance
Returns
Edge list (point index pairs)

Connects all point pairs within radius distance. Undirected graph: if (i,j) exists, edge appears once.

Complexity: O(n²) brute force

Definition at line 88 of file ProximityGraphs.cpp.

91{
92 Eigen::Index n = points.cols();
93 if (n < 2) {
94 return {};
95 }
96
97 double radius_sq = radius * radius;
98 EdgeList edges;
99
100 for (Eigen::Index i = 0; i < n; ++i) {
101 for (Eigen::Index j = i + 1; j < n; ++j) {
102 double dist_sq = distance_squared(points.col(i), points.col(j));
103 if (dist_sq <= radius_sq) {
104 edges.emplace_back(static_cast<size_t>(i), static_cast<size_t>(j));
105 }
106 }
107 }
108
109 MF_DEBUG(Journal::Component::Kinesis, Journal::Context::Runtime,
110 "radius_threshold_graph: {} points, radius={:.3f}, generated {} edges",
111 n, radius, edges.size());
112
113 return edges;
114}
#define MF_DEBUG(comp, ctx,...)

References MayaFlux::Journal::Kinesis, MF_DEBUG, and MayaFlux::Journal::Runtime.

Referenced by generate_proximity_graph().

+ Here is the caller graph for this function: