Ported PrintObject::bounding_box() to XS
This commit is contained in:
parent
1fda9e3d50
commit
c7f5753a28
@ -40,16 +40,6 @@ sub total_layer_count {
|
|||||||
return $self->layer_count + $self->support_layer_count;
|
return $self->layer_count + $self->support_layer_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub bounding_box {
|
|
||||||
my $self = shift;
|
|
||||||
|
|
||||||
# since the object is aligned to origin, bounding box coincides with size
|
|
||||||
return Slic3r::Geometry::BoundingBox->new_from_points([
|
|
||||||
Slic3r::Point->new(0,0),
|
|
||||||
map Slic3r::Point->new($_->x, $_->y), $self->size #))
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
# this should be idempotent
|
# this should be idempotent
|
||||||
sub slice {
|
sub slice {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <set>
|
#include <set>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "BoundingBox.hpp"
|
||||||
#include "Flow.hpp"
|
#include "Flow.hpp"
|
||||||
#include "PrintConfig.hpp"
|
#include "PrintConfig.hpp"
|
||||||
#include "Point.hpp"
|
#include "Point.hpp"
|
||||||
@ -108,6 +109,7 @@ class PrintObject
|
|||||||
bool delete_all_copies();
|
bool delete_all_copies();
|
||||||
bool set_copies(const Points &points);
|
bool set_copies(const Points &points);
|
||||||
bool reload_model_instances();
|
bool reload_model_instances();
|
||||||
|
void bounding_box(BoundingBox* bb) const;
|
||||||
|
|
||||||
// adds region_id, too, if necessary
|
// adds region_id, too, if necessary
|
||||||
void add_region_volume(int region_id, int volume_id);
|
void add_region_volume(int region_id, int volume_id);
|
||||||
|
@ -111,6 +111,16 @@ PrintObject::reload_model_instances()
|
|||||||
return this->set_copies(copies);
|
return this->set_copies(copies);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PrintObject::bounding_box(BoundingBox* bb) const
|
||||||
|
{
|
||||||
|
// since the object is aligned to origin, bounding box coincides with size
|
||||||
|
Points pp;
|
||||||
|
pp.push_back(Point(0,0));
|
||||||
|
pp.push_back(this->size);
|
||||||
|
*bb = BoundingBox(pp);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PrintObject::add_region_volume(int region_id, int volume_id)
|
PrintObject::add_region_volume(int region_id, int volume_id)
|
||||||
{
|
{
|
||||||
|
@ -61,6 +61,11 @@ _constant()
|
|||||||
%code%{ RETVAL = THIS->layer_height_ranges; %};
|
%code%{ RETVAL = THIS->layer_height_ranges; %};
|
||||||
Ref<Point3> size()
|
Ref<Point3> size()
|
||||||
%code%{ RETVAL = &THIS->size; %};
|
%code%{ RETVAL = &THIS->size; %};
|
||||||
|
BoundingBox* bounding_box()
|
||||||
|
%code{%
|
||||||
|
RETVAL = new BoundingBox();
|
||||||
|
THIS->bounding_box(RETVAL);
|
||||||
|
%};
|
||||||
Ref<Point> _copies_shift()
|
Ref<Point> _copies_shift()
|
||||||
%code%{ RETVAL = &THIS->_copies_shift; %};
|
%code%{ RETVAL = &THIS->_copies_shift; %};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user