Some fixes after the recent Model refactoring
This commit is contained in:
parent
65b7d27def
commit
27c73f5983
@ -403,7 +403,7 @@ sub load_model_objects {
|
||||
);
|
||||
push @obj_idx, $#{ $self->{objects} };
|
||||
|
||||
if (!defined $model_object->instances) {
|
||||
if ($model_object->instances_count == 0) {
|
||||
# if object has no defined position(s) we need to rearrange everything after loading
|
||||
$need_arrange = 1;
|
||||
|
||||
|
@ -104,8 +104,9 @@ sub apply_config {
|
||||
if ($rearrange_regions) {
|
||||
# the current subdivision of regions does not make sense anymore.
|
||||
# we need to remove all objects and re-add them
|
||||
my @model_objects = map $_->model_object, @{$self->objects};
|
||||
$self->clear_objects;
|
||||
$self->add_model_object($_->model_object) for @{$self->objects};
|
||||
$self->add_model_object($_) for @model_objects;
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,7 +138,7 @@ sub add_model_object {
|
||||
$config->apply_dynamic($object_config);
|
||||
|
||||
if (defined $volume->material_id) {
|
||||
my $material_config = $object->model->get_material($volume->material_id)->config->clone;
|
||||
my $material_config = $volume->material->config->clone;
|
||||
$material_config->normalize;
|
||||
$config->apply_dynamic($material_config);
|
||||
}
|
||||
|
@ -321,8 +321,31 @@ ModelVolume::ModelVolume(ModelObject* object, const TriangleMesh &mesh)
|
||||
{}
|
||||
|
||||
ModelVolume::ModelVolume(ModelObject* object, const ModelVolume &other)
|
||||
: object(object), material_id(other.material_id), mesh(other.mesh), modifier(other.modifier)
|
||||
{}
|
||||
: object(object), mesh(other.mesh), modifier(other.modifier)
|
||||
{
|
||||
this->material_id(other.material_id());
|
||||
}
|
||||
|
||||
t_model_material_id
|
||||
ModelVolume::material_id() const
|
||||
{
|
||||
return this->_material_id;
|
||||
}
|
||||
|
||||
void
|
||||
ModelVolume::material_id(t_model_material_id material_id)
|
||||
{
|
||||
this->_material_id = material_id;
|
||||
|
||||
// ensure this->_material_id references an existing material
|
||||
(void)this->object->get_model()->add_material(material_id);
|
||||
}
|
||||
|
||||
ModelMaterial*
|
||||
ModelVolume::material() const
|
||||
{
|
||||
return this->object->get_model()->get_material(this->_material_id);
|
||||
}
|
||||
|
||||
#ifdef SLIC3RXS
|
||||
REGISTER_CLASS(ModelVolume, "Model::Volume");
|
||||
|
@ -138,14 +138,17 @@ class ModelVolume
|
||||
{
|
||||
friend class ModelObject;
|
||||
public:
|
||||
t_model_material_id material_id;
|
||||
TriangleMesh mesh;
|
||||
bool modifier;
|
||||
|
||||
ModelObject* get_object() const { return this->object; };
|
||||
t_model_material_id material_id() const;
|
||||
void material_id(t_model_material_id material_id);
|
||||
ModelMaterial* material() const;
|
||||
|
||||
private:
|
||||
ModelObject* object;
|
||||
t_model_material_id _material_id;
|
||||
|
||||
ModelVolume(ModelObject *object, const TriangleMesh &mesh);
|
||||
ModelVolume(ModelObject *object, const ModelVolume &other);
|
||||
|
@ -162,10 +162,10 @@ ModelMaterial::attributes()
|
||||
Ref<ModelObject> object()
|
||||
%code%{ RETVAL = THIS->get_object(); %};
|
||||
|
||||
t_model_material_id material_id()
|
||||
%code%{ RETVAL = THIS->material_id; %};
|
||||
t_model_material_id material_id();
|
||||
void set_material_id(t_model_material_id material_id)
|
||||
%code%{ THIS->material_id = material_id; %};
|
||||
%code%{ THIS->material_id(material_id); %};
|
||||
Ref<ModelMaterial> material();
|
||||
|
||||
Ref<TriangleMesh> mesh()
|
||||
%code%{ RETVAL = &THIS->mesh; %};
|
||||
|
@ -64,6 +64,7 @@ Point::coincides_with(point_sv)
|
||||
%code{% RETVAL = THIS->x; %};
|
||||
double y()
|
||||
%code{% RETVAL = THIS->y; %};
|
||||
void translate(double x, double y);
|
||||
};
|
||||
|
||||
%name{Slic3r::Pointf3} class Pointf3 {
|
||||
|
Loading…
Reference in New Issue
Block a user