From ffae2cb77bfb3263146a2de0deedf6528d4df461 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Wed, 9 Nov 2022 11:48:12 +0100 Subject: repository aanpassen voor oop2 --- oop1w6/PuntContainer.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 oop1w6/PuntContainer.cpp (limited to 'oop1w6/PuntContainer.cpp') 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 + +#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; +} + -- cgit v1.2.3