VR-Forces 4.5 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 
9 
10 
11 #pragma once
12 
17 
24 {
25 
26 public:
27 
30  DtBreachDetector(const DtString& name,
31  DtVrfObject* owner,
32  DtSimManager* simManager,
33  DtComponentDescriptor* desc = 0,
34  DtReaderWriterRegistry* parentRegistry = 0);
35 
37  virtual ~DtBreachDetector();
38 
41  virtual const char* type() const;
42 
43  virtual bool init();
44 
46  virtual void tick();
47 
51  static DtSimComponent * creator(const DtString& name,
52  DtVrfObject* owner,
53  DtSimManager* simManager,
54  DtComponentDescriptor* desc = 0,
55  DtReaderWriterRegistry* parentRegistry = 0);
56 
59  static bool checkForBreach(const DtVertexList& breachVertices,
60  const DtVrfObject* engineeringObject);
61 
62 protected:
64  virtual bool checkForBreach(DtVrfObject* breachObject);
65 
67  virtual bool checkPointBreach(DtVrfObject* breachObject) const;
68 
70  virtual bool checkLinearBreach(DtVrfObject* breachObject) const;
71 
74  virtual bool checkArealBreach(DtVrfObject* breachObject) const;
75 
78  static bool checkPointBreach(const DtVertexList& breachVertices,
79  const DtVrfObject* engineeringObject);
80 
83  static bool checkLinearBreach(const DtVertexList& breachVertices,
84  const DtVrfObject* engineeringObject);
85 
88  static bool checkArealBreach(const DtVertexList& breachVertices,
89  const DtVrfObject* engineeringObject);
90 
93  static void verticesChanged(DtVrfObject*, void*);
94  virtual void processVerticesChanged();
95 
97  virtual void updateBreachStatus();
98 
100  static void breachVerticesChanged(DtVrfObject*, void*);
101  virtual void processBreachVerticesChanged(DtVrfObject*);
102 
104  static void breachObjectAboutToBeRemoved(DtVrfObject*, void*);
105  virtual void processBreachObjectAboutToBeRemoved(DtVrfObject*);
106 
108  static void breachObjectAdded(DtVrfObject*, void*);
109  virtual void processBreachObjectAdded(DtVrfObject*);
110 
112  static void breachEffectivenessChanged(DtVrfObject*, DtVrfObjectPredicateEvaluator*,void*);
113  virtual void processBreachEffectivenessChanged(DtVrfObject*);
114 
115 protected:
118 
120  DtBreachDetector(const DtBreachDetector & orig);
121 
124  orig);
125 
126 protected:
127  std::set<DtVrfObject*> myBreachedBy;
128 
131 
132  std::set<DtVrfObject*> myFirstTimeEffectiveObjs;
133  std::set<DtVrfObject*> myNewlyEffectiveObjs;
134  std::set<DtVrfObject*> myNewlyIneffectiveObjs;
135 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)