MDAL
mdal_2dm.hpp
1 /*
2  MDAL - Mesh Data Abstraction Library (MIT License)
3  Copyright (C) 2018 Peter Petrik (zilolv at gmail dot com)
4 */
5 
6 #ifndef MDAL_2DM_HPP
7 #define MDAL_2DM_HPP
8 
9 #include <string>
10 #include <memory>
11 
12 #include "mdal_data_model.hpp"
13 #include "mdal_memory_data_model.hpp"
14 #include "mdal.h"
15 #include "mdal_driver.hpp"
16 
17 namespace MDAL
18 {
19  class Mesh2dm: public MemoryMesh
20  {
21  public:
22  Mesh2dm( size_t faceVerticesMaximumCount,
23  const std::string &uri,
24  const std::map<size_t, size_t> vertexIDtoIndex
25  );
26  ~Mesh2dm() override;
27 
28 
34  virtual size_t vertexIndex( size_t vertexID ) const;
35 
38  virtual size_t maximumVertexId() const;
39 
40  private:
44  std::map<size_t, size_t> mVertexIDtoIndex;
45  };
46 
79  class Driver2dm: public Driver
80  {
81  public:
82  Driver2dm();
83  ~Driver2dm() override;
84  Driver2dm *create() override;
85 
86  int faceVerticesMaximumCount() const override {return 6;}
87 
88  bool canReadMesh( const std::string &uri ) override;
89  std::unique_ptr< Mesh > load( const std::string &meshFile, const std::string &meshName = "" ) override;
90  void save( const std::string &fileName, const std::string &, Mesh *mesh ) override;
91 
92  std::string saveMeshOnFileSuffix() const override;
93 
94  private:
95  std::string mMeshFile;
96  };
97 
98 } // namespace MDAL
99 #endif //MDAL_2DM_HPP
2DM format specification used in TUFLOW, HYDRO_AS-2D and BASEMENET solvers Text file format represent...
Definition: mdal_2dm.hpp:80
int faceVerticesMaximumCount() const override
returns the maximum vertices per face
Definition: mdal_2dm.hpp:86
Definition: mdal_driver.hpp:28
Definition: mdal_memory_data_model.hpp:291
Definition: mdal_2dm.hpp:20
virtual size_t vertexIndex(size_t vertexID) const
HYDRO_AS-2D supports gaps in the vertex indexing, but we use continuos array of vertices in MDAL.
Definition: mdal_2dm.cpp:68
virtual size_t maximumVertexId() const
Returns maximum vertex ID.
Definition: mdal_2dm.cpp:78
Definition: mdal_data_model.hpp:238