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) 2025 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;
67  DtVector startpoint;
68  DtVector endpoint;
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 
115  virtual void reset();
116 
119  DtCollisionResponder() = delete;
120  DtCollisionResponder( const DtCollisionResponder& ) = delete;
122  DtCollisionResponder& operator=( const DtCollisionResponder& ) = delete;
123  DtCollisionResponder& operator=( DtCollisionResponder&& ) = delete;
125 
126  protected:
128  DtCollisionResponder( DtCigiConnection& connection );
129 
132  void processCollisionDetectionSegmentDefinition( CigiBaseCollDetSegDef& collSegReq );
133 
137  void processCollDetSegDefReqV3( CigiCollDetSegDefV3& collDetDef );
138 
142  void processCollDetSegDefReqV4( CigiCollDetSegDefV4& collDetDef );
143 
146  void sendCollisionDetectionSegmentDefinition( DtCollisionSegmentDefinitionData& collSegData );
147 
148  protected:
150 
154  std::map<unsigned int, DtCollisionSegmentDefinitionData> myCollisionSegmentDefinitions;
155 
157  };
158 
161  {
162  public:
165 
167  virtual ~DtCollisionResponderCreator();
168 
170  static DtCollisionResponderCreator& instance( DtDe& de );
171 
173  static DtCollisionResponderCreator& instance( DtCigiConnection& con );
174 
176  virtual DtCollisionResponderCreator* clone();
177 
179  static void copyInstance( DtCigiConnection& con, DtDe& de );
180 
182  virtual DtCollisionResponder* create( DtCigiConnection& connection ) const;
183  protected:
184  };
185 }
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:154
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:156
Contains makVrv::DtVirtualBaseClass class.
Struct for Collision Response Data.
Definition: DtCollisionResponder.h:78
DtCigiConnection & myConnection
Definition: DtCollisionResponder.h:149
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:58
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:76
DtUniqueID requestingEntityID
Definition: DtCollisionResponder.h:81
unsigned int segmentID
Definition: DtCollisionResponder.h:80
Creator class for the DtCollisionResponder.
Definition: DtCollisionResponder.h:160
#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 Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)