fix build errors

This commit is contained in:
SoftFever
2026-05-02 15:54:14 +08:00
parent 103cf247e5
commit a71f42c3c7
3 changed files with 11 additions and 20 deletions

View File

@@ -4057,7 +4057,7 @@ static bool split_extrusion_collection_for_pointillism_paths(
dst = std::make_unique<ExtrusionEntityCollection>();
dst->no_sort = source.no_sort;
}
ExtrusionPath out_path(piece, src_path);
ExtrusionPath out_path(Polyline3(piece), src_path);
out_path.inset_idx = k_pointillism_path_inset_marker;
dst->append(std::move(out_path));
++out_stats.segment_count;
@@ -4067,7 +4067,7 @@ static bool split_extrusion_collection_for_pointillism_paths(
for (const ExtrusionEntity* entity : flattened.entities) {
auto split_one_path = [&](const ExtrusionPath& path) {
Polylines pieces;
split_polyline_by_length_for_pointillism(path.polyline, split_length_scaled, pieces);
split_polyline_by_length_for_pointillism(path.polyline.to_polyline(), split_length_scaled, pieces);
const double trim_each_end = std::max(0.0, split_gap_scaled * 0.5);
for (Polyline& piece : pieces) {
if (trim_each_end > EPSILON &&
@@ -4598,7 +4598,7 @@ static inline void append_clipped_path_lz(const ExtrusionPath& src_path,
const double flow_height_override,
ExtrusionEntityCollection& dst)
{
Polylines segments{src_path.polyline};
Polylines segments{src_path.polyline.to_polyline()};
if (include_masks != nullptr && !include_masks->empty())
segments = intersection_pl(std::move(segments), *include_masks);
if (exclude_masks != nullptr && !exclude_masks->empty())
@@ -4607,7 +4607,7 @@ static inline void append_clipped_path_lz(const ExtrusionPath& src_path,
for (Polyline& segment : segments) {
if (!segment.is_valid())
continue;
ExtrusionPath clipped(segment, src_path);
ExtrusionPath clipped(Polyline3(segment), src_path);
apply_local_z_flow_height_override(clipped, flow_height_override);
dst.append(std::move(clipped));
}
@@ -4699,13 +4699,13 @@ static inline Polylines collect_local_z_polylines(const ExtrusionEntityCollectio
ExtrusionEntityCollection flattened = source.flatten(false);
for (const ExtrusionEntity* entity : flattened.entities) {
if (const auto* path = dynamic_cast<const ExtrusionPath*>(entity)) {
lines.emplace_back(path->polyline);
lines.emplace_back(path->polyline.to_polyline());
} else if (const auto* multipath = dynamic_cast<const ExtrusionMultiPath*>(entity)) {
for (const ExtrusionPath& p : multipath->paths)
lines.emplace_back(p.polyline);
lines.emplace_back(p.polyline.to_polyline());
} else if (const auto* loop = dynamic_cast<const ExtrusionLoop*>(entity)) {
for (const ExtrusionPath& p : loop->paths)
lines.emplace_back(p.polyline);
lines.emplace_back(p.polyline.to_polyline());
}
}
return lines;

View File

@@ -416,16 +416,7 @@ private:
return resolved_1based == 0 ? 0 : resolved_1based - 1;
}
// Mixed-filament resolution: convert a virtual 1-based filament ID to a zero-based
// physical extruder ID ready to pass to set_extruder(). When mixed_mgr is null or
// the ID is not a mixed slot the call is a no-op (returns virtual_id_1based - 1).
unsigned int resolve_extruder_for_layer(unsigned int virtual_id_1based,
const LayerTools &layer_tools) const
{
const unsigned int resolved_1based = layer_tools.resolve_mixed_1based(virtual_id_1based);
return resolved_1based == 0 ? 0 : resolved_1based - 1;
}
void set_last_pos(const Point &pos) { m_last_pos = Point3(pos, 0); m_last_pos_defined = true; }
void set_last_pos(const Point3 &pos) { m_last_pos = pos; m_last_pos_defined = true; }
bool last_pos_defined() const { return m_last_pos_defined; }
void set_extruders(const std::vector<unsigned int> &extruder_ids);

View File

@@ -153,16 +153,16 @@ static bool extrusion_collection_has_local_z_perimeter_segment(const ExtrusionEn
ExtrusionEntityCollection flattened = source.flatten(false);
for (const ExtrusionEntity *entity : flattened.entities) {
if (const auto *path = dynamic_cast<const ExtrusionPath*>(entity)) {
if (local_z_segments_exist(intersection_pl(Polylines{path->polyline}, include_masks)))
if (local_z_segments_exist(intersection_pl(Polylines{path->polyline.to_polyline()}, include_masks)))
return true;
} else if (const auto *multipath = dynamic_cast<const ExtrusionMultiPath*>(entity)) {
for (const ExtrusionPath &path : multipath->paths) {
if (local_z_segments_exist(intersection_pl(Polylines{path.polyline}, include_masks)))
if (local_z_segments_exist(intersection_pl(Polylines{path.polyline.to_polyline()}, include_masks)))
return true;
}
} else if (const auto *loop = dynamic_cast<const ExtrusionLoop*>(entity)) {
for (const ExtrusionPath &path : loop->paths) {
if (local_z_segments_exist(intersection_pl(Polylines{path.polyline}, include_masks)))
if (local_z_segments_exist(intersection_pl(Polylines{path.polyline.to_polyline()}, include_masks)))
return true;
}
}