§
    Nì¿j  ã                  ór   — d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZ e G d„ de¦  «        ¦   «         ZdS )	z¹
Inverse-BIM Constraint Solver Port Interface (Domain Core).
Protocol contract for extracting parametric constraints from CAD vector entities
and computing deterministic solid volumes.
é    )Úannotations)ÚPath)ÚAnyÚProtocolÚruntime_checkable)ÚInverseBimParametricModelÚSolidTakeoffQuantitiesc                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚInverseBimSolverPortz.Domain Port for Inverse-BIM Constraint Solver.Ú
cad_sourceú
str | PathÚkwargsr   Úreturnr   c                ó   — dS )zRExtract grid axes, cross-section dimensions, and segment models from CAD geometry.N© )Úselfr   r   s      úGC:\Projects\DSCons\app\modules\takeoff\domain\ports\inverse_bim_port.pyÚextract_parametric_constraintsz3InverseBimSolverPort.extract_parametric_constraints   s	   € ð 	ˆó    Úmodelr	   c                ó   — dS )z_Compute exact solid volumes (concrete m3, formwork m2, foundation, earthwork) from constraints.Nr   )r   r   s     r   Úcompute_deterministic_solidsz1InverseBimSolverPort.compute_deterministic_solids   s	   € ð
 	ˆr   N)r   r   r   r   r   r   )r   r   r   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      sB   € € € € € à8Ð8ðð ð ð ðð ð ð ð ð r   r   N)r   Ú
__future__r   Úpathlibr   Útypingr   r   r   Ú-app.modules.takeoff.domain.inverse_bim_modelsr   r	   r   r   r   r   ú<module>r!      s¼   ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ðð ð ð ð ˜8ñ ô ñ Ôðð ð r   