mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 15:45:52 +08:00
Generalize BoostAdapter for all Vec<> types and move out of SLA
This commit is contained in:
parent
f90d62c771
commit
a7e50b7a98
@ -38,54 +38,28 @@ template<std::size_t d> struct access<Slic3r::Point, d > {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// For Vec2d ///////////////////////////////////////////////////////////////////
|
// For Vec<N, T> ///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
template<> struct tag<Slic3r::Vec2d> {
|
template<int N, class T> struct tag<Slic3r::Vec<N, T>> {
|
||||||
using type = point_tag;
|
using type = point_tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct coordinate_type<Slic3r::Vec2d> {
|
template<int N, class T> struct coordinate_type<Slic3r::Vec<N, T>> {
|
||||||
using type = double;
|
using type = T;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct coordinate_system<Slic3r::Vec2d> {
|
template<int N, class T> struct coordinate_system<Slic3r::Vec<N, T>> {
|
||||||
using type = cs::cartesian;
|
using type = cs::cartesian;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct dimension<Slic3r::Vec2d>: boost::mpl::int_<2> {};
|
template<int N, class T> struct dimension<Slic3r::Vec<N, T>>: boost::mpl::int_<N> {};
|
||||||
|
|
||||||
template<std::size_t d> struct access<Slic3r::Vec2d, d > {
|
template<int N, class T, std::size_t d> struct access<Slic3r::Vec<N, T>, d> {
|
||||||
static inline double get(Slic3r::Vec2d const& a) {
|
static inline T get(Slic3r::Vec<N, T> const& a) {
|
||||||
return a(d);
|
return a(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void set(Slic3r::Vec2d& a, double const& value) {
|
static inline void set(Slic3r::Vec<N, T>& a, T const& value) {
|
||||||
a(d) = value;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// For Vec3d ///////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
template<> struct tag<Slic3r::Vec3d> {
|
|
||||||
using type = point_tag;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<> struct coordinate_type<Slic3r::Vec3d> {
|
|
||||||
using type = double;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<> struct coordinate_system<Slic3r::Vec3d> {
|
|
||||||
using type = cs::cartesian;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<> struct dimension<Slic3r::Vec3d>: boost::mpl::int_<3> {};
|
|
||||||
|
|
||||||
template<std::size_t d> struct access<Slic3r::Vec3d, d > {
|
|
||||||
static inline double get(Slic3r::Vec3d const& a) {
|
|
||||||
return a(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set(Slic3r::Vec3d& a, double const& value) {
|
|
||||||
a(d) = value;
|
a(d) = value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -129,6 +103,6 @@ template<> struct range_value<std::vector<Slic3r::Vec2d>> {
|
|||||||
using type = Slic3r::Vec2d;
|
using type = Slic3r::Vec2d;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace boost
|
||||||
|
|
||||||
#endif // SLABOOSTADAPTER_HPP
|
#endif // SLABOOSTADAPTER_HPP
|
@ -29,6 +29,7 @@ set(SLIC3R_SOURCES
|
|||||||
Brim.hpp
|
Brim.hpp
|
||||||
BuildVolume.cpp
|
BuildVolume.cpp
|
||||||
BuildVolume.hpp
|
BuildVolume.hpp
|
||||||
|
BoostAdapter.hpp
|
||||||
clipper.cpp
|
clipper.cpp
|
||||||
clipper.hpp
|
clipper.hpp
|
||||||
ClipperUtils.cpp
|
ClipperUtils.cpp
|
||||||
@ -292,7 +293,6 @@ set(SLIC3R_SOURCES
|
|||||||
# SLA/SupportTreeIGL.cpp
|
# SLA/SupportTreeIGL.cpp
|
||||||
SLA/Rotfinder.hpp
|
SLA/Rotfinder.hpp
|
||||||
SLA/Rotfinder.cpp
|
SLA/Rotfinder.cpp
|
||||||
SLA/BoostAdapter.hpp
|
|
||||||
SLA/SpatIndex.hpp
|
SLA/SpatIndex.hpp
|
||||||
SLA/SpatIndex.cpp
|
SLA/SpatIndex.cpp
|
||||||
SLA/RasterBase.hpp
|
SLA/RasterBase.hpp
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "boost/geometry/index/rtree.hpp"
|
#include "boost/geometry/index/rtree.hpp"
|
||||||
|
|
||||||
#include <libslic3r/SLA/SpatIndex.hpp>
|
#include <libslic3r/SLA/SpatIndex.hpp>
|
||||||
#include <libslic3r/SLA/BoostAdapter.hpp>
|
#include <libslic3r/BoostAdapter.hpp>
|
||||||
|
|
||||||
namespace Slic3r { namespace sla {
|
namespace Slic3r { namespace sla {
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include <libslic3r/SLA/Pad.hpp>
|
#include <libslic3r/SLA/Pad.hpp>
|
||||||
#include <libslic3r/SLA/SpatIndex.hpp>
|
#include <libslic3r/SLA/SpatIndex.hpp>
|
||||||
#include <libslic3r/SLA/BoostAdapter.hpp>
|
#include <libslic3r/BoostAdapter.hpp>
|
||||||
//#include <libslic3r/SLA/Contour3D.hpp>
|
//#include <libslic3r/SLA/Contour3D.hpp>
|
||||||
#include <libslic3r/TriangleMeshSlicer.hpp>
|
#include <libslic3r/TriangleMeshSlicer.hpp>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "SpatIndex.hpp"
|
#include "SpatIndex.hpp"
|
||||||
|
|
||||||
// for concave hull merging decisions
|
// for concave hull merging decisions
|
||||||
#include <libslic3r/SLA/BoostAdapter.hpp>
|
#include <libslic3r/BoostAdapter.hpp>
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user