mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-02 18:20:44 +08:00
Fix crash made on MMU printers
This commit is contained in:
parent
d24472675c
commit
d653cc6ab5
@ -313,11 +313,14 @@ namespace Slic3r::GUI{
|
|||||||
|
|
||||||
RaycastManager::Meshes create_meshes(GLCanvas3D &canvas, const RaycastManager::AllowVolumes &condition)
|
RaycastManager::Meshes create_meshes(GLCanvas3D &canvas, const RaycastManager::AllowVolumes &condition)
|
||||||
{
|
{
|
||||||
SceneRaycaster::EType type = SceneRaycaster::EType::Volume;
|
SceneRaycaster::EType type = SceneRaycaster::EType::Volume;
|
||||||
auto scene_casters = canvas.get_raycasters_for_picking(type);
|
auto scene_casters = canvas.get_raycasters_for_picking(type);
|
||||||
const std::vector<std::shared_ptr<SceneRaycasterItem>> &casters = *scene_casters;
|
if (scene_casters == nullptr)
|
||||||
const GLVolumePtrs &gl_volumes = canvas.get_volumes().volumes;
|
return {};
|
||||||
const ModelObjectPtrs &objects = canvas.get_model()->objects;
|
const std::vector<std::shared_ptr<SceneRaycasterItem>> &casters = *scene_casters;
|
||||||
|
|
||||||
|
const GLVolumePtrs &gl_volumes = canvas.get_volumes().volumes;
|
||||||
|
const ModelObjectPtrs &objects = canvas.get_model()->objects;
|
||||||
|
|
||||||
RaycastManager::Meshes meshes;
|
RaycastManager::Meshes meshes;
|
||||||
for (const std::shared_ptr<SceneRaycasterItem> &caster : casters) {
|
for (const std::shared_ptr<SceneRaycasterItem> &caster : casters) {
|
||||||
@ -327,9 +330,13 @@ RaycastManager::Meshes create_meshes(GLCanvas3D &canvas, const RaycastManager::A
|
|||||||
auto index_ = static_cast<size_t>(index);
|
auto index_ = static_cast<size_t>(index);
|
||||||
if(index_ >= gl_volumes.size())
|
if(index_ >= gl_volumes.size())
|
||||||
continue;
|
continue;
|
||||||
const GLVolume *gl_volume = gl_volumes[index_];
|
const GLVolume *gl_volume = gl_volumes[index_];
|
||||||
const ModelVolume *volume = get_model_volume(*gl_volume, objects);
|
if (gl_volume == nullptr)
|
||||||
size_t id = volume->id().id;
|
continue;
|
||||||
|
const ModelVolume *volume = get_model_volume(*gl_volume, objects);
|
||||||
|
if (volume == nullptr)
|
||||||
|
continue;
|
||||||
|
size_t id = volume->id().id;
|
||||||
if (condition.skip(id))
|
if (condition.skip(id))
|
||||||
continue;
|
continue;
|
||||||
auto mesh = std::make_unique<AABBMesh>(caster->get_raycaster()->get_aabb_mesh());
|
auto mesh = std::make_unique<AABBMesh>(caster->get_raycaster()->get_aabb_mesh());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user