VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainReasoningJob.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 #include "vrfutil/scriptGeometry.h"
13 
14 #include "vlutil/vlMutex.h"
15 
17 #include "features/pathPlanner.h"
18 
19 
20 class DtAsyncJobMapEntry;
21 class DtPhysicalWorld;
22 
24 namespace vrfTrl
25 {
31  void arrangePositionsLeftToRight2D(const std::vector<std::pair<DtLocation3D, DtLocation3D> >& inPoints,
32  const DtLocation3D& originPoint,
33  const DtLocation3D& destinationPoint,
34  std::vector<std::pair<DtLocation3D, DtLocation3D> >& outPoints);
35 
38  DtLocation3D findAreaCenter2D(const std::list<DtLocation3D>& targetAreaCorners);
39 
42  const DtLocation3D& referencePoint,
43  double widthSideSide,
44  double depthForwardBack,
45  std::list<DtLocation3D>& searchAreaCorners);
46 
48  void convertToLocalVectorList(const std::list<DtLocation3D>& sourceLocations, DtLocalVertexList& resultsList, DtTerrainInterface* pTerrainIf, bool bClamp = true);
49 }
50 
52 {
53 public:
56  virtual ~DtHilltopQueryResult() override;
57 
58  const DtHilltopQueryResult& operator=(const DtHilltopQueryResult&);
59 
60  virtual void copyResultFrom(const DtHilltopQueryResult& orig);
61 
62  std::vector<DtLocation3D> myHighPoints;
63 };
64 
65 
68 {
69 public:
70 
72  const std::list<DtLocation3D>& corners,
73  int nPointsToReturn,
74  bool bDebug);
75 
76  virtual ~DtHilltopQueryJob() override;
77 
78  void message(Severity severity, std::string msg);
79 
81  virtual void onExecute() override;
82 
83  virtual void onException() override;
84 
85 protected:
87  std::list<DtLocation3D> myCorners;
89  bool bMyDebug;
90 
91 };
92 
94 {
95 public:
98  virtual ~DtVehiclePositionQueryResult() override;
99 
101 
102  virtual void copyResultFrom(const DtVehiclePositionQueryResult& orig);
103 
104  std::vector<std::pair<DtLocation3D, DtLocation3D> > myPositionPairs;
105 };
106 
109 {
110 public:
111 
112  /*
113  findVehiclePlatoonFightingPositions(taskParameters.numberOfPoints,
114  taskParameters.targetArea:getLocations3D(),
115  taskParameters.battlePosition,
116  maxVolume, -- full dimensions of hide position
117  maxVolume:getUp() * 1.34, --67% of total height for shooting height
118  maxVolume:getUp(), -- half height for target height
119  10,
120  searchWidthForward * 2.0, -- how much forward and back to search forward and back
121  searchWidthSide * 2.0 -- how much side to side to search
122  )
123  */
125  int nPositionPairsToReturn,
126  const std::list<DtLocation3D>& targetAreaCorners,
127  const DtLocation3D& originPoint,
128  const DtVectorOffset3D& hideVolume,
129  double shootHeight,
130  double targetHeight,
131  double forwardBackSearchLimit,
132  double sideSideSearchLimit,
133  double maxSlopeDegrees,
134  double positionSpacing,
135  bool bDebug);
136 
137  virtual ~DtVehiclePositionQuery() override;
138 
139  void message(Severity severity, std::string msg);
140 
142  virtual void onExecute() override;
143 
144  virtual void onException() override;
145 
146 protected:
148  std::list<DtLocation3D> myTargetAreaCorners;
158  bool bMyDebug;
159 
160 };
161 
164 {
165 public:
166 
167  /*
168  findSinglePosition(taskParameters.targetArea:getLocations3D(),
169  targetHeightMeters, -- 2/3 vehicle height, for example.
170  double viewHeightMeters, -- 2/3 vehicle height, for example.
171  double hideHeightMeters, -- 1.1x vehicle height, for example.
172  double forwardBackSearchLimitMeters, -- 50m forward + 50m backward = 100m
173  double forwardBackSearchIntervalMeters, -- half vehicle length, for example.
174  bool bDebug
175  )
176  */
178  const std::list<DtLocation3D>& targetAreaCorners,
179  const DtLocation3D& pivotPoint,
180  double targetHeightMeters,
181  double viewHeightMeters,
182  double hideHeightMeters,
183  double forwardBackSearchLimitMeters,
184  double forwardBackSearchIntervalMeters,
185  double maxSlopeDegrees,
186  bool bDebug);
187 
188  virtual ~DtFindSinglePositionQuery() override;
189 
190  void message(Severity severity, std::string msg);
191 
193  virtual void onExecute() override;
194 
195  virtual void onException() override;
196 
197 protected:
199  std::list<DtLocation3D> myTargetAreaCorners;
201  double myHideHeight;
202  double myViewHeight;
207 
208  bool bMyDebug;
209 
210 };
211 
213 {
214 public:
215  typedef std::vector<std::pair<DtLocation3D, DtLocation3D> > PositionPairs;
216  typedef struct Group
217  {
223  } PositionGroup;
224 
227  virtual ~DtFindPositionGroupsInAreaQueryResult() override;
228 
230 
231  virtual void copyResultFrom(const DtFindPositionGroupsInAreaQueryResult& orig);
232 
233 
234  std::vector<PositionGroup> groups;
235 };
236 
239 {
240 public:
241 
242 
274  const std::list<DtLocation3D>& sourceAreaVertices,
275  unsigned int gridResolutionMeters,
276  double prominenceMeters,
277  unsigned int prominenceRangeMeters,
278  const std::list<DtLocation3D>& targetsAreaVertices,
279  unsigned int targetsAreaSampleCount,
280  double targetsHeightMeters,
281  double viewHeightMeters,
282  double hideHeightMeters,
283  double forwardBackSearchLimitMeters,
284  double sideToSideSearchLimitMeters,
285  double forwardBackSearchIntervalMeters,
286  double maxSlopeDegrees,
287  double sideToSideSearchIntervalMeters,
288  double positionsSpacing,
289  unsigned int positionsCount,
290  bool bDebug);
291 
293 
294  void message(Severity severity, std::string msg);
295 
297  virtual void onExecute() override;
298 
299  virtual void onException() override;
300 
301 protected:
303  std::list<DtLocation3D> mySourceAreaCorners;
304  std::list<DtLocation3D> myTargetAreaCorners;
312  double myHideHight;
319  bool bMyDebug;
320 
321 };
322 
325 {
326 public:
327 
353  const std::list<DtLocation3D>& sourceAreaVertices,
354  const std::list<DtLocation3D>& targetsAreaVertices,
355  unsigned int targetsAreaSampleCount,
356  double targetsHeightMeters,
357  double viewHeightMeters,
358  double hideHeightMeters,
359  double coverRangeMeters,
360  double lateralRangeMeters,
361  double forwardBackRangeMeters,
362  double forwardBackIntervalMeters,
363  double maxSlopeDegrees,
364  double lateralIntervalMeters,
365  double positionsSpacing,
366  unsigned int positionsCount,
367  bool bDebug);
368 
369  virtual ~DtFindPositionGroupsInAreaUsingRidgeQuery() override;
370 
371  void message(Severity severity, std::string msg);
372 
374  virtual void onExecute() override;
375 
376  virtual void onException() override;
377 
378 protected:
380  std::list<DtLocation3D> mySourceAreaCorners;
381  std::list<DtLocation3D> myTargetAreaCorners;
386  double myHideHight;
387  double myCoverRange;
394  bool bMyDebug;
395 
396 };
397 
398 
int myNumberPositionPairsToReturn
Definition: terrainReasoningJob.h:149
Find Single Position Query Job.
Definition: terrainReasoningJob.h:163
void arrangePositionsLeftToRight2D(const std::vector< std::pair< DtLocation3D, DtLocation3D > > &inPoints, const DtLocation3D &originPoint, const DtLocation3D &destinationPoint, std::vector< std::pair< DtLocation3D, DtLocation3D > > &outPoints)
Sort the given points left to right, perpendicular to reference line from origin to destination...
PositionPairs positions
Definition: terrainReasoningJob.h:219
double myForwardBackSearchLimitMeters
Definition: terrainReasoningJob.h:313
Severity
Definition: algorithmManager.h:29
double scoreViewPctAverage
Definition: terrainReasoningJob.h:220
double mySideSideSearchLimit
Definition: terrainReasoningJob.h:155
double myForwardBackSearchLimitMeters
Definition: terrainReasoningJob.h:388
DtTerrainInterface * pMyTerrainInterface
Definition: terrainReasoningJob.h:302
double mySideSideSearchLimit
Definition: terrainReasoningJob.h:389
double scoreCoverPctAverage
Definition: terrainReasoningJob.h:221
double mySideSideSearchLimit
Definition: terrainReasoningJob.h:314
std::list< DtLocation3D > myTargetAreaCorners
Definition: terrainReasoningJob.h:381
voidpf uLong int origin
Definition: ioapi.h:42
double myShootHeight
Definition: terrainReasoningJob.h:152
double myProminenceMeters
Definition: terrainReasoningJob.h:308
DtTerrainInterface * pMyTerrainInterface
Definition: terrainReasoningJob.h:86
std::list< DtLocation3D > myCorners
Definition: terrainReasoningJob.h:87
unsigned int myTargetsAreaSampleCount
Definition: terrainReasoningJob.h:383
double myForwardBackSearchLimit
Definition: terrainReasoningJob.h:154
bool bMyDebug
Definition: terrainReasoningJob.h:158
unsigned int myNumberPositionsPerGroupRequested
Definition: terrainReasoningJob.h:305
Definition: terrainReasoningJob.h:216
Concrete job class which manages a shared pointer to it&#39;s job map entry. Using this job does not requ...
Definition: asyncJob.h:103
double myPositionsSpacing
Definition: terrainReasoningJob.h:393
double myHideHeight
Definition: terrainReasoningJob.h:201
bool bMyDebug
Definition: terrainReasoningJob.h:208
double myForwardBackSearchIntervalMeters
Definition: terrainReasoningJob.h:390
double myForwardBackSearchLimit
Definition: terrainReasoningJob.h:204
bool bMyDebug
Definition: terrainReasoningJob.h:89
double myTargetHeight
Definition: terrainReasoningJob.h:203
double myHideHight
Definition: terrainReasoningJob.h:386
Find Position Groups In Area Job.
Definition: terrainReasoningJob.h:238
double myForwardBackSearchInterval
Definition: terrainReasoningJob.h:205
void makeRelativeSearchArea2D(const DtLocation3D &origin, const DtLocation3D &referencePoint, double widthSideSide, double depthForwardBack, std::list< DtLocation3D > &searchAreaCorners)
Given an origin point and a reference point, make an area about the origin facing the reference point...
VectorOffset3D is a direction vector that is relative to some direction specified by a Vector3D...
Definition: scriptGeometry.h:428
double mySideSideSearchIntervalMeters
Definition: terrainReasoningJob.h:392
unsigned int myGridResolutionMeters
Definition: terrainReasoningJob.h:307
unsigned int myNumberPositionsPerGroupRequested
Definition: terrainReasoningJob.h:382
double myForwardBackSearchIntervalMeters
Definition: terrainReasoningJob.h:315
int nMyPointsToReturn
Definition: terrainReasoningJob.h:88
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:112
DtLocation3D myOriginPoint
Definition: terrainReasoningJob.h:200
double myMaxSlopeDegrees
Definition: terrainReasoningJob.h:206
void convertToLocalVectorList(const std::list< DtLocation3D > &sourceLocations, DtLocalVertexList &resultsList, DtTerrainInterface *pTerrainIf, bool bClamp=true)
Given a list of locations in a local coordinate system, clamp them to terrain height.
DtTerrainInterface * pMyTerrainInterface
Definition: terrainReasoningJob.h:379
std::list< DtLocation3D > mySourceAreaCorners
Definition: terrainReasoningJob.h:380
std::list< DtLocation3D > mySourceAreaCorners
Definition: terrainReasoningJob.h:303
double scoreOverallPctAverage
Definition: terrainReasoningJob.h:222
DtLocation3D findAreaCenter2D(const std::list< DtLocation3D > &targetAreaCorners)
Given a list of Location3D objects, return a DtLocation3D representing 2D center. Center is an averag...
double myCoverRange
Definition: terrainReasoningJob.h:387
DtLocation3D myOriginPoint
Definition: terrainReasoningJob.h:150
double myShootHeight
Definition: terrainReasoningJob.h:311
unsigned int myTargetsAreaSampleCount
Definition: terrainReasoningJob.h:306
double myTargetHeight
Definition: terrainReasoningJob.h:153
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:93
std::list< DtLocation3D > myTargetAreaCorners
Definition: terrainReasoningJob.h:199
double myTargetHeight
Definition: terrainReasoningJob.h:384
Base class for result of job.
Definition: asyncJobServer.h:43
double mySideSideSearchIntervalMeters
Definition: terrainReasoningJob.h:317
virtual void message(Severity, const std::string &) const
Output a messages from within the algorithm.
double myMaxSlopeDegrees
Definition: terrainReasoningJob.h:156
Handle to async job.
Definition: asyncJobMapEntry.h:29
DtVectorOffset3D myHideVolume
Definition: terrainReasoningJob.h:151
virtual void onExecute()=0
Called to execute a task.
double myViewHeight
Definition: terrainReasoningJob.h:202
Vehicle Position Query Job.
Definition: terrainReasoningJob.h:108
#define DT_DLL_terrainReasoning
This file is used to determine how to build.
Definition: terrainReasoningDefines.h:25
struct _Group PositionGroup
Definition: luaTerrainReasoningJob.h:301
Definition: terrainReasoningJob.h:51
double myShootHeight
Definition: terrainReasoningJob.h:385
Definition: terrainReasoningJob.h:93
std::vector< std::pair< DtLocation3D, DtLocation3D > > myPositionPairs
Definition: terrainReasoningJob.h:104
unsigned int myProminenceRangeMeters
Definition: terrainReasoningJob.h:309
std::list< DtLocation3D > myTargetAreaCorners
Definition: terrainReasoningJob.h:304
virtual void onException()=0
Called when an exception is caught during execution.
double myTargetHeight
Definition: terrainReasoningJob.h:310
DtTerrainInterface * pMyTerrainInterface
Definition: terrainReasoningJob.h:147
double myMaxSlopeDegrees
Definition: terrainReasoningJob.h:391
Definition: terrainReasoningJob.h:212
std::list< DtLocation3D > myTargetAreaCorners
Definition: terrainReasoningJob.h:148
bool bMyDebug
Definition: terrainReasoningJob.h:319
Hilltop Query Job.
Definition: terrainReasoningJob.h:67
double myPositionsSpacing
Definition: terrainReasoningJob.h:318
class DtLocalVertexList:
Definition: localVertexList.h:20
Find Position Groups In Area Using Ridge Algorithm Job.
Definition: terrainReasoningJob.h:324
double myPositionSpacing
Definition: terrainReasoningJob.h:157
std::vector< PositionGroup > groups
Definition: terrainReasoningJob.h:234
bool bMyDebug
Definition: terrainReasoningJob.h:394
std::vector< DtLocation3D > myHighPoints
Definition: terrainReasoningJob.h:62
double myMaxSlopeDegrees
Definition: terrainReasoningJob.h:316
std::vector< std::pair< DtLocation3D, DtLocation3D > > PositionPairs
Definition: terrainReasoningJob.h:215
double myHideHight
Definition: terrainReasoningJob.h:312
DtLocation3D pivotPoint
Definition: terrainReasoningJob.h:218
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22
DtTerrainInterface * pMyTerrainInterface
Definition: terrainReasoningJob.h:198

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)