CARLA
 
载入中...
搜索中...
未找到
FrictionTrigger.h
浏览该文件的文档.
1// Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB). This work is licensed under the terms of the MIT license.
3// For a copy, see <https://opensource.org/licenses/MIT>.
4
5#pragma once
6
7#include "GameFramework/Actor.h"
8#include "Components/BoxComponent.h"
10
11#include "FrictionTrigger.generated.h"
12
13UCLASS()
14class CARLA_API AFrictionTrigger : public AActor
15{
16 GENERATED_BODY()
17
18private:
19
20 void Init();
21
22 void UpdateWheelsFriction(AActor *OtherActor, TArray<float>& NewFriction);
23
24public:
25
26 AFrictionTrigger(const FObjectInitializer &ObjectInitializer);
27
28 UFUNCTION()
29 void OnTriggerBeginOverlap(
30 UPrimitiveComponent *OverlappedComp,
31 AActor *OtherActor,
32 UPrimitiveComponent *OtherComp,
33 int32 OtherBodyIndex,
34 bool bFromSweep,
35 const FHitResult &SweepResult);
36
37 UFUNCTION()
38 void OnTriggerEndOverlap(
39 UPrimitiveComponent *OverlappedComp,
40 AActor *OtherActor,
41 UPrimitiveComponent *OtherComp,
42 int32 OtherBodyIndex);
43
44 void SetEpisode(const UCarlaEpisode &InEpisode)
45 {
46 Episode = &InEpisode;
47 }
48
49 void SetBoxExtent(const FVector &Extent)
50 {
51 TriggerVolume->SetBoxExtent(Extent);
52 }
53
54 void SetFriction(float NewFriction)
55 {
56 Friction = NewFriction;
57 }
58
59protected:
60
61 virtual void BeginPlay() override;
62
63 virtual void EndPlay(EEndPlayReason::Type EndPlayReason) override;
64
65 virtual void Tick(float DeltaTime) override;
66
67 // Save old frictions
68 TArray<float> OldFrictionValues;
69
70public:
71
72 UPROPERTY(EditAnywhere)
73 float Friction = 0.0f;
74
75 UPROPERTY(EditAnywhere)
76 UBoxComponent *TriggerVolume;
77
78 const UCarlaEpisode *Episode = nullptr;
79};
void SetBoxExtent(const FVector &Extent)
void SetEpisode(const UCarlaEpisode &InEpisode)
TArray< float > OldFrictionValues
void SetFriction(float NewFriction)
A simulation episode.