
    vjp                        d dl mZmZmZ d dlmZmZ ddlmZm	Z	 d dl
mZ ej                  dej                  dej                  dej                   d	ej"                  d
ej$                  dej&                  dej(                  dej*                  dej,                  dej.                  diZej2                  dej4                  dej6                  dej8                  dej:                  dej<                  dej>                  dej@                  dejB                  di	Z"ed   Z#ed   Z$ G d de      Z% G d de%e      Z& G d de%e      Z'y)    )OptionalLiteralSequence)ProtocolSelf   )VectorBoundBoxNPLANECYLINDERCONESPHERETORUSBEZIERBSPLINE
REVOLUTION	EXTRUSIONOFFSETOTHERLINECIRCLEELLIPSE	HYPERBOLAPARABOLA)VertexEdgeWireFaceShellSolid	CompSolidCompound)r   r   r   r    r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                   T    e Zd ZdefdZdefdZdefdZde	fdZ
d	dee	   defdZy)
ShapeProtocolreturnc                      y N selfs    N/DATA/.local/lib/python3.12/site-packages/cadquery/occ_impl/shape_protocols.py	ShapeTypezShapeProtocol.ShapeType@           c                      y r'   r(   r)   s    r+   geomTypezShapeProtocol.geomTypeC   r-   r.   c                      y r'   r(   r)   s    r+   CenterzShapeProtocol.CenterF   r-   r.   c                      y r'   r(   r)   s    r+   AreazShapeProtocol.AreaI   r-   r.   N	tolerancec                      y r'   r(   )r*   r5   s     r+   BoundingBoxzShapeProtocol.BoundingBoxL   r-   r.   r'   )__name__
__module____qualname__Shapesr,   Geomsr0   r	   r2   floatr4   r   r
   r7   r(   r.   r+   r$   r$   ?   sI    6 %  e Xe_  r.   r$   c                   B    e Zd Z	 d	deded   defdZdefdZdefdZy)
Shape1DProtocolpmode)length	parameterr%   c                      y r'   r(   )r*   r@   rA   s      r+   	tangentAtzShape1DProtocol.tangentAtQ   s     	r.   c                      y r'   r(   r)   s    r+   radiuszShape1DProtocol.radiusV   r-   r.   c                      y r'   r(   r)   s    r+   LengthzShape1DProtocol.LengthY   r-   r.   N)g      ?rB   )	r8   r9   r:   r=   r   r	   rE   rG   rI   r(   r.   r+   r?   r?   P   s@    EM$+,A$B	
  r.   r?   c                   H    e Zd Zddee   defdZededee   de	fd       Z
y)	FaceProtocolNvr%   c                      y r'   r(   )r*   rL   s     r+   normalAtzFaceProtocol.normalAt^   r-   r.   wwsc                      y r'   r(   )clsrO   rP   s      r+   makeFromWireszFaceProtocol.makeFromWiresa   s    r.   r'   )r8   r9   r:   r   r	   rN   classmethodr$   r   r   rS   r(   r.   r+   rK   rK   ]   sH    (6* f  m -1H T  r.   rK   )(typingr   r   r   typing_extensionsr   r   geomr	   r
   OCP.GeomAbsGeomAbsgaGeomAbs_PlaneGeomAbs_CylinderGeomAbs_ConeGeomAbs_SphereGeomAbs_TorusGeomAbs_BezierSurfaceGeomAbs_BSplineSurfaceGeomAbs_SurfaceOfRevolutionGeomAbs_SurfaceOfExtrusionGeomAbs_OffsetSurfaceGeomAbs_OtherSurfacegeom_LUT_FACEGeomAbs_LineGeomAbs_CircleGeomAbs_EllipseGeomAbs_HyperbolaGeomAbs_ParabolaGeomAbs_BezierCurveGeomAbs_BSplineCurveGeomAbs_OffsetCurveGeomAbs_OtherCurvegeom_LUT_EDGEr;   r<   r$   r?   rK   r(   r.   r+   <module>rq      sF   . . , "  gOOVxghy""L!!;hW OOVx	+HYH7
 
O
 		2H "
mX 
=( r.   