Volumes/include/Block/block.h
Karl-Wilfried Zimmer c97be3a28f snap
2024-07-21 14:26:59 +02:00

44 lines
1.4 KiB
C++

//
// Created by nb on 07.07.24.
//
#ifndef BLOCK_BLOCK_H
#define BLOCK_BLOCK_H
#include <LinAlg/vector3.h>
namespace Volumes{
class Block{
public:
Block(const LinAlg::Vector3& v1, double x, double y, double z): corners{v1,
v1 + LinAlg::Vector3(x, 0, 0),
v1 + LinAlg::Vector3(x, y, 0),
v1 + LinAlg::Vector3(0, y, z), v1,
v1 + LinAlg::Vector3(x, y, z),
v1 + LinAlg::Vector3(x, 0, z),
v1 + LinAlg::Vector3(0, 0, z)}{};
virtual ~Block() = default;
double getVolume();
friend std::ostream& operator<<(std::ostream& os, const Block& v){
os<<"[";
short count=0;
for(LinAlg::Vector3 corner:v.corners){
count++;
os<<corner;
if(count<8) {
os << std::endl;
}
}
os<<"]";
return os;
}
private:
LinAlg::Vector3 corners[8];
};
}
#endif //BLOCK_BLOCK_H