CARLA
 
载入中...
搜索中...
未找到
Deformation.h
浏览该文件的文档.
1// Copyright (c) 2020 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
9#include <memory>
10#include <vector>
11
12#include <carla/geom/Mesh.h>
13#include <carla/road/Road.h>
15#include <carla/road/Lane.h>
17
18namespace carla {
19namespace geom {
20namespace deformation {
21 inline float GetZPosInDeformation(float posx, float posy){
22 // Amplitud
23 const float A1 = 0.6f;
24 const float A2 = 1.1f;
25 // Fases
26 const float F1 = 1000.0;
27 const float F2 = -1500.0;
28 // Modifiers
29 const float Kx1 = 0.035f;
30 const float Kx2 = 0.02f;
31
32 const float Ky1 = -0.08f;
33 const float Ky2 = 0.05f;
34
35 return A1 * sin((Kx1 * posx + Ky1 * posy + F1)) +
36 A2 * sin((Kx2 * posx + Ky2 * posy + F2));
37 }
38
39 inline float GetBumpDeformation(float posx, float posy){
40 const float A3 = 0.10f;
41 float bumpsoffset = 0;
42
43 float constraintX = 17.0f;
44 float constraintY = 12.0f;
45
46 float BumpX = std::ceil(posx / constraintX);
47 float BumpY = std::floor(posy / constraintY);
48
49 BumpX *= constraintX;
50 BumpY *= constraintY;
51
52 float DistanceToBumpOrigin = sqrt(pow(BumpX - posx, 2) + pow(BumpY - posy, 2) );
53 float MaxDistance = 2.0;
54
55 if (DistanceToBumpOrigin <= MaxDistance) {
56 bumpsoffset = sin(DistanceToBumpOrigin);
57 }
58
59 return A3 * bumpsoffset;
60 }
61
62
63
64} // namespace deformation
65} // namespace geom
66} // namespace carla
float GetBumpDeformation(float posx, float posy)
Definition Deformation.h:39
float GetZPosInDeformation(float posx, float posy)
Definition Deformation.h:21
This file contains definitions of common data structures used in traffic manager.
Definition Carla.cpp:133