VR-Forces 4.3.1 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 
48 {
49 private:
52 
55  orig);
56 
58  const DtObjectSensor & operator=(const
59  DtObjectSensor & orig);
60 
61 public:
62 
65  DtObjectSensor(const DtString& name,
66  DtVrfObject* owner,
67  DtSimManager* simManager,
68  DtComponentDescriptor* desc = 0,
69  DtReaderWriterRegistry* parentRegistry = 0);
70 
72  virtual ~DtObjectSensor();
73 
78  virtual bool init();
79 
84  virtual bool postAddComponentsInit();
85 
88  virtual void preFirstTickInit();
89 
92  virtual DtString type() const;
93 
96  virtual void parallelTick();
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 
161 
162 
166  static DtSimComponent * creator(const DtString& name,
167  DtVrfObject* owner,
168  DtSimManager* simManager,
169  DtComponentDescriptor* desc = 0,
170  DtReaderWriterRegistry* parentRegistry = 0);
171 
172 protected:
173 
175  virtual bool createPortGroups();
176 
178  virtual bool createPorts();
179 
185  virtual DtObjectSensorPSR* createPSR();
186 
190  virtual const char* defaultPSRType() const;
191 
195  virtual void initSensorRangeRing();
196 
203  virtual void updateDetectableObjectsList();
204 
209 
210 
211  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
212  const DtNLengthIntegerVector& forceTypes);
214  DtCompositePredicate objectTypeForcePredicate(const DtObjectType&,
215  const std::list<DtU8>& forceTypes);
217 
221  virtual bool initSensorGeometry();
222 
226  virtual void setupGeometryForDetection();
227 
231  virtual DtVector localSensorPosition() const;
232 
236  virtual DtTaitBryan localSensorOrientation() const;
237 
244  virtual bool processObjects();
245 
254  virtual bool detectObject(DtVrfObject* object,
255  DtRwSensorContactInfo* contactInfo);
256 
267  virtual bool continueDetectingObject(DtVrfObject* object,
268  DtRwSensorContactInfo* contactInfo, bool& contactInfoModified);
269 
272  virtual bool objectWithinSensorGeometry(DtVrfObject* object) const;
273 
276  virtual double rangeSquaredToObject(const DtVrfObject* object) const;
277 
280  virtual double rangeToObject(const DtVrfObject* object) const;
281 
283  virtual void clearObjectRangeCache() const;
284 
286  virtual void printTargets() const;
287 
290  virtual void updateDetectedObjectListPort();
291 
293  virtual bool createAndInitSensorMonitor();
294 
296  virtual bool objectInDetectableList(DtVrfObject*) const;
297 
300  static void hostilitiesChangedCallback(DtU8 force, void* usr);
301  virtual void processHostilitiesChanged(DtU8 force);
302 
307  virtual DtTaitBryan worldOrientationOfObject(DtVrfObject* object) const;
308 
309 protected:
310 
312 
313 
314 
315 
316 
317 
318 
319 
330 
331 
332 
337 
345 
355 
357 
360 
364 
369 
371  DtForceType myForceType;
372 
383 
386 
389 };
390 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)