-
-
Notifications
You must be signed in to change notification settings - Fork 54
Enhancement request: implement IPC-D-356A import. #157
Description
Currently, the code basically relies on Cairo for rendering (pixmap or vector format). I would like to be able to generate output suitable for use with OpenSceneGraph and similar 3D rendering libraries. This would generate board views similar to what most EDA tools can do, that can be flipped around with the mouse with realistic color, thickness etc.
I am prepared to do this work, but I am asking here whether this is the best place/repository to do it. Thoughts?
The approach I have in mind at present is to change direct calls to Cairo (e.g. cairo_move_to()) to indirect calls via function pointers: draw_impl->move_to(). Instead of passing cairo_t *cairoTarget around, pass a struct that is one additional level of abstraction away from Cairo. Naturally, a default object would be set up to use Cairo, so that library functionality is unchanged by default, however a library user could create their own draw implementation which uses OSG instead of Cairo, provide they stick to Cairo-compatible semantics.
Another enhancement is to support IPC-D-356A test data (I already use this to run a soldering robot but would be nice to integrate graphically), and this in turn suggests support for RS274-X2 (attributes) as a way to store the data.
Open to suggestions...