This class services DtTerrainReasoner. It contains actual implementations of the algorithms used for both hilltops finding and position finding. DtTerrainReasoner provides a client oriented interface: based on local coordinates and double precision range/height measurements. DtTerrainReasonerAlgos is implementation oriented: uses topographic coordinates and integer values (where applicable) for simplicity and efficiency.
|
| static bool | SolveHilltops (const DtIntMatrix &grid, int prominenceSpan, int prominence, vector< int > &hilltopX, vector< int > &hilltopY, vector< int > &groupIndex) |
| |
| static void | LocatePositions (const DtArea &area, int sampleFactor, const DtTopoPoint &domPoint, int posCount, int lateralSpacing, int lateralInterval, int lateralRange, int metersFire, int metersCover, int interval, double heightFire, double heightCover, double heightTo, double maxSlopeDegrees, const DtHostQueryInterface &losChecker, vector< DtTopoPoint > &samplePoints, vector< DtGradeResult > &fireResult, vector< DtGradeResult > &coverResult) |
| |
| static double | GradeCoverage (const DtTopoPoint &pointFrom, double heightFrom, const vector< DtTopoPoint > &samplePoints, double heightTo, const DtHostQueryInterface &losChecker, vector< bool > &covered) |
| |
| static void | SelectGrades (vector< int > &grades, int selectCount, int spacing, vector< int > &selected) |
| |
| static void | FindPotentialPositionsAlongCrossSection (const DtTopoPoint &originPoint, double originHeightMeters, const DtTopoPoint &endPoint, double startCheckOffsetMeters, double startSearchOffsetMeters, double searchIntervalMeters, double viewHeightMeters, double coverHeightMeters, double coverRangeMeters, const DtHostQueryInterface &losChecker, vector< DtTopoPoint > &viewPoints, vector< DtTopoPoint > &coverPoints) |
| |
| static void | FindPotentialPositionsInArea (const DtArea &searchArea, const DtArea &targetsArea, unsigned int targetsAreaSampleCount, double lateralIntervalMeters, double verticalIntervalMeters, double targetHeightMeters, double viewHeightMeters, double coverHeightMeters, double coverRangeMeters, const DtHostQueryInterface &losChecker, DtTopoPoint &targetAreaCenter, vector< DtTopoPoint > &viewPoints, vector< DtTopoPoint > &coverPoints) |
| |
| static void | ClusterPotentialPositions (const DtTopoPoint &targetCenter, const vector< DtTopoPoint > &viewPoints, const vector< DtTopoPoint > &coverPoints, double maxGroupWidth, double maxGroupDepth, vector< DtArea > &clusters, vector< DtTopoPoint > &clusterCenters, vector< double > &clusterDepths, vector< double > &clusterWidths) |
| |
|
| static void | ConvertAreasToCrossSections (const DtArea &searchArea, const DtArea &targetsArea, unsigned int targetsAreaSampleCount, double lateralIntervalMeters, DtTopoPoint &originPoint, vector< double > &startCheckOffsetMeters, vector< double > &startSearchOffsetMeters, const DtHostQueryInterface &losChecker, vector< DtTopoPoint > &endPoints) |
| |
| static bool | PointInside (const DtTopoPoint &pt, const DtTopoPoint &fromP, const DtTopoPoint &toP) |
| |
| static bool | LineIntersection (const DtTopoPoint &from1, const DtTopoPoint &to1, const DtTopoPoint &from2, const DtTopoPoint &to2, DtTopoPoint &intersection) |
| |
| static void | LineAreaIntersection (const DtTopoPoint &fromLine, const DtTopoPoint &toLine, DtArea area, vector< DtTopoPoint > &intersectionVec) |
| |
| static int | ProminenceCircle (int radius, DtIntMatrix &circle) |
| |
| static void | FindPeaks (const DtIntMatrixSlice &slice, vector< int > &indices) |
| |
| static void | GradeSinglePosition (const vector< DtTopoPoint > &samplePoints, const DtTopoPoint &areaCenter, const DtTopoPoint &position, int metersFire, int metersCover, int interval, double heightFire, double heightCover, double heightTo, double maxSlopeDegrees, const DtHostQueryInterface &_losChecker, DtGradeResult &fireResult, DtGradeResult &coverResult) |
| |
| static void | SelectGradesImp (vector< int > &grades, int fromInd, int toInd, vector< int > &indices, int top, int selectCount, int spacing, vector< int > &selected) |
| |