import _ISO3744hemiSphericalSurfaceWithOneReflectingPlane
import _ISO3744hemiSphericalSurfaceWithTwoReflectingPlane
import _ISO3744hemiSphericalSurfaceWithThreeReflectingPlane
import _ISO3744parallelPipedSurfaceWithOneReflectingPlaneUsingRectangularSegments
import _ISO3744parallelPipedSurfaceWithOneReflectingPlaneUsingTriangularSegments
import _ISO3744parallelPipedSurfaceWithTwoReflectingPlaneUsingRectangularSegments
import _ISO3744parallelPipedSurfaceWithTwoReflectingPlaneUsingTriangularSegments
import _ISO3744parallelPipedSurfaceWithThreeReflectingPlaneUsingRectangularSegments
import _ISO3744parallelPipedSurfaceWithThreeReflectingPlaneUsingTriangularSegments
import _ISO3746hemiSphericalSurfaceWithOneReflectingPlane 
import _ISO3746hemiSphericalSurfaceWithTwoReflectingPlane
import _ISO3746hemiSphericalSurfaceWithThreeReflectingPlane
import _ISO3746parallelPipedSurfaceWithOneReflectingPlaneUsingRectangularSegments
import _ISO3746parallelPipedSurfaceWithOneReflectingPlaneUsingTriangularSegments
import _ISO3746parallelPipedSurfaceWithTwoReflectingPlaneUsingRectangularSegments
import _ISO3746parallelPipedSurfaceWithTwoReflectingPlaneUsingTriangularSegments
import _ISO3746parallelPipedSurfaceWithThreeReflectingPlaneUsingRectangularSegments
import _ISO3746parallelPipedSurfaceWithThreeReflectingPlaneUsingTriangularSegments
import IEC61400


class _hemiSphericalSurface:
    withOneReflectingPlane = _ISO3744hemiSphericalSurfaceWithOneReflectingPlane
    withTwoReflectingPlane = _ISO3744hemiSphericalSurfaceWithTwoReflectingPlane
    withThreeReflectingPlane = _ISO3744hemiSphericalSurfaceWithThreeReflectingPlane

class _parallelPipedSurfaceWithOneReflectingPlane:
    usingRectangularSegments = _ISO3744parallelPipedSurfaceWithOneReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3744parallelPipedSurfaceWithOneReflectingPlaneUsingTriangularSegments
    
class _parallelPipedSurfaceWithTwoReflectingPlane:
    usingRectangularSegments = _ISO3744parallelPipedSurfaceWithTwoReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3744parallelPipedSurfaceWithTwoReflectingPlaneUsingTriangularSegments
    
class _parallelPipedSurfaceWithThreeReflectingPlane:
    usingRectangularSegments = _ISO3744parallelPipedSurfaceWithThreeReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3744parallelPipedSurfaceWithThreeReflectingPlaneUsingTriangularSegments

class _parallelPipedSurface:
    withOneReflectingPlane = _parallelPipedSurfaceWithOneReflectingPlane
    withTwoReflectingPlanes = _parallelPipedSurfaceWithTwoReflectingPlane
    withThreeReflectingPlanes = _parallelPipedSurfaceWithThreeReflectingPlane

class ISO3744:
    HemiSphericalSurface = _hemiSphericalSurface
    ParallelPipedSurface = _parallelPipedSurface
    
    
class _hemiSphericalSurface:
    withOneReflectingPlane = _ISO3746hemiSphericalSurfaceWithOneReflectingPlane
    withTwoReflectingPlane = _ISO3746hemiSphericalSurfaceWithTwoReflectingPlane
    withThreeReflectingPlane = _ISO3746hemiSphericalSurfaceWithThreeReflectingPlane

class _parallelPipedSurfaceWithOneReflectingPlane:
    usingRectangularSegments = _ISO3746parallelPipedSurfaceWithOneReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3746parallelPipedSurfaceWithOneReflectingPlaneUsingTriangularSegments
    
class _parallelPipedSurfaceWithTwoReflectingPlane:
    usingRectangularSegments = _ISO3746parallelPipedSurfaceWithTwoReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3746parallelPipedSurfaceWithTwoReflectingPlaneUsingTriangularSegments
    
class _parallelPipedSurfaceWithThreeReflectingPlane:
    usingRectangularSegments = _ISO3746parallelPipedSurfaceWithThreeReflectingPlaneUsingRectangularSegments
    usingTriangularSegments = _ISO3746parallelPipedSurfaceWithThreeReflectingPlaneUsingTriangularSegments

class _parallelPipedSurface:
    withOneReflectingPlane = _parallelPipedSurfaceWithOneReflectingPlane
    withTwoReflectingPlanes = _parallelPipedSurfaceWithTwoReflectingPlane
    withThreeReflectingPlanes = _parallelPipedSurfaceWithThreeReflectingPlane

class ISO3746:
    HemiSphericalSurface = _hemiSphericalSurface
    ParallelPipedSurface = _parallelPipedSurface
    
