VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
luaTerrainReasoningJob.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 
8 #include <vrfLua/vrfLuaDefines.h>
9 
10 #include "vrfLua/luaAsyncJob.h"
12 #include "vrfutil/scriptGeometry.h"
13 
15 
16 class DtSimManager;
17 class DtTerrainReasoningJob;
18 class DtLocation3D;
19 
20 const DtString DtLuaHilltopQueryJobType = "LuaHilltopQueryJob";
21 
24 {
25 public:
26  typedef std::list<DtLocation3D> Points;
27 
28  static boost::shared_ptr<DtLuaHilltopQueryJob> Make(
30  const Points& corners,
31  unsigned int nPointsToReturn,
32  bool bDebug = false);
33 
36 
38  virtual ~DtLuaHilltopQueryJob();
39 
42  luabind::object getObject(lua_State* L, int& index, std::string& message);
43 
45  luabind::object getDebugObject(lua_State* L) {return luabind::newtable(L);}
46 
48  virtual void cancel(lua_State* L) {};
49 
50  //
52  //
53 
54  static DtAsciiSerializable* creator();
55 
57  bool deserialize(const DtString&);
58  DtString objectType() const;
59 
60  boost::shared_ptr<DtLuaHilltopQueryJob> shared_from_this();
61  boost::shared_ptr<const DtLuaHilltopQueryJob> shared_from_this() const;
62 
63 protected:
64 
68  const Points& corners,
69  unsigned int nPointsToReturn,
70  bool bDebug=false);
71 
72  void start();
73  void run(const DtAlgorithmManager& mgr = DtAlgorithmManager());
74 
76  void taskComplete();
77 
79  unsigned int nMyPointsToReturn;
80  bool bMyDebug;
81 
83  std::vector<DtLocation3D> myHighPoints;
84 
85  boost::shared_ptr<DtAsyncJobMapEntry> myJobEntry;
86 };
87 
88 const DtString DtLuaVehicleFightingPositionQueryJobType = "DtLuaVehicleFightingPositionQueryJob";
89 
113 {
114 public:
115  typedef std::list<DtLocation3D> Points;
116 
117  static boost::shared_ptr<DtLuaVehicleFightingPositionQueryJob> Make(
119  unsigned int nPointsToReturn,
120  const std::list<DtLocation3D>& targetAreaCorners,
121  const DtLocation3D& originPoint,
122  const DtVectorOffset3D& hideVolume,
123  double shootHeight,
124  double targetHeight,
125  double forwardBackSearchLimit,
126  double sideSideSearchLimit,
127  double maxSlopeDegrees,
128  double positionSpacing,
129  bool bDebug = false);
130 
133 
136 
139  luabind::object getObject(lua_State* L, int& index, std::string& message);
140 
142  luabind::object getDebugObject(lua_State* L) { return luabind::newtable(L); }
143 
145  virtual void cancel(lua_State* L) {};
146 
147  //
149  //
150 
151  static DtAsciiSerializable* creator();
152 
154  bool deserialize(const DtString&);
155  DtString objectType() const;
156 
157  boost::shared_ptr<DtLuaVehicleFightingPositionQueryJob> shared_from_this();
158  boost::shared_ptr<const DtLuaVehicleFightingPositionQueryJob> shared_from_this() const;
159 
160 protected:
161 
165  unsigned int nPointsToReturn,
166  const std::list<DtLocation3D>& targetAreaCorners,
167  const DtLocation3D& originPoint,
168  const DtVectorOffset3D& hideVolume,
169  double shootHeight,
170  double targetHeight,
171  double forwardBackSearchLimit,
172  double sideSideSearchLimit,
173  double maxSlopeDegrees,
174  double positionSpacing,
175  bool bDebug = false);
176 
177  void start();
178  void run(const DtAlgorithmManager& mgr = DtAlgorithmManager());
179 
181  void taskComplete();
182 
184  unsigned int nMyPointsToReturn;
193 
195  std::vector<std::pair<DtLocation3D, DtLocation3D> > myPositionPairs;
196 
197  boost::shared_ptr<DtAsyncJobMapEntry> myJobEntry;
198 
199  bool bMyDebug;
200 };
201 
202 const DtString DtLuaFindSinglePositionQueryJobType = "DtLuaFindSinglePositionQueryJob";
203 
206 {
207 public:
208  typedef std::list<DtLocation3D> Points;
209 
210  static boost::shared_ptr<DtLuaFindSinglePositionQueryJob> Make(
212  const std::list<DtLocation3D>& targetAreaCorners,
213  const DtLocation3D& pivotPoint,
214  double targetHeightMeters,
215  double viewHeightMeters,
216  double hideHeightMeters,
217  double forwardBackSearchLimitMeters,
218  double forwardBackSearchIntervalMeters,
219  double maxSlopeDegrees,
220  bool bDebug = false);
221 
224 
227 
230  luabind::object getObject(lua_State* L, int& index, std::string& message);
231 
233  luabind::object getDebugObject(lua_State* L) { return luabind::newtable(L); }
234 
236  virtual void cancel(lua_State* L) {};
237 
238  //
240  //
241 
242  static DtAsciiSerializable* creator();
243 
245  bool deserialize(const DtString&);
246  DtString objectType() const;
247 
248  boost::shared_ptr<DtLuaFindSinglePositionQueryJob> shared_from_this();
249  boost::shared_ptr<const DtLuaFindSinglePositionQueryJob> shared_from_this() const;
250 
251 protected:
252 
256  const std::list<DtLocation3D>& targetAreaCorners,
257  const DtLocation3D& pivotPoint,
258  double targetHeightMeters,
259  double viewHeightMeters,
260  double hideHeightMeters,
261  double forwardBackSearchLimitMeters,
262  double forwardBackSearchIntervalMeters,
263  double maxSlopeDegrees,
264  bool bDebug = false);
265 
266  void start();
267  void run(const DtAlgorithmManager& mgr = DtAlgorithmManager());
268 
270  void taskComplete();
271 
274  double myHideHeight;
275  double myViewHeight;
280  bool bMyDebug;
281 
283  std::vector<DtLocation3D> myFoundPositionPair;
284 
285  boost::shared_ptr<DtAsyncJobMapEntry> myJobEntry;
286 };
287 
288 namespace LuaTerrainReasoning
289 {
290  typedef std::list<DtLocation3D> Points;
291 
292  typedef std::vector<std::pair<DtLocation3D, DtLocation3D> > PositionPairs;
293  struct _Group
294  {
300  };
301  typedef struct _Group PositionGroup;
302 };
303 
304 const DtString DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJobType = "DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJob";
305 
308 {
309 public:
310 
311  static boost::shared_ptr<DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJob> Make(
313  const std::list<DtLocation3D>& sourceAreaVertices,
314  const std::list<DtLocation3D>& targetsAreaVertices,
315  double viewHeightMeters,
316  double hideHeightMeters,
317  double forwardBackSearchLimitMeters,
318  double sideToSideSearchLimitMeters,
319  double searchIntervalMeters,
320  double maxSlopeDegrees,
321  double positionsSpacing,
322  unsigned int positionsCount,
323  bool bDebug = false);
324 
327 
330 
333  luabind::object getObject(lua_State* L, int& index, std::string& message);
334 
336  luabind::object getDebugObject(lua_State* L) { return luabind::newtable(L); }
337 
339  virtual void cancel(lua_State* L) {};
340 
341  //
343  //
344 
345  static DtAsciiSerializable* creator();
346 
347  virtual void serializePositionPairs(DtString& toString, LuaTerrainReasoning::PositionPairs& pairs);
348  virtual void serializePositionGroup(DtString& toString, LuaTerrainReasoning::PositionGroup& group);
349  virtual void deserializePositionPairs(std::vector<std::pair<DtLocation3D, DtLocation3D> >& toPairs, const std::vector<DtString>& tokens, unsigned int& tokenIndex);
350  virtual void deserializeGroup(LuaTerrainReasoning::PositionGroup& toGroup, const std::vector<DtString>& tokens, unsigned int& tokenIndex);
351  virtual void deserializeGroups(std::vector<LuaTerrainReasoning::PositionGroup>& toGroups, const std::vector<DtString>& tokens, unsigned int& tokenIndex );
352  virtual void clearGroups(std::vector<LuaTerrainReasoning::PositionGroup>& groups);
353 
355  bool deserialize(const DtString&);
356  DtString objectType() const;
357 
358  boost::shared_ptr<DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJob> shared_from_this();
359  boost::shared_ptr<const DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJob> shared_from_this() const;
360 
361 
362 protected:
363 
367  const std::list<DtLocation3D>& sourceAreaVertices,
368  const std::list<DtLocation3D>& targetsAreaVertices,
369  double viewHeightMeters,
370  double hideHeightMeters,
371  double forwardBackSearchLimitMeters,
372  double sideToSideSearchLimitMeters,
373  double searchIntervalMeters,
374  double maxSlopeDegrees,
375  double positionsSpacing,
376  unsigned int positionsCount,
377  bool bDebug = false);
378 
379  void start();
380  void run(const DtAlgorithmManager& mgr = DtAlgorithmManager());
381 
383  void taskComplete();
384 
394  double myHideHight;
401  bool bMyDebug;
402 
404 
405  std::vector<LuaTerrainReasoning::PositionGroup> myPositionGroups;
406 
407  boost::shared_ptr<DtAsyncJobMapEntry> myJobEntry;
408 };
409 
411 const DtString DtLuaFindPositionGroupsInAreaUsingRidgeQueryJobType = "DtLuaFindPositionGroupsInAreaUsingRidgeQueryJob";
412 
415 {
416 public:
417 
418  static boost::shared_ptr<DtLuaFindPositionGroupsInAreaUsingRidgeQueryJob> Make(
420  const std::list<DtLocation3D>& sourceAreaVertices,
421  const std::list<DtLocation3D>& targetsAreaVertices,
422  unsigned int targetsAreaSampleCount,
423  double viewHeightMeters,
424  double hideHeightMeters,
425  double coverRangeMeters,
426  double sideToSideSearchLimitMeters,
427  double lateralSearchIntervalMeters,
428  double forwardBackSearchLimitMeters,
429  double forwardSearchIntervalMeters,
430  double maxSlopeDegrees,
431  double positionsSpacing,
432  unsigned int positionsCount,
433  bool bDebug = false);
434 
437 
440 
443  luabind::object getObject(lua_State* L, int& index, std::string& message);
444 
446  luabind::object getDebugObject(lua_State* L) { return luabind::newtable(L); }
447 
449  virtual void cancel(lua_State* L) {};
450 
451  //
453  //
454 
455  static DtAsciiSerializable* creator();
456 
457  virtual void serializePositionPairs(DtString& toString, LuaTerrainReasoning::PositionPairs& pairs);
458  virtual void serializePositionGroup(DtString& toString, LuaTerrainReasoning::PositionGroup& group);
459  virtual void deserializePositionPairs(std::vector<std::pair<DtLocation3D, DtLocation3D> >& toPairs, const std::vector<DtString>& tokens, unsigned int& tokenIndex);
460  virtual void deserializeGroup(LuaTerrainReasoning::PositionGroup& toGroup, const std::vector<DtString>& tokens, unsigned int& tokenIndex);
461  virtual void deserializeGroups(std::vector<LuaTerrainReasoning::PositionGroup>& toGroups, const std::vector<DtString>& tokens, unsigned int& tokenIndex);
462  virtual void clearGroups(std::vector<LuaTerrainReasoning::PositionGroup>& groups);
463 
465  bool deserialize(const DtString&);
466  DtString objectType() const;
467 
468  boost::shared_ptr<DtLuaFindPositionGroupsInAreaUsingRidgeQueryJob> shared_from_this();
469  boost::shared_ptr<const DtLuaFindPositionGroupsInAreaUsingRidgeQueryJob> shared_from_this() const;
470 
471 
472 protected:
473 
477  const std::list<DtLocation3D>& sourceAreaVertices,
478  const std::list<DtLocation3D>& targetsAreaVertices,
479  unsigned int targetsAreaSampleCount,
480  double viewHeightMeters,
481  double hideHeightMeters,
482  double coverRangeMeters,
483  double sideToSideSearchLimitMeters,
484  double lateralSearchIntervalMeters,
485  double forwardBackSearchLimitMeters,
486  double forwardSearchIntervalMeters,
487  double maxSlopeDegrees,
488  double positionsSpacing,
489  unsigned int positionsCount,
490  bool bDebug = false);
491 
492  void start();
493  void run(const DtAlgorithmManager& mgr = DtAlgorithmManager());
494 
496  void taskComplete();
497 
507  double myHideHight;
508  double myCoverRange;
515  bool bMyDebug;
516 
518 
519  std::vector<LuaTerrainReasoning::PositionGroup> myPositionGroups;
520 
521  boost::shared_ptr<DtAsyncJobMapEntry> myJobEntry;
522 };
523 
524 
bool bMyDebug
Definition: luaTerrainReasoningJob.h:401
bool bMyDebug
Definition: luaTerrainReasoningJob.h:515
double myHideHight
Definition: luaTerrainReasoningJob.h:507
double myForwardBackSearchLimitMeters
Definition: luaTerrainReasoningJob.h:513
DtAsyncJobStatus
State of job.
Definition: asyncJobServer.h:33
double myHideHight
Definition: luaTerrainReasoningJob.h:394
LuaTerrainReasoning::Points mySourceAreaCorners
Definition: luaTerrainReasoningJob.h:498
boost::shared_ptr< DtAsyncJobMapEntry > myJobEntry
Definition: luaTerrainReasoningJob.h:85
double myShootHeight
Definition: luaTerrainReasoningJob.h:393
virtual void cancel(lua_State *L)
Currently a no-op.
Definition: luaTerrainReasoningJob.h:145
std::vector< LuaTerrainReasoning::PositionGroup > myPositionGroups
Definition: luaTerrainReasoningJob.h:519
double myTargetHeight
Definition: luaTerrainReasoningJob.h:505
boost::shared_ptr< DtAsyncJobMapEntry > myJobEntry
Definition: luaTerrainReasoningJob.h:197
boost::shared_ptr< DtAsyncJobMapEntry > myJobEntry
Definition: luaTerrainReasoningJob.h:285
std::vector< std::pair< DtLocation3D, DtLocation3D > > myPositionPairs
Definition: luaTerrainReasoningJob.h:195
luabind::object getDebugObject(lua_State *L)
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaTerrainReasoningJob.h:233
virtual void cancel(lua_State *L)
Currently a no-op.
Definition: luaTerrainReasoningJob.h:339
const DtString DtLuaFindSinglePositionQueryJobType
Definition: luaTerrainReasoningJob.h:202
std::vector< DtLocation3D > myFoundPositionPair
Definition: luaTerrainReasoningJob.h:283
const DtString DtLuaFindPositionGroupsInAreaUsingHilltopsQueryJobType
Definition: luaTerrainReasoningJob.h:304
double mySideSideSearchLimit
Definition: luaTerrainReasoningJob.h:509
double myViewHeight
Definition: luaTerrainReasoningJob.h:275
double myHideHeight
Definition: luaTerrainReasoningJob.h:274
double myTargetHeight
Definition: luaTerrainReasoningJob.h:392
double myForwardBackSearchIntervalMeters
Definition: luaTerrainReasoningJob.h:511
double myForwardBackSearchInterval
Definition: luaTerrainReasoningJob.h:278
double myMaxSlopeDegrees
Definition: luaTerrainReasoningJob.h:279
DtLocation3D myOriginPoint
Definition: luaTerrainReasoningJob.h:185
Definition: asciiSerializable.h:38
std::list< DtLocation3D > Points
Definition: luaTerrainReasoningJob.h:115
Interface for getting asynchronously computed data into Lua.
Definition: luaAsyncJob.h:29
double myMaxSlopeDegrees
Definition: luaTerrainReasoningJob.h:398
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
DtLocation3D pivotPoint
Definition: luaTerrainReasoningJob.h:295
DtVectorOffset3D myHideVolume
Definition: luaTerrainReasoningJob.h:186
double scoreViewPctAverage
Definition: luaTerrainReasoningJob.h:297
Lua object class which represents a terrain reasoning job.
Definition: luaTerrainReasoningJob.h:205
double myMaxSlopeDegrees
Definition: luaTerrainReasoningJob.h:191
unsigned int myNumberPositionsPerGroupRequested
Definition: luaTerrainReasoningJob.h:387
virtual DtString serialize()=0
The following characters are reserved and cannot be used in serialization: &#39;|&#39;, &#39;:&#39;.
double myProminenceMeters
Definition: luaTerrainReasoningJob.h:390
Lua object class which represents a terrain reasoning job. Given an origin point, which is assumed to...
Definition: luaTerrainReasoningJob.h:112
boost::shared_ptr< DtAsyncJobMapEntry > myJobEntry
Definition: luaTerrainReasoningJob.h:407
unsigned int nMyPointsToReturn
Definition: luaTerrainReasoningJob.h:79
double myForwardBackSearchLimit
Definition: luaTerrainReasoningJob.h:277
std::vector< LuaTerrainReasoning::PositionGroup > myPositionGroups
Definition: luaTerrainReasoningJob.h:405
DtAsyncJobStatus myStatus
Definition: luaTerrainReasoningJob.h:403
virtual void cancel(lua_State *L)
Currently a no-op.
Definition: luaTerrainReasoningJob.h:449
luabind::object getDebugObject(lua_State *L)
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaTerrainReasoningJob.h:446
std::list< DtLocation3D > Points
Definition: luaTerrainReasoningJob.h:290
unsigned int myTargetsAreaSampleCount
Definition: luaTerrainReasoningJob.h:388
double myMaxSlopeDegrees
Definition: luaTerrainReasoningJob.h:512
unsigned int myNumberPositionsPerGroupRequested
Definition: luaTerrainReasoningJob.h:500
bool bMyDebug
Definition: luaTerrainReasoningJob.h:280
unsigned int myGridResolutionMeters
Definition: luaTerrainReasoningJob.h:389
VectorOffset3D is a direction vector that is relative to some direction specified by a Vector3D...
Definition: scriptGeometry.h:424
unsigned int myProminenceRangeMeters
Definition: luaTerrainReasoningJob.h:391
double myProminenceMeters
Definition: luaTerrainReasoningJob.h:503
double myTargetHeight
Definition: luaTerrainReasoningJob.h:276
bool bMyDebug
Definition: luaTerrainReasoningJob.h:80
double myPositionSpacing
Definition: luaTerrainReasoningJob.h:192
Lua object class which represents a terrain reasoning job.
Definition: luaTerrainReasoningJob.h:307
double mySideSideSearchLimit
Definition: luaTerrainReasoningJob.h:396
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
DtLocation3D myPivotPoint
Definition: luaTerrainReasoningJob.h:273
double mySideSideSearchIntervalMeters
Definition: luaTerrainReasoningJob.h:399
double myShootHeight
Definition: luaTerrainReasoningJob.h:187
const DtString DtLuaFindPositionGroupsInAreaUsingRidgeQueryJobType
Definition: luaTerrainReasoningJob.h:411
virtual luabind::object getObject(lua_State *L, int &index, std::string &message)=0
Retrieve current value.
const DtString DtLuaHilltopQueryJobType
Definition: luaTerrainReasoningJob.h:20
unsigned int myProminenceRangeMeters
Definition: luaTerrainReasoningJob.h:504
unsigned int myTargetsAreaSampleCount
Definition: luaTerrainReasoningJob.h:501
double mySideSideSearchLimit
Definition: luaTerrainReasoningJob.h:190
Points myCorners
Definition: luaTerrainReasoningJob.h:78
unsigned int myGridResolutionMeters
Definition: luaTerrainReasoningJob.h:502
LuaTerrainReasoning::Points myTargetAreaCorners
Definition: luaTerrainReasoningJob.h:499
luabind::object getDebugObject(lua_State *L)
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaTerrainReasoningJob.h:336
virtual DtString objectType() const =0
Should return the string name of this object. The object name should not be part of the serialization...
DtAsyncJobStatus myStatus
Definition: luaTerrainReasoningJob.h:82
DtAsyncJobStatus myStatus
Definition: luaTerrainReasoningJob.h:517
virtual void cancel(lua_State *L)
Currently a no-op.
Definition: luaTerrainReasoningJob.h:236
boost::shared_ptr< DtAsyncJobMapEntry > myJobEntry
Definition: luaTerrainReasoningJob.h:521
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
PositionPairs positions
Definition: luaTerrainReasoningJob.h:296
std::list< DtLocation3D > Points
Definition: luaTerrainReasoningJob.h:26
double myPositionsSpacing
Definition: luaTerrainReasoningJob.h:514
double myForwardBackSearchLimit
Definition: luaTerrainReasoningJob.h:189
DtAsyncJobStatus myStatus
Definition: luaTerrainReasoningJob.h:282
Points myTargetAreaCorners
Definition: luaTerrainReasoningJob.h:272
virtual void cancel(lua_State *L)
Currently a no-op.
Definition: luaTerrainReasoningJob.h:48
double myForwardBackSearchIntervalMeters
Definition: luaTerrainReasoningJob.h:397
double myPositionsSpacing
Definition: luaTerrainReasoningJob.h:400
LuaTerrainReasoning::Points myTargetAreaCorners
Definition: luaTerrainReasoningJob.h:386
LuaTerrainReasoning::Points mySourceAreaCorners
Definition: luaTerrainReasoningJob.h:385
bool bMyDebug
Definition: luaTerrainReasoningJob.h:199
Lua object class which represents a terrain reasoning job.
Definition: luaTerrainReasoningJob.h:414
Points myTargetAreaCorners
Definition: luaTerrainReasoningJob.h:183
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:124
DtAsyncJobStatus myStatus
Definition: luaTerrainReasoningJob.h:194
luabind::object getDebugObject(lua_State *L)
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaTerrainReasoningJob.h:45
double myCoverRange
Definition: luaTerrainReasoningJob.h:508
double scoreCoverPctAverage
Definition: luaTerrainReasoningJob.h:298
const DtString DtLuaVehicleFightingPositionQueryJobType
Definition: luaTerrainReasoningJob.h:88
double mySideSideSearchIntervalMeters
Definition: luaTerrainReasoningJob.h:510
Lua object class which represents a terrain reasoning job.
Definition: luaTerrainReasoningJob.h:23
std::list< DtLocation3D > Points
Definition: luaTerrainReasoningJob.h:208
std::vector< std::pair< DtLocation3D, DtLocation3D > > PositionPairs
Definition: luaTerrainReasoningJob.h:292
luabind::object getDebugObject(lua_State *L)
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaTerrainReasoningJob.h:142
General interface which can be passed into an algorithm to control its behavior.
Definition: algorithmManager.h:24
double myForwardBackSearchLimitMeters
Definition: luaTerrainReasoningJob.h:395
double myShootHeight
Definition: luaTerrainReasoningJob.h:506
double myTargetHeight
Definition: luaTerrainReasoningJob.h:188
std::vector< DtLocation3D > myHighPoints
Definition: luaTerrainReasoningJob.h:83
double scoreOverallPctAverage
Definition: luaTerrainReasoningJob.h:299
unsigned int nMyPointsToReturn
Definition: luaTerrainReasoningJob.h:184
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22
Definition: luaTerrainReasoningJob.h:293

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)