#include <SegmentComputerEstimators.h>
Public Types |
typedef std::pair< double, double > | Value |
Public Member Functions |
template<typename DCA > |
Value | operator() (const typename DCA::ConstIterator &it, const DCA &aDCA, const double &aH) const |
Detailed Description
Description of class 'DistanceFromDCA'
Aim: estimates the distance of a given pair of points to the separating circle of a DCA.
Definition at line 933 of file SegmentComputerEstimators.h.
Member Typedef Documentation
Member Function Documentation
template<typename DCA >
Value DGtal::detail::DistanceFromDCA::operator() |
( |
const typename DCA::ConstIterator & |
it, |
|
|
const DCA & |
aDCA, |
|
|
const double & |
aH |
|
) |
| const |
|
inline |
Operator()
- Returns:
- distances (in a pair) of the inner and outer points pointed by it to the separating circle of aDCA
- Parameters:
-
it | position where the estimation has to be done |
aDCA | an instance of segment computer devoted to the DCA recognition. |
aH | grid step |
- Template Parameters:
-
DCA | a model of segment computer devoted to the DCA recognition, basically geometricDCA. |
Definition at line 955 of file SegmentComputerEstimators.h.
{
typedef typename DCA::ConstIterator ConstIterator;
typedef typename DCA::Pair Pair;
typedef typename DCA::Point
Point;
typedef typename Point::Coordinate Coordinate;
if ( !aDCA.isStraight() )
{
double c0, c1, r;
aDCA.getSeparatingCircle().getParameters(c0, c1, r);
Pair pair = *it;
Point i = pair.first;
Point o = pair.second;
double distI = std::sqrt( distI0*distI0 + distI1*distI1 ) - r;
double distO = std::sqrt( distO0*distO0 + distO1*distO1 ) - r;
return Value( distI*aH, distO*aH );
}
else
{
double a, b, c;
aDCA.getGeometricalDSSPtr()->getParameters(a, b, c);
double n = std::sqrt(a*a + b*b);
Pair pair = *it;
Point i = pair.first;
Point o = pair.second;
double distI = rI / n;
double distO = rO / n;
return Value( distI*aH, distO*aH );
}
}
The documentation for this struct was generated from the following file: