aws-cqc / aws-cqc/DeviceLayout.jl

Improve postrenderer interface

Open
#4 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
67
Forks
14
Avg merge
1d 16h
Merged PRs (30d)
21

Description

Right now we specify a postrenderer for a `SolidModel` by putting a list of `(new_physical_group_name, function, (args...), kwargs...)` tuples in the `SolidModelTarget`. We can make this nicer to use and more robust.

For example, instead of
```julia
( # Get metal ground plane by subtracting negative from writeable area
"metal", # Output group name
SolidModels.difference_geom!, # Operation
("writeable_area", "metal_negative", 2, 2), # (object, tool, object_dim, tool_dim)
:remove_object => true # Remove "writeable_area" group after operation
),
```
we could have
```julia
struct DifferenceOp <: PostrenderOp
output::String # Output group name
object::String # Object group name
tool::String # Tool group name
object_dim::Int # Object group dimension, default 2
tool_dim::Int # Tool group dimension, default 2
remove_object::Bool # Remove object group after operation
remove_tool::Bool # Remove tool group after operation
end
```
and so on.

Later, we could define a macro to create these like `@postrender metal = writeable_area(remove=true) - metal_negative`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.