World Builder  0.1.0-pre
A geodyanmic initial conditions generator
interface.cc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2018 by the authors of the World Builder code.
3 
4  This file is part of the World Builder.
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19 
20 #include <boost/algorithm/string.hpp>
21 
24 #include <world_builder/assert.h>
25 
26 
27 namespace WorldBuilder
28 {
29  namespace CoordinateSystems
30  {
32  {}
33 
35  {}
36 
37  std::unique_ptr<Interface>
38  create_coordinate_system(const std::string name)
39  {
40  std::string feature_name = boost::algorithm::to_lower_copy(name);
41  boost::algorithm::trim(feature_name);
42  if (feature_name == "cartesian")
43  return std::make_unique<CoordinateSystems::Cartesian>();
44  else
45  WBAssertThrow(false, "Coordinate system not implemented.");
46 
47  return NULL;
48  }
49  }
50 }
51 
#define WBAssertThrow(condition, message)
Definition: assert.h:41
std::unique_ptr< Interface > create_coordinate_system(const std::string name)
Definition: interface.cc:38