kicad patches
Go to file
Céleste Wouters 76e0f94532 Improve SHAPE_POLY_SET fracture performance
Refactors `SHAPE_POLY_SET::fractureSingle()` to be more efficient, while
not changing the actual algorithm:

* increase cache locality by using contiguous arrays instead of what was
effectively a linked list
* reduce latency and jitter by replacing per-edge allocator calls with
ahead-of-time std::vector reserves
* increase cache efficiency by making the vertex struct smaller
* replace O(n^2) leftmost edge search with O(n log n) std::sort
* sort the polygons instead of the edges
* cut iteration count in half in the remaining O(polygons * edges) part

(cherry picked from commit e98c9f283f)
2024-03-28 13:10:43 -07:00
.githooks
.github
.gitlab
3d-viewer
bitmap2component
cmake
common Improve SHAPE_POLY_SET fracture performance 2024-03-28 13:10:43 -07:00
cvpcb
demos Demos update 2024-03-16 14:55:47 +01:00
doxygen
eeschema Fix warning due to unused angle in EasyEDA Pro schematic parser. 2024-03-23 14:52:05 +00:00
gerbview
include Improve SHAPE_POLY_SET fracture performance 2024-03-28 13:10:43 -07:00
kicad
libs Improve SHAPE_POLY_SET fracture performance 2024-03-28 13:10:43 -07:00
pagelayout_editor
pcb_calculator
pcbnew Sort netnames in properties panel 2024-03-28 13:06:18 -07:00
plugins kicad_advanced: Make OCE tesselation deflection configurable 2024-03-28 13:10:43 -07:00
qa prettifier: add newlines to golden samples 2024-03-19 09:46:42 -04:00
resources
scripting
signing
thirdparty nanodbc: Fix use after free 2024-03-19 18:56:43 +01:00
tools
translation
utils
.clang-tidy
.gitattributes
.gitignore
.gitlab-ci.yml
AUTHORS.txt
CMakeLists.txt
CMakeSettings.json.sample
CONTRIBUTING.md
INSTALL.txt
LICENSE
LICENSE.3-CLAUSE-BSD
LICENSE.APACHE-2.0
LICENSE.BOOSTv1_0
LICENSE.CC-BY-SA-4.0
LICENSE.CC0
LICENSE.GPLv3
LICENSE.ISC
LICENSE.MIT
LICENSE.README
README.md
_clang-format
code-of-conduct.md
copyright.h
uncrustify.cfg
vcpkg-configuration.json
vcpkg.json

README.md

KiCad README

For specific documentation about building KiCad, policies and guidelines, and source code documentation see the Developer Documentation website.

You may also take a look into the Wiki, the contribution guide.

For general information about KiCad and information about contributing to the documentation and libraries, see our Website and our Forum.

Build state

KiCad uses a host of CI resources.

GitLab CI pipeline status can be viewed for Linux and Windows builds of the latest commits.

Release status

latest released version(s) Release status

Files

  • AUTHORS.txt - The authors, contributors, document writers and translators list
  • CMakeLists.txt - Main CMAKE build tool script
  • copyright.h - A very short copy of the GNU General Public License to be included in new source files
  • Doxyfile - Doxygen config file for KiCad
  • INSTALL.txt - The release (binary) installation instructions
  • uncrustify.cfg - Uncrustify config file for uncrustify sources formatting tool
  • _clang-format - clang config file for clang-format sources formatting tool

Subdirectories

  • 3d-viewer - Sourcecode of the 3D viewer
  • bitmap2component - Sourcecode of the bitmap to PCB artwork converter
  • cmake - Modules for the CMAKE build tool
  • common - Sourcecode of the common library
  • cvpcb - Sourcecode of the CvPCB tool
  • demos - Some demo examples
  • doxygen - Configuration for generating pretty doxygen manual of the codebase
  • eeschema - Sourcecode of the schematic editor
  • gerbview - Sourcecode of the gerber viewer
  • include - Interfaces to the common library
  • kicad - Sourcecode of the project manager
  • libs - Sourcecode of KiCad utilities (geometry and others)
  • pagelayout_editor - Sourcecode of the pagelayout editor
  • patches - Collection of patches for external dependencies
  • pcbnew - Sourcecode of the printed circuit board editor
  • plugins - Sourcecode for the 3D viewer plugins
  • qa - Unit testing framework for KiCad
  • resources - Packaging resources such as bitmaps and operating system specific files
  • scripting - Python integration for KiCad
  • thirdparty - Sourcecode of external libraries used in KiCad but not written by the KiCad team
  • tools - Helpers for developing, testing and building
  • translation - Translation data files (managed through Weblate for most languages)
  • utils - Small utils for KiCad, e.g. IDF, STEP, and OGL tools and converters