mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-05 21:14:01 -06:00
3DScene axes moved to c++
This commit is contained in:
parent
1e0a8de5b1
commit
5fc8fdee11
10 changed files with 244 additions and 94 deletions
|
@ -1551,35 +1551,36 @@ sub Render {
|
|||
|
||||
my $volumes_bb = $self->volumes_bounding_box;
|
||||
|
||||
{
|
||||
# draw axes
|
||||
# disable depth testing so that axes are not covered by ground
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
#==============================================================================================================================
|
||||
my $origin = Slic3r::GUI::_3DScene::get_bed_origin($self);
|
||||
Slic3r::GUI::_3DScene::render_axes($self);
|
||||
|
||||
# {
|
||||
# # draw axes
|
||||
# # disable depth testing so that axes are not covered by ground
|
||||
# glDisable(GL_DEPTH_TEST);
|
||||
# my $origin = $self->origin;
|
||||
# my $axis_len = $self->use_plain_shader ? 0.3 * max(@{ $self->bed_bounding_box->size }) : 2 * max(@{ $volumes_bb->size });
|
||||
# glLineWidth(2);
|
||||
# glBegin(GL_LINES);
|
||||
# # draw line for x axis
|
||||
# glColor3f(1, 0, 0);
|
||||
# glVertex3f(@$origin, $ground_z);
|
||||
# glVertex3f($origin->x + $axis_len, $origin->y, $ground_z); #,,
|
||||
# # draw line for y axis
|
||||
# glColor3f(0, 1, 0);
|
||||
# glVertex3f(@$origin, $ground_z);
|
||||
# glVertex3f($origin->x, $origin->y + $axis_len, $ground_z); #++
|
||||
# glEnd();
|
||||
# # draw line for Z axis
|
||||
# # (re-enable depth test so that axis is correctly shown when objects are behind it)
|
||||
# glEnable(GL_DEPTH_TEST);
|
||||
# glBegin(GL_LINES);
|
||||
# glColor3f(0, 0, 1);
|
||||
# glVertex3f(@$origin, $ground_z);
|
||||
# glVertex3f(@$origin, $ground_z+$axis_len);
|
||||
# glEnd();
|
||||
# }
|
||||
#==============================================================================================================================
|
||||
my $axis_len = $self->use_plain_shader ? 0.3 * max(@{ $self->bed_bounding_box->size }) : 2 * max(@{ $volumes_bb->size });
|
||||
glLineWidth(2);
|
||||
glBegin(GL_LINES);
|
||||
# draw line for x axis
|
||||
glColor3f(1, 0, 0);
|
||||
glVertex3f(@$origin, $ground_z);
|
||||
glVertex3f($origin->x + $axis_len, $origin->y, $ground_z); #,,
|
||||
# draw line for y axis
|
||||
glColor3f(0, 1, 0);
|
||||
glVertex3f(@$origin, $ground_z);
|
||||
glVertex3f($origin->x, $origin->y + $axis_len, $ground_z); #++
|
||||
glEnd();
|
||||
# draw line for Z axis
|
||||
# (re-enable depth test so that axis is correctly shown when objects are behind it)
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glBegin(GL_LINES);
|
||||
glColor3f(0, 0, 1);
|
||||
glVertex3f(@$origin, $ground_z);
|
||||
glVertex3f(@$origin, $ground_z+$axis_len);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
glEnable(GL_LIGHTING);
|
||||
|
||||
|
|
|
@ -9,6 +9,9 @@ use utf8;
|
|||
use Slic3r::Geometry qw(PI X);
|
||||
use Wx qw(wxTheApp :dialog :id :misc :sizer wxTAB_TRAVERSAL);
|
||||
use Wx::Event qw(EVT_CLOSE EVT_BUTTON);
|
||||
#==============================================================================================================================
|
||||
use List::Util qw(max);
|
||||
#==============================================================================================================================
|
||||
use base 'Wx::Dialog';
|
||||
|
||||
sub new {
|
||||
|
@ -115,6 +118,7 @@ sub new {
|
|||
$canvas->load_object($self->{model_object}, undef, undef, [0]);
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::set_auto_bed_shape($canvas);
|
||||
Slic3r::GUI::_3DScene::set_axes_length($canvas, 2.0 * max(@{ $canvas->volumes_bounding_box->size }));
|
||||
# $canvas->set_auto_bed_shape;
|
||||
#==============================================================================================================================
|
||||
$canvas->SetSize([500,500]);
|
||||
|
|
|
@ -10,6 +10,9 @@ use File::Basename qw(basename);
|
|||
use Wx qw(:misc :sizer :treectrl :button :keycode wxTAB_TRAVERSAL wxSUNKEN_BORDER wxBITMAP_TYPE_PNG wxID_CANCEL wxMOD_CONTROL
|
||||
wxTheApp);
|
||||
use Wx::Event qw(EVT_BUTTON EVT_TREE_ITEM_COLLAPSING EVT_TREE_SEL_CHANGED EVT_TREE_KEY_DOWN EVT_KEY_DOWN);
|
||||
#==============================================================================================================================
|
||||
use List::Util qw(max);
|
||||
#==============================================================================================================================
|
||||
use base 'Wx::Panel';
|
||||
|
||||
use constant ICON_OBJECT => 0;
|
||||
|
@ -162,6 +165,7 @@ sub new {
|
|||
$canvas->load_object($self->{model_object}, undef, undef, [0]);
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::set_auto_bed_shape($canvas);
|
||||
Slic3r::GUI::_3DScene::set_axes_length($canvas, 2.0 * max(@{ $canvas->volumes_bounding_box->size }));
|
||||
# $canvas->set_auto_bed_shape;
|
||||
#==============================================================================================================================
|
||||
$canvas->SetSize([500,700]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue