1178 { 0.0f,
1179 0.0f }) const {
1181 return a.central_enforcer;
1182 }
1183
1184
1185 if (a.type != b.type) {
1186 return a.type > b.type;
1187 }
1188
1189
1190 if (a.overhang > 0.0f || b.overhang > 0.0f) {
1191 return a.overhang < b.overhang;
1192 }
1193
1194
1195 if (a.embedded_distance < -0.5f && b.embedded_distance > -0.5f) {
1196 return true;
1197 }
1198 if (b.embedded_distance < -0.5f && a.embedded_distance > -0.5f) {
1199 return false;
1200 }
1201
1203 return a.position.y() > b.position.y();
1204 }
1205
1206 float distance_penalty_a = 0.0f;
1207 float distance_penalty_b = 0.0f;
1209 distance_penalty_a = 1.0f -
gauss((a.position.head<2>() - preffered_location).norm(), 0.0f, 1.0f, 0.005f);
1210 distance_penalty_b = 1.0f -
gauss((b.position.head<2>() - preffered_location).norm(), 0.0f, 1.0f, 0.005f);
1211 }
1212
1213
1214 float penalty_a = a.overhang + a.visibility +
1216 + distance_penalty_a;
1217 float penalty_b = b.overhang + b.visibility +
1219 + distance_penalty_b;
1220
1221 return penalty_a < penalty_b;
1222 }
float compute_angle_penalty(float ccw_angle)
Definition SeamPlacer.cpp:82
float gauss(float value, float mean_x_coord, float mean_value, float falloff_speed)
Definition SeamPlacer.cpp:75
@ spAligned
Definition PrintConfig.hpp:395
@ spAlignedBack
Definition PrintConfig.hpp:395
@ spRear
Definition PrintConfig.hpp:395