mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-03 12:04:05 -06:00
Finished implementation of bed_shape in plater
This commit is contained in:
parent
7a20c4d52a
commit
998a4225de
10 changed files with 85 additions and 28 deletions
|
@ -9,7 +9,7 @@ use List::Util qw(first max);
|
||||||
our @Ignore = qw(duplicate_x duplicate_y multiply_x multiply_y support_material_tool acceleration
|
our @Ignore = qw(duplicate_x duplicate_y multiply_x multiply_y support_material_tool acceleration
|
||||||
adjust_overhang_flow standby_temperature scale rotate duplicate duplicate_grid
|
adjust_overhang_flow standby_temperature scale rotate duplicate duplicate_grid
|
||||||
rotate scale duplicate_grid start_perimeters_at_concave_points start_perimeters_at_non_overhang
|
rotate scale duplicate_grid start_perimeters_at_concave_points start_perimeters_at_non_overhang
|
||||||
randomize_start seal_position);
|
randomize_start seal_position bed_size);
|
||||||
|
|
||||||
our $Options = print_config_def();
|
our $Options = print_config_def();
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ $Options->{threads}{readonly} = !$Slic3r::have_threads;
|
||||||
*{$opt_key} = sub { $_[0]->get($opt_key) };
|
*{$opt_key} = sub { $_[0]->get($opt_key) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sub bed_size { [200,200] }
|
|
||||||
sub new_from_defaults {
|
sub new_from_defaults {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
my (@opt_keys) = @_;
|
my (@opt_keys) = @_;
|
||||||
|
@ -297,11 +297,6 @@ sub validate {
|
||||||
die "Invalid value for --infill-every-layers\n"
|
die "Invalid value for --infill-every-layers\n"
|
||||||
if $self->infill_every_layers !~ /^\d+$/ || $self->infill_every_layers < 1;
|
if $self->infill_every_layers !~ /^\d+$/ || $self->infill_every_layers < 1;
|
||||||
|
|
||||||
# --bed-size
|
|
||||||
die "Invalid value for --bed-size\n"
|
|
||||||
if !ref $self->bed_size
|
|
||||||
&& (!$self->bed_size || $self->bed_size !~ /^\d+,\d+$/);
|
|
||||||
|
|
||||||
# --skirt-height
|
# --skirt-height
|
||||||
die "Invalid value for --skirt-height\n"
|
die "Invalid value for --skirt-height\n"
|
||||||
if $self->skirt_height < -1; # -1 means as tall as the object
|
if $self->skirt_height < -1; # -1 means as tall as the object
|
||||||
|
|
|
@ -50,7 +50,7 @@ sub new {
|
||||||
my ($parent) = @_;
|
my ($parent) = @_;
|
||||||
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||||
$self->{config} = Slic3r::Config->new_from_defaults(qw(
|
$self->{config} = Slic3r::Config->new_from_defaults(qw(
|
||||||
bed_size bed_shape print_center complete_objects extruder_clearance_radius skirts skirt_distance
|
bed_shape print_center complete_objects extruder_clearance_radius skirts skirt_distance
|
||||||
));
|
));
|
||||||
$self->{model} = Slic3r::Model->new;
|
$self->{model} = Slic3r::Model->new;
|
||||||
$self->{print} = Slic3r::Print->new;
|
$self->{print} = Slic3r::Print->new;
|
||||||
|
@ -132,7 +132,7 @@ sub new {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{list} = Wx::ListView->new($self, -1, wxDefaultPosition, wxDefaultSize, wxLC_SINGLE_SEL | wxLC_REPORT | wxBORDER_SUNKEN | wxTAB_TRAVERSAL | wxWANTS_CHARS);
|
$self->{list} = Wx::ListView->new($self, -1, wxDefaultPosition, [250,-1], wxLC_SINGLE_SEL | wxLC_REPORT | wxBORDER_SUNKEN | wxTAB_TRAVERSAL | wxWANTS_CHARS);
|
||||||
$self->{list}->InsertColumn(0, "Name", wxLIST_FORMAT_LEFT, 145);
|
$self->{list}->InsertColumn(0, "Name", wxLIST_FORMAT_LEFT, 145);
|
||||||
$self->{list}->InsertColumn(1, "Copies", wxLIST_FORMAT_CENTER, 45);
|
$self->{list}->InsertColumn(1, "Copies", wxLIST_FORMAT_CENTER, 45);
|
||||||
$self->{list}->InsertColumn(2, "Scale", wxLIST_FORMAT_CENTER, wxLIST_AUTOSIZE_USEHEADER);
|
$self->{list}->InsertColumn(2, "Scale", wxLIST_FORMAT_CENTER, wxLIST_AUTOSIZE_USEHEADER);
|
||||||
|
@ -284,6 +284,7 @@ sub new {
|
||||||
{
|
{
|
||||||
my $box = Wx::StaticBox->new($self, -1, "Info");
|
my $box = Wx::StaticBox->new($self, -1, "Info");
|
||||||
$object_info_sizer = Wx::StaticBoxSizer->new($box, wxVERTICAL);
|
$object_info_sizer = Wx::StaticBoxSizer->new($box, wxVERTICAL);
|
||||||
|
$object_info_sizer->SetMinSize([350,-1]);
|
||||||
my $grid_sizer = Wx::FlexGridSizer->new(3, 4, 5, 5);
|
my $grid_sizer = Wx::FlexGridSizer->new(3, 4, 5, 5);
|
||||||
$grid_sizer->SetFlexibleDirection(wxHORIZONTAL);
|
$grid_sizer->SetFlexibleDirection(wxHORIZONTAL);
|
||||||
$grid_sizer->AddGrowableCol(1, 1);
|
$grid_sizer->AddGrowableCol(1, 1);
|
||||||
|
@ -299,14 +300,14 @@ sub new {
|
||||||
);
|
);
|
||||||
while (my $field = shift @info) {
|
while (my $field = shift @info) {
|
||||||
my $label = shift @info;
|
my $label = shift @info;
|
||||||
my $text = Wx::StaticText->new($self, -1, "$label:", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
my $text = Wx::StaticText->new($box, -1, "$label:", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
||||||
$text->SetFont($Slic3r::GUI::small_font);
|
$text->SetFont($Slic3r::GUI::small_font);
|
||||||
$grid_sizer->Add($text, 0);
|
$grid_sizer->Add($text, 0);
|
||||||
|
|
||||||
$self->{"object_info_$field"} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
$self->{"object_info_$field"} = Wx::StaticText->new($box, -1, "", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
||||||
$self->{"object_info_$field"}->SetFont($Slic3r::GUI::small_font);
|
$self->{"object_info_$field"}->SetFont($Slic3r::GUI::small_font);
|
||||||
if ($field eq 'manifold') {
|
if ($field eq 'manifold') {
|
||||||
$self->{object_info_manifold_warning_icon} = Wx::StaticBitmap->new($self, -1, Wx::Bitmap->new("$Slic3r::var/error.png", wxBITMAP_TYPE_PNG));
|
$self->{object_info_manifold_warning_icon} = Wx::StaticBitmap->new($box, -1, Wx::Bitmap->new("$Slic3r::var/error.png", wxBITMAP_TYPE_PNG));
|
||||||
$self->{object_info_manifold_warning_icon}->Hide;
|
$self->{object_info_manifold_warning_icon}->Hide;
|
||||||
|
|
||||||
my $h_sizer = Wx::BoxSizer->new(wxHORIZONTAL);
|
my $h_sizer = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||||
|
@ -676,7 +677,7 @@ sub changescale {
|
||||||
sub arrange {
|
sub arrange {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
my $bb = Slic3r::Polygon->new_scale(@{$self->{config}->bed_shape})->bounding_box;
|
my $bb = Slic3r::Geometry::BoundingBoxf->new_from_points($self->{config}->bed_shape);
|
||||||
eval {
|
eval {
|
||||||
$self->{model}->arrange_objects($self->GetFrame->config->min_object_distance, $bb);
|
$self->{model}->arrange_objects($self->GetFrame->config->min_object_distance, $bb);
|
||||||
};
|
};
|
||||||
|
@ -752,7 +753,8 @@ sub split_object {
|
||||||
|
|
||||||
sub schedule_background_process {
|
sub schedule_background_process {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
$self->{apply_config_timer}->Start(PROCESS_DELAY, 1); # 1 = one shot
|
$self->{apply_config_timer}->Start(PROCESS_DELAY, 1) # 1 = one shot
|
||||||
|
if defined $self->{apply_config_timer};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub async_apply_config {
|
sub async_apply_config {
|
||||||
|
@ -835,7 +837,7 @@ sub start_background_process {
|
||||||
sub stop_background_process {
|
sub stop_background_process {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
|
||||||
$self->{apply_config_timer}->Stop;
|
$self->{apply_config_timer}->Stop if defined $self->{apply_config_timer};
|
||||||
$self->statusbar->SetCancelCallback(undef);
|
$self->statusbar->SetCancelCallback(undef);
|
||||||
$self->statusbar->StopBusy;
|
$self->statusbar->StopBusy;
|
||||||
$self->statusbar->SetStatusText("");
|
$self->statusbar->SetStatusText("");
|
||||||
|
@ -1141,7 +1143,7 @@ sub on_config_change {
|
||||||
$self->Layout;
|
$self->Layout;
|
||||||
} elsif ($self->{config}->has($opt_key)) {
|
} elsif ($self->{config}->has($opt_key)) {
|
||||||
$self->{config}->set($opt_key, $value);
|
$self->{config}->set($opt_key, $value);
|
||||||
if ($opt_key eq 'bed_size') {
|
if ($opt_key eq 'bed_shape') {
|
||||||
$self->{canvas}->update_bed_size;
|
$self->{canvas}->update_bed_size;
|
||||||
$self->update;
|
$self->update;
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,8 +221,8 @@ sub mouse_event {
|
||||||
my $model_object = $self->{model}->objects->[$obj_idx];
|
my $model_object = $self->{model}->objects->[$obj_idx];
|
||||||
$model_object->instances->[$instance_idx]->set_offset(
|
$model_object->instances->[$instance_idx]->set_offset(
|
||||||
Slic3r::Pointf->new(
|
Slic3r::Pointf->new(
|
||||||
unscale($pos->[X] - $self->{drag_start_pos}[X]),
|
unscale($point->[X] - $self->{drag_start_pos}[X]),
|
||||||
unscale($pos->[Y] - $self->{drag_start_pos}[Y]),
|
unscale($point->[Y] - $self->{drag_start_pos}[Y]),
|
||||||
));
|
));
|
||||||
$model_object->update_bounding_box;
|
$model_object->update_bounding_box;
|
||||||
$self->Refresh;
|
$self->Refresh;
|
||||||
|
@ -305,14 +305,11 @@ sub scaled_points_to_pixel {
|
||||||
sub point_to_model_units {
|
sub point_to_model_units {
|
||||||
my ($self, $point) = @_;
|
my ($self, $point) = @_;
|
||||||
|
|
||||||
my $canvas_height = $self->GetSize->GetHeight;
|
|
||||||
my $zero = $self->{bed_origin};
|
my $zero = $self->{bed_origin};
|
||||||
my $p = Slic3r::Point->new(
|
return Slic3r::Point->new(
|
||||||
scale ($point->[X] - $zero->[X]) / $self->{scaling_factor},
|
scale ($point->[X] - $zero->[X]) / $self->{scaling_factor},
|
||||||
scale ($point->[Y] - $zero->[Y]) / $self->{scaling_factor},
|
scale ($zero->[Y] - $point->[Y]) / $self->{scaling_factor},
|
||||||
);
|
);
|
||||||
use XXX; YYY $p->pp;
|
|
||||||
return $p;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -18,6 +18,7 @@ BoundingBoxBase<PointClass>::BoundingBoxBase(const std::vector<PointClass> &poin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
template BoundingBoxBase<Point>::BoundingBoxBase(const std::vector<Point> &points);
|
template BoundingBoxBase<Point>::BoundingBoxBase(const std::vector<Point> &points);
|
||||||
|
template BoundingBoxBase<Pointf>::BoundingBoxBase(const std::vector<Pointf> &points);
|
||||||
|
|
||||||
template <class PointClass>
|
template <class PointClass>
|
||||||
BoundingBox3Base<PointClass>::BoundingBox3Base(const std::vector<PointClass> &points)
|
BoundingBox3Base<PointClass>::BoundingBox3Base(const std::vector<PointClass> &points)
|
||||||
|
@ -65,6 +66,7 @@ BoundingBoxBase<PointClass>::scale(double factor)
|
||||||
this->max.scale(factor);
|
this->max.scale(factor);
|
||||||
}
|
}
|
||||||
template void BoundingBoxBase<Point>::scale(double factor);
|
template void BoundingBoxBase<Point>::scale(double factor);
|
||||||
|
template void BoundingBoxBase<Pointf>::scale(double factor);
|
||||||
template void BoundingBoxBase<Pointf3>::scale(double factor);
|
template void BoundingBoxBase<Pointf3>::scale(double factor);
|
||||||
|
|
||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
|
@ -76,6 +78,7 @@ BoundingBoxBase<PointClass>::merge(const PointClass &point)
|
||||||
this->max.y = std::max(point.y, this->max.y);
|
this->max.y = std::max(point.y, this->max.y);
|
||||||
}
|
}
|
||||||
template void BoundingBoxBase<Point>::merge(const Point &point);
|
template void BoundingBoxBase<Point>::merge(const Point &point);
|
||||||
|
template void BoundingBoxBase<Pointf>::merge(const Pointf &point);
|
||||||
|
|
||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
BoundingBoxBase<PointClass>::merge(const BoundingBoxBase<PointClass> &bb)
|
BoundingBoxBase<PointClass>::merge(const BoundingBoxBase<PointClass> &bb)
|
||||||
|
@ -86,6 +89,7 @@ BoundingBoxBase<PointClass>::merge(const BoundingBoxBase<PointClass> &bb)
|
||||||
this->max.y = std::max(bb.max.y, this->max.y);
|
this->max.y = std::max(bb.max.y, this->max.y);
|
||||||
}
|
}
|
||||||
template void BoundingBoxBase<Point>::merge(const BoundingBoxBase<Point> &bb);
|
template void BoundingBoxBase<Point>::merge(const BoundingBoxBase<Point> &bb);
|
||||||
|
template void BoundingBoxBase<Pointf>::merge(const BoundingBoxBase<Pointf> &bb);
|
||||||
|
|
||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
BoundingBox3Base<PointClass>::merge(const PointClass &point)
|
BoundingBox3Base<PointClass>::merge(const PointClass &point)
|
||||||
|
@ -111,6 +115,7 @@ BoundingBoxBase<PointClass>::size() const
|
||||||
return PointClass(this->max.x - this->min.x, this->max.y - this->min.y);
|
return PointClass(this->max.x - this->min.x, this->max.y - this->min.y);
|
||||||
}
|
}
|
||||||
template Point BoundingBoxBase<Point>::size() const;
|
template Point BoundingBoxBase<Point>::size() const;
|
||||||
|
template Pointf BoundingBoxBase<Pointf>::size() const;
|
||||||
|
|
||||||
template <class PointClass> PointClass
|
template <class PointClass> PointClass
|
||||||
BoundingBox3Base<PointClass>::size() const
|
BoundingBox3Base<PointClass>::size() const
|
||||||
|
@ -126,6 +131,7 @@ BoundingBoxBase<PointClass>::translate(coordf_t x, coordf_t y)
|
||||||
this->max.translate(x, y);
|
this->max.translate(x, y);
|
||||||
}
|
}
|
||||||
template void BoundingBoxBase<Point>::translate(coordf_t x, coordf_t y);
|
template void BoundingBoxBase<Point>::translate(coordf_t x, coordf_t y);
|
||||||
|
template void BoundingBoxBase<Pointf>::translate(coordf_t x, coordf_t y);
|
||||||
|
|
||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
BoundingBox3Base<PointClass>::translate(coordf_t x, coordf_t y, coordf_t z)
|
BoundingBox3Base<PointClass>::translate(coordf_t x, coordf_t y, coordf_t z)
|
||||||
|
@ -144,6 +150,7 @@ BoundingBoxBase<PointClass>::center() const
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template Point BoundingBoxBase<Point>::center() const;
|
template Point BoundingBoxBase<Point>::center() const;
|
||||||
|
template Pointf BoundingBoxBase<Pointf>::center() const;
|
||||||
|
|
||||||
template <class PointClass> PointClass
|
template <class PointClass> PointClass
|
||||||
BoundingBox3Base<PointClass>::center() const
|
BoundingBox3Base<PointClass>::center() const
|
||||||
|
|
|
@ -53,10 +53,15 @@ class BoundingBox : public BoundingBoxBase<Point>
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
class BoundingBoxf : public BoundingBoxBase<Pointf> {};
|
|
||||||
class BoundingBox3 : public BoundingBox3Base<Point3> {};
|
class BoundingBox3 : public BoundingBox3Base<Point3> {};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
class BoundingBoxf : public BoundingBoxBase<Pointf> {
|
||||||
|
public:
|
||||||
|
BoundingBoxf() {};
|
||||||
|
BoundingBoxf(const std::vector<Pointf> &points) : BoundingBoxBase<Pointf>(points) {};
|
||||||
|
};
|
||||||
|
|
||||||
class BoundingBoxf3 : public BoundingBox3Base<Pointf3> {
|
class BoundingBoxf3 : public BoundingBox3Base<Pointf3> {
|
||||||
public:
|
public:
|
||||||
BoundingBoxf3() {};
|
BoundingBoxf3() {};
|
||||||
|
|
|
@ -293,6 +293,18 @@ Pointf::from_SV(SV* point_sv)
|
||||||
this->y = SvNV(sv_y);
|
this->y = SvNV(sv_y);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Pointf::from_SV_check(SV* point_sv)
|
||||||
|
{
|
||||||
|
if (sv_isobject(point_sv) && (SvTYPE(SvRV(point_sv)) == SVt_PVMG)) {
|
||||||
|
if (!sv_isa(point_sv, perl_class_name(this)) && !sv_isa(point_sv, perl_class_name_ref(this)))
|
||||||
|
CONFESS("Not a valid %s object (got %s)", perl_class_name(this), HvNAME(SvSTASH(SvRV(point_sv))));
|
||||||
|
*this = *(Pointf*)SvIV((SV*)SvRV( point_sv ));
|
||||||
|
} else {
|
||||||
|
this->from_SV(point_sv);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -74,6 +74,7 @@ class Pointf
|
||||||
|
|
||||||
#ifdef SLIC3RXS
|
#ifdef SLIC3RXS
|
||||||
bool from_SV(SV* point_sv);
|
bool from_SV(SV* point_sv);
|
||||||
|
void from_SV_check(SV* point_sv);
|
||||||
SV* to_SV_pureperl() const;
|
SV* to_SV_pureperl() const;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,10 +20,10 @@
|
||||||
Clone<Point> center();
|
Clone<Point> center();
|
||||||
Clone<Point> min_point() %code{% RETVAL = THIS->min; %};
|
Clone<Point> min_point() %code{% RETVAL = THIS->min; %};
|
||||||
Clone<Point> max_point() %code{% RETVAL = THIS->max; %};
|
Clone<Point> max_point() %code{% RETVAL = THIS->max; %};
|
||||||
double x_min() %code{% RETVAL = THIS->min.x; %};
|
long x_min() %code{% RETVAL = THIS->min.x; %};
|
||||||
double x_max() %code{% RETVAL = THIS->max.x; %};
|
long x_max() %code{% RETVAL = THIS->max.x; %};
|
||||||
double y_min() %code{% RETVAL = THIS->min.y; %};
|
long y_min() %code{% RETVAL = THIS->min.y; %};
|
||||||
double y_max() %code{% RETVAL = THIS->max.y; %};
|
long y_max() %code{% RETVAL = THIS->max.y; %};
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|
||||||
|
@ -39,6 +39,37 @@ new_from_points(CLASS, points)
|
||||||
%}
|
%}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
%name{Slic3r::Geometry::BoundingBoxf} class BoundingBoxf {
|
||||||
|
~BoundingBoxf();
|
||||||
|
Clone<BoundingBoxf> clone()
|
||||||
|
%code{% RETVAL = THIS; %};
|
||||||
|
void merge(BoundingBoxf* bb) %code{% THIS->merge(*bb); %};
|
||||||
|
void merge_point(Pointf* point) %code{% THIS->merge(*point); %};
|
||||||
|
void scale(double factor);
|
||||||
|
void translate(double x, double y);
|
||||||
|
Clone<Pointf> size();
|
||||||
|
Clone<Pointf> center();
|
||||||
|
Clone<Pointf> min_point() %code{% RETVAL = THIS->min; %};
|
||||||
|
Clone<Pointf> max_point() %code{% RETVAL = THIS->max; %};
|
||||||
|
double x_min() %code{% RETVAL = THIS->min.x; %};
|
||||||
|
double x_max() %code{% RETVAL = THIS->max.x; %};
|
||||||
|
double y_min() %code{% RETVAL = THIS->min.y; %};
|
||||||
|
double y_max() %code{% RETVAL = THIS->max.y; %};
|
||||||
|
|
||||||
|
%{
|
||||||
|
|
||||||
|
BoundingBoxf*
|
||||||
|
new_from_points(CLASS, points)
|
||||||
|
char* CLASS
|
||||||
|
Pointfs points
|
||||||
|
CODE:
|
||||||
|
RETVAL = new BoundingBoxf(points);
|
||||||
|
OUTPUT:
|
||||||
|
RETVAL
|
||||||
|
|
||||||
|
%}
|
||||||
|
};
|
||||||
|
|
||||||
%name{Slic3r::Geometry::BoundingBoxf3} class BoundingBoxf3 {
|
%name{Slic3r::Geometry::BoundingBoxf3} class BoundingBoxf3 {
|
||||||
~BoundingBoxf3();
|
~BoundingBoxf3();
|
||||||
Clone<BoundingBoxf3> clone()
|
Clone<BoundingBoxf3> clone()
|
||||||
|
|
|
@ -12,6 +12,10 @@ BoundingBox* O_OBJECT_SLIC3R
|
||||||
Ref<BoundingBox> O_OBJECT_SLIC3R_T
|
Ref<BoundingBox> O_OBJECT_SLIC3R_T
|
||||||
Clone<BoundingBox> O_OBJECT_SLIC3R_T
|
Clone<BoundingBox> O_OBJECT_SLIC3R_T
|
||||||
|
|
||||||
|
BoundingBoxf* O_OBJECT_SLIC3R
|
||||||
|
Ref<BoundingBoxf> O_OBJECT_SLIC3R_T
|
||||||
|
Clone<BoundingBoxf> O_OBJECT_SLIC3R_T
|
||||||
|
|
||||||
BoundingBoxf3* O_OBJECT_SLIC3R
|
BoundingBoxf3* O_OBJECT_SLIC3R
|
||||||
Ref<BoundingBoxf3> O_OBJECT_SLIC3R_T
|
Ref<BoundingBoxf3> O_OBJECT_SLIC3R_T
|
||||||
Clone<BoundingBoxf3> O_OBJECT_SLIC3R_T
|
Clone<BoundingBoxf3> O_OBJECT_SLIC3R_T
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
%typemap{BoundingBox*};
|
%typemap{BoundingBox*};
|
||||||
%typemap{Ref<BoundingBox>}{simple};
|
%typemap{Ref<BoundingBox>}{simple};
|
||||||
%typemap{Clone<BoundingBox>}{simple};
|
%typemap{Clone<BoundingBox>}{simple};
|
||||||
|
%typemap{BoundingBoxf*};
|
||||||
|
%typemap{Ref<BoundingBoxf>}{simple};
|
||||||
|
%typemap{Clone<BoundingBoxf>}{simple};
|
||||||
%typemap{BoundingBoxf3*};
|
%typemap{BoundingBoxf3*};
|
||||||
%typemap{Ref<BoundingBoxf3>}{simple};
|
%typemap{Ref<BoundingBoxf3>}{simple};
|
||||||
%typemap{Clone<BoundingBoxf3>}{simple};
|
%typemap{Clone<BoundingBoxf3>}{simple};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue