59 lines
1.9 KiB
C++
59 lines
1.9 KiB
C++
#include "cartesiangridtohorizontalslicefilter.h"
|
|
#include <iostream>
|
|
|
|
CartesianGridToHorizontalSliceFilter::CartesianGridToHorizontalSliceFilter()
|
|
{
|
|
|
|
}
|
|
|
|
CartesianGridToHorizontalSliceFilter::~CartesianGridToHorizontalSliceFilter()
|
|
{
|
|
std::cout << "FILTER DESTRUCTOR CALLED!\n";
|
|
}
|
|
|
|
void CartesianGridToHorizontalSliceFilter::setDataSource(float *source) {
|
|
cartesianDataGrid = source;
|
|
}
|
|
|
|
void CartesianGridToHorizontalSliceFilter::setSlice(int iz) {
|
|
z = iz;
|
|
}
|
|
|
|
void CartesianGridToHorizontalSliceFilter::changeWindComponent(int ic) {
|
|
// kinda useless because we already have the function, but whatever
|
|
windcomponent = ic;
|
|
}
|
|
|
|
void CartesianGridToHorizontalSliceFilter::setWindComponent(int ic) {
|
|
windcomponent = ic;
|
|
}
|
|
|
|
//float* CartesianGridToHorizontalSliceFilter::passSliceMagnitude(int xs, int ys) {
|
|
// // We copy the relevant part of our original to our slice array
|
|
// // PRO: We can perform isolated operations on this slice array
|
|
// // CONTRA: We are slow
|
|
// float* slice = new float[xs*ys*3];
|
|
// for (int i=0; i < ys; i++) {
|
|
// for (int j=0; j< xs; j++) {
|
|
// slice[i*xs + j]=cartesianDataGrid[(z*xs*ys + i*xs + j)*3 + windcomponent];
|
|
// }
|
|
// }
|
|
// return slice;
|
|
//}
|
|
|
|
float* CartesianGridToHorizontalSliceFilter::passSlice(int xs, int ys) {
|
|
// We only pass the pointer to the beginning of our slice
|
|
// PRO: We are blazingly fast
|
|
// CONTRA: We perform filtering operations on the source!
|
|
return &cartesianDataGrid[z*xs*ys*3+windcomponent];
|
|
// We don't even need to pass information about which windcomponent we're using
|
|
// We just loop through each 3rd element for graphics
|
|
}
|
|
|
|
float* CartesianGridToHorizontalSliceFilter::passCube() {
|
|
// returns the whole cube, we'll perform operations on the cube
|
|
// in the mapper itself
|
|
// Yes, this is redundant, but I wish to adhere to the code
|
|
// structure as proposed in the lecture
|
|
return cartesianDataGrid;
|
|
}
|