mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-11 14:48:59 +08:00
FIX: Add convert Slic3r::Point to Voronoi::point_type
../src/libslic3r/SLA/SupportIslands/ParabolaUtils.cpp:92:22: error: no viable conversion from 'const Slic3r::Point' to 'VD::point_type' (aka 'point_data<double>') VD::point_type source_point = parabola.focus; ^ ~~~~~~~~~~~~~~ ../src/libslic3r/SLA/SupportIslands/ParabolaUtils.cpp:39:33: error: no matching constructor for initialization of 'std::vector<VD::point_type>' (aka 'vector<point_data<double> >') ../src/libslic3r/SLA/SupportIslands/ParabolaUtils.cpp:85:33: error: no matching constructor for initialization of 'std::vector<VD::point_type>' (aka 'vector<point_data<double> >')
This commit is contained in:
parent
257c285c73
commit
d36e16c9f1
@ -1,5 +1,6 @@
|
||||
#include "ParabolaUtils.hpp"
|
||||
#include "PointUtils.hpp"
|
||||
#include "VoronoiGraphUtils.hpp"
|
||||
|
||||
// sampling parabola
|
||||
#include <libslic3r/Geometry.hpp>
|
||||
@ -35,14 +36,11 @@ double ParabolaUtils::length_by_sampling(
|
||||
double discretization_step)
|
||||
{
|
||||
using VD = Slic3r::Geometry::VoronoiDiagram;
|
||||
std::vector<VD::point_type> parabola_samples({parabola.from, parabola.to});
|
||||
const Point &f = parabola.focus;
|
||||
VD::point_type source_point(f.x(), f.y());
|
||||
const Point & a = parabola.directrix.a;
|
||||
const Point & b = parabola.directrix.b;
|
||||
VD::segment_type source_segment(VD::point_type(a.x(), a.y()),
|
||||
VD::point_type(b.x(), b.y()));
|
||||
|
||||
std::vector<VD::point_type> parabola_samples({
|
||||
VoronoiGraphUtils::to_point(parabola.from),
|
||||
VoronoiGraphUtils::to_point(parabola.to)});
|
||||
VD::point_type source_point = VoronoiGraphUtils::to_point(parabola.focus);
|
||||
VD::segment_type source_segment = VoronoiGraphUtils::to_segment(parabola.directrix);
|
||||
::boost::polygon::voronoi_visual_utils<double>::discretize(
|
||||
source_point, source_segment, discretization_step, ¶bola_samples);
|
||||
|
||||
@ -86,12 +84,12 @@ void ParabolaUtils::draw(SVG & svg,
|
||||
using VD = Slic3r::Geometry::VoronoiDiagram;
|
||||
if (PointUtils::is_equal(parabola.from, parabola.to)) return;
|
||||
|
||||
std::vector<Voronoi::Internal::point_type> parabola_samples(
|
||||
{parabola.from, parabola.to});
|
||||
std::vector<VD::point_type> parabola_samples(
|
||||
{VoronoiGraphUtils::to_point(parabola.from),
|
||||
VoronoiGraphUtils::to_point(parabola.to)});
|
||||
VD::point_type source_point = VoronoiGraphUtils::to_point(parabola.focus);
|
||||
VD::segment_type source_segment = VoronoiGraphUtils::to_segment(parabola.directrix);
|
||||
|
||||
VD::point_type source_point = parabola.focus;
|
||||
VD::segment_type source_segment(parabola.directrix.a,
|
||||
parabola.directrix.b);
|
||||
::boost::polygon::voronoi_visual_utils<double>::discretize(
|
||||
source_point, source_segment, discretization_step, ¶bola_samples);
|
||||
|
||||
|
@ -36,11 +36,21 @@ Slic3r::Point VoronoiGraphUtils::to_point(const VD::vertex_type *vertex)
|
||||
return Point(to_coord(vertex->x()), to_coord(vertex->y()));
|
||||
}
|
||||
|
||||
VoronoiGraphUtils::VD::point_type VoronoiGraphUtils::to_point(const Point &point)
|
||||
{
|
||||
return VD::point_type(point.x(), point.y());
|
||||
}
|
||||
|
||||
Slic3r::Vec2d VoronoiGraphUtils::to_point_d(const VD::vertex_type *vertex)
|
||||
{
|
||||
return Vec2d(vertex->x(), vertex->y());
|
||||
}
|
||||
|
||||
VoronoiGraphUtils::VD::segment_type VoronoiGraphUtils::to_segment(const Line &line)
|
||||
{
|
||||
return VD::segment_type(to_point(line.a), to_point(line.b));
|
||||
}
|
||||
|
||||
Slic3r::Point VoronoiGraphUtils::to_direction(const VD::edge_type *edge)
|
||||
{
|
||||
return to_direction_d(edge).cast<coord_t>();
|
||||
|
@ -35,11 +35,20 @@ public:
|
||||
|
||||
/// <summary>
|
||||
/// Convert Vodonoi diagram vertex type to Slicer Point
|
||||
/// decrease precission by rounding
|
||||
/// </summary>
|
||||
/// <param name="vertex">Input point pointer(double precission)</param>
|
||||
/// <returns>Convertedf point(int preccission)</returns>
|
||||
/// <returns>Converted point(int preccission)</returns>
|
||||
static Point to_point(const VD::vertex_type *vertex);
|
||||
|
||||
/// <summary>
|
||||
/// Convert Slic3r point to Vodonoi point type
|
||||
/// extend precission
|
||||
/// </summary>
|
||||
/// <param name="vertex">Input point(int preccission)</param>
|
||||
/// <returns>Converted vertex(double precission)</returns>
|
||||
static VD::point_type to_point(const Point &point);
|
||||
|
||||
/// <summary>
|
||||
/// Convert point type between voronoi and slicer format
|
||||
/// </summary>
|
||||
@ -47,6 +56,13 @@ public:
|
||||
/// <returns>created vector</returns>
|
||||
static Vec2d to_point_d(const VD::vertex_type* vertex);
|
||||
|
||||
/// <summary>
|
||||
/// Convert Slic3r Line to Voronoi segment type
|
||||
/// </summary>
|
||||
/// <param name="line">input line(int preccission)</param>
|
||||
/// <returns>output segment(double precission)</returns>
|
||||
static VD::segment_type to_segment(const Line &line);
|
||||
|
||||
/// <summary>
|
||||
/// create direction from Voronoi edge
|
||||
/// </summary>
|
||||
|
Loading…
x
Reference in New Issue
Block a user