Update of ModelVolume::m_is_splittable moved inside ModelVolume itself
This commit is contained in:
parent
dec1c6ecfb
commit
77964de9f2
3 changed files with 12 additions and 9 deletions
|
@ -1456,6 +1456,15 @@ int ModelVolume::extruder_id() const
|
||||||
return extruder_id;
|
return extruder_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ModelVolume::is_splittable() const
|
||||||
|
{
|
||||||
|
// the call mesh.has_multiple_patches() is expensive, so cache the value to calculate it only once
|
||||||
|
if (m_is_splittable == -1)
|
||||||
|
m_is_splittable = (int)mesh.has_multiple_patches();
|
||||||
|
|
||||||
|
return m_is_splittable == 1;
|
||||||
|
}
|
||||||
|
|
||||||
void ModelVolume::center_geometry()
|
void ModelVolume::center_geometry()
|
||||||
{
|
{
|
||||||
#if ENABLE_VOLUMES_CENTERING_FIXES
|
#if ENABLE_VOLUMES_CENTERING_FIXES
|
||||||
|
|
|
@ -336,8 +336,7 @@ public:
|
||||||
// Extruder ID is only valid for FFF. Returns -1 for SLA or if the extruder ID is not applicable (support volumes).
|
// Extruder ID is only valid for FFF. Returns -1 for SLA or if the extruder ID is not applicable (support volumes).
|
||||||
int extruder_id() const;
|
int extruder_id() const;
|
||||||
|
|
||||||
void set_splittable(const int val) { m_is_splittable = val; }
|
bool is_splittable() const;
|
||||||
int is_splittable() const { return m_is_splittable; }
|
|
||||||
|
|
||||||
// Split this volume, append the result to the object owning this volume.
|
// Split this volume, append the result to the object owning this volume.
|
||||||
// Return the number of volumes created from this one.
|
// Return the number of volumes created from this one.
|
||||||
|
@ -417,7 +416,7 @@ private:
|
||||||
// -1 -> is unknown value (before first cheking)
|
// -1 -> is unknown value (before first cheking)
|
||||||
// 0 -> is not splittable
|
// 0 -> is not splittable
|
||||||
// 1 -> is splittable
|
// 1 -> is splittable
|
||||||
int m_is_splittable {-1};
|
mutable int m_is_splittable{ -1 };
|
||||||
|
|
||||||
ModelVolume(ModelObject *object, const TriangleMesh &mesh) : mesh(mesh), m_type(ModelVolumeType::MODEL_PART), object(object)
|
ModelVolume(ModelObject *object, const TriangleMesh &mesh) : mesh(mesh), m_type(ModelVolumeType::MODEL_PART), object(object)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1519,12 +1519,7 @@ bool ObjectList::is_splittable()
|
||||||
if (!get_volume_by_item(item, volume) || !volume)
|
if (!get_volume_by_item(item, volume) || !volume)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
int splittable = volume->is_splittable();
|
return volume->is_splittable();
|
||||||
if (splittable == -1) {
|
|
||||||
splittable = (int)volume->mesh.has_multiple_patches();
|
|
||||||
volume->set_splittable(splittable);
|
|
||||||
}
|
|
||||||
return splittable != 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectList::selected_instances_of_same_object()
|
bool ObjectList::selected_instances_of_same_object()
|
||||||
|
|
Loading…
Reference in a new issue