FIX: The flat plate orientation bug
[STUDIO-1676]:Auto-orientation not OK but manually OK. When accumulating overhang, the bottom condition should select 0.5* layer height rather than previous 1 * layer height. Change-Id: Ide96817b8f98827388b7cb73ca33518b3ff25235 (cherry picked from commit 9f90151236340d3a10790112be65c816dcc3ae30)
This commit is contained in:
parent
38dfde8fc2
commit
24160244b7
|
@ -366,7 +366,7 @@ public:
|
||||||
normal_projection(i) = normals.row(i).dot(orientation);
|
normal_projection(i) = normals.row(i).dot(orientation);
|
||||||
}
|
}
|
||||||
auto areas_appearance = areas.cwiseProduct((is_apperance * params.APPERANCE_FACE_SUPP + Eigen::VectorXf::Ones(is_apperance.rows(), is_apperance.cols())));
|
auto areas_appearance = areas.cwiseProduct((is_apperance * params.APPERANCE_FACE_SUPP + Eigen::VectorXf::Ones(is_apperance.rows(), is_apperance.cols())));
|
||||||
auto overhang_areas = ((normal_projection.array() < params.ASCENT) * (!bottom_condition)).select(areas_appearance, 0);
|
auto overhang_areas = ((normal_projection.array() < params.ASCENT) * (!bottom_condition_2nd)).select(areas_appearance, 0);
|
||||||
Eigen::MatrixXf inner = normal_projection.array() - params.ASCENT;
|
Eigen::MatrixXf inner = normal_projection.array() - params.ASCENT;
|
||||||
inner = inner.cwiseMin(0).cwiseAbs();
|
inner = inner.cwiseMin(0).cwiseAbs();
|
||||||
if (min_volume)
|
if (min_volume)
|
||||||
|
@ -424,7 +424,7 @@ public:
|
||||||
if (min_volume)
|
if (min_volume)
|
||||||
{
|
{
|
||||||
float overhang = costs.overhang / 25;
|
float overhang = costs.overhang / 25;
|
||||||
cost = params.TAR_A * (overhang + params.TAR_B) + params.RELATIVE_F * (/*costs.volume/100*/overhang*params.TAR_C + params.TAR_D/10.f + params.TAR_LAF * costs.area_laf * params.use_low_angle_face) / (params.TAR_D + params.CONTOUR_F * costs.contour + params.BOTTOM_F * bottom + params.BOTTOM_HULL_F * bottom_hull + params.TAR_E * overhang + params.TAR_PROJ_AREA * costs.area_projected);
|
cost = params.TAR_A * (overhang + params.TAR_B) + params.RELATIVE_F * (/*costs.volume/100*/overhang*params.TAR_C + params.TAR_D + params.TAR_LAF * costs.area_laf * params.use_low_angle_face) / (params.TAR_D + params.CONTOUR_F * costs.contour + params.BOTTOM_F * bottom + params.BOTTOM_HULL_F * bottom_hull + params.TAR_E * overhang + params.TAR_PROJ_AREA * costs.area_projected);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float overhang = costs.overhang;
|
float overhang = costs.overhang;
|
||||||
|
|
Loading…
Reference in New Issue