← Back to team overview

kicad-developers team mailing list archive

Re: Experiments and considerations for more layer


On Tue, Sep 03, 2013 at 05:21:58AM -0600, Brian F. G. Bidulock wrote:
> Want to generate a Gerber for copper layer 4?  Just iterate.  No
> masking required.

Major column versus major row... you optimize one thing and slow down
the other. A design decision like any other. What if you want to know all
the things related on a pad? or 1) you sweep all the layers for a match
or 2) cross index them. 
Also: what if there is cross dependency between layers i.e. the same
entity is on more than one layer? for example the refdes has to be
plotted in its position on silk and on the component origin on assembly.
This kind of operation is better suited to the current data structure.

Also see the debate on row vs column based database partitioning for the
issue on a *way* bigger scale.

> The same as layers is true for locality.  Want to know what is close
> to board item 14951?  Kicad compares its geometrical distance to
> EVERY OTHER ITEM ON THE BOARD, EACH TIME!  Using crude integer math

I agree; *that* part of kicad literally sucks:P:P (worse, it does on
every track every time you move the mouse dragging a track). The display
refresh which doesn't even cull is guilty too. I can't agree more with
you in that. Rumors are that there is an R-tree in the works, at least.

Oh, and still there is the clip routine which calculates the distance
even it the target pointer is null (IIRC something like 22% of the
redraw time). Have to fix that one of these days...

Lorenzo Marcantonio
Logos Srl