#include <src/libslic3r/SLA/SupportTreeBuilder.hpp>
|
| using | Mutex = tbb::spin_mutex |
| |
|
| template<class BridgeT , class... Args> |
| const BridgeT & | _add_bridge (std::vector< BridgeT > &br, Args &&... args) |
| |
◆ Mutex
◆ SupportTreeBuilder() [1/3]
const JobController & ctl() const
Definition SupportTreeBuilder.hpp:256
JobController m_ctl
Definition SupportTreeBuilder.hpp:229
◆ SupportTreeBuilder() [2/3]
35{}
std::vector< Bridge > m_crossbridges
Definition SupportTreeBuilder.hpp:224
double m_model_height
Definition SupportTreeBuilder.hpp:236
indexed_triangle_set m_meshcache
Definition SupportTreeBuilder.hpp:233
std::vector< Bridge > m_bridges
Definition SupportTreeBuilder.hpp:223
std::vector< Head > m_heads
Definition SupportTreeBuilder.hpp:219
std::vector< Pillar > m_pillars
Definition SupportTreeBuilder.hpp:221
std::vector< size_t > m_head_indices
Definition SupportTreeBuilder.hpp:220
bool m_meshcache_valid
Definition SupportTreeBuilder.hpp:235
◆ SupportTreeBuilder() [3/3]
◆ _add_bridge()
template<class BridgeT , class... Args>
| const BridgeT & Slic3r::sla::SupportTreeBuilder::_add_bridge |
( |
std::vector< BridgeT > & |
br, |
|
|
Args &&... |
args |
|
) |
| |
|
inlineprivate |
◆ add_anchor()
template<class... Args>
| const Anchor & Slic3r::sla::SupportTreeBuilder::add_anchor |
( |
Args &&... |
args | ) |
|
|
inline |
◆ add_bridge() [1/2]
◆ add_bridge() [2/2]
357 {
358 std::lock_guard<Mutex> lk(
m_mutex);
360
362 m_bridges.emplace_back(h.junction_point(), endp, h.r_back_mm);
364
368 }
References Slic3r::sla::Head::bridge_id, Slic3r::sla::Head::junction_point(), long, m_bridges, m_head_indices, m_heads, m_meshcache_valid, m_mutex, and Slic3r::sla::Head::r_back_mm.
◆ add_crossbridge()
template<class... Args>
| const Bridge & Slic3r::sla::SupportTreeBuilder::add_crossbridge |
( |
Args &&... |
args | ) |
|
|
inline |
◆ add_diffbridge()
template<class... Args>
| const DiffBridge & Slic3r::sla::SupportTreeBuilder::add_diffbridge |
( |
Args &&... |
args | ) |
|
|
inline |
◆ add_head()
template<class... Args>
| Head & Slic3r::sla::SupportTreeBuilder::add_head |
( |
unsigned |
id, |
|
|
Args &&... |
args |
|
) |
| |
|
inline |
◆ add_junction()
template<class... Args>
| const Junction & Slic3r::sla::SupportTreeBuilder::add_junction |
( |
Args &&... |
args | ) |
|
|
inline |
◆ add_pillar() [1/2]
template<class... Args>
| long Slic3r::sla::SupportTreeBuilder::add_pillar |
( |
Args &&... |
args | ) |
|
|
inline |
◆ add_pillar() [2/2]
| long Slic3r::sla::SupportTreeBuilder::add_pillar |
( |
long |
headid, |
|
|
double |
length |
|
) |
| |
|
inline |
272 {
273 std::lock_guard<Mutex> lk(
m_mutex);
276
279
282
287 pillar.starts_from_head =
true;
288
291 }
Head & head(unsigned id)
Definition SupportTreeBuilder.hpp:380
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition SpatIndex.hpp:15
double length(const Points &pts)
Definition MultiPoint.hpp:116
Vec3d junction_point() const
Definition SupportTreeBuilder.hpp:122
long pillar_id
Definition SupportTreeBuilder.hpp:89
double r_back_mm
Definition SupportTreeBuilder.hpp:83
long id
Definition SupportTreeBuilder.hpp:67
References head(), Slic3r::sla::SupportTreeNode::id, Slic3r::sla::Head::junction_point(), Slic3r::length(), long, m_head_indices, m_heads, m_meshcache_valid, m_mutex, m_pillars, pillar(), Slic3r::sla::Head::pillar_id, and Slic3r::sla::Head::r_back_mm.
Referenced by Slic3r::sla::build_ground_connection(), Slic3r::sla::DefaultSupportTree::connect_to_model_body(), Slic3r::sla::DefaultSupportTree::connect_to_nearpillar(), and Slic3r::sla::create_ground_pillar().
◆ add_pillar_base()
| void Slic3r::sla::SupportTreeBuilder::add_pillar_base |
( |
long |
pid, |
|
|
double |
baseheight = 3, |
|
|
double |
radius = 2 |
|
) |
| |
75{
76 std::lock_guard<Mutex> lk(
m_mutex);
77 assert(pid >= 0 &&
size_t(pid) <
m_pillars.size());
79 m_pedestals.emplace_back(pll.endpt, std::min(baseheight, pll.height),
80 std::max(radius, pll.r_start), pll.r_start);
81
84}
std::vector< Pedestal > m_pedestals
Definition SupportTreeBuilder.hpp:226
References Slic3r::sla::Pillar::endpt, Slic3r::sla::Pillar::height, m_meshcache_valid, m_mutex, m_pedestals, m_pillars, and Slic3r::sla::Pillar::r_start.
Referenced by Slic3r::sla::DefaultSupportTree::add_pillar_base(), Slic3r::sla::build_ground_connection(), and Slic3r::sla::create_ground_pillar().
◆ bridgecount()
| unsigned Slic3r::sla::SupportTreeBuilder::bridgecount |
( |
const Pillar & |
pillar | ) |
const |
|
inline |
◆ bridges()
| const std::vector< Bridge > & Slic3r::sla::SupportTreeBuilder::bridges |
( |
| ) |
const |
|
inline |
◆ crossbridges()
| const std::vector< Bridge > & Slic3r::sla::SupportTreeBuilder::crossbridges |
( |
| ) |
const |
|
inline |
◆ ctl()
◆ head()
| Head & Slic3r::sla::SupportTreeBuilder::head |
( |
unsigned |
id | ) |
|
|
inline |
◆ heads()
| const std::vector< Head > & Slic3r::sla::SupportTreeBuilder::heads |
( |
| ) |
const |
|
inline |
◆ increment_bridges()
| void Slic3r::sla::SupportTreeBuilder::increment_bridges |
( |
const Pillar & |
pillar | ) |
|
|
inline |
◆ increment_links()
| void Slic3r::sla::SupportTreeBuilder::increment_links |
( |
const Pillar & |
pillar | ) |
|
|
inline |
◆ merge_and_cleanup()
◆ merged_mesh()
87{
89
91
93 if (
ctl().stopcondition())
break;
95 }
96
98 if (
ctl().stopcondition())
break;
100 }
101
103 if (
ctl().stopcondition())
break;
105 }
106
108 if (
ctl().stopcondition())
break;
110 }
111
113 if (
ctl().stopcondition())
break;
115 }
116
118 if (
ctl().stopcondition())
break;
120 }
121
123 if (
ctl().stopcondition())
break;
125 }
126
128 if (
ctl().stopcondition())
break;
130 }
131
132 if (
ctl().stopcondition()) {
133
136 }
137
139
140
141
143
146
149}
indexed_triangle_set & get_mesh(Interior &interior)
Definition Hollowing.cpp:50
int its_merge_vertices(indexed_triangle_set &its, bool shrink_to_fit)
Definition TriangleMesh.cpp:675
BoundingBoxf3 bounding_box(const TriangleMesh &m)
Definition TriangleMesh.hpp:340
@ Z
Definition libslic3r.h:100
void its_merge(indexed_triangle_set &its, indexed_triangle_set &&its_add)
Merge one triangle mesh to another Added triangle set will be consumed.
Definition TriangleMesh.cpp:1355
bool is_valid() const
Definition SupportTreeBuilder.hpp:94
References ctl(), Slic3r::sla::get_mesh(), head(), Slic3r::sla::Head::is_valid(), Slic3r::its_merge(), m_heads, m_meshcache, m_meshcache_valid, and Slic3r::sla::JobController::stopcondition.
Referenced by merge_and_cleanup(), Slic3r::sla::DefaultSupportTree::merge_result(), and retrieve_mesh().
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ pillar() [1/2]
409 {
410 std::lock_guard<Mutex> lk(
m_mutex);
411 assert(
id >= 0 &&
size_t(
id) <
m_pillars.size() &&
412 size_t(id) < std::numeric_limits<size_t>::max());
413
415 }
References m_mutex, and m_pillars.
◆ pillar() [2/2]
400 {
401 std::lock_guard<Mutex> lk(
m_mutex);
402 assert(
id >= 0 &&
size_t(
id) <
m_pillars.size() &&
403 size_t(id) < std::numeric_limits<size_t>::max());
404
406 }
References m_mutex, and m_pillars.
Referenced by add_pillar(), add_pillar(), bridgecount(), Slic3r::sla::DefaultSupportTree::connect_to_ground(), Slic3r::sla::DefaultSupportTree::connect_to_model_body(), Slic3r::sla::DefaultSupportTree::connect_to_nearpillar(), Slic3r::sla::DefaultSupportTree::create_ground_pillar(), increment_bridges(), increment_links(), and Slic3r::sla::DefaultSupportTree::search_pillar_and_connect().
◆ pillarcount()
| size_t Slic3r::sla::SupportTreeBuilder::pillarcount |
( |
| ) |
const |
|
inline |
◆ pillars()
| const std::vector< Pillar > & Slic3r::sla::SupportTreeBuilder::pillars |
( |
| ) |
const |
|
inline |
◆ retrieve_full_mesh()
◆ retrieve_mesh()
◆ m_anchors
| std::vector<Anchor> Slic3r::sla::SupportTreeBuilder::m_anchors |
|
private |
◆ m_bridges
| std::vector<Bridge> Slic3r::sla::SupportTreeBuilder::m_bridges |
|
private |
◆ m_crossbridges
| std::vector<Bridge> Slic3r::sla::SupportTreeBuilder::m_crossbridges |
|
private |
◆ m_ctl
◆ m_diffbridges
| std::vector<DiffBridge> Slic3r::sla::SupportTreeBuilder::m_diffbridges |
|
private |
◆ m_head_indices
| std::vector<size_t> Slic3r::sla::SupportTreeBuilder::m_head_indices |
|
private |
◆ m_heads
| std::vector<Head> Slic3r::sla::SupportTreeBuilder::m_heads |
|
private |
◆ m_junctions
| std::vector<Junction> Slic3r::sla::SupportTreeBuilder::m_junctions |
|
private |
◆ m_meshcache
◆ m_meshcache_valid
| bool Slic3r::sla::SupportTreeBuilder::m_meshcache_valid = false |
|
mutableprivate |
Referenced by _add_bridge(), add_anchor(), add_bridge(), add_head(), add_junction(), add_pillar(), add_pillar(), add_pillar_base(), head(), merged_mesh(), operator=(), and operator=().
◆ m_model_height
| double Slic3r::sla::SupportTreeBuilder::m_model_height = 0 |
|
mutableprivate |
◆ m_mutex
| Mutex Slic3r::sla::SupportTreeBuilder::m_mutex |
|
mutableprivate |
Referenced by _add_bridge(), add_anchor(), add_bridge(), add_head(), add_junction(), add_pillar(), add_pillar(), add_pillar_base(), bridgecount(), head(), increment_bridges(), increment_links(), pillar(), pillar(), and pillarcount().
◆ m_pedestals
| std::vector<Pedestal> Slic3r::sla::SupportTreeBuilder::m_pedestals |
|
private |
◆ m_pillars
| std::vector<Pillar> Slic3r::sla::SupportTreeBuilder::m_pillars |
|
private |
Referenced by add_pillar(), add_pillar(), add_pillar_base(), bridgecount(), increment_bridges(), increment_links(), merge_and_cleanup(), operator=(), operator=(), pillar(), pillar(), pillarcount(), and pillars().
The documentation for this class was generated from the following files: