On 25.11.2011 23:30, Lorenzo Marcantonio wrote:
Isn't a std::set a little overweight for the layer mask? IIRC it's usually implemented as a btree (red-black trees in g++), and there is one for each pad at least in the board! A bitmasked int is a bit vector, which is a lot more efficient both in size and space. Also a bitmask is the very essence of a padstack (even if we do not handle them explicitly).
Use C++ power instead of wrangle. Just hide layer mask implementation inside class, and afterward you could easy play with different implementations without refactoring all source code. You could compare speed, size and other issues using real code, not only assumptions. You could start from easiest (faster to write) implementation (e.g. std:set), and begin to experiment with optimization (e.g. bit vector or something else) when all necessary functionality already achieved. All changes will be localized in one single class.
- Actually the only things that can be on more than one layer are pads and vias! Am I wrong?
I'm not sure, but, possibly, some sort of barriers? -- Regards, Sergey A. Borshch mailto: sb...@sourceforge.net SB ELDI ltd. Riga, Latvia _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp