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} };
|
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
|
# if object has no defined position(s) we need to rearrange everything after loading
|
||||||
$need_arrange = 1;
|
$need_arrange = 1;
|
||||||
|
|
||||||
|
@ -104,8 +104,9 @@ sub apply_config {
|
|||||||
if ($rearrange_regions) {
|
if ($rearrange_regions) {
|
||||||
# the current subdivision of regions does not make sense anymore.
|
# the current subdivision of regions does not make sense anymore.
|
||||||
# we need to remove all objects and re-add them
|
# we need to remove all objects and re-add them
|
||||||
|
my @model_objects = map $_->model_object, @{$self->objects};
|
||||||
$self->clear_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);
|
$config->apply_dynamic($object_config);
|
||||||
|
|
||||||
if (defined $volume->material_id) {
|
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;
|
$material_config->normalize;
|
||||||
$config->apply_dynamic($material_config);
|
$config->apply_dynamic($material_config);
|
||||||
}
|
}
|
||||||
|
@ -321,8 +321,31 @@ ModelVolume::ModelVolume(ModelObject* object, const TriangleMesh &mesh)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
ModelVolume::ModelVolume(ModelObject* object, const ModelVolume &other)
|
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
|
#ifdef SLIC3RXS
|
||||||
REGISTER_CLASS(ModelVolume, "Model::Volume");
|
REGISTER_CLASS(ModelVolume, "Model::Volume");
|
||||||
|
@ -138,14 +138,17 @@ class ModelVolume
|
|||||||
{
|
{
|
||||||
friend class ModelObject;
|
friend class ModelObject;
|
||||||
public:
|
public:
|
||||||
t_model_material_id material_id;
|
|
||||||
TriangleMesh mesh;
|
TriangleMesh mesh;
|
||||||
bool modifier;
|
bool modifier;
|
||||||
|
|
||||||
ModelObject* get_object() const { return this->object; };
|
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:
|
private:
|
||||||
ModelObject* object;
|
ModelObject* object;
|
||||||
|
t_model_material_id _material_id;
|
||||||
|
|
||||||
ModelVolume(ModelObject *object, const TriangleMesh &mesh);
|
ModelVolume(ModelObject *object, const TriangleMesh &mesh);
|
||||||
ModelVolume(ModelObject *object, const ModelVolume &other);
|
ModelVolume(ModelObject *object, const ModelVolume &other);
|
||||||
|
@ -162,10 +162,10 @@ ModelMaterial::attributes()
|
|||||||
Ref<ModelObject> object()
|
Ref<ModelObject> object()
|
||||||
%code%{ RETVAL = THIS->get_object(); %};
|
%code%{ RETVAL = THIS->get_object(); %};
|
||||||
|
|
||||||
t_model_material_id material_id()
|
t_model_material_id material_id();
|
||||||
%code%{ RETVAL = THIS->material_id; %};
|
|
||||||
void set_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()
|
Ref<TriangleMesh> mesh()
|
||||||
%code%{ RETVAL = &THIS->mesh; %};
|
%code%{ RETVAL = &THIS->mesh; %};
|
||||||
|
@ -64,6 +64,7 @@ Point::coincides_with(point_sv)
|
|||||||
%code{% RETVAL = THIS->x; %};
|
%code{% RETVAL = THIS->x; %};
|
||||||
double y()
|
double y()
|
||||||
%code{% RETVAL = THIS->y; %};
|
%code{% RETVAL = THIS->y; %};
|
||||||
|
void translate(double x, double y);
|
||||||
};
|
};
|
||||||
|
|
||||||
%name{Slic3r::Pointf3} class Pointf3 {
|
%name{Slic3r::Pointf3} class Pointf3 {
|
||||||
|
Loading…
Reference in New Issue
Block a user