
    ^j#                    B   U d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZmZmZmZ  G d de      Zedz  eedz  edz  f   z  Zd	ed
<   edz  eedz  edz  edz  f   z  Zd	ed<    G d de      Z G d de      Z G d de      Ze G d de             Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Z G d$ d%e      Z  G d& d'e      Z! G d( d)e      Z" G d* d+e      Z# G d, d-e      Z$ G d. d/e      Z% G d0 d1e      Z& G d2 d3e      Z' G d4 d5e      Z( G d6 d7e      Z) G d8 d9e      Z* G d: d;e      Z+ G d< d=e      Z, G d> d?e      Z- G d@ dAe      Z. G dB dCe      Z/y)Da  
build123d ENUMs

name: build_enums.py
by:   Gumyr
date: Oct 11th 2022

desc:
    A collection of enums used throughout build123d.

license:

    Copyright 2022 Gumyr

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    )annotations)EnumautoIntEnumunique)	TypeAlias)GccEnt_unqualifiedGccEnt_enclosingGccEnt_enclosedGccEnt_outsidec                  D    e Zd ZdZ e       Z e       Z e       ZdZd Z	y)AlignAlign object about AxisNc                P    d| j                   j                   d| j                   dS N<.>	__class____name__nameselfs    N/opt/ringagent/.cad-venv/lib/python3.12/site-packages/build123d/build_enums.py__repr__zAlign.__repr__2   &    4>>**+1TYYKq99    )
r   
__module____qualname____doc__r   MINCENTERMAXNONEr    r   r   r   r   *   s$    !
&CVF
&CD:r   r   Nr   Align2DAlign3Dc                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)ApproxOptionz(DXF export spline approximation strategyc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zApproxOption.__repr__B   r   r   N)	r   r   r    r!   r   ARCr%   SPLINEr   r&   r   r   r*   r*   ;   s    2
&C6DVF:r   r*   c                  2    e Zd ZdZ e       Z e       Zd Zy)AngularDirectionzAngular rotation directionc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zAngularDirection.__repr__L   r   r   N)r   r   r    r!   r   	CLOCKWISECOUNTER_CLOCKWISEr   r&   r   r   r/   r/   F   s    $I:r   r/   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)CenterOfzCenter Optionsc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zCenterOf.__repr__W   r   r   N)	r   r   r    r!   r   GEOMETRYMASSBOUNDING_BOXr   r&   r   r   r4   r4   P   s    vH6D6L:r   r4   c                      e Zd ZdZdZdZdZy)ContinuityLeveluV  
    Continuity level for evaluating geometric connections.

    Used to determine how smoothly adjacent geometry joins together,
    such as at shared vertices between edges or shared edges between faces.

    Levels:

    - C0 (G0): Positional continuity—elements meet at a point but may have sharp angles.
    - C1 (G1): Tangent continuity—elements have the same tangent direction at the junction.
    - C2 (G2): Curvature continuity—elements have matching curvature at the junction.

    These levels correspond to common CAD definitions and are compatible with OCCT's GeomAbs_Shape.
    r         N)r   r   r    r!   C0C1C2r&   r   r   r:   r:   [   s     
B	
B	
Br   r:   c                      e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Z e       Z e       Z e       Z e       Zd Zy)	Extrinsicz*Order to apply extrinsic rotations by axisc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zExtrinsic.__repr__   r   r   Nr   r   r    r!   r   XYZXZYYZXYXZZXYZYXXYXXZXYZYYXYZXZZYZr   r&   r   r   rA   rA   q   ^    4
&C
&C
&C
&C
&C
&C
&C
&C
&C
&C
&C
&C:r   rA   c                  2    e Zd ZdZ e       Z e       Zd Zy)FrameMethodzMoving frame calculation methodc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zFrameMethod.__repr__   r   r   N)r   r   r    r!   r   FRENET	CORRECTEDr   r&   r   r   rR   rR      s    )VFI:r   rR   c                      e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Z e       Z e       Z e       Z e       Z e       Z e       Z e       Z e       Zd Zy)GeomTypezCAD geometry object typec                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zGeomType.__repr__   r   r   N)r   r   r    r!   r   PLANECYLINDERCONESPHERETORUSBEZIERBSPLINE
REVOLUTION	EXTRUSIONOFFSETLINECIRCLEELLIPSE	HYPERBOLAPARABOLAOTHERr   r&   r   r   rW   rW      sz    "FEvH6DVFFEVFfGJIVF6DVFfGIvHFE:r   rW   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)HeadTypezArrow head typesc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zHeadType.__repr__   r   r   N)	r   r   r    r!   r   STRAIGHTCURVEDFILLETEDr   r&   r   r   rj   rj      s    vHVFvH:r   rj   c                      e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Z e       Z e       Z e       Z e       Zd Zy)	Intrinsicz*Order to apply intrinsic rotations by axisc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zIntrinsic.__repr__   r   r   NrC   r&   r   r   rp   rp      rP   r   rp   c                  j    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
d Zy)KeepzSplit optionsc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zKeep.__repr__   r   r   N)r   r   r    r!   r   ALLBOTTOMBOTHINSIDEOUTSIDETOPr   r&   r   r   rs   rs      s4    
&CVF6DVFfG
&C:r   rs   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)KindzOffset corner transitionc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zKind.__repr__   r   r   N)	r   r   r    r!   r   r,   INTERSECTIONTANGENTr   r&   r   r   r|   r|      s    "
&C6LfG:r   r|   c                  \    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	d Z
y)ModezCombination Modec                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zMode.__repr__   r   r   N)r   r   r    r!   r   ADDSUBTRACT	INTERSECTREPLACEPRIVATEr   r&   r   r   r   r      s-    
&CvHIfGfG:r   r   c                  N    e Zd ZdZ e       Z e       Z e       Z e       Zd Z	y)	FontStylezText Font Stylesc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zFontStyle.__repr__   r   r   N)
r   r   r    r!   r   REGULARBOLDITALIC
BOLDITALICr   r&   r   r   r   r      s&    fG6DVFJ:r   r   c                  "    e Zd ZdZdZdZdZd Zy)SagittazSagitta selectionr   r;   c                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zSagitta.__repr__  r   r   N)r   r   r    r!   SHORTLONGrw   r   r&   r   r   r   r      s    EDD:r   r   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)
LengthModez+Method of specifying length along PolarLinec                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zLengthMode.__repr__  r   r   N)	r   r   r    r!   r   DIAGONAL
HORIZONTALVERTICALr   r&   r   r   r   r     s    5vHJvH:r   r   c                  N    e Zd ZdZ e       Z e       Z e       Z e       Zd Z	y)MeshTypez(3MF mesh types typically for 3D printingc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zMeshType.__repr__  r   r   N)
r   r   r    r!   r   rh   MODELSUPPORTSOLIDSUPPORTr   r&   r   r   r   r     s&    2FEFEfG6L:r   r   c                  2    e Zd ZdZ e       Z e       Zd Zy)NumberDisplayzMethods for displaying numbersc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zNumberDisplay.__repr__"  r   r   N)r   r   r    r!   r   DECIMALFRACTIONr   r&   r   r   r   r     s    (fGvH:r   r   c                      e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Z e       Z e       Z e       Z e       Z e       Z e       Zd Zy)PageSizer   c                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zPageSize.__repr__8  r   r   N)r   r   r    r!   r   A0A1A2A3A4A5A6A7A8A9A10LETTERLEGALLEDGERr   r&   r   r   r   r   &  sl    !	B	B	B	B	B	B	B	B	B	B
&CVFFEVF:r   r   c                  &    e Zd ZdZeZeZeZ	e
Zd Zy)Tangencyz.Tangency constraint for solvers edge selectionc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zTangency.__repr__D  r   r   N)r   r   r    r!   r	   UNQUALIFIEDr
   	ENCLOSINGr   ENCLOSEDr   ry   r   r&   r   r   r   r   <  s    8$K IHG:r   r   c                  2    e Zd ZdZ e       Z e       Zd Zy)PositionModezPosition along curve modec                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zPositionMode.__repr__N  r   r   N)r   r   r    r!   r   LENGTH	PARAMETERr   r&   r   r   r   r   H  s    #VFI:r   r   c                  &    e Zd ZdZdZdZdZdZd Zy)PrecisionModea  
    When you export a model to a STEP file, the precision of the geometric data
    (such as the coordinates of points, the definitions of curves and surfaces, etc.)
    can significantly impact the file size and the fidelity of the model when it is
    imported into another CAD system. Higher precision means that the geometric
    data is described with more detail, which can improve the accuracy of the model
    in the target system but can also increase the file size.
    r<   r;   r   r   c                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zPrecisionMode.__repr__a  r   r   N)	r   r   r    r!   SESSIONGREATESTAVERAGELEASTr   r&   r   r   r   r   R  s"     GHGE:r   r   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)Selectz3Selector scope - all, last operation or new objectsc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zSelect.__repr__l  r   r   N)	r   r   r    r!   r   ru   LASTNEWr   r&   r   r   r   r   e  s    =
&C6D
&C:r   r   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)Sidez2D Offset typesc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zSide.__repr__w  r   r   N)	r   r   r    r!   r   LEFTRIGHTrw   r   r&   r   r   r   r   p  s    6DFE6D:r   r   c                  \    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	d Z
y)SortByzSorting criteriac                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zSortBy.__repr__  r   r   N)r   r   r    r!   r   r   RADIUSAREAVOLUMEDISTANCEr   r&   r   r   r   r   {  s-    VFVF6DVFvH:r   r   c                  j    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
d Zy)	TextAlignzText Alignmentc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zTextAlign.__repr__  r   r   N)r   r   r    r!   r   rv   r#   r   r   rz   TOPFIRSTLINEr   r&   r   r   r   r     s4    VFVF6DFE
&C6L:r   r   c                  @    e Zd ZdZ e       Z e       Z e       Zd Zy)
Transitionz#Sweep discontinuity handling optionc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zTransition.__repr__  r   r   N)	r   r   r    r!   r   r   ROUNDTRANSFORMEDr   r&   r   r   r   r     s    -FEFE&K:r   r   c                  j    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
d Zy)UnitzStandard Unitsc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zUnit.__repr__  r   r   N)r   r   r    r!   r   MCMMCMMINFTr   r&   r   r   r   r     s4    	B	B	BA	B	B:r   r   c                  N    e Zd ZdZ e       Z e       Z e       Z e       Zd Z	y)UntilzExtrude limitc                P    d| j                   j                   d| j                   dS r   r   r   s    r   r   zUntil.__repr__  r   r   N)
r   r   r    r!   r   NEXTr   PREVIOUSFIRSTr   r&   r   r   r   r     s&    6D6DvHFE:r   r   )0r!   
__future__r   enumr   r   r   r   typingr   
OCP.GccEntr	   r
   r   r   r   tupler'   __annotations__r(   r*   r/   r4   r:   rA   rR   rW   rj   rp   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   <module>r      s  8 # , ,  	:D 	: T\E%$,*D$EE ET\E%$,edl*R$SS S:4 ::t ::t : g  *: :*:$ ::t :0:t :: :*:4 ::4 :
:4 
:	: 	::d :: :	:t 	::D ::t :,	:t 	::4 ::D :&:T ::4 :
:T 
:: :: ::4 :	:D 	:r   