VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptVrfObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 
10 #include "vrfobjcore/vrfObject.h"
11 #include <vrfutil/rwUUID.h>
12 #include <vrfutil/scriptGeometry.h>
13 #include <string>
15 #include <vrfutil/objectCounter.h>
16 #include "vrfcore/simManager.h"
17 #include <stdexcept>
18 #include <vrfutil/rwUUID.h>
19 
21 class DtFireContext;
23 
25  : public DtAsciiSerializable
26  , public DtObjectDebugger<DtScriptVrfObject>
27 {
28 public:
29  DtScriptVrfObject(const DtUUID& name, const DtVrfObject* const vrfObject);
30  DtScriptVrfObject(const DtUUID& name, const DtSimManager* simManager,
31  const DtVrfObject* const vrfObject);
33 
34  DtScriptVrfObject& operator=(const DtScriptVrfObject &orig);
35 
37 
38  bool operator==(const DtScriptVrfObject& orig);
39 
42 
44  virtual DtLocation3D getLocation3D() const;
45 
47  virtual double getSpeed() const;
48 
50  virtual std::string getUUID() const;
51 
58  virtual DtVector3D getDirection3D() const;
59 
62  virtual DtVector3D getVelocity3D() const;
64 
67  virtual double getHeightAboveTerrain(bool& available) const;
68 
73  virtual bool hasLosToObject(const DtScriptVrfObject &target,
74  bool & dataAvailable) const;
75 
83  virtual bool isPointInside(const DtLocation3D &point) const;
84 
86  virtual bool independentlyTasked() const;
87 
92  virtual bool hasLosToLocation(DtLocation3D &targetLoc,
93  bool &dataAvailable) const;
94 
96  virtual std::string getEntityType() const;
97 
100  virtual bool isAggregate() const;
101 
104  virtual bool isPseudoAggregate() const;
105 
108  virtual std::string getEchelonLevel() const;
109 
111  virtual std::string getForceType() const;
112 
114  virtual int getForceEnumeration() const;
115 
118  virtual bool getNavigationEnabled() const;
120 
126  virtual std::string getDamageState() const;
127 
129  virtual unsigned getLifeformPosture() const;
130 
132  virtual unsigned getAppearance() const;
133 
135  virtual bool isDestroyed() const;
136 
138  virtual bool isFirePowerKilled() const;
139 
141  virtual bool isMobilityKilled() const;
142 
144  virtual bool isSensorKilled() const;
145 
147  virtual bool isInvisible() const;
148 
150  virtual bool isEmbarked() const;
151 
153  virtual void attachToParent(DtScriptVrfObject&) const;
154 
157  virtual bool isOnTopOf(DtScriptVrfObject&) const;
158  virtual bool isOnTopOfWithDistance(DtScriptVrfObject&, double) const;
159 
161  virtual DtScriptVrfObject getEmbarkedOn() const;
162 
163  virtual std::list<DtScriptVrfObject> getEmbarkedObjects(void)const;
164 
165  virtual DtVectorOffset3D getOffsetFromParent() const;
166 
167  virtual DtVectorOffset3D getOffsetOfLocation(const DtLocation3D& location) const;
168 
170  virtual std::list<DtScriptVrfObject> getSubordinates(void) const;
171 
173  virtual std::list<DtScriptVrfObject> getVrfSubordinates(bool isVrf) const;
174 
176  virtual DtScriptVrfObject getSuperior() const;
177 
179  virtual double recalculatePhysicalFootprintFromSubordinates(const std::list<DtScriptVrfObject>&) const;
180 
184  virtual DtVectorOffset3D getPartParentPosition(int) const;
185  virtual DtLocation3D getPartWorldPosition(int) const;
186  virtual double getPartPitch(int) const;
187  virtual double getPartPitchIncludingParent(int, bool includeParent = false) const;
188  virtual double getPartHeading(int) const;
189  virtual double getPartHeadingIncludingParent(int, bool includeParent = false) const;
190  virtual double getPartTranslationForward(int) const;
191  virtual double getPartTranslationRight(int) const;
192  virtual double getPartTranslationUp(int) const;
194 
198  virtual std::list<DtScriptVrfObject> getAllSubordinates(void) const;
199 
200  virtual std::list<DtScriptVrfObject> getAllVrfSubordinates(bool isVrf) const;
201 
202  virtual std::list<DtScriptVrfObject> getCapableSubordinates(void) const;
203  virtual std::list<DtScriptVrfObject> getCapableVrfSubordinates(bool isVrf) const;
204 
206  virtual bool isVrfSimulated() const;
207 
208  virtual std::list<DtLocation3D> getLocations3D(void)const;
209 
210  virtual std::string getName() const;
211  virtual std::string getLabel() const;
212  virtual std::string getExtendedLabel(int) const;
213  virtual std::string getGlobalId() const;
214  virtual std::string getObjectId() const;
215 
216  virtual double getHeading() const;
217  virtual double getPitch() const;
218  virtual double getRoll() const;
219 
220  virtual double getDraft() const;
221 
223  void terrainSurfaceDebug();
224 
226  void deleteObject();
227 
229  bool isDeleted() const;
230  virtual bool isValid() const;
231 
233  virtual bool isLocal() const;
234 
236  virtual DtVectorOffset3D getBoundingVolume(DtVectorOffset3D& offset) const;
237 
240  virtual std::string getNbcDamage(int& dmgPerSec, int& moppLvl) const;
241 
243  virtual std::string getNbcAgent() const;
244 
246  virtual bool isBreached() const;
247 
249  virtual std::string getExtendedData(const std::string& key) const;
250 
253  virtual DtLocation3D getClosestPointToLocation2D(const DtLocation3D& location,
254  double& distance) const;
255 
259  virtual DtLocation3D getIntersectionPointWithLine2D(const DtLocation3D& point1,
260  const DtLocation3D& point2, bool& hasIntersection) const;
261 
263  virtual bool isActive() const;
264 
270  bool hasStateProperty(const std::string& propertyName);
271  bool hasParameterProperty(const std::string& propertyName);
273 
275  virtual std::string getDiGuyHandItem() const;
276 
278 
279  //\return True if the specified DI-Guy animation name is available for this object.
280  virtual bool isAnimationAvailable(const std::string& animationName) const;
281 
282  //\return True if the specified DI-Guy appearance name is available for this object.
283  virtual bool isAppearanceAvailable(const std::string& appearanceName) const;
284 
285  //\return True if the specified DI-Guy hand item name is available for this object.
286  virtual bool isHandItemAvailable(const std::string& handItemName) const;
287 
288  //\return True if the specified DI-Guy head name is available for this object.
289  virtual bool isHeadAvailable(const std::string& headName) const;
290 
291  //\return True if the specified DI-Guy gesture name is available for this object.
292  virtual bool isGestureAvailable(const std::string& gestureName) const;
293 
294  //\return The time of animation to run (in seconds). If not available will return 0
295  virtual double animationDuration(const std::string& animationName) const;
296 
297  //\return The speed of animation. If not available will return 0
298  virtual double animationSpeed(const std::string& animationName) const;
299 
300  //\return The duration of the transition motion from the first animation to the second,
302  virtual double getAnimationTransitionInfo(const std::string& fromAnimation, const std::string& toAnimation,
303  DtVectorOffset3D& deltaPos, double& deltaHeading) const;
304 
306  virtual boost::shared_ptr<DtScriptComponentSystem> lookupSystem(const std::string& systemName);
307 
309  virtual std::list<std::string> getSystemNames();
310 
313  virtual std::string getSystemCategory(const std::string& systemName);
314 
316  virtual std::list<std::string> getFormationNames();
317 
319  virtual std::list<DtVectorOffset3D> getFormationPositions(const std::string& formationName);
320 
322 
324  virtual void setSimManager(DtSimManager* simManager);
325 
326  virtual DtString objectType() const;
327 
330 
333  bool deserialize(const DtString& data);
334 
336  static DtAsciiSerializable* creator();
337 
340  const DtVrfObject* vrfObject() const { return myObjectDeletionHandle->object(); }
341 
343  void testValid() const;
344 
347  {
348  return DtScriptVrfObject(DtUUID::nullUUID(), 0);
349  }
350 
351 protected:
355 };
356 
358 
359 DT_DLL_vrfobjcore std::ostream& operator<<(std::ostream&, const DtScriptVrfObject&);
360 
365  : public DtScriptVrfObject
366  , public DtObjectDebugger<DtScriptOwnshipObject>
367 {
368 public:
369  DtScriptOwnshipObject(const DtUUID& name, DtVrfObject* const vrfObject);
370  DtScriptOwnshipObject(const DtUUID& name, DtSimManager* simManager,
371  DtVrfObject* const vrfobject);
374 
377 
378  void setLocation3D(const DtLocation3D &newloc);
379  void setHeading(const double heading);
380  void setPitch(const double heading);
381 
382  virtual void setLabel(const std::string&);
383  virtual void setExtendedLabel(int, const std::string&);
384  virtual void setNavigationEnabled(bool);
385 
387  DtVrfObject* ownshipObject();
388 
389  virtual std::list<std::string> getResourceNames(void)const;
390 
398  virtual double getResourceAmounts(const std::string& resourceName, double* fullAmount) const;
399 
401  virtual void depleteResource(const std::string& resourceName, double amount);
402 
404  virtual void replenishResource(const std::string& resourceName, double amount);
405 
407  virtual int getNotifyLevel() const;
408 
411  virtual std::string getMunitionType(const std::string& resourceName);
412 
416  virtual bool addResource(const std::string& resourceType, const std::string& resourceName,
417  double currentAmount, double fullAmount);
418 
421  virtual void updateStateAndParameterProperties();
422 
424  virtual void removeResource(const std::string& resourceName);
425 
427  virtual bool isUnderFire() const;
428 
432  virtual int suppressionLevel() const;
433 
435  virtual std::string nonLethalDamageEffect() const;
436 
439  virtual std::list<DtScriptVrfObject> getObservedHostileContacts(void);
440 
445  virtual std::list<DtScriptVrfObject> getAllHostileContacts(void);
446 
450  virtual std::list<DtScriptVrfObject> getAllContacts(void);
451 
455  virtual int targetPriority(const DtScriptVrfObject & otherEntity);
456 
459  virtual bool registerDetonationInterest(double range,
460  const std::string& munitionType);
461 
464  virtual bool registerFireInterest(double range,
465  const std::string& munitionType);
466 
471  virtual bool getLastDetonation(std::string& munitionType, DtLocation3D& location);
472 
477  virtual bool getLastFire(std::string& munitionType, DtLocation3D& location);
478 
481  virtual void setDestroyed(bool destroyed);
482 
484  virtual std::string getRulesOfEngagement();
485 
487  virtual void setRulesOfEngagement(const std::string& rule);
488 
490  virtual std::list<std::string> embeddedEntityNames();
491 
494  virtual std::list<std::string> embeddedEntitiesOfType(std::string typeString);
495 
498  virtual std::list<std::string> embeddedEntitiesCapableOf(std::string taskSetName);
499 
503  virtual DtScriptVrfObject simObjectByEmbeddedEntityName(std::string eeName);
504 
508  virtual std::string embeddedEntityStatus(std::string eeName);
509 
521  virtual double normalizedSensorSignature(const DtScriptVrfObject & targetEntity,
522  std::string domain);
523 
528  virtual void changeAttachment(const std::string& parentUUID );
529 
531  virtual void setExtendedData(const std::string& key, const std::string& val);
532 
534  virtual bool canFireAt(const DtLocation3D& location);
535 
538 
539 protected:
540 
543  static bool processDetonation(const DtDetonationContext& detonationContext, void* usr);
544  bool processDetonation(const DtDetonationContext& detonationContext);
546 
549  static bool processFire(const DtFireContext& fireContext, void* usr);
550  bool processFire(const DtFireContext& fireContext);
552 
555 
558 
560  std::string myLastFireMunition;
561 
564 
566  std::map<std::string, DtScriptComponentSystem*> myScriptComponentSystems;
567 };
568 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
std::string myLastFireMunition
The munition type of the last fire.
Definition: scriptVrfObject.h:560
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
const DtSimManager * mySimManager
Definition: scriptVrfObject.h:353
DtVrfObjectDeletionHandle myObjectDeletionHandle
Definition: scriptVrfObject.h:354
std::string myLastDetonationMunition
The munition type of the last detonation.
Definition: scriptVrfObject.h:554
Definition: asciiSerializable.h:33
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
#define DT_DEFINE_OBJECT_DEBUGGER_NAME(type)
Definition: objectCounter.h:265
Default on in debug, off in release.
Definition: objectCounter.h:31
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
virtual DtString serialize()=0
The following characters are reserved and cannot be used in serialization: &#39;|&#39;, &#39;:&#39;.
The DtFireContext class exists to contain all the relevent information necessary for an entity to pro...
Definition: fireContext.h:23
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
! VectorOffset3D is a direction vector that is relative to some direction specified by a Vector3D...
Definition: scriptGeometry.h:416
const DtVrfObject * vrfObject() const
For use by C++ side methods.
Definition: scriptVrfObject.h:340
static const DtUUID & nullUUID()
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
The DtDetonationContext contains all the information necessary for processing a Detonation Interactio...
Definition: detonationContext.h:27
boost::shared_ptr< DtVrfObjectDeletionTracker > DtVrfObjectDeletionHandle
Definition: vrfObject.h:146
virtual DtString objectType() const =0
Should return the string name of this object.
! DtVector3D is a vector in earth-relative coordinates, e.g.
Definition: scriptGeometry.h:155
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
The &quot;this&quot; version is the own-ship object.
Definition: scriptVrfObject.h:364
This class is a wrapper for a DtCompSystem for use by scripts.
Definition: scriptComponentSystem.h:19
voidpf uLong offset
Definition: ioapi.h:42
std::map< std::string, DtScriptComponentSystem * > myScriptComponentSystems
List of systems which we have previously looked up, by name.
Definition: scriptVrfObject.h:566
static DtScriptVrfObject nullObject()
Returns a null object.
Definition: scriptVrfObject.h:346
DtLocation3D myLastFireLocation
The location of the last fire.
Definition: scriptVrfObject.h:563
DtRwUUID myUUID
Definition: scriptVrfObject.h:352
DtLocation3D myLastDetonationLocation
The location of the last detonation.
Definition: scriptVrfObject.h:557
Definition: scriptVrfObject.h:24
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)