mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-03 00:40:37 +08:00
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
///|/ Copyright (c) Prusa Research 2022 Pavel Mikuš @Godrak
|
|
///|/
|
|
///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher
|
|
///|/
|
|
#ifndef SRC_LIBSLIC3R_TRIANGLESELECTORWRAPPER_HPP_
|
|
#define SRC_LIBSLIC3R_TRIANGLESELECTORWRAPPER_HPP_
|
|
|
|
#include "TriangleSelector.hpp"
|
|
#include "Model.hpp"
|
|
#include "AABBTreeIndirect.hpp"
|
|
#include "libslic3r/Point.hpp"
|
|
|
|
namespace Slic3r {
|
|
class TriangleMesh;
|
|
|
|
//NOTE: We need to replace the FacetsAnnotation struct for support storage (or extend/add another)
|
|
// Problems: Does not support negative volumes, strange usage for supports computed from extrusion -
|
|
// expensively converted back to triangles and then sliced again.
|
|
// Another problem is weird and very limited interface when painting supports via algorithms
|
|
|
|
|
|
class TriangleSelectorWrapper {
|
|
public:
|
|
const TriangleMesh &mesh;
|
|
const Transform3d& mesh_transform;
|
|
TriangleSelector selector;
|
|
AABBTreeIndirect::Tree<3, float> triangles_tree;
|
|
|
|
TriangleSelectorWrapper(const TriangleMesh &mesh, const Transform3d& mesh_transform);
|
|
|
|
void enforce_spot(const Vec3f &point, const Vec3f& origin, float radius);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* SRC_LIBSLIC3R_TRIANGLESELECTORWRAPPER_HPP_ */
|