VR-Forces 4.6 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:
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 
299  virtual bool objectWithinSensorGeometry(DtVrfObject* object) const;
300 
303  virtual double rangeSquaredToObject(const DtVrfObject* object) const;
304 
307  virtual double rangeToObject(const DtVrfObject* object) const;
308 
310  virtual void clearObjectRangeCache() const;
311 
313  virtual void printTargets() const;
314 
317  virtual void updateDetectedObjectListPort();
318 
320  virtual bool createAndInitSensorMonitor();
321 
323  virtual bool objectInDetectableList(DtVrfObject*) const;
324 
327  static void hostilitiesChangedCallback(DtU8 force, void* usr);
328  virtual void processHostilitiesChanged(DtU8 force);
329 
334  virtual DtTaitBryan worldOrientationOfObject(DtVrfObject* object) const;
335 
338  virtual bool canDetectForceOfObject(DtVrfObject*);
339 
342  static void setSensorEnabledRequestCallback(DtSimMessage *msg, void * usrData);
343 
346  virtual void processSetSensorEnabledRequestMessage(DtSimMessage *msg);
347 
348 protected:
349 
351 
352 
353 
354 
355 
356 
357 
359 
369 
370 
371 
376 
384 
394 
402 
410 
418 
426 
428 
431 
435 
440 
442  DtForceType myForceType;
443 
454 
457 
460 };
461 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)