objV0.2
This commit is contained in:
parent
c00ccdaf9c
commit
b38a84b51d
18 changed files with 156 additions and 70 deletions
40
src/util/util.cpp
Normal file
40
src/util/util.cpp
Normal file
|
@ -0,0 +1,40 @@
|
|||
#include <cmath>
|
||||
#include <cstdint>
|
||||
#include <algorithm>
|
||||
|
||||
#include "math.h"
|
||||
#include "../object/point.h"
|
||||
|
||||
float distance(Point& a, Point& b) {
|
||||
return sqrt( pow(a.getX() - b.getX(), 2) +
|
||||
pow(a.getY() - b.getY(), 2) +
|
||||
pow(a.getZ() - b.getZ(), 2)
|
||||
);
|
||||
}
|
||||
|
||||
uint64_t st64(std::string hex) {
|
||||
std::reverse(hex.begin(), hex.end());
|
||||
uint64_t res = 0;
|
||||
|
||||
for (int i = 0; i<hex.length(); i++) {
|
||||
if (hex.at(i) >= 'A' && hex.at(i) <= 'F') {
|
||||
res += (hex.at(i) - 'A' + 10) * pow(16, i);
|
||||
} else if (hex.at(i) >= 'a' && hex.at(i) <= 'f') {
|
||||
res += (hex.at(i) - 'a' + 10) * pow(16, i);
|
||||
} else if (hex.at(i) >= '0' && hex.at(i) <= '9') {
|
||||
res += (hex.at(i) - '0') * pow(16, i);
|
||||
} else {
|
||||
std::cerr << "Color value seem not to be hexadecimal, returning 0 (" << hex << ")." << std::endl;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
uint8_t getR(uint64_t color) { return (color << 16) >> 56; }
|
||||
uint8_t getG(uint64_t color) { return (color << 24) >> 56; }
|
||||
uint8_t getB(uint64_t color) { return (color << 32) >> 56; }
|
||||
uint8_t getA(uint64_t color) { return (color << 40) >> 56; }
|
||||
uint8_t getL(uint64_t color) { return (color << 48) >> 56; }
|
||||
uint8_t getZ(uint64_t color) { return (color << 56) >> 56; }
|
Loading…
Add table
Add a link
Reference in a new issue