diff options
author | lonkaars <loek@pipeframe.xyz> | 2022-11-09 11:48:12 +0100 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2022-11-09 11:48:12 +0100 |
commit | ffae2cb77bfb3263146a2de0deedf6528d4df461 (patch) | |
tree | 88e4b61087069f8ce5badadbc6264d20b8a051d5 /oop1w6/PuntContainer.cpp | |
parent | d797758769d033c64babdf77ea6b64262f792b23 (diff) |
repository aanpassen voor oop2
Diffstat (limited to 'oop1w6/PuntContainer.cpp')
-rw-r--r-- | oop1w6/PuntContainer.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/oop1w6/PuntContainer.cpp b/oop1w6/PuntContainer.cpp new file mode 100644 index 0000000..e673472 --- /dev/null +++ b/oop1w6/PuntContainer.cpp @@ -0,0 +1,72 @@ +#include <memory> + +#include "PuntContainer.h" +#include "Punt.h" + +int PuntContainer::checkX(const Punt& punt1, const Punt& punt2) { + return punt1.x - punt2.x; +} + +int PuntContainer::checkY(const Punt& punt1, const Punt& punt2) { + return punt1.y - punt2.y; +} + +int PuntContainer::checkZ(const Punt& punt1, const Punt& punt2) { + return punt1.z - punt2.z; +} + +int PuntContainer::checkX2(const Punt& punt1, const Punt& punt2) const { + return punt1.x - punt2.x; +} + +int PuntContainer::checkY2(const Punt& punt1, const Punt& punt2) const { + return punt1.y - punt2.y; +} + +int PuntContainer::checkZ2(const Punt& punt1, const Punt& punt2) const { + return punt1.z - punt2.z; +} + +PuntContainer::PuntContainer() { + this->puntRij = (Punt*) malloc(sizeof(Punt) * 10); + this->grootte = 0; +} + +PuntContainer::~PuntContainer() { + free(this->puntRij); +} + +void PuntContainer::add(int x, int y, int z) { + puntRij[grootte].x = x; + puntRij[grootte].y = y; + puntRij[grootte].z = z; + grootte++; +} + +void PuntContainer::sort1(int (*fnCompare)(const Punt&, const Punt&)) { + for ( uint32_t outer = grootte-1; outer > 0; outer-- ) + for ( uint32_t inner=0; inner < outer; inner++ ) + if ( (*fnCompare)(puntRij[inner],puntRij[inner+1]) > 0 ) { + Punt temp = puntRij[inner]; + puntRij[inner] = puntRij[inner+1]; + puntRij[inner+1] = temp; + } +} + +void PuntContainer::sort2(int (PuntContainer::*fnCompare)(const Punt&, const Punt&) const) { + for ( uint32_t outer = grootte-1; outer > 0; outer-- ) + for ( uint32_t inner=0; inner < outer; inner++ ) { + if ( (*this.*fnCompare)(puntRij[inner],puntRij[inner+1]) > 0 ) { + Punt temp = puntRij[inner]; + puntRij[inner] = puntRij[inner+1]; + puntRij[inner+1] = temp; + } + } +} + +void PuntContainer::showAll() { + for (uint32_t i = 0; i < this->grootte; i++) + std::cout << this->puntRij[i] << std::endl; + std::cout << std::endl; +} + |