2022-07-15 15:37:19 +00:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
project(libslic3r)
|
|
|
|
|
|
|
|
include(PrecompiledHeader)
|
|
|
|
|
2022-12-14 01:56:12 +00:00
|
|
|
string(TIMESTAMP COMPILE_TIME %Y%m%d-%H%M%S)
|
|
|
|
set(SLIC3R_BUILD_TIME ${COMPILE_TIME})
|
|
|
|
|
2022-07-15 15:37:19 +00:00
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libslic3r_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h @ONLY)
|
|
|
|
|
|
|
|
if (MINGW)
|
|
|
|
add_compile_options(-Wa,-mbig-obj)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
set(OpenVDBUtils_SOURCES "")
|
|
|
|
if (TARGET OpenVDB::openvdb)
|
|
|
|
set(OpenVDBUtils_SOURCES OpenVDBUtils.cpp OpenVDBUtils.hpp)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(lisbslic3r_sources
|
|
|
|
ArcFitter.cpp
|
|
|
|
ArcFitter.hpp
|
|
|
|
pchheader.cpp
|
|
|
|
pchheader.hpp
|
2023-03-08 09:22:21 +00:00
|
|
|
AABBTreeIndirect.hpp
|
|
|
|
AABBTreeLines.hpp
|
2023-04-27 06:28:59 +00:00
|
|
|
AABBMesh.hpp
|
|
|
|
AABBMesh.cpp
|
|
|
|
AnyPtr.hpp
|
2023-09-25 02:40:12 +00:00
|
|
|
AStar.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
BoundingBox.cpp
|
|
|
|
BoundingBox.hpp
|
|
|
|
BridgeDetector.cpp
|
|
|
|
BridgeDetector.hpp
|
|
|
|
FaceDetector.cpp
|
|
|
|
FaceDetector.hpp
|
|
|
|
Brim.cpp
|
|
|
|
Brim.hpp
|
|
|
|
BuildVolume.cpp
|
|
|
|
BuildVolume.hpp
|
2023-06-13 10:34:00 +00:00
|
|
|
Calib.cpp
|
2023-04-23 01:04:55 +00:00
|
|
|
Calib.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Circle.cpp
|
|
|
|
Circle.hpp
|
|
|
|
clipper.cpp
|
|
|
|
clipper.hpp
|
|
|
|
ClipperUtils.cpp
|
|
|
|
ClipperUtils.hpp
|
2022-11-08 13:51:21 +00:00
|
|
|
Clipper2Utils.cpp
|
|
|
|
Clipper2Utils.hpp
|
2024-02-22 11:32:54 +00:00
|
|
|
Color.cpp
|
|
|
|
Color.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Config.cpp
|
|
|
|
Config.hpp
|
|
|
|
CurveAnalyzer.cpp
|
|
|
|
CurveAnalyzer.hpp
|
2023-09-18 02:42:53 +00:00
|
|
|
CutUtils.cpp
|
|
|
|
CutUtils.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
EdgeGrid.cpp
|
|
|
|
EdgeGrid.hpp
|
|
|
|
ElephantFootCompensation.cpp
|
|
|
|
ElephantFootCompensation.hpp
|
|
|
|
enum_bitmask.hpp
|
|
|
|
ExPolygon.cpp
|
|
|
|
ExPolygon.hpp
|
|
|
|
Extruder.cpp
|
|
|
|
Extruder.hpp
|
|
|
|
ExtrusionEntity.cpp
|
|
|
|
ExtrusionEntity.hpp
|
|
|
|
ExtrusionEntityCollection.cpp
|
|
|
|
ExtrusionEntityCollection.hpp
|
|
|
|
ExtrusionSimulator.cpp
|
|
|
|
ExtrusionSimulator.hpp
|
|
|
|
FileParserError.hpp
|
|
|
|
Fill/Fill.cpp
|
|
|
|
Fill/Fill.hpp
|
|
|
|
Fill/Fill3DHoneycomb.cpp
|
|
|
|
Fill/Fill3DHoneycomb.hpp
|
|
|
|
Fill/FillAdaptive.cpp
|
|
|
|
Fill/FillAdaptive.hpp
|
|
|
|
Fill/FillBase.cpp
|
|
|
|
Fill/FillBase.hpp
|
|
|
|
Fill/FillConcentric.cpp
|
|
|
|
Fill/FillConcentric.hpp
|
2022-08-10 08:11:39 +00:00
|
|
|
Fill/FillConcentricInternal.cpp
|
|
|
|
Fill/FillConcentricInternal.hpp
|
2024-04-18 08:34:26 +00:00
|
|
|
Fill/FillCrossHatch.cpp
|
|
|
|
Fill/FillCrossHatch.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Fill/FillHoneycomb.cpp
|
|
|
|
Fill/FillHoneycomb.hpp
|
|
|
|
Fill/FillGyroid.cpp
|
|
|
|
Fill/FillGyroid.hpp
|
|
|
|
Fill/FillPlanePath.cpp
|
|
|
|
Fill/FillPlanePath.hpp
|
|
|
|
Fill/FillLine.cpp
|
|
|
|
Fill/FillLine.hpp
|
|
|
|
Fill/FillLightning.cpp
|
|
|
|
Fill/FillLightning.hpp
|
|
|
|
Fill/Lightning/DistanceField.cpp
|
|
|
|
Fill/Lightning/DistanceField.hpp
|
|
|
|
Fill/Lightning/Generator.cpp
|
|
|
|
Fill/Lightning/Generator.hpp
|
|
|
|
Fill/Lightning/Layer.cpp
|
|
|
|
Fill/Lightning/Layer.hpp
|
|
|
|
Fill/Lightning/TreeNode.cpp
|
|
|
|
Fill/Lightning/TreeNode.hpp
|
|
|
|
Fill/FillRectilinear.cpp
|
|
|
|
Fill/FillRectilinear.hpp
|
|
|
|
Flow.cpp
|
|
|
|
Flow.hpp
|
2023-06-16 09:31:11 +00:00
|
|
|
FlushVolCalc.cpp
|
|
|
|
FlushVolCalc.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
format.hpp
|
|
|
|
Format/3mf.cpp
|
|
|
|
Format/3mf.hpp
|
|
|
|
Format/bbs_3mf.cpp
|
|
|
|
Format/bbs_3mf.hpp
|
|
|
|
Format/AMF.cpp
|
|
|
|
Format/AMF.hpp
|
|
|
|
Format/OBJ.cpp
|
|
|
|
Format/OBJ.hpp
|
|
|
|
Format/objparser.cpp
|
|
|
|
Format/objparser.hpp
|
|
|
|
Format/STEP.cpp
|
|
|
|
Format/STEP.hpp
|
|
|
|
Format/STL.cpp
|
|
|
|
Format/STL.hpp
|
|
|
|
Format/SL1.hpp
|
|
|
|
Format/SL1.cpp
|
2022-10-19 09:43:06 +00:00
|
|
|
Format/svg.hpp
|
|
|
|
Format/svg.cpp
|
2022-07-15 15:37:19 +00:00
|
|
|
GCode/ThumbnailData.cpp
|
|
|
|
GCode/ThumbnailData.hpp
|
|
|
|
GCode/CoolingBuffer.cpp
|
|
|
|
GCode/CoolingBuffer.hpp
|
|
|
|
GCode/PostProcessor.cpp
|
|
|
|
GCode/PostProcessor.hpp
|
|
|
|
# GCode/PressureEqualizer.cpp
|
|
|
|
# GCode/PressureEqualizer.hpp
|
|
|
|
GCode/PrintExtents.cpp
|
|
|
|
GCode/PrintExtents.hpp
|
2023-03-08 09:22:21 +00:00
|
|
|
GCode/RetractWhenCrossingPerimeters.cpp
|
|
|
|
GCode/RetractWhenCrossingPerimeters.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
GCode/SpiralVase.cpp
|
|
|
|
GCode/SpiralVase.hpp
|
|
|
|
GCode/SeamPlacer.cpp
|
|
|
|
GCode/SeamPlacer.hpp
|
|
|
|
GCode/ToolOrdering.cpp
|
|
|
|
GCode/ToolOrdering.hpp
|
|
|
|
GCode/WipeTower.cpp
|
|
|
|
GCode/WipeTower.hpp
|
|
|
|
GCode/GCodeProcessor.cpp
|
|
|
|
GCode/GCodeProcessor.hpp
|
|
|
|
GCode/AvoidCrossingPerimeters.cpp
|
|
|
|
GCode/AvoidCrossingPerimeters.hpp
|
2023-01-13 09:49:00 +00:00
|
|
|
GCode/ConflictChecker.cpp
|
|
|
|
GCode/ConflictChecker.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
GCode.cpp
|
|
|
|
GCode.hpp
|
|
|
|
GCodeReader.cpp
|
|
|
|
GCodeReader.hpp
|
|
|
|
# GCodeSender.cpp
|
|
|
|
# GCodeSender.hpp
|
|
|
|
GCodeWriter.cpp
|
|
|
|
GCodeWriter.hpp
|
|
|
|
Geometry.cpp
|
|
|
|
Geometry.hpp
|
2022-08-18 06:17:02 +00:00
|
|
|
Geometry/Bicubic.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Geometry/Circle.cpp
|
|
|
|
Geometry/Circle.hpp
|
|
|
|
Geometry/ConvexHull.cpp
|
|
|
|
Geometry/ConvexHull.hpp
|
2022-08-18 06:17:02 +00:00
|
|
|
Geometry/Curves.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Geometry/MedialAxis.cpp
|
|
|
|
Geometry/MedialAxis.hpp
|
ENH: modify the multi-material segmentation and voronoi
This patch is cherry pick from Prusa, thanks to Prusa
Rework multi-material segmentation to work directly on the Voronoi diagram without creating a copy of it.
Previous algorithms assume that they can get an invalid Voronoi diagram. Because of that, during the multi-material segmentation, a copy of the Voronoi diagram was created, and there were several attempts to fix missing vertices and edges. But as it shows, this wasn't a good enough approach and sometimes led to several issues like bleeding layers.
After generalization, our approach for detection and repairs of invalid Voronoi diagrams from Arachne, we could assume that multi-material segmentation gets non-invalid Voronoi diagrams.
With this assumption, we reimplement multi-materials segmentation to work directly on the Voronoi diagram. That should make multi-material segmentation more stable.
So, this should fix several issues like bleeding layers. Also, memory consumption should decrease by a lot. Also, there should be some speedup of multi-materials segmentation.
Jira: none
Change-Id: I72aa6e1f9634d9ee8759aa469a0b39a36ace62f5
2024-03-27 12:48:03 +00:00
|
|
|
Geometry/Voronoi.cpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Geometry/Voronoi.hpp
|
|
|
|
Geometry/VoronoiOffset.cpp
|
|
|
|
Geometry/VoronoiOffset.hpp
|
ENH: modify the multi-material segmentation and voronoi
This patch is cherry pick from Prusa, thanks to Prusa
Rework multi-material segmentation to work directly on the Voronoi diagram without creating a copy of it.
Previous algorithms assume that they can get an invalid Voronoi diagram. Because of that, during the multi-material segmentation, a copy of the Voronoi diagram was created, and there were several attempts to fix missing vertices and edges. But as it shows, this wasn't a good enough approach and sometimes led to several issues like bleeding layers.
After generalization, our approach for detection and repairs of invalid Voronoi diagrams from Arachne, we could assume that multi-material segmentation gets non-invalid Voronoi diagrams.
With this assumption, we reimplement multi-materials segmentation to work directly on the Voronoi diagram. That should make multi-material segmentation more stable.
So, this should fix several issues like bleeding layers. Also, memory consumption should decrease by a lot. Also, there should be some speedup of multi-materials segmentation.
Jira: none
Change-Id: I72aa6e1f9634d9ee8759aa469a0b39a36ace62f5
2024-03-27 12:48:03 +00:00
|
|
|
Geometry/VoronoiUtils.hpp
|
|
|
|
Geometry/VoronoiUtils.cpp
|
2022-10-12 12:20:27 +00:00
|
|
|
Geometry/VoronoiUtilsCgal.cpp
|
|
|
|
Geometry/VoronoiUtilsCgal.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Geometry/VoronoiVisualUtils.hpp
|
|
|
|
Int128.hpp
|
|
|
|
InternalBridgeDetector.cpp
|
|
|
|
InternalBridgeDetector.hpp
|
2023-09-25 02:40:12 +00:00
|
|
|
JumpPointSearch.hpp
|
|
|
|
JumpPointSearch.cpp
|
2022-07-15 15:37:19 +00:00
|
|
|
KDTreeIndirect.hpp
|
|
|
|
Layer.cpp
|
|
|
|
Layer.hpp
|
|
|
|
LayerRegion.cpp
|
|
|
|
libslic3r.h
|
|
|
|
Line.cpp
|
|
|
|
Line.hpp
|
|
|
|
BlacklistedLibraryCheck.cpp
|
|
|
|
BlacklistedLibraryCheck.hpp
|
|
|
|
LocalesUtils.cpp
|
|
|
|
LocalesUtils.hpp
|
|
|
|
Model.cpp
|
|
|
|
Model.hpp
|
|
|
|
ModelArrange.hpp
|
|
|
|
ModelArrange.cpp
|
|
|
|
MultiMaterialSegmentation.cpp
|
|
|
|
MultiMaterialSegmentation.hpp
|
2024-02-22 11:32:54 +00:00
|
|
|
Measure.hpp
|
|
|
|
Measure.cpp
|
|
|
|
MeasureUtils.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
CustomGCode.cpp
|
|
|
|
CustomGCode.hpp
|
|
|
|
Arrange.hpp
|
|
|
|
Arrange.cpp
|
2022-08-18 06:17:02 +00:00
|
|
|
NormalUtils.cpp
|
|
|
|
NormalUtils.hpp
|
2024-06-18 09:25:12 +00:00
|
|
|
ObjColorUtils.cpp
|
2024-04-17 09:33:19 +00:00
|
|
|
ObjColorUtils.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
Orient.hpp
|
|
|
|
Orient.cpp
|
|
|
|
MultiPoint.cpp
|
|
|
|
MultiPoint.hpp
|
|
|
|
MutablePriorityQueue.hpp
|
|
|
|
ObjectID.cpp
|
|
|
|
ObjectID.hpp
|
2024-02-27 02:55:45 +00:00
|
|
|
ParameterUtils.cpp
|
|
|
|
ParameterUtils.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
PerimeterGenerator.cpp
|
|
|
|
PerimeterGenerator.hpp
|
|
|
|
PlaceholderParser.cpp
|
|
|
|
PlaceholderParser.hpp
|
|
|
|
Platform.cpp
|
|
|
|
Platform.hpp
|
|
|
|
Point.cpp
|
|
|
|
Point.hpp
|
|
|
|
Polygon.cpp
|
|
|
|
Polygon.hpp
|
|
|
|
MutablePolygon.cpp
|
|
|
|
MutablePolygon.hpp
|
|
|
|
PolygonTrimmer.cpp
|
|
|
|
PolygonTrimmer.hpp
|
|
|
|
Polyline.cpp
|
|
|
|
Polyline.hpp
|
|
|
|
Preset.cpp
|
|
|
|
Preset.hpp
|
|
|
|
PresetBundle.cpp
|
|
|
|
PresetBundle.hpp
|
|
|
|
ProjectTask.cpp
|
|
|
|
ProjectTask.hpp
|
2023-03-10 12:44:07 +00:00
|
|
|
PrincipalComponents2D.hpp
|
|
|
|
PrincipalComponents2D.cpp
|
2022-07-15 15:37:19 +00:00
|
|
|
AppConfig.cpp
|
|
|
|
AppConfig.hpp
|
|
|
|
Print.cpp
|
|
|
|
Print.hpp
|
|
|
|
PrintApply.cpp
|
|
|
|
PrintBase.cpp
|
|
|
|
PrintBase.hpp
|
|
|
|
PrintConfig.cpp
|
|
|
|
PrintConfig.hpp
|
|
|
|
PrintObject.cpp
|
|
|
|
PrintObjectSlice.cpp
|
|
|
|
PrintRegion.cpp
|
|
|
|
PNGReadWrite.hpp
|
|
|
|
PNGReadWrite.cpp
|
|
|
|
QuadricEdgeCollapse.cpp
|
|
|
|
QuadricEdgeCollapse.hpp
|
|
|
|
Semver.cpp
|
2022-08-18 06:17:02 +00:00
|
|
|
ShortEdgeCollapse.cpp
|
|
|
|
ShortEdgeCollapse.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
ShortestPath.cpp
|
|
|
|
ShortestPath.hpp
|
|
|
|
SLAPrint.cpp
|
|
|
|
SLAPrintSteps.cpp
|
|
|
|
SLAPrintSteps.hpp
|
|
|
|
SLAPrint.hpp
|
|
|
|
Slicing.cpp
|
|
|
|
Slicing.hpp
|
|
|
|
SlicesToTriangleMesh.hpp
|
|
|
|
SlicesToTriangleMesh.cpp
|
|
|
|
SlicingAdaptive.cpp
|
|
|
|
SlicingAdaptive.hpp
|
2023-10-26 11:31:44 +00:00
|
|
|
Support/SupportMaterial.cpp
|
|
|
|
Support/SupportMaterial.hpp
|
|
|
|
Support/TreeSupport.hpp
|
|
|
|
Support/TreeSupport.cpp
|
|
|
|
Support/TreeSupport3D.hpp
|
|
|
|
Support/TreeSupport3D.cpp
|
|
|
|
Support/TreeModelVolumes.hpp
|
|
|
|
Support/TreeModelVolumes.cpp
|
|
|
|
Support/TreeSupportCommon.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
MinimumSpanningTree.hpp
|
|
|
|
MinimumSpanningTree.cpp
|
|
|
|
Surface.cpp
|
|
|
|
Surface.hpp
|
|
|
|
SurfaceCollection.cpp
|
|
|
|
SurfaceCollection.hpp
|
2024-02-22 11:32:54 +00:00
|
|
|
SurfaceMesh.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
SVG.cpp
|
|
|
|
SVG.hpp
|
|
|
|
Technologies.hpp
|
|
|
|
Tesselate.cpp
|
|
|
|
Tesselate.hpp
|
|
|
|
TriangleMesh.cpp
|
|
|
|
TriangleMesh.hpp
|
|
|
|
TriangleMeshSlicer.cpp
|
|
|
|
TriangleMeshSlicer.hpp
|
|
|
|
MeshSplitImpl.hpp
|
|
|
|
TriangulateWall.hpp
|
|
|
|
TriangulateWall.cpp
|
|
|
|
utils.cpp
|
|
|
|
Utils.hpp
|
|
|
|
Time.cpp
|
|
|
|
Time.hpp
|
|
|
|
Thread.cpp
|
|
|
|
Thread.hpp
|
|
|
|
TriangleSelector.cpp
|
|
|
|
TriangleSelector.hpp
|
2022-08-18 06:17:02 +00:00
|
|
|
TriangleSetSampling.cpp
|
|
|
|
TriangleSetSampling.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
MTUtils.hpp
|
|
|
|
VariableWidth.cpp
|
|
|
|
VariableWidth.hpp
|
|
|
|
Zipper.hpp
|
|
|
|
Zipper.cpp
|
|
|
|
MinAreaBoundingBox.hpp
|
|
|
|
MinAreaBoundingBox.cpp
|
|
|
|
miniz_extension.hpp
|
|
|
|
miniz_extension.cpp
|
|
|
|
MarchingSquares.hpp
|
|
|
|
Execution/Execution.hpp
|
|
|
|
Execution/ExecutionSeq.hpp
|
|
|
|
Execution/ExecutionTBB.hpp
|
|
|
|
Optimize/Optimizer.hpp
|
|
|
|
Optimize/NLoptOptimizer.hpp
|
|
|
|
Optimize/BruteforceOptimizer.hpp
|
|
|
|
SLA/Pad.hpp
|
|
|
|
SLA/Pad.cpp
|
|
|
|
SLA/SupportTreeBuilder.hpp
|
|
|
|
SLA/SupportTreeMesher.hpp
|
|
|
|
SLA/SupportTreeMesher.cpp
|
|
|
|
SLA/SupportTreeBuildsteps.hpp
|
|
|
|
SLA/SupportTreeBuildsteps.cpp
|
|
|
|
SLA/SupportTreeBuilder.cpp
|
|
|
|
SLA/Concurrency.hpp
|
|
|
|
SLA/SupportTree.hpp
|
|
|
|
SLA/SupportTree.cpp
|
|
|
|
# SLA/SupportTreeIGL.cpp
|
|
|
|
SLA/Rotfinder.hpp
|
|
|
|
SLA/Rotfinder.cpp
|
|
|
|
SLA/BoostAdapter.hpp
|
|
|
|
SLA/SpatIndex.hpp
|
|
|
|
SLA/SpatIndex.cpp
|
|
|
|
SLA/RasterBase.hpp
|
|
|
|
SLA/RasterBase.cpp
|
|
|
|
SLA/AGGRaster.hpp
|
|
|
|
SLA/RasterToPolygons.hpp
|
|
|
|
SLA/RasterToPolygons.cpp
|
|
|
|
SLA/ConcaveHull.hpp
|
|
|
|
SLA/ConcaveHull.cpp
|
|
|
|
SLA/Hollowing.hpp
|
|
|
|
SLA/Hollowing.cpp
|
|
|
|
SLA/JobController.hpp
|
|
|
|
SLA/SupportPoint.hpp
|
|
|
|
SLA/SupportPointGenerator.hpp
|
|
|
|
SLA/SupportPointGenerator.cpp
|
|
|
|
SLA/IndexedMesh.hpp
|
|
|
|
SLA/IndexedMesh.cpp
|
|
|
|
SLA/Clustering.hpp
|
|
|
|
SLA/Clustering.cpp
|
|
|
|
SLA/ReprojectPointsOnMesh.hpp
|
2022-08-10 08:11:39 +00:00
|
|
|
Arachne/BeadingStrategy/BeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/BeadingStrategy.cpp
|
|
|
|
Arachne/BeadingStrategy/BeadingStrategyFactory.hpp
|
|
|
|
Arachne/BeadingStrategy/BeadingStrategyFactory.cpp
|
|
|
|
Arachne/BeadingStrategy/DistributedBeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp
|
|
|
|
Arachne/BeadingStrategy/LimitedBeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp
|
|
|
|
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp
|
|
|
|
Arachne/BeadingStrategy/RedistributeBeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp
|
|
|
|
Arachne/BeadingStrategy/WideningBeadingStrategy.hpp
|
|
|
|
Arachne/BeadingStrategy/WideningBeadingStrategy.cpp
|
|
|
|
Arachne/utils/ExtrusionJunction.hpp
|
|
|
|
Arachne/utils/ExtrusionJunction.cpp
|
|
|
|
Arachne/utils/ExtrusionLine.hpp
|
|
|
|
Arachne/utils/ExtrusionLine.cpp
|
|
|
|
Arachne/utils/HalfEdge.hpp
|
|
|
|
Arachne/utils/HalfEdgeGraph.hpp
|
|
|
|
Arachne/utils/HalfEdgeNode.hpp
|
|
|
|
Arachne/utils/SparseGrid.hpp
|
|
|
|
Arachne/utils/SparsePointGrid.hpp
|
|
|
|
Arachne/utils/SparseLineGrid.hpp
|
|
|
|
Arachne/utils/SquareGrid.hpp
|
|
|
|
Arachne/utils/SquareGrid.cpp
|
|
|
|
Arachne/utils/PolygonsPointIndex.hpp
|
|
|
|
Arachne/utils/PolygonsSegmentIndex.hpp
|
|
|
|
Arachne/utils/PolylineStitcher.hpp
|
|
|
|
Arachne/utils/PolylineStitcher.cpp
|
|
|
|
Arachne/SkeletalTrapezoidation.hpp
|
|
|
|
Arachne/SkeletalTrapezoidation.cpp
|
|
|
|
Arachne/SkeletalTrapezoidationEdge.hpp
|
|
|
|
Arachne/SkeletalTrapezoidationGraph.hpp
|
|
|
|
Arachne/SkeletalTrapezoidationGraph.cpp
|
|
|
|
Arachne/SkeletalTrapezoidationJoint.hpp
|
|
|
|
Arachne/WallToolPaths.hpp
|
|
|
|
Arachne/WallToolPaths.cpp
|
2022-08-12 13:13:52 +00:00
|
|
|
Shape/TextShape.hpp
|
|
|
|
Shape/TextShape.cpp
|
2024-03-29 07:37:11 +00:00
|
|
|
RegionExpansion.hpp
|
|
|
|
RegionExpansion.cpp
|
|
|
|
ClipperZUtils.hpp
|
2022-07-15 15:37:19 +00:00
|
|
|
)
|
|
|
|
|
2022-07-22 09:46:10 +00:00
|
|
|
if (APPLE)
|
|
|
|
list(APPEND lisbslic3r_sources
|
|
|
|
MacUtils.mm
|
2023-09-02 03:30:14 +00:00
|
|
|
Format/ModelIO.hpp
|
|
|
|
Format/ModelIO.mm
|
2022-07-22 09:46:10 +00:00
|
|
|
)
|
|
|
|
endif ()
|
|
|
|
|
2022-07-15 15:37:19 +00:00
|
|
|
add_library(libslic3r STATIC ${lisbslic3r_sources}
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h"
|
|
|
|
${OpenVDBUtils_SOURCES})
|
|
|
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${lisbslic3r_sources})
|
|
|
|
|
|
|
|
if (SLIC3R_STATIC)
|
|
|
|
set(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
|
|
|
|
endif ()
|
|
|
|
set(CGAL_DO_NOT_WARN_ABOUT_CMAKE_BUILD_TYPE ON CACHE BOOL "" FORCE)
|
|
|
|
|
|
|
|
cmake_policy(PUSH)
|
|
|
|
cmake_policy(SET CMP0011 NEW)
|
|
|
|
find_package(CGAL REQUIRED)
|
2024-04-17 09:33:19 +00:00
|
|
|
find_package(OpenCV REQUIRED core)
|
2022-07-15 15:37:19 +00:00
|
|
|
cmake_policy(POP)
|
|
|
|
|
|
|
|
add_library(libslic3r_cgal STATIC MeshBoolean.cpp MeshBoolean.hpp TryCatchSignal.hpp
|
|
|
|
TryCatchSignal.cpp)
|
|
|
|
target_include_directories(libslic3r_cgal PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
|
|
|
|
# Reset compile options of libslic3r_cgal. Despite it being linked privately, CGAL options
|
|
|
|
# (-frounding-math) still propagate to dependent libs which is not desired.
|
|
|
|
get_target_property(_cgal_tgt CGAL::CGAL ALIASED_TARGET)
|
|
|
|
if (NOT TARGET ${_cgal_tgt})
|
|
|
|
set (_cgal_tgt CGAL::CGAL)
|
|
|
|
endif ()
|
|
|
|
get_target_property(_opts ${_cgal_tgt} INTERFACE_COMPILE_OPTIONS)
|
|
|
|
if (_opts)
|
|
|
|
set(_opts_bad "${_opts}")
|
|
|
|
set(_opts_good "${_opts}")
|
|
|
|
list(FILTER _opts_bad INCLUDE REGEX frounding-math)
|
|
|
|
list(FILTER _opts_good EXCLUDE REGEX frounding-math)
|
|
|
|
set_target_properties(${_cgal_tgt} PROPERTIES INTERFACE_COMPILE_OPTIONS "${_opts_good}")
|
|
|
|
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
|
|
|
|
endif()
|
|
|
|
|
2024-06-25 02:56:19 +00:00
|
|
|
if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14.1)
|
|
|
|
set_property(TARGET libslic3r PROPERTY CXX_STANDARD 17)
|
|
|
|
set_property(TARGET libslic3r PROPERTY CXX_EXTENSIONS OFF)
|
|
|
|
set_property(TARGET libslic3r_cgal PROPERTY CXX_STANDARD 17)
|
|
|
|
set_property(TARGET libslic3r_cgal PROPERTY CXX_EXTENSIONS OFF)
|
|
|
|
endif()
|
2024-05-29 17:18:23 +00:00
|
|
|
|
2023-05-31 07:05:28 +00:00
|
|
|
target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} libigl mcut)
|
2022-07-15 15:37:19 +00:00
|
|
|
|
|
|
|
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
|
|
|
|
target_compile_definitions(libslic3r_cgal PRIVATE CGAL_DO_NOT_USE_MPZF)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
encoding_check(libslic3r)
|
|
|
|
|
|
|
|
target_compile_definitions(libslic3r PUBLIC -DUSE_TBB -DTBB_USE_CAPTURED_EXCEPTION=0)
|
|
|
|
target_include_directories(libslic3r PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
target_include_directories(libslic3r PUBLIC ${EXPAT_INCLUDE_DIRS})
|
|
|
|
|
|
|
|
# Find the OCCT and related libraries
|
|
|
|
set(OpenCASCADE_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/occt")
|
|
|
|
find_package(OpenCASCADE REQUIRED)
|
|
|
|
target_include_directories(libslic3r PUBLIC ${OpenCASCADE_INCLUDE_DIR})
|
|
|
|
|
|
|
|
set(OCCT_LIBS
|
|
|
|
TKXDESTEP
|
|
|
|
TKSTEP
|
|
|
|
TKSTEP209
|
|
|
|
TKSTEPAttr
|
|
|
|
TKSTEPBase
|
|
|
|
TKXCAF
|
|
|
|
TKXSBase
|
|
|
|
TKVCAF
|
|
|
|
TKCAF
|
|
|
|
TKLCAF
|
|
|
|
TKCDF
|
|
|
|
TKV3d
|
|
|
|
TKService
|
|
|
|
TKMesh
|
|
|
|
TKBO
|
|
|
|
TKPrim
|
|
|
|
TKHLR
|
|
|
|
TKShHealing
|
|
|
|
TKTopAlgo
|
|
|
|
TKGeomAlgo
|
|
|
|
TKBRep
|
|
|
|
TKGeomBase
|
|
|
|
TKG3d
|
|
|
|
TKG2d
|
|
|
|
TKMath
|
|
|
|
TKernel
|
|
|
|
)
|
|
|
|
|
2022-08-15 05:58:35 +00:00
|
|
|
|
2022-07-15 15:37:19 +00:00
|
|
|
target_link_libraries(libslic3r
|
|
|
|
libnest2d
|
|
|
|
admesh
|
|
|
|
cereal
|
|
|
|
libigl
|
|
|
|
miniz
|
|
|
|
boost_libs
|
|
|
|
clipper
|
|
|
|
nowide
|
|
|
|
${EXPAT_LIBRARIES}
|
|
|
|
glu-libtess
|
|
|
|
qhull
|
|
|
|
semver
|
|
|
|
TBB::tbb
|
2023-10-26 11:31:44 +00:00
|
|
|
TBB::tbbmalloc
|
2022-07-15 15:37:19 +00:00
|
|
|
libslic3r_cgal
|
|
|
|
${CMAKE_DL_LIBS}
|
|
|
|
PNG::PNG
|
|
|
|
ZLIB::ZLIB
|
|
|
|
${OCCT_LIBS}
|
2022-11-08 13:51:21 +00:00
|
|
|
Clipper2
|
2023-05-31 07:05:28 +00:00
|
|
|
mcut
|
2024-04-17 09:33:19 +00:00
|
|
|
opencv_world
|
2022-07-15 15:37:19 +00:00
|
|
|
)
|
|
|
|
|
2022-09-08 07:36:03 +00:00
|
|
|
if(NOT WIN32)
|
|
|
|
target_link_libraries(libslic3r freetype)
|
|
|
|
if (NOT APPLE)
|
|
|
|
target_link_libraries(libslic3r fontconfig)
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2023-09-02 03:30:14 +00:00
|
|
|
if (APPLE)
|
|
|
|
find_library(FOUNDATION Foundation REQUIRED)
|
|
|
|
find_library(MODELIO ModelIO REQUIRED)
|
|
|
|
target_link_libraries(libslic3r ${FOUNDATION} ${MODELIO})
|
|
|
|
endif ()
|
|
|
|
|
2022-07-15 15:37:19 +00:00
|
|
|
if (TARGET OpenVDB::openvdb)
|
|
|
|
target_link_libraries(libslic3r OpenVDB::openvdb)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(WIN32)
|
|
|
|
target_link_libraries(libslic3r Psapi.lib)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(SLIC3R_PROFILE)
|
|
|
|
target_link_libraries(libslic3r Shiny)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
|
|
|
add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE)
|
|
|
|
endif ()
|