OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::AMSRoadDownPart Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/AMSItem.hpp>

Inheritance diagram for Slic3r::GUI::AMSRoadDownPart:
Collaboration diagram for Slic3r::GUI::AMSRoadDownPart:

Public Member Functions

 AMSRoadDownPart ()
 AMSRoadDownPart (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
void create (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
void UpdateLeft (int nozzle_num, AMSRoadShowMode mode)
void UpdateRight (int nozzle_num, AMSRoadShowMode mode)
void OnVamsLoading (bool load, wxColour col=AMS_CONTROL_GRAY500)
void SetPassRoadColour (bool left, wxColour col)
void SetShowMode (AMSRoadShowMode left_mode, AMSRoadShowMode right_mode)
void UpdatePassRoad (AMSPanelPos pos, int len, AMSPassRoadSTEP step)
void paintEvent (wxPaintEvent &evt)
void render (wxDC &dc)
void doRender (wxDC &dc)
void msw_rescale ()

Private Attributes

int m_nozzle_num = {1}
AMSRoadShowMode m_left_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}
AMSRoadShowMode m_right_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}
bool m_selected = {false}
int m_left_road_length = {-1}
int m_right_road_length = {-1}
AMSPassRoadSTEP m_pass_road_left_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}
AMSPassRoadSTEP m_pass_road_right_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}
std::map< int, wxColour > m_road_color

Detailed Description

Constructor & Destructor Documentation

◆ AMSRoadDownPart() [1/2]

Slic3r::GUI::AMSRoadDownPart::AMSRoadDownPart ( )
2337{}

Referenced by AMSRoadDownPart().

Here is the caller graph for this function:

◆ AMSRoadDownPart() [2/2]

Slic3r::GUI::AMSRoadDownPart::AMSRoadDownPart ( wxWindow * parent,
wxWindowID id,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize )
2339 : AMSRoadDownPart()
2340{
2341 /*m_info = info;
2342 m_canindex = canindex;*/
2343 // road type
2348 m_selected = false;
2349
2350 m_left_road_length = -1;
2352 create(parent, id, pos, size);
2353 this->SetMinSize(AMS_DOWN_ROAD_SIZE);
2354 this->SetSize(AMS_DOWN_ROAD_SIZE);
2355
2356 Bind(wxEVT_PAINT, &AMSRoadDownPart::paintEvent, this);
2357 wxWindow::SetBackgroundColour(*wxWHITE);
2358
2359}
#define AMS_DOWN_ROAD_SIZE
Definition AMSItem.hpp:186
#define AMS_CONTROL_GRAY500
Definition AMSItem.hpp:39
std::map< int, wxColour > m_road_color
Definition AMSItem.hpp:707
AMSRoadDownPart()
Definition AMSItem.cpp:2337
void paintEvent(wxPaintEvent &evt)
Definition AMSItem.cpp:2418
AMSRoadShowMode m_left_rode_mode
Definition AMSItem.hpp:698
int m_left_road_length
Definition AMSItem.hpp:702
AMSRoadShowMode m_right_rode_mode
Definition AMSItem.hpp:699
void create(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
Definition AMSItem.cpp:2361
int m_right_road_length
Definition AMSItem.hpp:703
bool m_selected
Definition AMSItem.hpp:700
@ AMS_ROAD_MODE_FOUR
Definition AMSItem.hpp:94

References AMSRoadDownPart(), AMS_CONTROL_GRAY500, AMS_DOWN_ROAD_SIZE, Slic3r::GUI::AMS_ROAD_MODE_FOUR, create(), m_left_road_length, m_left_rode_mode, m_right_road_length, m_right_rode_mode, m_road_color, m_selected, and paintEvent().

Here is the call graph for this function:

Member Function Documentation

◆ create()

void Slic3r::GUI::AMSRoadDownPart::create ( wxWindow * parent,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize )
2361{ wxWindow::Create(parent, id, pos, size); }

Referenced by AMSRoadDownPart().

Here is the caller graph for this function:

◆ doRender()

void Slic3r::GUI::AMSRoadDownPart::doRender ( wxDC & dc)
2446{
2447 wxSize size = GetSize();
2448 wxPoint left_nozzle_pos = wxPoint(std::ceil((float)size.x / 2 - FromDIP(8)), FromDIP(258));
2449 wxPoint right_nozzle_pos = wxPoint(std::ceil((float)size.x / 2 + FromDIP(6)), FromDIP(258));
2450 /*if (m_road_color.Alpha() == 0) { dc.SetPen(wxPen(*wxWHITE, m_passroad_width, wxPENSTYLE_SOLID)); }
2451 else { dc.SetPen(wxPen(m_road_color, m_passroad_width, wxPENSTYLE_SOLID)); }*/
2452 dc.SetPen(wxPen(AMS_CONTROL_GRAY500, 2, wxPENSTYLE_SOLID));
2453 auto xpos = left_nozzle_pos.x;
2455 auto length = 50;
2457 length = -13;
2458 dc.DrawLine(left_nozzle_pos.x - FromDIP(length), (size.y / 2), (left_nozzle_pos.x), (size.y / 2));
2459 dc.DrawLine(left_nozzle_pos.x - FromDIP(length), (0), left_nozzle_pos.x - FromDIP(length), (size.y / 2));
2460 dc.DrawLine(left_nozzle_pos.x, size.y / 2, left_nozzle_pos.x, size.y);
2461 }
2462 else {
2463 switch (m_left_rode_mode)
2464 {
2466 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
2467 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), 0, left_nozzle_pos.x - FromDIP((129)), (size.y / 2));
2468 break;
2470 dc.DrawLine(left_nozzle_pos.x - FromDIP(218), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
2471 dc.DrawLine(left_nozzle_pos.x - FromDIP(110), 0, left_nozzle_pos.x - FromDIP(110), (size.y / 2));
2472 dc.DrawLine(left_nozzle_pos.x - FromDIP(218), 0, left_nozzle_pos.x - FromDIP(218), (size.y / 2));
2473 break;
2475 dc.DrawLine(left_nozzle_pos.x - FromDIP(192), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
2476 dc.DrawLine(left_nozzle_pos.x - FromDIP(192), 0, left_nozzle_pos.x - FromDIP(192), (size.y / 2));
2477 break;
2479 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
2480 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), 0, left_nozzle_pos.x - FromDIP((129)), (size.y / 2));
2481 break;
2483 dc.DrawLine(left_nozzle_pos.x, 0, left_nozzle_pos.x, size.y);
2484 break;
2485 default:
2486 break;
2487 }
2488
2489 switch (m_right_rode_mode)
2490 {
2492 dc.DrawLine(right_nozzle_pos.x, (size.y / 2), right_nozzle_pos.x + FromDIP(131), (size.y / 2));
2493 dc.DrawLine(right_nozzle_pos.x + FromDIP(131), 0, right_nozzle_pos.x + FromDIP(131), (size.y / 2));
2494 break;
2496 dc.DrawLine(right_nozzle_pos.x, (size.y / 2), right_nozzle_pos.x + FromDIP(218), (size.y / 2));
2497 dc.DrawLine(right_nozzle_pos.x + FromDIP(110), 0, right_nozzle_pos.x + FromDIP(110), (size.y / 2));
2498 dc.DrawLine(right_nozzle_pos.x + FromDIP(218), 0, right_nozzle_pos.x + FromDIP(218), (size.y / 2));
2499 break;
2501 dc.DrawLine(right_nozzle_pos.x, (size.y / 2), right_nozzle_pos.x + FromDIP(68), (size.y / 2));
2502 dc.DrawLine(right_nozzle_pos.x + FromDIP(68), 0, right_nozzle_pos.x + FromDIP(68), (size.y / 2));
2503 break;
2505 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
2506 dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), 0, left_nozzle_pos.x - FromDIP((129)), (size.y / 2));
2507 break;
2509 dc.DrawLine(left_nozzle_pos.x, (size.y / 2), left_nozzle_pos.x + FromDIP(145), (size.y / 2));
2510 dc.DrawLine(left_nozzle_pos.x + FromDIP(145), 0, left_nozzle_pos.x + FromDIP(145), (size.y / 2));
2511 break;
2512 default:
2513 break;
2514 }
2515 }
2516
2518 if (m_nozzle_num == 2) {
2519 /*dc.DrawLine(FromDIP(left_nozzle_pos.x), FromDIP(size.y / 2), FromDIP(left_nozzle_pos.x), FromDIP(size.y));
2520 dc.DrawLine(FromDIP(right_nozzle_pos.x), FromDIP(size.y / 2), FromDIP(right_nozzle_pos.x), FromDIP(size.y));*/
2521 dc.DrawLine((left_nozzle_pos.x), (size.y / 2), (left_nozzle_pos.x), (size.y));
2522 dc.DrawLine((right_nozzle_pos.x), (size.y / 2), (right_nozzle_pos.x), (size.y));
2523 }
2524 else {
2526 dc.DrawLine((left_nozzle_pos.x), (size.y / 2), (right_nozzle_pos.x), (size.y / 2));
2527 }
2528 dc.DrawLine((left_nozzle_pos.x), (size.y / 2), (left_nozzle_pos.x), (size.y));
2529 }
2530 }
2531
2532
2533 /*if (m_nozzle_mode == AMSRoadDownPartMode::AMS_ROAD_MODE_SINGLE)
2534 {
2535 dc.DrawLine(left_nozzle_pos.x, left_nozzle_pos.y, FromDIP(left_nozzle_pos.x + 30), left_nozzle_pos.y);
2536 }*/
2537 //dc.SetBrush(wxBrush(*wxBLUE));
2538
2540 dc.SetPen(wxPen(_get_diff_clr(this, m_road_color[0]), 4, wxPENSTYLE_SOLID));
2541 if (m_right_road_length > 0) {
2543 /* dc.SetPen(wxPen(*wxRED));
2544 dc.DrawLine(right_nozzle_pos.x, 0, right_nozzle_pos.x + , size.y / 2);
2545 xpos = left_nozzle_pos.x;
2546 if (m_nozzle_num >= 2) xpos = right_nozzle_pos.x;
2547 dc.SetPen(wxPen(*wxGREEN));
2548 dc.DrawLine(xpos, size.y / 2, right_nozzle_pos.x, size.y / 2);
2549 dc.SetPen(wxPen(*wxYELLOW));
2550 dc.DrawLine(xpos, size.y / 2, xpos, size.y);*/
2551 int x = left_nozzle_pos.x;
2552 int len = m_right_road_length;
2553 if (m_nozzle_num == 2) {
2554 x = right_nozzle_pos.x;
2555 len = len - 14;
2556 }
2557 dc.DrawLine(((x)), (size.y / 2), x + FromDIP(len), (size.y / 2));
2558 dc.DrawLine(x + FromDIP(len), (0), x + FromDIP(len), (size.y / 2));
2559 dc.DrawLine((x), (size.y / 2), (x), (size.y));
2560 }
2561 else{
2562 int x = left_nozzle_pos.x;
2563 int len = m_right_road_length;
2564 if (m_nozzle_num == 2) {
2565 x = right_nozzle_pos.x;
2566 len = len - 14;
2567 }
2568 dc.DrawLine(((x)), (size.y / 2), x + FromDIP(len), (size.y / 2));
2569 dc.DrawLine(x + FromDIP(len), (0), x + FromDIP(len), (size.y / 2));
2570 dc.DrawLine((x), (size.y / 2), (x), (size.y));
2571 }
2572 }
2573 }
2574
2576 dc.SetPen(wxPen(_get_diff_clr(this, m_road_color[1]), 4, wxPENSTYLE_SOLID));
2577 if (m_left_road_length > 0) {
2579 dc.DrawLine(left_nozzle_pos.x, 0, left_nozzle_pos.x, size.y);
2580 }
2581 else{
2582 dc.DrawLine((left_nozzle_pos.x - FromDIP(m_left_road_length)), (size.y / 2), (left_nozzle_pos.x), (size.y / 2));
2583 dc.DrawLine((left_nozzle_pos.x), (size.y / 2), (left_nozzle_pos.x), (size.y));
2584 dc.DrawLine(left_nozzle_pos.x - FromDIP(m_left_road_length), (0), left_nozzle_pos.x - FromDIP(m_left_road_length), (size.y / 2));
2585 }
2586 }
2587 }
2588}
AMSPassRoadSTEP m_pass_road_left_step
Definition AMSItem.hpp:704
int m_nozzle_num
Definition AMSItem.hpp:697
AMSPassRoadSTEP m_pass_road_right_step
Definition AMSItem.hpp:705
@ AMS_ROAD_STEP_2
Definition AMSItem.hpp:124
@ AMS_ROAD_STEP_3
Definition AMSItem.hpp:125
static wxColour _get_diff_clr(wxWindow *win, wxColour pen_clr)
Definition AMSItem.cpp:2208
@ AMS_ROAD_MODE_SINGLE
Definition AMSItem.hpp:96
@ AMS_ROAD_MODE_AMS_LITE
Definition AMSItem.hpp:98
@ AMS_ROAD_MODE_DOUBLE
Definition AMSItem.hpp:95
@ AMS_ROAD_MODE_NONE
Definition AMSItem.hpp:99
@ AMS_ROAD_MODE_SINGLE_N3S
Definition AMSItem.hpp:97
double length(const Points &pts)
Definition MultiPoint.hpp:181

References Slic3r::GUI::_get_diff_clr(), AMS_CONTROL_GRAY500, Slic3r::GUI::AMS_ROAD_MODE_AMS_LITE, Slic3r::GUI::AMS_ROAD_MODE_DOUBLE, Slic3r::GUI::AMS_ROAD_MODE_FOUR, Slic3r::GUI::AMS_ROAD_MODE_NONE, Slic3r::GUI::AMS_ROAD_MODE_SINGLE, Slic3r::GUI::AMS_ROAD_MODE_SINGLE_N3S, Slic3r::GUI::AMS_ROAD_STEP_2, Slic3r::GUI::AMS_ROAD_STEP_3, Slic3r::length(), m_left_road_length, m_left_rode_mode, m_nozzle_num, m_pass_road_left_step, m_pass_road_right_step, m_right_road_length, m_right_rode_mode, and m_road_color.

Referenced by render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::AMSRoadDownPart::msw_rescale ( )
2620 {
2621 Layout();
2622 Fit();
2623 Refresh();
2624}

◆ OnVamsLoading()

void Slic3r::GUI::AMSRoadDownPart::OnVamsLoading ( bool load,
wxColour col = AMS_CONTROL_GRAY500 )
2381{
2382 /*m_vams_loading = load;
2383 if(load)m_road_color = col;
2384 Refresh();*/
2385}

References load().

Here is the call graph for this function:

◆ paintEvent()

void Slic3r::GUI::AMSRoadDownPart::paintEvent ( wxPaintEvent & evt)
2419{
2420 wxPaintDC dc(this);
2421 render(dc);
2422}
void render(wxDC &dc)
Definition AMSItem.cpp:2424

References render().

Referenced by AMSRoadDownPart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render()

void Slic3r::GUI::AMSRoadDownPart::render ( wxDC & dc)
2425{
2426#ifdef __WXMSW__
2427 wxSize size = GetSize();
2428 wxMemoryDC memdc;
2429 wxBitmap bmp(size.x, size.y);
2430 memdc.SelectObject(bmp);
2431 memdc.Blit({ 0, 0 }, size, &dc, { 0, 0 });
2432
2433 {
2434 wxGCDC dc2(memdc);
2435 doRender(dc2);
2436 }
2437
2438 memdc.SelectObject(wxNullBitmap);
2439 dc.DrawBitmap(bmp, 0, 0);
2440#else
2441 doRender(dc);
2442#endif
2443}
void doRender(wxDC &dc)
Definition AMSItem.cpp:2445

References doRender().

Referenced by paintEvent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetPassRoadColour()

void Slic3r::GUI::AMSRoadDownPart::SetPassRoadColour ( bool left,
wxColour col )
2388{
2389 if (left)
2390 {
2391 if (m_road_color[DEPUTY_EXTRUDER_ID] == col)
2392 {
2393 return;
2394 }
2396 }
2397 else
2398 {
2399 if (m_road_color[MAIN_EXTRUDER_ID] == col)
2400 {
2401 return;
2402 }
2404 }
2405
2406 Refresh();
2407}
#define DEPUTY_EXTRUDER_ID
Definition DevDefs.h:102
#define MAIN_EXTRUDER_ID
Definition DevDefs.h:101

References DEPUTY_EXTRUDER_ID, m_road_color, and MAIN_EXTRUDER_ID.

◆ SetShowMode()

void Slic3r::GUI::AMSRoadDownPart::SetShowMode ( AMSRoadShowMode left_mode,
AMSRoadShowMode right_mode )
2410{
2411 if (m_left_rode_mode == left_mode && m_right_rode_mode == right_mode) { return; }
2412
2413 m_left_rode_mode = left_mode;
2414 m_right_rode_mode = right_mode;
2415 Refresh();
2416}

References m_left_rode_mode, and m_right_rode_mode.

◆ UpdateLeft()

void Slic3r::GUI::AMSRoadDownPart::UpdateLeft ( int nozzle_num,
AMSRoadShowMode mode )
2364{
2365 if (nozzle_num == m_nozzle_num && m_left_rode_mode == mode) { return;}
2366
2367 this->m_left_rode_mode = mode;
2368 m_nozzle_num = nozzle_num;
2369 Refresh();
2370}

References m_left_rode_mode, and m_nozzle_num.

◆ UpdatePassRoad()

void Slic3r::GUI::AMSRoadDownPart::UpdatePassRoad ( AMSPanelPos pos,
int len,
AMSPassRoadSTEP step )
2590 {
2591 if (m_nozzle_num >= 2){
2592 if (pos == AMSPanelPos::LEFT_PANEL){
2593 if (m_left_road_length == len && m_pass_road_left_step == step){ return; }
2594 m_left_road_length = len;;
2596 }
2597 else{
2598 if (m_right_road_length == len && m_pass_road_right_step == step) { return; }
2599 m_right_road_length = len;
2601 }
2602 }
2603 else{
2604 if (pos == AMSPanelPos::LEFT_PANEL) {
2605 if (m_left_road_length == len && m_pass_road_left_step == step && m_right_road_length == -1) { return; }
2606 m_left_road_length = len;
2609 }
2610 else {
2611 if (m_right_road_length == len && m_pass_road_right_step == step && m_left_road_length == -1) { return; }
2612 m_right_road_length = len;
2613 m_left_road_length = -1;
2615 }
2616 }
2617 Refresh();
2618}
@ LEFT_PANEL
Definition AMSItem.hpp:89
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213

References Slic3r::GUI::LEFT_PANEL, m_left_road_length, m_nozzle_num, m_pass_road_left_step, m_pass_road_right_step, and m_right_road_length.

◆ UpdateRight()

void Slic3r::GUI::AMSRoadDownPart::UpdateRight ( int nozzle_num,
AMSRoadShowMode mode )
2372{
2373 if (nozzle_num == m_nozzle_num && m_right_rode_mode == mode) { return; }
2374
2375 this->m_right_rode_mode = mode;
2376 m_nozzle_num = nozzle_num;
2377 Refresh();
2378}

References m_nozzle_num, and m_right_rode_mode.

Member Data Documentation

◆ m_left_road_length

int Slic3r::GUI::AMSRoadDownPart::m_left_road_length = {-1}
private
702{-1};

Referenced by AMSRoadDownPart(), doRender(), and UpdatePassRoad().

◆ m_left_rode_mode

AMSRoadShowMode Slic3r::GUI::AMSRoadDownPart::m_left_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}
private

◆ m_nozzle_num

int Slic3r::GUI::AMSRoadDownPart::m_nozzle_num = {1}
private
697{1};

Referenced by doRender(), UpdateLeft(), UpdatePassRoad(), and UpdateRight().

◆ m_pass_road_left_step

AMSPassRoadSTEP Slic3r::GUI::AMSRoadDownPart::m_pass_road_left_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}
private

Referenced by doRender(), and UpdatePassRoad().

◆ m_pass_road_right_step

AMSPassRoadSTEP Slic3r::GUI::AMSRoadDownPart::m_pass_road_right_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}
private

◆ m_right_road_length

int Slic3r::GUI::AMSRoadDownPart::m_right_road_length = {-1}
private
703{-1};

Referenced by AMSRoadDownPart(), doRender(), and UpdatePassRoad().

◆ m_right_rode_mode

AMSRoadShowMode Slic3r::GUI::AMSRoadDownPart::m_right_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}
private

◆ m_road_color

std::map<int, wxColour> Slic3r::GUI::AMSRoadDownPart::m_road_color
private

◆ m_selected

bool Slic3r::GUI::AMSRoadDownPart::m_selected = {false}
private
700{false};

Referenced by AMSRoadDownPart().


The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/AMSItem.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/AMSItem.cpp