It looks like you're new here. If you want to get involved, click one of these buttons!
I know you intentionally don't publish the C++ API, but I have a quick question.
I'm looking at Basic.ROUND_PATH Pcell code, and just need to make a minor modification - so instead of a rounded path it creates two co-linear paths, one wide and one narrow, then subtracts the wide path from the narrow path.
I believe it'd be far easier to do a minor modification of the existing C++ Pcell than to write the whole thing in Ruby from scratch.
So basically if this were Ruby I'd do the following:
ep = RBA::EdgeProcessor::new
wide_minus_narrow = ep.boolean_p2p(wide_wire, narrow_wire, RBA::EdgeProcessor::ModeANotB, false, false)
wide_minus_narrow.each do |p|
out_cell.shapes(out_layer).insert(p)
end
Could you perhaps make an exception in this case with your non-API-publishing rule and let me know how I can find out what C++ commands to do that?
Thanks!
Comments
Never mind, I think I figured it out -- so you don't have to break your rules on publicizing C++ APIs :-). However I have another question.
But first, my attempt at the code. Basically I found libBasicStrokedPolygon to be using an edge processor, so it was easy to copy that.
So the only additions to the libBasicRoundPaths is the following..?
Of course I added these two declarations to the start:
Now just missing two small things:
1) How to make poly2 have larger width than poly? So that the ep.boolean actually does something useful? Note that poly2 should be a rounded wire with width w2, converted to polygon. And poly should be a rounded wire with width w, converted to polygon. I just can't see where to set the width.
2) This is a .cc file -- how to compile it to be included with an existing KLayout installation, if possible? Or do I have to build the whole KLayout from scratch with this extra file included?
Thanks!
Hi,
Here is a sketch (not tested):
If you change anything in a C++ program, you'll have to rebuild the whole application. You cannot just exchange a single file. If you add a new file, you'll have to include it in the Makefile so it's built too.
Matthias