ComponentGroup#
- class ComponentGroup(origin, **kwargs)[source]#
Bases:
OpticalComponent- __init__(origin, **kwargs)[source]#
Initialize a component at a lab-frame origin.
- Parameters:
origin – Component origin in lab coordinates.
**kwargs – Optional display metadata such as
name,label,render_obj, andrender_comp_vec.
- property bbox#
Return cached axis-aligned bounding box in lab coordinates.
- property bboxes#
- get_bbox() tuple[source]#
Compute axis-aligned bounding box in lab frame.
- Returns:
Tuple
(xmin, xmax, ymin, ymax, zmin, zmax)in lab coordinates.
- interact(ray: Ray) Tuple[float, List[Ray]] | Tuple[None, None][source]#
Apply component interaction in local frame and return lab-frame rays.
- Parameters:
ray – Input ray in lab coordinates.
- Returns:
Tuple
(t, rays)wheretis the hit distance andrayscontains the truncated incoming segment plus newly generated outgoing rays in lab coordinates. Returns(None, None)when no interaction occurs.