Skip to content
Snippets Groups Projects
MeshGraph.cpp 1.63 KiB
Newer Older
#include <SpatialDomains/MeshGraph.h>
#include <boost/python/suite/indexing/map_indexing_suite.hpp>

using namespace Nektar;
using namespace Nektar::SpatialDomains;

/*
 * @brief Lightweight wrapper around MeshGraph::Read to avoid wrapping
 * DomainRange struct.
 */
MeshGraphSharedPtr MeshGraph_Read(
    const LibUtilities::SessionReaderSharedPtr &session)
{
    return MeshGraph::Read(session);
}

/// MeshGraph::Read overloaded method selector
static boost::shared_ptr<MeshGraph> (*MeshGraph_Read_2)(
    const std::string&, bool) = &MeshGraph::Read;

/**
 * @brief MeshGraph exports.
 */
void export_MeshGraph()
{
    py::class_<SegGeomMap>("SegGeomMap")
        .def(py::map_indexing_suite<SegGeomMap, true>());
    py::class_<QuadGeomMap>("QuadGeomMap")
        .def(py::map_indexing_suite<QuadGeomMap, true>());
    py::class_<TriGeomMap>("TriGeomMap")
        .def(py::map_indexing_suite<TriGeomMap, true>());
    py::class_<MeshGraph,
               boost::shared_ptr<MeshGraph> >(
                   "MeshGraph", py::init<>())

        .def(py::init<int, int>())
        .def(py::init<LibUtilities::SessionReaderSharedPtr >())

        .def("Read", MeshGraph_Read)
        .def("Read", MeshGraph_Read_2)
        .staticmethod("Read")

        .def("GetMeshDimension", &MeshGraph::GetMeshDimension)
        .def("GetAllSegGeoms", &MeshGraph::GetAllSegGeoms,
        .def("GetAllQuadGeoms", &MeshGraph::GetAllQuadGeoms,
        .def("GetAllTriGeoms",  &MeshGraph::GetAllTriGeoms,