diff --git a/src/common/dataBlockCreation/blockingGeometryInfo.cpp b/src/common/dataBlockCreation/blockingGeometryInfo.cpp new file mode 100644 index 0000000..afee939 --- /dev/null +++ b/src/common/dataBlockCreation/blockingGeometryInfo.cpp @@ -0,0 +1,74 @@ +#include "blockingGeometryInfo.h" +#include "Function.h" +#include "Function2D.h" +#include "Function3D.h" + +using namespace Aurora; +using namespace Recon; + +GeometryBlock Recon::blockingGeometryInfos(const GeometryInfo& aGeom, const Aurora::Matrix& aRnBlock, const Aurora::Matrix& aRlBlock, + const Aurora::Matrix& aSnBlock, const Aurora::Matrix& aSlBlock, const Aurora::Matrix& aMpBlock) +{ + GeometryBlock result; + int numData = aRnBlock.getDimSize(1); + Matrix arrayOfDataSize = zeros(1, numData, 1) + 1; + int dim = aGeom.receiverPositions[0].getDimSize(0); + double* receiverPositionBlockData = Aurora::malloc(dim * numData); + double* receiverNormalBlockData = Aurora::malloc(dim * numData); + result.receiverPositionBlock = Matrix::New(receiverPositionBlockData, dim, numData); + result.receiverNormalBlock = Matrix::New(receiverNormalBlockData, dim, numData); + + double* sizeData = Aurora::malloc(4); + sizeData[0] = aGeom.receiverPositions[0].getDimSize(0); + sizeData[1] = aGeom.receiverPositions[0].getDimSize(1); + sizeData[2] = aGeom.receiverPositions[0].getDimSize(2); + sizeData[3] = aGeom.receiverPositions.size(); + size_t matrixSize = aGeom.receiverPositions[0].getDataSize(); + Matrix receiverPositionsSize = Matrix::New(sizeData, 1, 4); + for(int i=0; i 0) + { + index3D -= matrixSize; + } + receiverPositionBlockData[dim*j + i] = aGeom.receiverPositions[index4D][index3D]; + receiverNormalBlockData[dim*j + i] = aGeom.receiverNormals[index4D][index3D]; + } + } + + double* senderPositionBlockData = Aurora::malloc(dim * numData); + double* senderNormalBlockData = Aurora::malloc(dim * numData); + result.senderPositionBlock = Matrix::New(senderPositionBlockData, dim, numData); + result.senderNormalBlock = Matrix::New(senderNormalBlockData, dim, numData); + sizeData = Aurora::malloc(4); + sizeData[0] = aGeom.senderPositions[0].getDimSize(0); + sizeData[1] = aGeom.senderPositions[0].getDimSize(1); + sizeData[2] = aGeom.senderPositions[0].getDimSize(2); + sizeData[3] = aGeom.senderPositions.size(); + matrixSize = aGeom.receiverPositions[0].getDataSize(); + Matrix senderPositionsSize = Matrix::New(sizeData, 1, 4); + dim = aGeom.senderPositions[0].getDimSize(0); + for(int i=0; i 0) + { + index3D -= matrixSize; + } + senderPositionBlockData[dim*j + i] = aGeom.senderPositions[index4D][index3D]; + senderNormalBlockData[dim*j + i] = aGeom.senderNormals[index4D][index3D]; + } + } + return result; +} \ No newline at end of file diff --git a/src/common/dataBlockCreation/blockingGeometryInfo.h b/src/common/dataBlockCreation/blockingGeometryInfo.h new file mode 100644 index 0000000..8572623 --- /dev/null +++ b/src/common/dataBlockCreation/blockingGeometryInfo.h @@ -0,0 +1,22 @@ +#ifndef BLOCKING_GEOMETRYINFO_H +#define BLOCKING_GEOMETRYINFO_H + +#include "Matrix.h" +#include "src/common/getGeometryInfo.h" + +namespace Recon +{ + struct GeometryBlock + { + Aurora::Matrix senderPositionBlock; + Aurora::Matrix senderNormalBlock; + Aurora::Matrix receiverPositionBlock; + Aurora::Matrix receiverNormalBlock; + }; + + GeometryBlock blockingGeometryInfos(const GeometryInfo& aGeom, const Aurora::Matrix& aRnBlock, const Aurora::Matrix& aRlBlock, + const Aurora::Matrix& aSnBlock, const Aurora::Matrix& aSlBlock, const Aurora::Matrix& aMpBlock); + +} + +#endif \ No newline at end of file diff --git a/src/common/daraBlockCreation/getAscanBlock.cpp b/src/common/dataBlockCreation/getAscanBlock.cpp similarity index 100% rename from src/common/daraBlockCreation/getAscanBlock.cpp rename to src/common/dataBlockCreation/getAscanBlock.cpp diff --git a/src/common/daraBlockCreation/getAscanBlock.h b/src/common/dataBlockCreation/getAscanBlock.h similarity index 100% rename from src/common/daraBlockCreation/getAscanBlock.h rename to src/common/dataBlockCreation/getAscanBlock.h diff --git a/test/Common_Test.cpp b/test/Common_Test.cpp index 3cde6aa..bfa5922 100644 --- a/test/Common_Test.cpp +++ b/test/Common_Test.cpp @@ -1,11 +1,13 @@ #include +#include "Function2D.h" #include "Matrix.h" #include "common/ceMatchedFilterHandling.h" #include "common/common.h" #include "common/convertfp16tofloat.h" #include "common/getGeometryInfo.h" -#include "common/daraBlockCreation/getAscanBlock.h" +#include "common/dataBlockCreation/getAscanBlock.h" +#include "common/dataBlockCreation/blockingGeometryInfo.h" #include "Parser.h" #include "MatlabReader.h" @@ -232,7 +234,7 @@ TEST_F(Common_Test, getAscanBlock) { Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}, 18), Aurora::Matrix::fromRawData(new double[1]{1}, 1), Aurora::Matrix::fromRawData(new double[18]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}, 18)); - for(int i=0; i