from enum import IntEnum
from typing import overload, NewType, Optional, Tuple

from OCC.Core.Standard import *
from OCC.Core.NCollection import *
from OCC.Core.StepGeom import *
from OCC.Core.Geom import *
from OCC.Core.Geom2d import *
from OCC.Core.gp import *
from OCC.Core.StepKinematics import *
from OCC.Core.StepRepr import *
from OCC.Core.TColStd import *


class steptogeom:
    @staticmethod
    def MakeAxis1Placement(SA: StepGeom_Axis1Placement) -> Geom_Axis1Placement: ...
    @overload
    @staticmethod
    def MakeAxis2Placement(SA: StepGeom_Axis2Placement3d) -> Geom_Axis2Placement: ...
    @overload
    @staticmethod
    def MakeAxis2Placement(SP: StepGeom_SuParameters) -> Geom_Axis2Placement: ...
    @staticmethod
    def MakeAxisPlacement(SA: StepGeom_Axis2Placement2d) -> Geom2d_AxisPlacement: ...
    @staticmethod
    def MakeBSplineCurve(SC: StepGeom_BSplineCurve) -> Geom_BSplineCurve: ...
    @staticmethod
    def MakeBSplineCurve2d(SC: StepGeom_BSplineCurve) -> Geom2d_BSplineCurve: ...
    @staticmethod
    def MakeBSplineSurface(SS: StepGeom_BSplineSurface) -> Geom_BSplineSurface: ...
    @staticmethod
    def MakeBoundedCurve(SC: StepGeom_BoundedCurve) -> Geom_BoundedCurve: ...
    @staticmethod
    def MakeBoundedCurve2d(SC: StepGeom_BoundedCurve) -> Geom2d_BoundedCurve: ...
    @staticmethod
    def MakeBoundedSurface(SS: StepGeom_BoundedSurface) -> Geom_BoundedSurface: ...
    @staticmethod
    def MakeCartesianPoint(SP: StepGeom_CartesianPoint) -> Geom_CartesianPoint: ...
    @staticmethod
    def MakeCartesianPoint2d(SP: StepGeom_CartesianPoint) -> Geom2d_CartesianPoint: ...
    @staticmethod
    def MakeCircle(SC: StepGeom_Circle) -> Geom_Circle: ...
    @staticmethod
    def MakeCircle2d(SC: StepGeom_Circle) -> Geom2d_Circle: ...
    @staticmethod
    def MakeConic(SC: StepGeom_Conic) -> Geom_Conic: ...
    @staticmethod
    def MakeConic2d(SC: StepGeom_Conic) -> Geom2d_Conic: ...
    @staticmethod
    def MakeConicalSurface(SS: StepGeom_ConicalSurface) -> Geom_ConicalSurface: ...
    @staticmethod
    def MakeCurve(SC: StepGeom_Curve) -> Geom_Curve: ...
    @staticmethod
    def MakeCurve2d(SC: StepGeom_Curve) -> Geom2d_Curve: ...
    @staticmethod
    def MakeCylindricalSurface(SS: StepGeom_CylindricalSurface) -> Geom_CylindricalSurface: ...
    @staticmethod
    def MakeDirection(SD: StepGeom_Direction) -> Geom_Direction: ...
    @staticmethod
    def MakeDirection2d(SD: StepGeom_Direction) -> Geom2d_Direction: ...
    @staticmethod
    def MakeElementarySurface(SS: StepGeom_ElementarySurface) -> Geom_ElementarySurface: ...
    @staticmethod
    def MakeEllipse(SC: StepGeom_Ellipse) -> Geom_Ellipse: ...
    @staticmethod
    def MakeEllipse2d(SC: StepGeom_Ellipse) -> Geom2d_Ellipse: ...
    @staticmethod
    def MakeHyperbola(SC: StepGeom_Hyperbola) -> Geom_Hyperbola: ...
    @staticmethod
    def MakeHyperbola2d(SC: StepGeom_Hyperbola) -> Geom2d_Hyperbola: ...
    @staticmethod
    def MakeLine(SC: StepGeom_Line) -> Geom_Line: ...
    @staticmethod
    def MakeLine2d(SC: StepGeom_Line) -> Geom2d_Line: ...
    @staticmethod
    def MakeParabola(SC: StepGeom_Parabola) -> Geom_Parabola: ...
    @staticmethod
    def MakeParabola2d(SC: StepGeom_Parabola) -> Geom2d_Parabola: ...
    @staticmethod
    def MakePlane(SP: StepGeom_Plane) -> Geom_Plane: ...
    @staticmethod
    def MakePolyline(SPL: StepGeom_Polyline) -> Geom_BSplineCurve: ...
    @staticmethod
    def MakePolyline2d(SPL: StepGeom_Polyline) -> Geom2d_BSplineCurve: ...
    @staticmethod
    def MakeRectangularTrimmedSurface(SS: StepGeom_RectangularTrimmedSurface) -> Geom_RectangularTrimmedSurface: ...
    @staticmethod
    def MakeSphericalSurface(SS: StepGeom_SphericalSurface) -> Geom_SphericalSurface: ...
    @staticmethod
    def MakeSurface(SS: StepGeom_Surface) -> Geom_Surface: ...
    @staticmethod
    def MakeSurfaceOfLinearExtrusion(SS: StepGeom_SurfaceOfLinearExtrusion) -> Geom_SurfaceOfLinearExtrusion: ...
    @staticmethod
    def MakeSurfaceOfRevolution(SS: StepGeom_SurfaceOfRevolution) -> Geom_SurfaceOfRevolution: ...
    @staticmethod
    def MakeSweptSurface(SS: StepGeom_SweptSurface) -> Geom_SweptSurface: ...
    @staticmethod
    def MakeToroidalSurface(SS: StepGeom_ToroidalSurface) -> Geom_ToroidalSurface: ...
    @staticmethod
    def MakeTransformation2d(SCTO: StepGeom_CartesianTransformationOperator2d, CT: gp_Trsf2d) -> bool: ...
    @staticmethod
    def MakeTransformation3d(SCTO: StepGeom_CartesianTransformationOperator3d, CT: gp_Trsf) -> bool: ...
    @staticmethod
    def MakeTrimmedCurve(SC: StepGeom_TrimmedCurve) -> Geom_TrimmedCurve: ...
    @staticmethod
    def MakeTrimmedCurve2d(SC: StepGeom_TrimmedCurve) -> Geom2d_BSplineCurve: ...
    @staticmethod
    def MakeVectorWithMagnitude(SV: StepGeom_Vector) -> Geom_VectorWithMagnitude: ...
    @staticmethod
    def MakeVectorWithMagnitude2d(SV: StepGeom_Vector) -> Geom2d_VectorWithMagnitude: ...
    @staticmethod
    def MakeYprRotation(SR: StepKinematics_SpatialRotation, theCntxt: StepRepr_GlobalUnitAssignedContext) -> TColStd_HArray1OfReal: ...

# harray1 classes
# harray2 classes
# hsequence classes

