aboutsummaryrefslogtreecommitdiff
path: root/oop1w6/PuntContainer.cpp
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-11-09 11:48:12 +0100
committerlonkaars <loek@pipeframe.xyz>2022-11-09 11:48:12 +0100
commitffae2cb77bfb3263146a2de0deedf6528d4df461 (patch)
tree88e4b61087069f8ce5badadbc6264d20b8a051d5 /oop1w6/PuntContainer.cpp
parentd797758769d033c64babdf77ea6b64262f792b23 (diff)
repository aanpassen voor oop2
Diffstat (limited to 'oop1w6/PuntContainer.cpp')
-rw-r--r--oop1w6/PuntContainer.cpp72
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;
+}
+