VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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:
66 
69  DtObjectSensor(const DtString& name,
70  DtVrfObject* owner,
71  DtSimManager* simManager,
72  DtComponentDescriptor* desc = 0,
73  DtReaderWriterRegistry* parentRegistry = 0);
74 
76  virtual ~DtObjectSensor();
77 
82  virtual bool init();
83 
88  virtual bool postAddComponentsInit();
89 
92  virtual void preFirstTickInit();
93 
96  virtual const char* type() const;
97 
106  virtual void tick();
107 
112  virtual bool tickWhileDestroyed() const;
113 
117  virtual int sensorType() const;
118 
123  virtual void disable();
124  virtual void setIsEnabled(bool yesNo);
126 
132  virtual void setTypesToDetectForTask(const DtRwObjectTypeList& objectTypes);
133 
135  virtual void clearTypesToDetectForTask();
136 
138  virtual const DtRwObjectTypeList& typesToDetectForTask() const;
140 
149  static bool setTypesToDetectAttribute(void* ctrlr, DtReaderWriter* val);
150  virtual bool setTypesToDetectAttribute(DtReaderWriter* val);
152 
156  static bool clearTypesToDetect(void* ctrlr, DtReaderWriter* val);
157  virtual bool clearTypesToDetect(DtReaderWriter* val);
160 
162  virtual void setSensorEnabled(bool enabled);
163 
165  virtual bool sensorEnabled() const;
166 
170  static DtSimComponent * creator(const DtString& name,
171  DtVrfObject* owner,
172  DtSimManager* simManager,
173  DtComponentDescriptor* desc = 0,
174  DtReaderWriterRegistry* parentRegistry = 0);
175 
176 protected:
177 
179  virtual bool createPortGroups();
180 
182  virtual bool createPorts();
183 
189  virtual DtObjectSensorPSR* createPSR();
190 
194  virtual const char* defaultPSRType() const;
195 
199  virtual void initSensorRangeRing();
200 
207  virtual void updateDetectableObjectsList();
208 
213 
214 
215  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
216  const DtNLengthIntegerVector& forceTypes);
218  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
219  const std::list<DtU8>& forceTypes);
221 
225  virtual bool initSensorGeometry();
226 
230  virtual void setupGeometryForDetection();
231 
235  virtual DtVector localSensorPosition() const;
236 
240  virtual DtVector bodySensorPosition() const;
241 
245  virtual DtTaitBryan localSensorOrientation() const;
246 
250  virtual DtTaitBryan bodySensorOrientation() const;
251 
254  virtual DtUUID targetObject() const;
255 
258  virtual DtVector targetLocation() const;
259 
262  virtual DtSensorTrackingMode trackingMode() const;
263 
270  virtual bool processObjects();
271 
280  virtual bool detectObject(DtVrfObject* object,
281  DtRwSensorContactInfo* contactInfo);
282 
293  virtual bool continueDetectingObject(DtVrfObject* object,
294  DtRwSensorContactInfo* contactInfo, bool& contactInfoModified);
295 
298  virtual bool objectWithinSensorGeometry(DtVrfObject* object) const;
299 
302  virtual double rangeSquaredToObject(const DtVrfObject* object) const;
303 
306  virtual double rangeToObject(const DtVrfObject* object) const;
307 
309  virtual void clearObjectRangeCache() const;
310 
312  virtual void printTargets() const;
313 
316  virtual void updateDetectedObjectListPort();
317 
319  virtual bool createAndInitSensorMonitor();
320 
322  virtual bool objectInDetectableList(DtVrfObject*) const;
323 
326  static void hostilitiesChangedCallback(DtU8 force, void* usr);
327  virtual void processHostilitiesChanged(DtU8 force);
328 
333  virtual DtTaitBryan worldOrientationOfObject(DtVrfObject* object) const;
334 
337  virtual bool canDetectForceOfObject(DtVrfObject*);
338 
341  static void setSensorEnabledRequestCallback(DtSimMessage *msg, void * usrData);
342 
345  virtual void processSetSensorEnabledRequestMessage(DtSimMessage *msg);
346 
347 protected:
348 
350 
351 
352 
353 
354 
355 
356 
358 
368 
369 
370 
375 
383 
393 
401 
409 
417 
425 
427 
430 
434 
439 
441  DtForceType myForceType;
442 
453 
456 
459 };
460 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)