@@ -30,22 +30,27 @@ void get_segment_usage_stats(std::vector<t_segment_inf>& segment_inf) {
30
30
31
31
max_segment_length = 0 ;
32
32
int max_segment_name_length = 0 ;
33
- for (size_t seg_type = 0 ; seg_type < segment_inf.size (); seg_type++) {
34
- if (segment_inf[seg_type].longline == false ) {
35
- max_segment_length = std::max (max_segment_length,
36
- segment_inf[seg_type].length );
37
- }
33
+ std::map<e_parallel_axis, std::map<int , int >> directed_occ_by_length = {
34
+ {X_AXIS, std::map<int , int >()},
35
+ {Y_AXIS, std::map<int , int >()}};
38
36
39
- max_segment_name_length = std::max (max_segment_name_length, static_cast <int >(segment_inf[seg_type].name .size ()));
40
- }
37
+ std::map<e_parallel_axis, std::map<int , int >> directed_cap_by_length = {
38
+ {X_AXIS, std::map<int , int >()},
39
+ {Y_AXIS, std::map<int , int >()}};
41
40
42
- std::map<e_parallel_axis, std::vector< int >> directed_occ_by_length = {
43
- {X_AXIS, std::vector< int >(max_segment_length + 1 , 0 )},
44
- {Y_AXIS, std::vector< int >(max_segment_length + 1 , 0 )}} ;
41
+ std::set< int > segment_lengths;
42
+ for ( const auto & seg_inf: segment_inf) {
43
+ int seg_length = seg_inf. longline ? LONGLINE : seg_inf. length ;
45
44
46
- std::map<e_parallel_axis, std::vector<int >> directed_cap_by_length = {
47
- {X_AXIS, std::vector<int >(max_segment_length + 1 , 0 )},
48
- {Y_AXIS, std::vector<int >(max_segment_length + 1 , 0 )}};
45
+ directed_cap_by_length[X_AXIS].insert ({seg_length, 0 });
46
+ directed_cap_by_length[Y_AXIS].insert ({seg_length, 0 });
47
+
48
+ directed_occ_by_length[X_AXIS].insert ({seg_length, 0 });
49
+ directed_occ_by_length[Y_AXIS].insert ({seg_length, 0 });
50
+ segment_lengths.insert (seg_length);
51
+
52
+ max_segment_name_length = std::max (max_segment_name_length, static_cast <int >(seg_inf.name .size ()));
53
+ }
49
54
50
55
std::map<e_parallel_axis, std::vector<int >> directed_occ_by_type = {
51
56
{X_AXIS, std::vector<int >(segment_inf.size (), 0 )},
0 commit comments