#include <charconv>
#include <iostream>
#include <boost/tokenizer.hpp>
#include "interpretSeeds.h"
Go to the source code of this file.
|
| void | getLuxury (boost::tokenizer< boost::char_separator< char > >::iterator &token, short &luxLevel) |
| void | getOffset (boost::tokenizer< boost::char_separator< char > >::iterator &token, uint32_t &offset) |
| bool | interpretSeeds (const std::string &buffer, std::string &stream, uint32_t &seed1, uint32_t &seed2, short &luxury, uint32_t &offset) |
| bool | interpretSeeds (const std::string &buffer, std::string &stream, std::vector< uint32_t > &seeds) |
◆ getLuxury()
| void getLuxury |
( |
boost::tokenizer< boost::char_separator< char > >::iterator & | token, |
|
|
short & | luxLevel ) |
|
inline |
Definition at line 13 of file interpretSeeds.cxx.
13 {
14 if ((*token) == "LUXURY") {
15 ++token;
17 auto result = std::from_chars(token->data(), token->data() + token->size(), parsedValue);
18 if (
result.ec != std::errc()) {
19 std::cerr << "Parsing error in function getLuxury." << std::endl;
20 }
21 luxLevel = parsedValue;
22 ++token;
23 }
24}
◆ getOffset()
| void getOffset |
( |
boost::tokenizer< boost::char_separator< char > >::iterator & | token, |
|
|
uint32_t & | offset ) |
|
inline |
Definition at line 28 of file interpretSeeds.cxx.
28 {
29 if ((*token) == "OFFSET") {
30 ++token;
32 auto result = std::from_chars(token->data(), token->data() + token->size(), parsedValue);
33 if (
result.ec != std::errc()) {
34 std::cerr << "Parsing error in function getOffset." << std::endl;
35 }
37 ++token;
38 }
39}
◆ interpretSeeds() [1/2]
| bool interpretSeeds |
( |
const std::string & | buffer, |
|
|
std::string & | stream, |
|
|
std::vector< uint32_t > & | seeds ) |
Definition at line 68 of file interpretSeeds.cxx.
70{
71
72 typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
73 boost::char_separator<char>
sep(
" ");
74 tokenizer
tokens(buffer, sep);
76 bool status = (nToks == 31 || nToks == 33 || nToks == 771);
77 if (status) {
78 tokenizer::iterator token(
tokens.begin());
80 --nToks;
81 if (nToks == 32) nToks=30;
82 for (
int i=0;
i<nToks;
i++) {
84 auto [
ptr, ec] = std::from_chars(token->data(), token->data() + token->size(), value);
85 if (ec != std::errc()) {
87 break;
88 }
89 seeds.push_back(value);
90 ++token;
91 }
92 }
94}
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
◆ interpretSeeds() [2/2]
| bool interpretSeeds |
( |
const std::string & | buffer, |
|
|
std::string & | stream, |
|
|
uint32_t & | seed1, |
|
|
uint32_t & | seed2, |
|
|
short & | luxury, |
|
|
uint32_t & | offset ) |
Definition at line 41 of file interpretSeeds.cxx.
43{
44
45 typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
46 boost::char_separator<char>
sep(
" ");
47 tokenizer
tokens(buffer, sep);
49 bool status = (nToks == 3 || nToks == 5 || nToks == 7);
50 if (status) {
51 tokenizer::iterator token(
tokens.begin());
53
57 auto [ptr1, ec1] = std::from_chars(token->data(), token->data() + token->size(), seed1);
58 ++token;
59 auto [ptr2, ec2] = std::from_chars(token->data(), token->data() + token->size(), seed2);
60 ++token;
61 if (ec1 != std::errc() || ec2 != std::errc()) {
63 }
64 }
66}
void getOffset(boost::tokenizer< boost::char_separator< char > >::iterator &token, uint32_t &offset)
void getLuxury(boost::tokenizer< boost::char_separator< char > >::iterator &token, short &luxLevel)