![]() |
VR-Forces Developer's Guide
|
This class handles all of the intersection processing for HAT/HOT, LOS , and Collision segment requests. It receives signals from the DtCigiConnection when these requests are received and tells the DtCigiDriver to generate responses. If running the CIGI driver in a separate thread, will use the driver's driver function queue to perform the operations.
Public Member Functions | |
| virtual | ~DtCigiIntersectionHandler () |
Protected Attributes | |
| DtDe & | myDe |
| DtCigiConnection & | myCigiConnection |
| DtSignalConnectionManager | myConnections |
| DtIntersectorsContainer * | myIntersectors = nullptr |
| makVrv::DtCoordinateSystem * | myCoordinateSystem = nullptr |
Friends | |
| class | DtCigiIntersectionHandlerCreator |
|
virtual |
Destructor.
|
protected |
Constructor.
|
protectedvirtual |
Slot called when signal_hatHotRequested is received from the CIGI connection. Passes on the request to performHatHotRequest.
|
protectedvirtual |
Performs the HAT/HOT calculation and calls generateHatHotResponse on the DtCigiDriver, which will (possibly) put it on the simulation function queue, telling the DtCigiConnection to queue up the response and send it the next time it sends CIGI messages.
|
protectedvirtual |
Slot called when signal_losSegRequested is received from the CIGI connection. Passes on the request to performLineOfSightRequest.
|
protectedvirtual |
Performs the line of sigh calculation and calls generateLosResponse on the DtCigiDriver, which will (possibly) put it on the simulation function queue, telling the DtCigiConnection to queue up the response and send it the next time it sends CIGI messages.
| srcId | The unique ID of the source entity used in calculations. If this is 0, a database location is used in the calculation. |
| srcLocation | The database location of the source location, or entity offset if the srcId is 0. |
| dstId | The unique ID of the source entity used in calculations. If this is 0, a database location is used in the calculation. |
| dstLocation | The database location of the source location, or entity offset if the srcId is 0. |
| losId | The LOS ID to respond with. |
| hostFrame | The last host frame received before the calculation takes place |
|
protectedvirtual |
Slot called when signal_collisionSegmentCheckRequest is called from collision handler. Passes request to performCollisionSegmentRequest. Will queue performCollisionSegmentRequest up for the render thread if using thread.
|
protectedvirtual |
Performs intersection request with a line segment and generates collision segment responses based on intersections Called from performCollisionSegmentRequest, and calls generateCollisionSegmentResponse This method runs in the render thread if DtCigiConnection is running in a thread.
|
protectedvirtual |
Looks up the entity and uses the entity coordinates to calculate the database coordinate.
| entity | The unique ID of the entity. |
| entityCoord | The entity coordinates (X out the front, Y out the right, Z down) |
| databaseCoord | Filled in with the database coordinate. |
|
protectedvirtual |
Looks up the entity and uses the entity's position and orientation to transformn the database coordinate into the entity's coordinate system.
| entity | The unique ID of the entity. |
| databaseCoord | The coordinate to transform |
| entityCoord | The result in entity coordinates |
|
protectedvirtual |
Utility function sets a geodetic coordinate from a database coordinate.
|
protectedvirtual |
Get the azimuth and elevation of the supplied normal wrt north and up. If the database is geocentric, create a topo system at the location of the databaseCoord; otherwise it can be ignored, as the normal is already wrt north and up.
|
protectedvirtual |
Calculates the height of the terrain below currentLocal.
| currentLocal | The point in database coordinates. |
| foundIntersection | Set to true if an intersection exists, false otherwise. |
|
protectedvirtual |
Calculates the height of the terrain below currentLocal.
| currentLocal | The point in database coordinates. |
| foundIntersection | Set to true if an intersection exists, false otherwise. |
| normalAzimuth | if there is an intersection is set to the insects normal az |
| normalElevation | if there is an intersection is set to the insects normal elev |
| elementType | set if intersection, best we can do for cigi material code |
|
protectedvirtual |
Generate a line-of-sight basic response. Calls DtLosResponder::generateLosBasicResponse directly if the driver is in a single thread or queue the response on myConnectionThreadFunctions queue if run in a separate thread.
| losResponse | Pointer to the info needed to construct a CIGI los response packet |
|
protectedvirtual |
Generate a line-of-sight extended response. Calls DtLosResponder::generateLosExtendedResponse directly if the driver is in a single thread or queue the response on myConnectionThreadFunctions queue if run in a separate thread.
| losResponse | Pointer to the info needed to construct a CIGI los response packet |
|
protectedvirtual |
Generate a line-of-sight response. Calls DtCigiConnection::sendHatHotResponse directly if the driver is in a single thread or queue the response on myConnectionThreadFunctions queue if run in a separate thread.
|
protectedvirtual |
Generate the collision segment response. Calls DtCigiConnection::sendCollisionSegmentResponse directly if driver is in a single thread, or queues the response on myConnectionThreadFunctions queue if run in a separate thread.
|
protectedvirtual |
slot for when the coordinate system changes
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
local clone of the system wide coordinate system. for thread safety.