#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; }