
// pybind 11 related includes
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>

namespace py = pybind11;


// Standard Handle
#include <Standard_Handle.hxx>

// user-defined inclusion per module before includes

// includes to resolve forward declarations
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <StdObjMgt_MapOfInstantiators.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>
#include <Adaptor2d_Curve2d.hxx>
#include <Adaptor3d_Curve.hxx>
#include <Adaptor3d_Surface.hxx>

// module includes
#include <StdPersistent.hxx>
#include <StdPersistent_DataXtd.hxx>
#include <StdPersistent_DataXtd_Constraint.hxx>
#include <StdPersistent_DataXtd_PatternStd.hxx>
#include <StdPersistent_HArray1.hxx>
#include <StdPersistent_Naming.hxx>
#include <StdPersistent_PPrsStd.hxx>
#include <StdPersistent_TopLoc.hxx>
#include <StdPersistent_TopoDS.hxx>

// template related includes


// user-defined pre
#include "OCP_specific.inc"

// user-defined inclusion per module
using ItemLocation = StdPersistent_TopLoc::ItemLocation;
using Datum3D = StdPersistent_TopLoc::Datum3D;

// Module definiiton
void register_StdPersistent_enums(py::module &main_module) {


py::module m = main_module.def_submodule("StdPersistent", R"#()#");

// add namespaces as submodules

// user-defined inclusion per module in the body

// enums

//Python trampoline classes

// pre-register typdefs+classes (topologically sorted)
    py::class_<StdPersistent , shared_ptr<StdPersistent>  >(m,"StdPersistent",R"#()#");
    py::class_<StdPersistent_DataXtd , shared_ptr<StdPersistent_DataXtd>  >(m,"StdPersistent_DataXtd",R"#()#");
    py::class_<StdPersistent_HArray1 , shared_ptr<StdPersistent_HArray1>  >(m,"StdPersistent_HArray1",R"#()#");
    py::class_<StdPersistent_Naming , shared_ptr<StdPersistent_Naming>  >(m,"StdPersistent_Naming",R"#()#");
    py::class_<StdPersistent_PPrsStd , shared_ptr<StdPersistent_PPrsStd>  >(m,"StdPersistent_PPrsStd",R"#()#");
    py::class_<StdPersistent_TopLoc , shared_ptr<StdPersistent_TopLoc>  >(m,"StdPersistent_TopLoc",R"#()#");
    py::class_<StdPersistent_TopoDS , shared_ptr<StdPersistent_TopoDS>  >(m,"StdPersistent_TopoDS",R"#()#");
    py::class_<StdPersistent_DataXtd_Constraint , shared_ptr<StdPersistent_DataXtd_Constraint>  >(m,"StdPersistent_DataXtd_Constraint",R"#()#");
    py::class_<StdPersistent_DataXtd_PatternStd , shared_ptr<StdPersistent_DataXtd_PatternStd>  >(m,"StdPersistent_DataXtd_PatternStd",R"#()#");
    py::class_<StdPersistent_HArray1OfShape1 ,opencascade::handle<StdPersistent_HArray1OfShape1>  , Standard_Transient >(m,"StdPersistent_HArray1OfShape1",R"#()#");

};

// user-defined post-inclusion per module

// user-defined post
