From f3f9730f2cac4131ab6fae3127027efed3021129 Mon Sep 17 00:00:00 2001 From: Jeff Young <jeff@rokeby.ie> Date: Thu, 13 Mar 2025 14:04:15 +0000 Subject: [PATCH] Render tables & their borders to 3D view. Fixes https://gitlab.com/kicad/code/kicad/-/issues/19981 --- 3d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp | 13 ++++++++++--- 3d-viewer/3d_canvas/create_layer_items.cpp | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/3d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp b/3d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp index 6d642fd438..5f8748b034 100644 --- a/3d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp +++ b/3d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp @@ -794,11 +794,18 @@ void BOARD_ADAPTER::addShape( const PCB_TEXTBOX* aTextBox, CONTAINER_2D_BASE* aC void BOARD_ADAPTER::addTable( const PCB_TABLE* aTable, CONTAINER_2D_BASE* aContainer, const BOARD_ITEM* aOwner ) { - // JEY TODO: tables - // add borders + aTable->DrawBorders( + [&]( const VECTOR2I& ptA, const VECTOR2I& ptB, const STROKE_PARAMS& stroke ) + { + addROUND_SEGMENT_2D( aContainer, TO_SFVEC2F( ptA ), TO_SFVEC2F( ptB ), + TO_3DU( stroke.GetWidth() ), *aOwner ); + } ); for( PCB_TABLECELL* cell : aTable->GetCells() ) - addText( cell, aContainer, aOwner ); + { + if( cell->GetColSpan() > 0 && cell->GetRowSpan() > 0 ) + addText( cell, aContainer, aOwner ); + } } diff --git a/3d-viewer/3d_canvas/create_layer_items.cpp b/3d-viewer/3d_canvas/create_layer_items.cpp index 3d3e9d6d08..9fcacd2f28 100644 --- a/3d-viewer/3d_canvas/create_layer_items.cpp +++ b/3d-viewer/3d_canvas/create_layer_items.cpp @@ -940,7 +940,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter ) break; case PCB_TABLE_T: - // JEY TODO: tables + addTable( static_cast<PCB_TABLE*>( item ), layerContainer, item ); break; case PCB_DIM_ALIGNED_T: