Files
secondo/Algebras/RegionInterpolation/SteinerPointMatch.h
2026-01-23 17:03:45 +08:00

82 lines
1.7 KiB
C++

/*
1 SteinerPointMatch.h
*/
#ifndef STEINERPOINTMATCH_H_
#define STEINERPOINTMATCH_H_
namespace RegionInterpol
{
/*
1.1 Class Steiner--Point Match
This class is threshold match, using the Steiner--Point as a reference point
*/
class SteinerPointMatch:public Match
{
public:
/*
1.1.1 Constructor
This construtor sets the sourceregion, the targetregion, and calculates an absolute threshold by the given relative one.
*/
SteinerPointMatch(RegionForInterpolation *source,
RegionForInterpolation *target,
double thresholdRel, bool useFinalize);
/*
1.1.1 Overridden Methods
this Methods return the one $target$ that matches $source$ best
*/
ConvexHullTreeNode *getBestMatch(ConvexHullTreeNode *source,
std::vector<ConvexHullTreeNode*> *targets);
Face *getBestMatch(Face *source,std::vector<Face*> *targets);
/*
this Methods match a set of faces or ConVexHullTreeNodes to an other set of those
*/
void matchFaces(std::vector<Face*> *faces1,
std::vector<Face*> *faces2);
void matchCHTNs(std::vector<ConvexHullTreeNode*> &chtn1,
std::vector<ConvexHullTreeNode*> &chtn2);
private:
/*
1.1.1 Private Methods
this Method calculates the distance of the centroids of the given ConvexHullTreeNodes
*/
static double getDistance(ConvexHullTreeNode *chtn1,
ConvexHullTreeNode *chtn2);
/*
1.1.1 Attributes
the $name$ and the $description$ of the Match not usefulll in SECONDO but only for cout
The absolute threshold the Match uses
*/
double threshold;
};
}
#endif
/*
\pagebreak
*/