51 lines
1.7 KiB
C++
Executable File
51 lines
1.7 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Calculate line of sight
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by gr, SLSE, 2024-11-03
|
|
*/
|
|
|
|
#include <Core/core.hpp>
|
|
#include <LtsCoordinate/lts_coordinate.h>
|
|
#include <CentralEffectSimulation/proxy_building.h>
|
|
|
|
#include <QFlags>
|
|
#pragma once
|
|
|
|
namespace CesExplosions
|
|
{
|
|
|
|
|
|
// Options:
|
|
enum Option
|
|
{
|
|
EXECUTE_BLDG_LOS_CALC = 1, // 0000001
|
|
EXECUTE_ELEVATION_LOS_CALC = 2, // 0000010
|
|
// OptFutureUse1 = 4, // 0000100
|
|
// OptFutureUse2 = 8, // 0001000
|
|
};
|
|
Q_DECLARE_FLAGS(Options, Option)
|
|
|
|
/// brief calculate line of sight between two points
|
|
/// \param exerciseId: id from exercise
|
|
/// \param impactLtsCoord_absZ: Explosion Position (z = height == above MSL)
|
|
/// \param participantLtsCoord_absZ: Participant Position (z = height == above MSL)
|
|
/// \param lineOfSightOptions: Options which Calculation is relevant, building or terrain
|
|
/// \param bLosOut: Result of calculation: true = line of sight given; false: line of sight interrupted
|
|
/// \return true: no error in calculation
|
|
bool lineOfSight_elevationAndBuilding(const int exerciseId,
|
|
const LtsCoordTrans::LtsCoordinate &impactLtsCoord_absZ,
|
|
const LtsCoordTrans::LtsCoordinate &participantLtsCoord_absZ,
|
|
Options lineOfSightOptions,
|
|
bool &bLosOut,
|
|
std::shared_ptr<CentralEffectSimulation::ProxyBuilding> proxyBuilding);
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(Options)
|
|
|
|
|
|
|
|
}
|
|
|