VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
breachDetector.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
14 
15 #pragma once
16 
21 
23 {
24 
25 public:
26 
29  DtBreachDetector(const DtString& name,
30  DtVrfObject* owner,
31  DtSimManager* simManager,
32  DtComponentDescriptor* desc = 0,
33  DtReaderWriterRegistry* parentRegistry = 0);
34 
36  virtual ~DtBreachDetector();
37 
40  virtual const char* type() const;
41 
42  virtual bool init();
43 
45  virtual void tick();
46 
50  static DtSimComponent * creator(const DtString& name,
51  DtVrfObject* owner,
52  DtSimManager* simManager,
53  DtComponentDescriptor* desc = 0,
54  DtReaderWriterRegistry* parentRegistry = 0);
55 
58  static bool checkForBreach(const DtVertexList& breachVertices,
59  const DtVrfObject* engineeringObject);
60 
61 protected:
63  virtual bool checkForBreach(DtVrfObject* breachObject);
64 
66  virtual bool checkPointBreach(DtVrfObject* breachObject) const;
67 
69  virtual bool checkLinearBreach(DtVrfObject* breachObject) const;
70 
73  virtual bool checkArealBreach(DtVrfObject* breachObject) const;
74 
77  static bool checkPointBreach(const DtVertexList& breachVertices,
78  const DtVrfObject* engineeringObject);
79 
82  static bool checkLinearBreach(const DtVertexList& breachVertices,
83  const DtVrfObject* engineeringObject);
84 
87  static bool checkArealBreach(const DtVertexList& breachVertices,
88  const DtVrfObject* engineeringObject);
89 
92  static void verticesChanged(DtVrfObject*, void*);
93  virtual void processVerticesChanged();
94 
96  virtual void updateBreachStatus();
97 
99  static void breachVerticesChanged(DtVrfObject*, void*);
100  virtual void processBreachVerticesChanged(DtVrfObject*);
101 
103  static void breachObjectAboutToBeRemoved(DtVrfObject*, void*);
104  virtual void processBreachObjectAboutToBeRemoved(DtVrfObject*);
105 
107  static void breachObjectAdded(DtVrfObject*, void*);
108  virtual void processBreachObjectAdded(DtVrfObject*);
109 
111  static void breachEffectivenessChanged(DtVrfObject*, DtVrfObjectPredicateEvaluator*,void*);
112  virtual void processBreachEffectivenessChanged(DtVrfObject*);
113 
114 protected:
117 
119  DtBreachDetector(const DtBreachDetector & orig);
120 
123  orig);
124 
125 protected:
126  std::set<DtVrfObject*> myBreachedBy;
127 
130 
131  std::set<DtVrfObject*> myNewlyEffectiveObjs;
132  std::set<DtVrfObject*> myNewlyIneffectiveObjs;
133 };

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)