Loading 3d-viewer/3d_draw.cpp +25 −16 Original line number Original line Diff line number Diff line Loading @@ -257,8 +257,8 @@ void EDA_3D_CANVAS::BuildBoard3DView() // Build a polygon from edge cut items // Build a polygon from edge cut items wxString msg; wxString msg; if( ! pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) { { msg << wxT("\n\n") << msg << wxT("\n\n") << _("Unable to calculate the board outlines.\n" _("Unable to calculate the board outlines.\n" Loading Loading @@ -432,7 +432,7 @@ void EDA_3D_CANVAS::BuildBoard3DView() } } // Draw vias holes (vertical cylinders) // Draw vias holes (vertical cylinders) for( TRACK* track = pcb->m_Track; track != NULL; track = track->Next() ) for( const TRACK* track = pcb->m_Track; track != NULL; track = track->Next() ) { { const VIA *via = dynamic_cast<const VIA*>(track); const VIA *via = dynamic_cast<const VIA*>(track); Loading @@ -441,7 +441,7 @@ void EDA_3D_CANVAS::BuildBoard3DView() } } // Draw pads holes (vertical cylinders) // Draw pads holes (vertical cylinders) for( MODULE* module = pcb->m_Modules; module != NULL; module = module->Next() ) for( const MODULE* module = pcb->m_Modules; module != NULL; module = module->Next() ) { { for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() ) for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() ) Draw3DPadHole( pad ); Draw3DPadHole( pad ); Loading Loading @@ -508,6 +508,7 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() // to reduce time calculations // to reduce time calculations // for holes and items which do not need // for holes and items which do not need // a fine representation // a fine representation double correctionFactorLQ = 1.0 / cos( M_PI / (segcountLowQuality * 2) ); CPOLYGONS_LIST bufferPolys; CPOLYGONS_LIST bufferPolys; bufferPolys.reserve( 100000 ); // Reserve for large board bufferPolys.reserve( 100000 ); // Reserve for large board Loading @@ -517,8 +518,8 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() CPOLYGONS_LIST bufferPcbOutlines; // stores the board main outlines CPOLYGONS_LIST bufferPcbOutlines; // stores the board main outlines // Build a polygon from edge cut items // Build a polygon from edge cut items wxString msg; wxString msg; if( ! pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) { { msg << wxT("\n\n") << msg << wxT("\n\n") << _("Unable to calculate the board outlines.\n" _("Unable to calculate the board outlines.\n" Loading Loading @@ -610,22 +611,30 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() continue; continue; BuildPadShapeThickOutlineAsPolygon( pad, bufferPolys, BuildPadShapeThickOutlineAsPolygon( pad, bufferPolys, linewidth, linewidth, segcountforcircle, correctionFactor ); segcountforcircle, correctionFactor ); } } } } else else module->TransformPadsShapesWithClearanceToPolygon( layer, module->TransformPadsShapesWithClearanceToPolygon( layer, bufferPolys, bufferPolys, 0, segcountforcircle, correctionFactor ); 0, segcountforcircle, correctionFactor ); module->TransformGraphicShapesWithClearanceToPolygonSet( layer, module->TransformGraphicShapesWithClearanceToPolygonSet( layer, bufferPolys, bufferPolys, 0, segcountforcircle, correctionFactor ); 0, } segcountforcircle, correctionFactor ); // Draw non copper zones if( g_Parm_3D_Visu.GetFlag( FL_ZONE ) ) { for( int ii = 0; ii < pcb->GetAreaCount(); ii++ ) { ZONE_CONTAINER* zone = pcb->GetArea( ii ); if( !zone->IsOnLayer( layer ) ) continue; zone->TransformSolidAreasShapesToPolygonSet( bufferPolys, segcountLowQuality, correctionFactorLQ ); } } } // bufferPolys contains polygons to merge. Many overlaps . // bufferPolys contains polygons to merge. Many overlaps . Loading CMakeModules/download_avhttp.cmake +7 −1 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,12 @@ # Where the library is to be installed. # Where the library is to be installed. set( PREFIX ${DOWNLOAD_DIR}/avhttp ) set( PREFIX ${DOWNLOAD_DIR}/avhttp ) if( KICAD_SKIP_BOOST ) set( AVHTTP_DEPEND "" ) else() set( AVHTTP_DEPEND "boost" ) endif() # Install the AVHTTP header only library ${PREFIX} # Install the AVHTTP header only library ${PREFIX} ExternalProject_Add( avhttp ExternalProject_Add( avhttp Loading @@ -46,7 +52,7 @@ ExternalProject_Add( avhttp # grab it from a local zip file for now, cmake caller's source dir # grab it from a local zip file for now, cmake caller's source dir URL ${CMAKE_CURRENT_SOURCE_DIR}/avhttp-master.zip URL ${CMAKE_CURRENT_SOURCE_DIR}/avhttp-master.zip DEPENDS boost DEPENDS ${AVHTTP_DEPEND} CONFIGURE_COMMAND "" CONFIGURE_COMMAND "" Loading Loading
3d-viewer/3d_draw.cpp +25 −16 Original line number Original line Diff line number Diff line Loading @@ -257,8 +257,8 @@ void EDA_3D_CANVAS::BuildBoard3DView() // Build a polygon from edge cut items // Build a polygon from edge cut items wxString msg; wxString msg; if( ! pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) { { msg << wxT("\n\n") << msg << wxT("\n\n") << _("Unable to calculate the board outlines.\n" _("Unable to calculate the board outlines.\n" Loading Loading @@ -432,7 +432,7 @@ void EDA_3D_CANVAS::BuildBoard3DView() } } // Draw vias holes (vertical cylinders) // Draw vias holes (vertical cylinders) for( TRACK* track = pcb->m_Track; track != NULL; track = track->Next() ) for( const TRACK* track = pcb->m_Track; track != NULL; track = track->Next() ) { { const VIA *via = dynamic_cast<const VIA*>(track); const VIA *via = dynamic_cast<const VIA*>(track); Loading @@ -441,7 +441,7 @@ void EDA_3D_CANVAS::BuildBoard3DView() } } // Draw pads holes (vertical cylinders) // Draw pads holes (vertical cylinders) for( MODULE* module = pcb->m_Modules; module != NULL; module = module->Next() ) for( const MODULE* module = pcb->m_Modules; module != NULL; module = module->Next() ) { { for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() ) for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() ) Draw3DPadHole( pad ); Draw3DPadHole( pad ); Loading Loading @@ -508,6 +508,7 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() // to reduce time calculations // to reduce time calculations // for holes and items which do not need // for holes and items which do not need // a fine representation // a fine representation double correctionFactorLQ = 1.0 / cos( M_PI / (segcountLowQuality * 2) ); CPOLYGONS_LIST bufferPolys; CPOLYGONS_LIST bufferPolys; bufferPolys.reserve( 100000 ); // Reserve for large board bufferPolys.reserve( 100000 ); // Reserve for large board Loading @@ -517,8 +518,8 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() CPOLYGONS_LIST bufferPcbOutlines; // stores the board main outlines CPOLYGONS_LIST bufferPcbOutlines; // stores the board main outlines // Build a polygon from edge cut items // Build a polygon from edge cut items wxString msg; wxString msg; if( ! pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) ) { { msg << wxT("\n\n") << msg << wxT("\n\n") << _("Unable to calculate the board outlines.\n" _("Unable to calculate the board outlines.\n" Loading Loading @@ -610,22 +611,30 @@ void EDA_3D_CANVAS::BuildTechLayers3DView() continue; continue; BuildPadShapeThickOutlineAsPolygon( pad, bufferPolys, BuildPadShapeThickOutlineAsPolygon( pad, bufferPolys, linewidth, linewidth, segcountforcircle, correctionFactor ); segcountforcircle, correctionFactor ); } } } } else else module->TransformPadsShapesWithClearanceToPolygon( layer, module->TransformPadsShapesWithClearanceToPolygon( layer, bufferPolys, bufferPolys, 0, segcountforcircle, correctionFactor ); 0, segcountforcircle, correctionFactor ); module->TransformGraphicShapesWithClearanceToPolygonSet( layer, module->TransformGraphicShapesWithClearanceToPolygonSet( layer, bufferPolys, bufferPolys, 0, segcountforcircle, correctionFactor ); 0, } segcountforcircle, correctionFactor ); // Draw non copper zones if( g_Parm_3D_Visu.GetFlag( FL_ZONE ) ) { for( int ii = 0; ii < pcb->GetAreaCount(); ii++ ) { ZONE_CONTAINER* zone = pcb->GetArea( ii ); if( !zone->IsOnLayer( layer ) ) continue; zone->TransformSolidAreasShapesToPolygonSet( bufferPolys, segcountLowQuality, correctionFactorLQ ); } } } // bufferPolys contains polygons to merge. Many overlaps . // bufferPolys contains polygons to merge. Many overlaps . Loading
CMakeModules/download_avhttp.cmake +7 −1 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,12 @@ # Where the library is to be installed. # Where the library is to be installed. set( PREFIX ${DOWNLOAD_DIR}/avhttp ) set( PREFIX ${DOWNLOAD_DIR}/avhttp ) if( KICAD_SKIP_BOOST ) set( AVHTTP_DEPEND "" ) else() set( AVHTTP_DEPEND "boost" ) endif() # Install the AVHTTP header only library ${PREFIX} # Install the AVHTTP header only library ${PREFIX} ExternalProject_Add( avhttp ExternalProject_Add( avhttp Loading @@ -46,7 +52,7 @@ ExternalProject_Add( avhttp # grab it from a local zip file for now, cmake caller's source dir # grab it from a local zip file for now, cmake caller's source dir URL ${CMAKE_CURRENT_SOURCE_DIR}/avhttp-master.zip URL ${CMAKE_CURRENT_SOURCE_DIR}/avhttp-master.zip DEPENDS boost DEPENDS ${AVHTTP_DEPEND} CONFIGURE_COMMAND "" CONFIGURE_COMMAND "" Loading