World Builder  0.1.0-pre
A geodyanmic initial conditions generator
array.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 */
20 #include <world_builder/assert.h>
21 
22 namespace WorldBuilder
23 {
24  namespace Types
25  {
26  Array::Array(const Interface &type, const std::string &description)
27  :
28  inner_type_ptr(type.clone()),
29  inner_type(type.get_type()),
30  description(description)
31  {
32  this->type_name = type::Array;
33  }
34 
36  :
37  inner_type_ptr(nullptr),
39  inner_type(type.inner_type),
41  {
42  this->type_name = type::Array;
43  }
44 
45  Array::Array(const std::vector<unsigned int> &inner_type_index, const Types::type inner_type, const std::string &description)
46  :
47  inner_type_ptr(nullptr),
48  inner_type_index(inner_type_index),
49  inner_type(inner_type),
50  description(description)
51  {
52  this->type_name = type::Array;
53  }
54 
56  {}
57 
58  std::unique_ptr<Interface>
59  Array::clone() const
60  {
61  return std::unique_ptr<Interface>(new Array(inner_type_index, inner_type, description));
62  }
63  }
64 }
65 
Array(const Interface &type, const std::string &description)
Definition: array.cc:26
std::vector< unsigned int > inner_type_index
Definition: array.h:113
std::unique_ptr< Interface > inner_type_ptr
Definition: array.h:102
std::string description
Definition: array.h:119
virtual std::unique_ptr< Interface > clone() const
Definition: array.cc:59
Types::type inner_type
Definition: array.h:91