OK...I'm making progress. I was able to identify the geometry and store
the nets in an array. I wrote the following snippet to try to draw the
path and clip:
j = 0;
cairo_new_path(cr);
draw_cairo_move_to(cr, border[0]->start_x, border[0]->start_y, FALSE);
while ( border[j] != NULL){
draw_cairo_line_to(cr, border[j]->stop_x, border[j]->stop_y);
j++;
}
cairo_clip(cr);
It is clipping, but it is clipping everything. I have a feeling that
there is some translation of the gerber coordinates to cairo coordinates
going on in other routines before these draw operations would normally
be called and my border isn't being set properly in the screen. The
coordinates look like this:
Border 0: sX=0.010100, sY=0.010100, eX=0.010100, eY=2.097100
Border 1: sX=0.010100, sY=2.097100, eX=1.209300, eY=2.097100
Border 2: sX=1.209300, sY=2.097100, eX=1.209300, eY=0.010100
Border 3: sX=1.209300, sY=0.010100, eX=0.010100, eY=0.010100
where sX/Y = StartX/Y and eX/Y = StopX/Y
Obviously this is inches where cairo is probably looking for something else.
Any pointers in the right direction would help.
Thanks,
Curtis
On 4/2/2011 11:52 AM, Julian Lamb wrote:
> Curtis,
>> With that array of segments, I could then use cairo to draw the
>> background before rendering the layers. I could tell it to "subtract"
>> the soldermask from the background as the first step and then continue
>> placing the other layers.
> I don't think the overall board clipping would be that hard, since
> cairo will do it quite simply. Once you extract the geometry you want
> for the edge, you create a cairo target, draw a path along the outside
> of the board, and then call cairo_clip. Then you just pass that cairo
> target to the normal rendering routines and nothing will be drawn
> outside of the board edges. You may have to review the gerbv code and
> figure out which translation "frame" to draw the edge in, though (the
> current transform matrix will have to be zoomed in to the correct level,
> etc). I think that will give you the appearance you desire.
>
> Julian
>
> ------------------------------------------------------------------------------
> Create and publish websites with WebMatrix
> Use the most popular FREE web apps or write code yourself;
> WebMatrix provides all the features you need to develop and
> publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
> _______________________________________________
> Gerbv-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/gerbv-devel
>
>
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Gerbv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gerbv-devel