VR-Forces 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) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 #include <vrvCore/DtUniqueID.h>
14 
17 
18 #include <map>
19 #include <list>
20 
21 #include <matrix/geodeticCoord.h>
22 #include <matrix/vlTaitBryan.h>
23 #include <matrix/vlVector.h>
24 
25 #include <vrvUtil/signalslib.h>
26 
27 class CigiBaseCollDetSegDef;
28 class CigiCollDetSegDefV3;
29 class CigiCollDetSegDefV4;
30 
31 namespace makVrv
32 {
33  class DtCigiConnection;
34 
57  {
58  public:
60 
63  {
64  unsigned int segmentID;
69  };
70 
72  {
73  Entity = 0,
74  NonEntity
75  };
76 
79  {
80  unsigned int segmentID;
86  };
87 
89  virtual ~DtCollisionResponder();
90 
92  vrvSignalsLib::signal<void( DtCollisionSegmentDefinitionData* )> signal_collisionSegmentCheckRequest;
93 
98  virtual void processCollisionDetectionSegmentDefinitions();
99 
103  void enableCollisionSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
104  void disableCollisionSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
105 
108  void deleteSegmentDefinitions( const std::list<unsigned int>& segmentIdList );
109 
112  virtual void generateCollisionSegmentResponse( DtCollisionSegmentResponseData& collResponse );
113  protected:
115  DtCollisionResponder( DtCigiConnection& connection );
116 
119  void processCollisionDetectionSegmentDefinition( CigiBaseCollDetSegDef& collSegReq );
120 
124  void processCollDetSegDefReqV3( CigiCollDetSegDefV3& collDetDef );
125 
129  void processCollDetSegDefReqV4( CigiCollDetSegDefV4& collDetDef );
130 
133  void sendCollisionDetectionSegmentDefinition( DtCollisionSegmentDefinitionData& collSegData );
134 
135  private:
137  DtCollisionResponder& operator=( const DtCollisionResponder& orig );
138 
141 
142  protected:
144 
148  std::map<unsigned int, DtCollisionSegmentDefinitionData> myCollisionSegmentDefinitions;
149 
151  };
152 
155  {
156  public:
159 
161  virtual ~DtCollisionResponderCreator();
162 
164  static DtCollisionResponderCreator& instance( DtDe& de );
165 
167  static DtCollisionResponderCreator& instance( DtCigiConnection& con );
168 
170  virtual DtCollisionResponderCreator* clone();
171 
173  static void copyInstance( DtCigiConnection& con, DtDe& de );
174 
176  virtual DtCollisionResponder* create( DtCigiConnection& connection ) const;
177  protected:
178  };
179 }
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:148
CollisionTypeEnum
Definition: DtCollisionResponder.h:71
float intersectionDistance
Definition: DtCollisionResponder.h:85
DtVector startpoint
Definition: DtCollisionResponder.h:67
DtUniqueID entityID
Definition: DtCollisionResponder.h:66
Contains DLL export macros.
unsigned int segmentID
Definition: DtCollisionResponder.h:64
Struct for Cigi Collision Request Data.
Definition: DtCollisionResponder.h:62
DtSignalConnectionManager myConnections
Definition: DtCollisionResponder.h:150
Contains makVrv::DtVirtualBaseClass class.
Struct for Collision Response Data.
Definition: DtCollisionResponder.h:78
DtCigiConnection & myConnection
Definition: DtCollisionResponder.h:143
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtVector endpoint
Definition: DtCollisionResponder.h:68
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:57
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
This class handles the processing of Collision Segment Defintion packets It catches signals from DtCi...
Definition: DtCollisionResponder.h:56
DtUniqueID entityContactedID
Definition: DtCollisionResponder.h:82
Base class to provide boost signal/slot management.
vrvSignalsLib::signal< void(DtCollisionSegmentDefinitionData *)> signal_collisionSegmentCheckRequest
Signal to Intersection Handler.
Definition: DtCollisionResponder.h:92
CollisionTypeEnum collisionType
Definition: DtCollisionResponder.h:84
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:72
DtUniqueID requestingEntityID
Definition: DtCollisionResponder.h:81
unsigned int segmentID
Definition: DtCollisionResponder.h:80
Creator class for the DtCollisionResponder.
Definition: DtCollisionResponder.h:154
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
bool segmentEnable
Definition: DtCollisionResponder.h:65
std::string entityContactedConnectionID
Definition: DtCollisionResponder.h:83

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)