diff --git a/co_sim_io/c/co_sim_io_c.cpp b/co_sim_io/c/co_sim_io_c.cpp index 6facfa56..39dd54ee 100644 --- a/co_sim_io/c/co_sim_io_c.cpp +++ b/co_sim_io/c/co_sim_io_c.cpp @@ -56,7 +56,7 @@ CoSimIO_Info CoSimIO_ImportData( CoSimIO_Info CoSimIO_ExportData( const CoSimIO_Info I_Info, const int I_Size, - const double** I_Data) + const double* I_Data) { using namespace CoSimIO::Internals; std::unique_ptr> p_container(new DataContainerRawMemoryReadOnly(I_Data, I_Size)); @@ -67,13 +67,14 @@ CoSimIO_Info CoSimIO_ImportMesh( const CoSimIO_Info I_Info, int* I_NumberOfNodes, int* I_NumberOfElements, + int* I_NumberOfElementConnectivities, double** I_NodalCoordinates, int** I_ElementConnectivities, int** I_ElementTypes) { using namespace CoSimIO::Internals; std::unique_ptr> p_container_coords(new DataContainerRawMemory(I_NodalCoordinates, *I_NumberOfNodes)); - std::unique_ptr> p_container_conn(new DataContainerRawMemory(I_ElementConnectivities, *I_NumberOfElements)); // using "NumberOfElements" here is wrong! => has to be computed! Or sth like this ... (maybe even has to be passed...) + std::unique_ptr> p_container_conn(new DataContainerRawMemory(I_ElementConnectivities, *I_NumberOfElementConnectivities)); std::unique_ptr> p_container_types(new DataContainerRawMemory(I_ElementTypes, *I_NumberOfElements)); auto info = ConvertInfo(CoSimIO::ImportMesh(ConvertInfo(I_Info), *p_container_coords, *p_container_conn, *p_container_types)); *I_NumberOfNodes = static_cast(p_container_coords->size()); @@ -85,13 +86,14 @@ CoSimIO_Info CoSimIO_ExportMesh( const CoSimIO_Info I_Info, const int O_NumberOfNodes, const int O_NumberOfElements, - const double** O_NodalCoordinates, - const int** O_ElementConnectivities, - const int** O_ElementTypes) + const int O_NumberOfElementConnectivities, + const double* O_NodalCoordinates, + const int* O_ElementConnectivities, + const int* O_ElementTypes) { using namespace CoSimIO::Internals; std::unique_ptr> p_container_coords(new DataContainerRawMemoryReadOnly(O_NodalCoordinates, O_NumberOfNodes)); - std::unique_ptr> p_container_conn(new DataContainerRawMemoryReadOnly(O_ElementConnectivities, O_NumberOfElements)); // using "NumberOfElements" here is wrong! => has to be computed! Or sth like this ... (maybe even has to be passed...) + std::unique_ptr> p_container_conn(new DataContainerRawMemoryReadOnly(O_ElementConnectivities, O_NumberOfElementConnectivities)); std::unique_ptr> p_container_types(new DataContainerRawMemoryReadOnly(O_ElementTypes, O_NumberOfElements)); return ConvertInfo(CoSimIO::ExportMesh(ConvertInfo(I_Info), *p_container_coords, *p_container_conn, *p_container_types)); } diff --git a/co_sim_io/c/co_sim_io_c.h b/co_sim_io/c/co_sim_io_c.h index 8ce61982..1802fee0 100644 --- a/co_sim_io/c/co_sim_io_c.h +++ b/co_sim_io/c/co_sim_io_c.h @@ -30,29 +30,31 @@ CoSimIO_Info CoSimIO_Disconnect( CoSimIO_Info CoSimIO_ImportData( const CoSimIO_Info I_Info, - int* pSize, - double** ppData); + int* O_Size, + double** O_Data); CoSimIO_Info CoSimIO_ExportData( - const CoSimIO_Info* I_Info, + const CoSimIO_Info I_Info, const int I_Size, - const double** pData); + const double* I_Data); CoSimIO_Info CoSimIO_ImportMesh( const CoSimIO_Info I_Info, - int* pNumberOfNodes, - int* pNumberOfElements, - double** O_NodalCoordinates, - int** ppElementConnectivities, - int** ppElementTypes); + int* I_NumberOfNodes, + int* I_NumberOfElements, + int* I_NumberOfElementConnectivities, + double** I_NodalCoordinates, + int** I_ElementConnectivities, + int** I_ElementTypes); CoSimIO_Info CoSimIO_ExportMesh( const CoSimIO_Info I_Info, - const int NumberOfNodes, - const int NumberOfElements, - const double** pNodalCoordinates, - const int** pElementConnectivities, - const int** pElementTypes); + const int O_NumberOfNodes, + const int O_NumberOfElements, + const int O_NumberOfElementConnectivities, + const double* O_NodalCoordinates, + const int* O_ElementConnectivities, + const int* O_ElementTypes); CoSimIO_Info CoSimIO_ImportInfo( diff --git a/co_sim_io/impl/data_container.hpp b/co_sim_io/impl/data_container.hpp index 55d980de..e28c5a91 100644 --- a/co_sim_io/impl/data_container.hpp +++ b/co_sim_io/impl/data_container.hpp @@ -137,16 +137,16 @@ template class DataContainerRawMemoryReadOnly : public DataContainer { public: - explicit DataContainerRawMemoryReadOnly(const TDataType** ppData, const std::size_t Size) - : mppData(ppData), mSize(Size) {} + explicit DataContainerRawMemoryReadOnly(const TDataType* pData, const std::size_t Size) + : mpData(pData), mSize(Size) {} std::size_t size() const override {return mSize;}; void resize(const std::size_t NewSize) override {CO_SIM_IO_ERROR << "Using non-const member of readonly object!" << std::endl;}; - const TDataType* data() const override {return *mppData;} + const TDataType* data() const override {return mpData;} TDataType* data() override {CO_SIM_IO_ERROR << "Using non-const member of readonly object!" << std::endl; return nullptr;} private: - const TDataType** mppData; + const TDataType* mpData; const std::size_t mSize; };