Merge branch 'main' into feature/h2c_support_clean

This commit is contained in:
SoftFever
2026-07-11 22:19:59 +08:00
committed by GitHub
5 changed files with 37 additions and 12 deletions

View File

@@ -401,7 +401,7 @@ void PartPlate::set_spiral_vase_mode(bool spiral_mode, bool as_global)
}
}
bool PartPlate::valid_instance(int obj_id, int instance_id)
bool PartPlate::valid_instance(int obj_id, int instance_id) const
{
if ((obj_id >= 0) && (obj_id < m_model->objects.size()))
{
@@ -1704,7 +1704,7 @@ std::vector<int> PartPlate::get_extruders_under_cli(bool conside_custom_gcode, D
int obj_id = it->first;
int instance_id = it->second;
if ((obj_id >= 0) && (obj_id < m_model->objects.size()))
if (valid_instance(obj_id, instance_id))
{
ModelObject* object = m_model->objects[obj_id];
ModelInstance* instance = object->instances[instance_id];
@@ -2375,6 +2375,9 @@ void PartPlate::set_pos_and_size(Vec3d& origin, int width, int depth, int height
for (std::set<std::pair<int, int>>::iterator it = obj_to_instance_set.begin(); it != obj_to_instance_set.end(); ++it) {
int obj_id = it->first;
int instance_id = it->second;
if (!valid_instance(obj_id, instance_id))
continue;
ModelObject* object = m_model->objects[obj_id];
ModelInstance* instance = object->instances[instance_id];
@@ -2849,7 +2852,7 @@ void PartPlate::duplicate_all_instance(unsigned int dup_count, bool need_skip, s
int obj_id = it->first;
int instance_id = it->second;
if ((obj_id >= 0) && (obj_id < m_model->objects.size()))
if (valid_instance(obj_id, instance_id))
{
ModelObject* object = m_model->objects[obj_id];
ModelInstance* instance = object->instances[instance_id];
@@ -2882,7 +2885,7 @@ void PartPlate::duplicate_all_instance(unsigned int dup_count, bool need_skip, s
int obj_id = it->first;
int instance_id = it->second;
if ((obj_id >= 0) && (obj_id < m_model->objects.size()))
if (valid_instance(obj_id, instance_id))
{
ModelObject* object = m_model->objects[obj_id];
ModelInstance* instance = object->instances[instance_id];
@@ -2999,8 +3002,8 @@ int PartPlate::printable_instance_size()
int obj_id = it->first;
int instance_id = it->second;
if (obj_id >= m_model->objects.size())
continue;
if (!valid_instance(obj_id, instance_id))
continue;
ModelObject * object = m_model->objects[obj_id];
ModelInstance *instance = object->instances[instance_id];
@@ -3022,7 +3025,7 @@ bool PartPlate::has_printable_instances()
int obj_id = it->first;
int instance_id = it->second;
if (obj_id >= m_model->objects.size())
if (!valid_instance(obj_id, instance_id))
continue;
ModelObject* object = m_model->objects[obj_id];
@@ -3046,7 +3049,8 @@ bool PartPlate::is_all_instances_unprintable()
int obj_id = it->first;
int instance_id = it->second;
if (obj_id >= m_model->objects.size()) continue;
if (!valid_instance(obj_id, instance_id))
continue;
ModelObject * object = m_model->objects[obj_id];
ModelInstance *instance = object->instances[instance_id];