7#include "coordinate.hpp"
75 std::vector<LevelZ::Coordinate2D> coordinates;
84 std::vector<LevelZ::Coordinate2D>::const_iterator begin()
const {
88 std::vector<LevelZ::Coordinate2D>::const_iterator end()
const {
115 return "(" + std::to_string(
minX) +
", " + std::to_string(
maxX) +
", " + std::to_string(
minY) +
", " + std::to_string(
maxY) +
")^" +
start.
to_string();
124 const std::regex matrix(
"[\\[\\]()]");
125 std::string s0 = std::regex_replace(str, matrix,
"");
126 s0 = s0.replace(s0.find(
'^'), 1,
", ");
135 while ((cpos = s0.find(
',')) != std::string::npos) {
136 s1 = s0.substr(0, cpos);
138 case 0: x1 = std::stoi(s1);
break;
139 case 1: x2 = std::stoi(s1);
break;
140 case 2: y1 = std::stoi(s1);
break;
141 case 3: y2 = std::stoi(s1);
break;
142 case 4: cx = std::stod(s1);
break;
145 s0.erase(0, cpos + 1);
213 CoordinateMatrix3D(
int minX,
int maxX,
int minY,
int maxY,
int minZ,
int maxZ,
LevelZ::Coordinate3D start) :
minX(
minX),
maxX(
maxX),
minY(
minY),
maxY(
maxY),
minZ(
minZ),
maxZ(
maxZ),
start(
start) {}
220 std::vector<LevelZ::Coordinate3D> coordinates;
221 for (
int x =
minX; x <=
maxX; x++) {
222 for (
int y =
minY; y <=
maxY; y++) {
223 for (
int z =
minZ; z <=
maxZ; z++) {
231 std::vector<LevelZ::Coordinate3D>::const_iterator begin()
const {
235 std::vector<LevelZ::Coordinate3D>::const_iterator end()
const {
262 return "(" + std::to_string(
minX) +
", " + std::to_string(
maxX) +
", " + std::to_string(
minY) +
", " + std::to_string(
maxY) +
", " + std::to_string(
minZ) +
", " + std::to_string(
maxZ) +
")^" +
start.
to_string();
271 const std::regex matrix(
"[\\[\\]()]");
272 std::string s0 = std::regex_replace(str, matrix,
"");
273 s0 = s0.replace(s0.find(
'^'), 1,
", ");
279 int x1, x2, y1, y2, z1, z2;
282 while ((cpos = s0.find(
',')) != std::string::npos) {
283 s1 = s0.substr(0, cpos);
285 case 0: x1 = std::stoi(s1);
break;
286 case 1: x2 = std::stoi(s1);
break;
287 case 2: y1 = std::stoi(s1);
break;
288 case 3: y2 = std::stoi(s1);
break;
289 case 4: z1 = std::stoi(s1);
break;
290 case 5: z2 = std::stoi(s1);
break;
291 case 6: cx = std::stod(s1);
break;
292 case 7: cy = std::stod(s1);
break;
295 s0.erase(0, cpos + 1);
Definition coordinate.hpp:28
std::string to_string() const
Definition coordinate.hpp:149
Definition coordinate.hpp:177
std::string to_string() const
Definition coordinate.hpp:305
std::vector< LevelZ::Coordinate2D > getCoordinates() const
Definition matrix.hpp:74
CoordinateMatrix2D(int x, int y, LevelZ::Coordinate2D start)
Definition matrix.hpp:58
int minX
Definition matrix.hpp:30
static LevelZ::CoordinateMatrix2D from_string(const std::string &str)
Definition matrix.hpp:123
LevelZ::Coordinate2D start
Definition matrix.hpp:50
int maxX
Definition matrix.hpp:35
int minY
Definition matrix.hpp:40
bool operator!=(const CoordinateMatrix2D &other) const
Definition matrix.hpp:106
CoordinateMatrix2D(int minX, int maxX, int minY, int maxY, LevelZ::Coordinate2D start)
Definition matrix.hpp:68
std::string to_string() const
Definition matrix.hpp:114
int maxY
Definition matrix.hpp:45
bool operator==(const CoordinateMatrix2D &other) const
Definition matrix.hpp:97
Definition matrix.hpp:157
CoordinateMatrix3D(int minX, int maxX, int minY, int maxY, int minZ, int maxZ, LevelZ::Coordinate3D start)
Definition matrix.hpp:213
int minX
Definition matrix.hpp:162
std::vector< LevelZ::Coordinate3D > getCoordinates() const
Definition matrix.hpp:219
bool operator==(const CoordinateMatrix3D &other) const
Definition matrix.hpp:244
LevelZ::Coordinate3D start
Definition matrix.hpp:192
int minY
Definition matrix.hpp:172
int minZ
Definition matrix.hpp:182
static LevelZ::CoordinateMatrix3D from_string(const std::string &str)
Definition matrix.hpp:270
std::string to_string() const
Definition matrix.hpp:261
CoordinateMatrix3D(int x, int y, int z, LevelZ::Coordinate3D start)
Definition matrix.hpp:201
int maxZ
Definition matrix.hpp:187
int maxX
Definition matrix.hpp:167
int maxY
Definition matrix.hpp:177
bool operator!=(const CoordinateMatrix3D &other) const
Definition matrix.hpp:253
virtual std::string to_string() const =0