|
| virtual | ~DtTerrainReasoner () |
| |
| bool | findHilltopsInArea (const DtLocalVertexList &areaVertices, double gridResolutionMeters, double prominenceMeters, double prominenceRangeMeters, vector< DtVector > &foundHilltopsLocal, string *queryString=NULL, string *problemDescription=NULL) |
| |
| bool | findPositionGroup (const DtLocalVertexList &targetsAreaVertices, unsigned int targetsAreaSampleCount, double targetsHeightMeters, double viewHeightMeters, double coverHeightMeters, const DtVector &pivotLocal, double forwardRangeMeters, double backwardRangeMeters, double lateralRangeMeters, double verticalIntervalMeters, double maxSlopeDegrees, double lateralIntervalMeters, double positionsLateralSpacingMeters, unsigned int positionsCount, vector< DtViewCoverPosition > &foundPositions, string *queryString=NULL, string *problemDescription=NULL) |
| |
| bool | findPosition (const DtLocalVertexList &targetsAreaVertices, unsigned int targetsAreaSampleCount, double targetsHeightMeters, double viewHeightMeters, double coverHeightMeters, const DtVector &pivotLocal, double forwardRangeMeters, double backwardRangeMeters, double verticalIntervalMeters, double maxSlopeDegrees, DtViewCoverPosition &foundPosition, string *queryString=NULL, string *problemDescription=NULL) |
| |
| bool | findPositionGroupsInArea (const DtLocalVertexList &searchAreaVertices, double gridResolutionMeters, double prominenceMeters, double prominenceRangeMeters, const DtLocalVertexList &targetsAreaVertices, unsigned int targetsAreaSampleCount, double targetsHeightMeters, double viewHeightMeters, double coverHeightMeters, double forwardRangeMeters, double backwardRangeMeters, double lateralRangeMeters, double verticalIntervalMeters, double maxSlopeDegrees, double lateralIntervalMeters, double positionsLateralSpacingMeters, unsigned int positionsCount, vector< DtViewCoverPositionGroup > &foundPositionGroups, string *queryString=NULL, string *problemDescription=NULL) |
| |
| bool | findRidgedPositionGroupsInArea (const DtLocalVertexList &searchAreaVertices, const DtLocalVertexList &targetsAreaVertices, unsigned int targetsAreaSampleCount, double targetsHeightMeters, double viewHeightMeters, double coverHeightMeters, double coverRangeMeters, double lateralRangeMeters, double lateralIntervalMeters, double verticalRangeMeters, double verticalIntervalMeters, double maxSlopeDegrees, double positionsLateralSpacingMeters, unsigned int positionsCount, vector< DtViewCoverPositionGroup > &foundPositionGroups, string *queryString=NULL, string *problemDescription=NULL) |
| |
|
| void | findPositionGroupWithHostQuery (const DtLocalVertexList &targetsAreaVertices, unsigned int targetsAreaSampleCount, double targetsHeightMeters, double viewHeightMeters, double coverHeightMeters, const DtVector &pivotLocal, unsigned int forwardRangeMeters, unsigned int backwardRangeMeters, unsigned int lateralRangeMeters, unsigned int verticalIntervalMeters, double maxSlopeDegrees, unsigned int lateralIntervalMeters, unsigned int positionsLateralSpacingMeters, unsigned int positionsCount, DtHostQueryImplementation &hostQuery, vector< DtViewCoverPosition > &foundPositions) |
| |
| void | BuildHeightGrid (double fromX, double fromY, double toX, double toY, int intervalMeters, const DtHostQueryImplementation &hostQuery, DtIntMatrix &grid) |
| |
| void | CovertToArea (const DtLocalVertexList &areaVertices, DtHostQueryImplementation &hostQuery, DtArea &area) |
| |
| bool | ValidateNoOverlap (string functionName, const DtArea &searchArea, const DtArea &targetArea, string *problemDescription) |
| |
| string | ValidationMessage (string functionName, bool isError, string offendingParameterName, double offendingParameterValue, string description) |
| |
| string | ValidationMessage (string functionName, bool isError, string offendingParameterName, string description) |
| |
| bool | ValidateAreaVertices (string functionName, const DtLocalVertexList &areaVertices, string name, string *problemDescription) |
| |
| bool | ValidateGreaterThanZero (string functionName, double value, string name, string *problemDescription) |
| |
| bool | ValidateLessThan (string functionName, double value, string name, double refValue, string refName, string *problemDescription) |
| |
| bool | ValidateNotLessThan (string functionName, double value, string name, double refValue, string refName, string *problemDescription, bool isError=true) |
| |
| bool | ValidateGreaterThan (string functionName, double value, string name, double refValue, string refName, string *problemDescription) |
| |
| bool | ValidateNotGreaterThan (string functionName, double value, string name, double refValue, string refName, string *problemDescription, bool isError=true) |
| |
| bool | ValidateLocatedOutside (string functionName, const DtArea &targetsArea, const DtTopoPoint &pt, string *problemDescription) |
| |
| bool | ValidateCoverNotLessThanView (string functionName, double coverHeightMeters, double viewHeightMeters, string *problemDescription) |
| |
| bool DtTerrainReasoner::findHilltopsInArea |
( |
const DtLocalVertexList & |
areaVertices, |
|
|
double |
gridResolutionMeters, |
|
|
double |
prominenceMeters, |
|
|
double |
prominenceRangeMeters, |
|
|
vector< DtVector > & |
foundHilltopsLocal, |
|
|
string * |
queryString = NULL, |
|
|
string * |
problemDescription = NULL |
|
) |
| |
Finds all local hilltops (peaks) in a specified area. The locality of a hilltop is defined as a circle whose radius is the specified prominenceRangeMeters.
A local hilltop is a point that is not lower than any point in its locality AND higher than the avarage height of its locality, by prominenceMeters at least.
The search is performed over a grid of the specified gridResolutionMeters. This means that a returned hilltop is not necessarily higher than nearby points that reside between grid points.
Return value indicates success (true) or failure (false). The cause of failure is described by problemDescription output parameter. Result (out) parameter must not be used in case of failure.
- Parameters
-
| areaVertices | The area to search in. |
| gridResolutionMeters | The distance between adjacent grid points. |
| prominenceMeters | Minimal height advantage over locality avarage height required for qualifying as a hilltop. |
| prominenceRangeMeters | Radius of locality circle. |
| [out] | foundHilltopsLocal | Found hilltops in no particular order. May be empty. |
| [out] | queryString | A JSON string containing all input parameter values as received in this call. It may be used by Terrain Reasoner test harness to reproduce the call for debug purposes. |
| [out] | problemDescription | Description of a problem identified by the function, mostly related to bad/conflicting input parameters. Note that problemDescription may also be present when return value is true (success), indicating a problem that is merely a warning, allowing a result to be returned. |
| bool DtTerrainReasoner::findPosition |
( |
const DtLocalVertexList & |
targetsAreaVertices, |
|
|
unsigned int |
targetsAreaSampleCount, |
|
|
double |
targetsHeightMeters, |
|
|
double |
viewHeightMeters, |
|
|
double |
coverHeightMeters, |
|
|
const DtVector & |
pivotLocal, |
|
|
double |
forwardRangeMeters, |
|
|
double |
backwardRangeMeters, |
|
|
double |
verticalIntervalMeters, |
|
|
double |
maxSlopeDegrees, |
|
|
DtViewCoverPosition & |
foundPosition, |
|
|
string * |
queryString = NULL, |
|
|
string * |
problemDescription = NULL |
|
) |
| |
Finds a position along a line, optimizing both view and cover relative to a specified targets area. The position consists of two points:
- a forward view point - in which line-of-sight to the targets area is maximized.
- a rear cover point - in which line-of-fire exposure to the targets area is minimized.
The line along which the search is performed is defined by a pivot point, a forward range and a backward range. The line is oriented towards the center of the specified targets area.
Return value indicates success (true) or failure (false). The cause of failure is described by problemDescription output parameter. Result (out) parameter must not be used in case of failure.
- Parameters
-
| targetsAreaVertices | The area to maximize view and cover against. |
| targetsAreaSampleCount | Number of points in targets srea (approx.) to use as a sample for checking line-of-sight (for view) and line-of-fire (for cover) against. |
| targetsHeightMeters | Height above ground of targets in targets area - to check line-of-sight and line-of-fire against. |
| viewHeightMeters | Height above ground of view point (e.g. main gun). |
| coverHeightMeters | Height above ground of cover point (e.g. turret top
|
| pivotLocal | The search is performed along a line connecting this point with the center of the specified targets area polygon. |
| forwardRangeMeters | Max distance to move forward from pivotLocal (towards targets area), when searching for view/cover points. |
| backwardRangeMeters | Max distance to move backward from pivotLocal (away from targets area), when searching for view/cover points. |
| verticalIntervalMeters | Distance between examined points when searching for view/cover along the line. |
| maxSlopeDegrees | Absolute value (value between 0.0 - 90.0) of maximum alowed slope along the line connecting view point and cover point. |
| [out] | foundPosition | the found position. |
| [out] | queryString | A JSON string containing all input parameter values as received in this call. It may be used by Terrain Reasoner test harness to reproduce the call for debug purposes. |
| [out] | problemDescription | Description of a problem identified by the function, mostly related to bad/conflicting input parameters. Note that problemDescription may also be present when return value is true (success), indicating a problem that is merely a warning, allowing a result to be returned. |
| bool DtTerrainReasoner::findPositionGroupsInArea |
( |
const DtLocalVertexList & |
searchAreaVertices, |
|
|
double |
gridResolutionMeters, |
|
|
double |
prominenceMeters, |
|
|
double |
prominenceRangeMeters, |
|
|
const DtLocalVertexList & |
targetsAreaVertices, |
|
|
unsigned int |
targetsAreaSampleCount, |
|
|
double |
targetsHeightMeters, |
|
|
double |
viewHeightMeters, |
|
|
double |
coverHeightMeters, |
|
|
double |
forwardRangeMeters, |
|
|
double |
backwardRangeMeters, |
|
|
double |
lateralRangeMeters, |
|
|
double |
verticalIntervalMeters, |
|
|
double |
maxSlopeDegrees, |
|
|
double |
lateralIntervalMeters, |
|
|
double |
positionsLateralSpacingMeters, |
|
|
unsigned int |
positionsCount, |
|
|
vector< DtViewCoverPositionGroup > & |
foundPositionGroups, |
|
|
string * |
queryString = NULL, |
|
|
string * |
problemDescription = NULL |
|
) |
| |
Finds multiple position groups using findPositionGroup, in a specified area. Each position group is based on a separate hilltop that is found using findHilltopsInArea.
Note that positions from diferent groups may overlap if hilltops are relatively close to each other. Potential for overlapping depends on the ratio between prominenceRangeMeters (defining minimal distance between hilltops) and the dimensions of the rectangle used for searching positions around each hilltop, as defined by forwardRangeMeters, backwardRangeMeters and lateralRangeMeters.
Return value indicates success (true) or failure (false). The cause of failure is described by problemDescription output parameter. Result (out) parameter must not be used in case of failure.
- Parameters
-
| areaVertices | The area to search in. |
| gridResolutionMeters | The distance between adjacent grid points used for searching hilltops. |
| prominenceMeters | Minimal height advantage over locality avarage height required for qualifying as a hilltop. |
| prominenceRangeMeters | Radius of locality circle defining a hilltop. |
| targetsAreaVertices | The area to maximize view and cover against. |
| targetsAreaSampleCount | Number of points in targets srea (approx.) to use as a sample for checking line-of-sight (for view) and line-of-fire (for cover) against. |
| targetsHeightMeters | Height above ground of targets in targets area - to check line-of-sight and line-of-fire against. |
| viewHeightMeters | Height above ground of view point (e.g. main gun). |
| coverHeightMeters | Height above ground of cover point (e.g. turret top
|
| forwardRangeMeters | Max distance to move forward from each hilltop when searching for view/cover points of the corresponding position group. |
| backwardRangeMeters | Max distance to move backward from each hilltop when searching for view/cover points of the corresponding position group. |
| lateralRangeMeters | Distance to both left and right of each hilltop in which the search for the corresponding position group is performed (e.g. 100m means an overall lateral search along a 200m front). |
| verticalIntervalMeters | Frontal distance between examined points when searching for view/cover along a single position line. |
| maxSlopeDegrees | Absolute value (value between 0.0 - 90.0) of maximum alowed slope along the line connecting view point and cover point. |
| lateralIntervalMeters | Lateral distance between examined positions/lines (density of comb). |
| positionsLateralSpacingMeters | Minimal allowed lateral distance between adjacent positions in each group. |
| positionsCount | Number of required positions in each position group. |
| [out] | foundPositionGroups | The collection of found position groups, ordered by decreasing overallPctAvg value. May be empty of the specified area contains no hilltops. |
| [out] | queryString | A JSON string containing all input parameter values as received in this call. It may be used by Terrain Reasoner test harness to reproduce the call for debug purposes. |
| [out] | problemDescription | Description of a problem identified by the function, mostly related to bad/conflicting input parameters. Note that problemDescription may also be present when return value is true (success), indicating a problem that is merely a warning, allowing a result to be returned. |
| bool DtTerrainReasoner::findRidgedPositionGroupsInArea |
( |
const DtLocalVertexList & |
searchAreaVertices, |
|
|
const DtLocalVertexList & |
targetsAreaVertices, |
|
|
unsigned int |
targetsAreaSampleCount, |
|
|
double |
targetsHeightMeters, |
|
|
double |
viewHeightMeters, |
|
|
double |
coverHeightMeters, |
|
|
double |
coverRangeMeters, |
|
|
double |
lateralRangeMeters, |
|
|
double |
lateralIntervalMeters, |
|
|
double |
verticalRangeMeters, |
|
|
double |
verticalIntervalMeters, |
|
|
double |
maxSlopeDegrees, |
|
|
double |
positionsLateralSpacingMeters, |
|
|
unsigned int |
positionsCount, |
|
|
vector< DtViewCoverPositionGroup > & |
foundPositionGroups, |
|
|
string * |
queryString = NULL, |
|
|
string * |
problemDescription = NULL |
|
) |
| |
Finds multiple position groups using findPositionGroup, in a specified area. Rather than using hilltops as anchors for position groups (as with findPositionGroupsInArea), each position group is based on a cluster of closely located potential positions that are heuristically searched for along ridge lines, using elevation data only.
A cluster is a rectangular area whose dimensions are limited by the specified veticalRangeMeters (depth) and lateralRangeMeters (width). The findPositionGroup service (using true line-of-sight checks) is applied to each rectangle [of a cluster] recognized by the heuristic stage that is sufficiently wide (not less than (positionsCount - 1) * positionsLateralSpacingMeters).
Return value indicates success (true) or failure (false). The cause of failure is described by problemDescription output parameter. Result (out) parameter must not be used in case of failure.
- Parameters
-
| searchAreaVertices | The area to search in. |
| targetsAreaVertices | The area to maximize view and cover against. |
| targetsAreaSampleCount | Number of points in targets srea (approx.) to use as a sample for checking line-of-sight (for view) and line-of-fire (for cover) against. |
| targetsHeightMeters | Height above ground of targets in targets area - to check line-of-sight and line-of-fire against. |
| viewHeightMeters | Height above ground of view point (e.g. main gun). |
| coverHeightMeters | Height above ground of cover point (e.g. turret top
|
| coverRangeMeters | maximal vertical distance between view point and cover point of a potential position. Note that potential positions are only used heuristically for finding clusters. Actual returned positions are not subject to this limitation and are effectively limited only by vericalRangeMeters. |
| lateralRangeMeters | maximal width of a rectangular cluster, in which the search for a corresponding position group is performed. |
| lateralIntervalMeters | Lateral distance between examined positions/lines (density of comb). The distance applies to the farthest point (from targets area) of the specified search area. |
| verticalRangeMeters | maximal depth of a rectangular cluster, in which the search for a corresponding position group is performed. |
| verticalIntervalMeters | Frontal distance between examined points when searching for view/cover along a single position line. |
| maxSlopeDegrees | Absolute value (value between 0.0 - 90.0) of maximum alowed slope along the line connecting view point and cover point. |
| positionsLateralSpacingMeters | Minimal allowed lateral distance between adjacent positions in each group. |
| positionsCount | Number of required positions in each position group. |
| [out] | foundPositionGroups | The collection of found position groups, ordered by decreasing overallPctAvg value. May be empty of the specified area contains no hilltops. |
| [out] | queryString | A JSON string containing all input parameter values as received in this call. It may be used by Terrain Reasoner test harness to reproduce the call for debug purposes. |
| [out] | problemDescription | Description of a problem identified by the function, mostly related to bad/conflicting input parameters. Note that problemDescription may also be present when return value is true (success), indicating a problem that is merely a warning, allowing a result to be returned. |