]> rtime.felk.cvut.cz Git - hubacji1/iamcar2.git/blob - src/test27.cc
e5ba3709893ed482f7aa2e83c4aba45d62fc3006
[hubacji1/iamcar2.git] / src / test27.cc
1 #include <chrono>
2 #include <iostream>
3 #include <json/json.h>
4
5 #include "psp.h"
6 #include "rrtce.h"
7 #define EPP RRTCE7
8
9 std::chrono::high_resolution_clock::time_point TSTART_;
10 std::chrono::high_resolution_clock::time_point TEND_;
11 inline void TSTART() { TSTART_ = std::chrono::high_resolution_clock::now(); }
12 inline void TEND() { TEND_ = std::chrono::high_resolution_clock::now(); }
13 inline double TDIFF()
14 {
15         std::chrono::duration<double> DT_;
16         DT_ = std::chrono::duration_cast<std::chrono::duration<double>>(
17                 TEND_ - TSTART_
18         );
19         return DT_.count();
20 }
21 inline void TPRINT(const char *what)
22 {
23         std::cerr << what << ": " << TDIFF() << std::endl;
24 }
25
26 PSPlanner psp;
27 EPP epp;
28 int main()
29 {
30         Json::Value jvi; // JSON input
31         Json::Value jvo; // JSON output
32         std::cin >> jvi;
33
34         psp.ps().border(
35                 jvi["slot"][0][0][0].asDouble(),
36                 jvi["slot"][0][0][1].asDouble(),
37
38                 jvi["slot"][0][1][0].asDouble(),
39                 jvi["slot"][0][1][1].asDouble(),
40
41                 jvi["slot"][0][2][0].asDouble(),
42                 jvi["slot"][0][2][1].asDouble(),
43
44                 jvi["slot"][0][3][0].asDouble(),
45                 jvi["slot"][0][3][1].asDouble()
46         );
47
48         psp.fe();
49
50         jvi["goal"][0] = psp.cc().x();
51         jvi["goal"][1] = psp.cc().y();
52         jvi["goal"][2] = psp.cc().h();
53         unsigned int icnt = 0;
54         for (auto &i: psp.possible_goals()) {
55                 jvi["goals"][icnt][0] = i.x();
56                 jvi["goals"][icnt][1] = i.y();
57                 jvi["goals"][icnt][2] = i.h();
58                 icnt++;
59         }
60         jvi["goals"][icnt][0] = psp.cc().x();
61         jvi["goals"][icnt][1] = psp.cc().y();
62         jvi["goals"][icnt][2] = psp.cc().h();
63
64         epp.json(jvi);
65         epp.init();
66         epp.sample_dist_type(1);
67         epp.set_sample(-50, 50, -50, 50, 0, 2 * M_PI);
68
69
70         while (epp.next()) {}
71
72         jvo = epp.json();
73         jvo["slot"] = jvi["slot"];
74         std::cout << jvo << std::endl;
75         return 0;
76 }