VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCollisionResponder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2020 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
14 #include <vrvCore/DtUniqueID.h>
15 
16 #include <map>
17 #include <list>
18 
19 #include <matrix/geodeticCoord.h>
20 #include <matrix/vlTaitBryan.h>
21 #include <matrix/vlVector.h>
22 
23 #include <vrvUtil/signalslib.h>
24 
25 class CigiBaseCollDetSegDef;
26 class CigiCollDetSegDefV3;
27 class CigiCollDetSegDefV4;
28 
29 namespace makVrv
30 {
31  class DtCigiConnection;
32 
55  {
56  public:
58 
61  {
62  unsigned int segmentID;
67  };
68 
70  {
71  Entity = 0,
72  NonEntity
73  };
74 
77  {
78  unsigned int segmentID;
84  };
85 
87  virtual ~DtCollisionResponder();
88 
90  boost::signalslib::signal<void( DtCollisionSegmentDefinitionData* )> signal_collisionSegmentCheckRequest;
91 
96  virtual void processCollisionDetectionSegmentDefinitions();
97 
101  void enableCollisionSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
102  void disableCollisionSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
103 
106  void deleteSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
107 
110  virtual void generateCollisionSegmentResponse( DtCollisionSegmentResponseData& collResponse );
111  protected:
113  DtCollisionResponder( DtCigiConnection& connection );
114 
117  void processCollisionDetectionSegmentDefinition( CigiBaseCollDetSegDef& collSegReq );
118 
122  void processCollDetSegDefReqV3( CigiCollDetSegDefV3& collDetDef );
123 
127  void processCollDetSegDefReqV4( CigiCollDetSegDefV4& collDetDef );
128 
131  void sendCollisionDetectionSegmentDefinition( DtCollisionSegmentDefinitionData& collSegData );
132 
133  private:
135  DtCollisionResponder& operator=( const DtCollisionResponder& orig );
136 
139 
140  protected:
142 
146  std::map<unsigned int, DtCollisionSegmentDefinitionData> myCollisionSegmentDefinitions;
147  };
148 
151  {
152  public:
155 
157  virtual ~DtCollisionResponderCreator();
158 
160  static DtCollisionResponderCreator& instance( DtDe& de );
161 
163  static DtCollisionResponderCreator& instance( DtCigiConnection& con );
164 
166  virtual DtCollisionResponderCreator* clone();
167 
169  static void copyInstance( DtCigiConnection& con, DtDe& de );
170 
172  virtual DtCollisionResponder* create( DtCigiConnection& connection ) const;
173  protected:
174  };
175 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< unsigned int, DtCollisionSegmentDefinitionData > myCollisionSegmentDefinitions
Map for Collision Detection Segment Definitions CigiConnection calls processCollisionDetectionSegment...
Definition: DtCollisionResponder.h:146
CollisionTypeEnum
Definition: DtCollisionResponder.h:69
float intersectionDistance
Definition: DtCollisionResponder.h:83
DtVector startpoint
Definition: DtCollisionResponder.h:65
DtUniqueID entityID
Definition: DtCollisionResponder.h:64
Contains DLL export macros.
unsigned int segmentID
Definition: DtCollisionResponder.h:62
Struct for Cigi Collision Request Data.
Definition: DtCollisionResponder.h:60
Contains makVrv::DtVirtualBaseClass class.
Struct for Collision Response Data.
Definition: DtCollisionResponder.h:76
DtCigiConnection & myConnection
Definition: DtCollisionResponder.h:141
boost::signalslib::signal< void(DtCollisionSegmentDefinitionData *)> signal_collisionSegmentCheckRequest
Signal to Intersection Handler.
Definition: DtCollisionResponder.h:90
DtVector endpoint
Definition: DtCollisionResponder.h:66
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:57
This class handles the processing of Collision Segment Defintion packets It catches signals from DtCi...
Definition: DtCollisionResponder.h:54
DtUniqueID entityContactedID
Definition: DtCollisionResponder.h:80
CollisionTypeEnum collisionType
Definition: DtCollisionResponder.h:82
Contains makVrv::DtUniqueID type.
Definition: vrfObjectManipulationHandlerBaseClass.h:56
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtUniqueID requestingEntityID
Definition: DtCollisionResponder.h:79
unsigned int segmentID
Definition: DtCollisionResponder.h:78
Creator class for the DtCollisionResponder.
Definition: DtCollisionResponder.h:150
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
bool segmentEnable
Definition: DtCollisionResponder.h:63
std::string entityContactedConnectionID
Definition: DtCollisionResponder.h:81

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)