Browse Source

3D-Viewer: request a redraw when a footprint is selected in pcbnew

pull/16/head
Mario Luzeiro 5 years ago
committed by Jon Evans
parent
commit
a1e94c2583
  1. 6
      3d-viewer/3d_viewer/eda_3d_viewer.cpp
  2. 2
      3d-viewer/3d_viewer/eda_3d_viewer.h
  3. 5
      include/pcb_base_frame.h
  4. 11
      pcbnew/pcb_base_frame.cpp
  5. 2
      pcbnew/tools/pcb_inspection_tool.cpp

6
3d-viewer/3d_viewer/eda_3d_viewer.cpp

@ -271,6 +271,12 @@ void EDA_3D_VIEWER::NewDisplay( bool aForceImmediateRedraw )
m_canvas->Refresh();
}
void EDA_3D_VIEWER::Redraw()
{
// Only update in OpenGL for an interactive interaction
if( m_boardAdapter.RenderEngineGet() == RENDER_ENGINE::OPENGL_LEGACY )
m_canvas->Refresh();
}
void EDA_3D_VIEWER::Exit3DFrame( wxCommandEvent &event )
{

2
3d-viewer/3d_viewer/eda_3d_viewer.h

@ -101,6 +101,8 @@ class EDA_3D_VIEWER : public EDA_3D_BOARD_HOLDER, public KIWAY_PLAYER
*/
void NewDisplay( bool aForceImmediateRedraw = false );
void Redraw();
BOARD_ADAPTER& GetAdapter() override { return m_boardAdapter; }
CCAMERA& GetCurrentCamera() override { return m_currentCamera; }

5
include/pcb_base_frame.h

@ -118,6 +118,11 @@ public:
*/
virtual void Update3DView( bool aForceReload, const wxString* aTitle = nullptr );
/**
* Request a redraw of 3D-Viewer canvas
*/
void Redraw3Dview();
/**
* Function LoadFootprint
* attempts to load \a aFootprintId from the footprint library table.

11
pcbnew/pcb_base_frame.cpp

@ -95,6 +95,17 @@ void PCB_BASE_FRAME::Update3DView( bool aForceReload, const wxString* aTitle )
}
void PCB_BASE_FRAME::Redraw3Dview()
{
EDA_3D_VIEWER* draw3DFrame = Get3DViewerFrame();
if( draw3DFrame )
{
draw3DFrame->Redraw();
}
}
FP_LIB_TABLE* PROJECT::PcbFootprintLibs()
{
// This is a lazy loading function, it loads the project specific table when

2
pcbnew/tools/pcb_inspection_tool.cpp

@ -471,6 +471,8 @@ int PCB_INSPECTION_TOOL::CrossProbePcbToSch( const TOOL_EVENT& aEvent )
else
m_frame->SendMessageToEESCHEMA( nullptr );
m_frame->Redraw3Dview();
return 0;
}

Loading…
Cancel
Save