23#include "Engine/GameViewportClient.h" 
   24#include "Engine/World.h" 
   37    FSoftObjectPath SensorMapDataAssetPath(TEXT(
"/Game/Agrarsense/Data/Sensors/SensorMap"));
 
   43        UE_LOG(LogTemp, Warning, TEXT(
"USensorFactory.cpp: Loaded SensorMapDataAsset successfully."));
 
   47        UE_LOG(LogTemp, Warning, TEXT(
"USensorFactory.cpp: Loading SensorMapDataAsset failed."));
 
   61    ALidar* Sensor = SpawnSensor<ALidar>(SpawnParameters, 
true);
 
   62    if (!Sensor) 
return nullptr;
 
   64    Sensor->
Init(SensorParameters);
 
   70    ACamera* Sensor = SpawnSensor<ACamera>(SpawnParameters, 
true);
 
   71    if (!Sensor) 
return nullptr;
 
   73    Sensor->
Init(SensorParameters);
 
   79    AThermalCamera* Sensor = SpawnSensor<AThermalCamera>(SpawnParameters, 
true);
 
   80    if (!Sensor) 
return nullptr;
 
   88    ADepthCamera* Sensor = SpawnSensor<ADepthCamera>(SpawnParameters, 
true);
 
   89    if (!Sensor) 
return nullptr;
 
   98    if (!Sensor) 
return nullptr;
 
  107    if (!Sensor) 
return nullptr;
 
  109    Sensor->
Init(SensorParameters);
 
  115    ADVSCamera* Sensor = SpawnSensor<ADVSCamera>(SpawnParameters, 
true);
 
  116    if (!Sensor) 
return nullptr;
 
  124    ARadar* Sensor = SpawnSensor<ARadar>(SpawnParameters, 
true);
 
  125    if (!Sensor) 
return nullptr;
 
  133    ACollisionSensor* Sensor = SpawnSensor<ACollisionSensor>(SpawnParameters, 
false);
 
  134    if (!Sensor) 
return nullptr;
 
  142    ATransformSensor* Sensor = SpawnSensor<ATransformSensor>(SpawnParameters, 
false);
 
  143    if (!Sensor) 
return nullptr;
 
  146    Sensor->AttachToActor(SensorParameters.
OwningActor, FAttachmentTransformRules::KeepWorldTransform);
 
  152    AOverlapSensor* Sensor = SpawnSensor<AOverlapSensor>(SpawnParameters, 
false);
 
  153    if (!Sensor) 
return nullptr;
 
  155    Sensor->
Init(SensorParameters);
 
  166        Sensor = World->SpawnActorDeferred<T>(T::StaticClass(), SpawnParameters.
Transform);
 
  171            if (SpawnParameters.
Parent)
 
  173                Sensor->SetParentActorPtr(SpawnParameters.
Parent);
 
  176            Sensor->FinishSpawning(SpawnParameters.
Transform);
 
  178            if (SpawnSensorModel)
 
  190    bool generateIdentifier = SensorIdentifier.IsEmpty();
 
  191    bool generateName = SensorName.IsEmpty();
 
  193    FString generatedSensorIdentifier;
 
  197    if (generateIdentifier)
 
  208    Sensor->
SetSensorIdentifier(generateIdentifier ? generatedSensorIdentifier : SensorIdentifier);
 
  232        TSubclassOf<ASensorModel> modelClass = 
nullptr;
 
  238        if (matchFound && sensorData)
 
  258        return createdModelActor;
 
  263        FVector sensorLocation = attachTo->GetActorLocation();
 
  264        createdModelActor = World->SpawnActor<
ASensorModel>(modelClass);
 
  266        if (createdModelActor)
 
  268            createdModelActor->AttachToActor(attachTo, FAttachmentTransformRules::SnapToTargetIncludingScale);
 
  276    return createdModelActor;
 
  281    return (GEngine && GEngine->GameViewport) ? GEngine->GameViewport->GetWorld() : 
nullptr;
 
virtual void Init(FCameraBaseParameters parameters, bool SimulateSensor=true)
void Init(FCollisionSensorParameters CollisionSensorParameters, bool SimulateSensor=true)
void DVSInit(FDVSCameraParameters Parameters, bool SimulateSensor=true)
void DepthInit(FDepthCameraParameters Parameters, bool SimulateSensor=true)
void Init(FCameraBaseParameters parameters, bool SimulateSensor=true) override
void Init(FLidarParameters parameters, bool SimulateSensor=true)
void Init(FOverlapSensorParameters InParameters)
void Init(FRadarParameters parameters, bool SimulateSensor=true)
void Init(FCameraBaseParameters parameters, bool SimulateSensor=true) override
void SetAttachedToSensor(ASensor *NewAttachedToSensor)
void SetSensorModel(ASensorModel *NewSensorModel)
void SetSensorName(const FString newName)
FString GetSensorIdentifier() const
virtual ESensorTypes GetSensorType() const
void SetSensorIdentifier(const FString newIdentifier)
void ThermalInit(FThermalCameraParameters Parameters, bool SimulateSensor=true)
static FString ConvertSensorTypeToString(ESensorTypes Sensortype)
TSubclassOf< ASensorModel > ModelClass
static AInstanceSegmentationCamera * SpawnInstanceSegmentationCamera(const FSensorSpawnParameters SpawnParameters, FCameraBaseParameters SensorParameters)
static ASensorModel * SpawnModelClassForSensor(ASensor *attachTo)
static AThermalCamera * SpawnThermalCamera(const FSensorSpawnParameters SpawnParameters, FThermalCameraParameters SensorParameters)
static ASemanticSegmentationCamera * SpawnSegmentationCamera(const FSensorSpawnParameters SpawnParameters, FCameraBaseParameters SensorParameters)
static TWeakObjectPtr< USensorMapDataAsset > SensorMapDataAsset
static ASensorModel * SpawnModelClass(TSubclassOf< ASensorModel > ModelClass, ASensor *AttachTo)
static ATransformSensor * SpawnTransformSensor(const FSensorSpawnParameters SpawnParameters, FTransformSensorParameters SensorParameters)
static UWorld * GetGameWorld()
Gets the current game world from the viewport.
static ARadar * SpawnRadar(const FSensorSpawnParameters SpawnParameters, FRadarParameters SensorParameters)
static ACamera * SpawnCamera(const FSensorSpawnParameters SpawnParameters, FCameraBaseParameters SensorParameters)
static ACollisionSensor * SpawnCollisionSensor(const FSensorSpawnParameters SpawnParameters, const FCollisionSensorParameters CollisionSensorParameters)
static ADepthCamera * SpawnDepthCamera(const FSensorSpawnParameters SpawnParameters, FDepthCameraParameters SensorParameters)
static T * SpawnSensor(const FSensorSpawnParameters &SpawnParameters, bool SpawnSensorModel=true)
static USensorMapDataAsset * GetSensorMapDataAsset()
static ADVSCamera * SpawnDVSCamera(const FSensorSpawnParameters SpawnParameters, FDVSCameraParameters SensorParameters)
static void SetSensorIdentifierAndNameWithFallbacks(ASensor *Sensor, const FString &SensorIdentifier, const FString &SensorName)
static ALidar * SpawnLidarSensor(const FSensorSpawnParameters SpawnParameters, FLidarParameters SensorParameters)
static AOverlapSensor * SpawnOverlapSensor(const FSensorSpawnParameters SpawnParameters, FOverlapSensorParameters SensorParameters)
USensorDataAsset * GetAssetDataBySensorType(ESensorTypes SensorType, bool &MatchFound)