rayoptics.elem.sgz2ele module

Module for parsing a sequential model into elements

The grammar is as follows:

seq_model   = object space optics image
optics      = (part space)*

part        = mangin / cemented / lens / mirror / surface / dummy / thin_lens

space        = phantom / air / thickness

surface      = "i"
lens         = "iti"
mirror       = "r"
air          = "a"
thickness    = "t"
cemented     = "ititi"("ti")*
mangin       = ~r"it(?:r|(?R))*ti"
thin_lens    = "l"
dummy        = "d"
phantom      = "apa"
object       = ~r"^d"
image        = ~r"d$"
flatten_visit(visit_output)[source]
class SMVisitor(do_print_visit=False)[source]

Bases: NodeVisitor

print_visit(node, part_name, idx_list, gap_list)[source]
visit_seq_model(node, visited_children)[source]

Returns the overall output.

visit_surface(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_lens(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_mirror(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_air(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_thickness(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_cemented(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_mangin(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_thin_lens(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_dummy(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_phantom(node, visited_children)[source]

Create an AirGap that encompasses the phantom interface.

visit_object(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

visit_image(node, visited_children)[source]

Gets each key/value pair, returns a tuple.

generic_visit(node, visited_children)[source]

The generic visit method.