VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectSensor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
8 
11 
12 #pragma once
13 
19 
23 class DtObjectSensorPSR;
28 class DtObjectType;
31 class DtVectorInputPort;
32 class DtInputPortGroup;
33 class DtStringInputPort;
34 class DtBooleanInputPort;
35 class DtIntegerInputPort;
36 
51 {
52 private:
55 
58  orig);
59 
61  const DtObjectSensor & operator=(const
62  DtObjectSensor & orig);
63 
64 public:
65 
67  {
68  DetectionLost = 0,
69  DetectionContinued = 1,
70  DetectionMissed = 2,
71  };
72 
74 
77  DtObjectSensor(const DtString& name,
78  DtVrfObject* owner,
79  DtSimManager* simManager,
80  DtComponentDescriptor* desc = 0,
81  DtReaderWriterRegistry* parentRegistry = 0);
82 
84  virtual ~DtObjectSensor();
85 
90  virtual bool init();
91 
96  virtual bool postAddComponentsInit();
97 
100  virtual void preFirstTickInit();
101 
104  virtual const char* type() const;
105 
114  virtual void tick();
115 
120  virtual bool tickWhileDestroyed() const;
121 
125  virtual int sensorType() const;
126 
131  virtual void disable();
132  virtual void setIsEnabled(bool yesNo);
134 
140  virtual void setTypesToDetectForTask(const DtRwObjectTypeList& objectTypes);
141 
143  virtual void clearTypesToDetectForTask();
144 
146  virtual const DtRwObjectTypeList& typesToDetectForTask() const;
148 
157  static bool setTypesToDetectAttribute(void* ctrlr, DtReaderWriter* val);
158  virtual bool setTypesToDetectAttribute(DtReaderWriter* val);
160 
164  static bool clearTypesToDetect(void* ctrlr, DtReaderWriter* val);
165  virtual bool clearTypesToDetect(DtReaderWriter* val);
168 
170  virtual void setSensorEnabled(bool enabled);
171 
173  virtual bool sensorEnabled() const;
174 
178  static DtSimComponent * creator(const DtString& name,
179  DtVrfObject* owner,
180  DtSimManager* simManager,
181  DtComponentDescriptor* desc = 0,
182  DtReaderWriterRegistry* parentRegistry = 0);
183 
184 protected:
185 
187  virtual bool createPortGroups();
188 
190  virtual bool createPorts();
191 
197  virtual DtObjectSensorPSR* createPSR();
198 
202  virtual const char* defaultPSRType() const;
203 
207  virtual void initSensorRangeRing();
208 
215  virtual void updateDetectableObjectsList();
216 
221 
222 
223  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
224  const DtNLengthIntegerVector& forceTypes);
226  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
227  const std::list<DtU8>& forceTypes);
229 
233  virtual bool initSensorGeometry();
234 
238  virtual void setupGeometryForDetection();
239 
243  virtual DtVector localSensorPosition() const;
244 
248  virtual DtVector bodySensorPosition() const;
249 
253  virtual DtTaitBryan localSensorOrientation() const;
254 
258  virtual DtTaitBryan bodySensorOrientation() const;
259 
262  virtual DtUUID targetObject() const;
263 
266  virtual DtVector targetLocation() const;
267 
270  virtual DtSensorTrackingMode trackingMode() const;
271 
278  virtual bool processObjects();
279 
288  virtual bool detectObject(DtVrfObject* object,
289  DtRwSensorContactInfo* contactInfo);
290 
301  virtual ContinueDetectingResult continueDetectingObject(DtVrfObject* object,
302  DtRwSensorContactInfo* contactInfo, bool& contactInfoModified);
303 
307  virtual bool objectWithinSensorGeometry(DtVrfObject* object) const;
308 
311  virtual double rangeSquaredToObject(const DtVrfObject* object) const;
312 
315  virtual double rangeToObject(const DtVrfObject* object) const;
316 
318  virtual void clearObjectRangeCache() const;
319 
321  virtual void printTargets() const;
322 
325  virtual void updateDetectedObjectListPort();
326 
328  virtual bool createAndInitSensorMonitor();
329 
331  virtual bool objectInDetectableList(DtVrfObject*) const;
332 
335  static void hostilitiesChangedCallback(DtU8 force, void* usr);
336  virtual void processHostilitiesChanged(DtU8 force);
337 
342  virtual DtTaitBryan worldOrientationOfObject(DtVrfObject* object) const;
343 
346  virtual bool canDetectForceOfObject(DtVrfObject*);
347 
350  static void setSensorEnabledRequestCallback(DtSimMessage *msg, void * usrData);
351 
354  virtual void processSetSensorEnabledRequestMessage(DtSimMessage *msg);
355 
356 protected:
357 
359 
360 
361 
362 
363 
364 
365 
367 
377 
378 
379 
384 
392 
402 
410 
418 
426 
434 
436 
439 
443 
448 
450  DtForceType myForceType;
451 
462 
465 
467 };
468 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)