CARLA
 
载入中...
搜索中...
未找到
CollisionSensor.h
浏览该文件的文档.
1// Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8
10#include "Carla/Sensor/Sensor.h"
11
12#include "CollisionSensor.generated.h"
13
14class UCarlaEpisode;
16
17///用于记录碰撞的传感器。
18UCLASS()
19class CARLA_API ACollisionSensor : public ASensor
20{
21 GENERATED_BODY()
22
23public:
24
25 static FActorDefinition GetSensorDefinition();
26
27 ACollisionSensor(const FObjectInitializer& ObjectInitializer);
28
29 virtual void PrePhysTick(float DeltaSeconds) override;
30 void SetOwner(AActor *NewOwner) override;
31
32 UFUNCTION()
33 void OnCollisionEvent(
35 AActor *OtherActor,
36 FVector NormalImpulse,
37 const FHitResult &Hit);
38
39 UFUNCTION(BlueprintCallable, Category="Collision")
40 void OnActorCollisionEvent(
42 AActor *OtherActor,
43 FVector NormalImpulse,
44 const FHitResult &Hit);
45
46 UFUNCTION()
47 void OnComponentCollisionEvent(
48 UPrimitiveComponent* HitComp,
49 AActor* OtherActor,
50 UPrimitiveComponent* OtherComp,
51 FVector NormalImpulse,
52 const FHitResult& Hit);
53
54private:
55 /// 保存所有碰撞的注册表。
56 /// 用于避免每帧发送多次相同的碰撞,因为碰撞传感器使用 PhysX 子步节拍信号。有助于传感器的使用和流过载。
57 std::vector<std::tuple<uint64_t, AActor*, AActor*>> CollisionRegistry;
58};
TSharedPtr< const FActorInfo > carla::rpc::ActorState UWorld Actor
用于记录碰撞的传感器。
std::vector< std::tuple< uint64_t, AActor *, AActor * > > CollisionRegistry
保存所有碰撞的注册表。 用于避免每帧发送多次相同的碰撞,因为碰撞传感器使用 PhysX 子步节拍信号。有助于传感器的使用和流过载。