[ismrmrd] 39/177: Switched C++ NDArray to be castable to C version.
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:59 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.
commit 49059e89df24bd37bbf1062755c11c1297d13f4a
Author: Souheil Inati <souheil.inati at nih.gov>
Date: Wed Sep 3 10:56:59 2014 -0400
Switched C++ NDArray to be castable to C version.
---
ismrmrd.cpp | 73 +++++++++++++++++++++----------------------------------------
ismrmrd.h | 24 ++++++++------------
2 files changed, 34 insertions(+), 63 deletions(-)
diff --git a/ismrmrd.cpp b/ismrmrd.cpp
index 725a197..b87e2d4 100644
--- a/ismrmrd.cpp
+++ b/ismrmrd.cpp
@@ -174,9 +174,9 @@ float (&Acquisition::user_float()) [ISMRMRD_USER_FLOATS] {
}
// Data and Trajectory accessors
-AcquisitionHeader * Acquisition::getHead() {
- // This returns a pointer
- return static_cast<AcquisitionHeader *>(&head);
+AcquisitionHeader & Acquisition::getHead() {
+ // This returns a reference
+ return *static_cast<AcquisitionHeader *>(&head);
}
void Acquisition::setHead(const AcquisitionHeader other) {
@@ -398,39 +398,26 @@ void Image::clearAllFlags() {
//
// Array class Implementation
//
-
NDArray::NDArray()
{
- ismrmrd_init_ndarray(&arr_);
-}
-
-NDArray::NDArray(const ISMRMRD_DataTypes dtype, const uint16_t ndim, const uint16_t dims[ISMRMRD_NDARRAY_MAXDIM])
-{
- ismrmrd_init_ndarray(&arr_);
- setProperties(dtype, ndim, dims);
+ ismrmrd_init_ndarray(this);
}
NDArray::NDArray(const ISMRMRD_DataTypes dtype, const std::vector<uint16_t> dimvec)
{
- ismrmrd_init_ndarray(&arr_);
+ ismrmrd_init_ndarray(this);
setProperties(dtype, dimvec);
}
NDArray::NDArray(const NDArray &other)
{
- ismrmrd_init_ndarray(&arr_);
- ismrmrd_copy_ndarray(&arr_, &other.arr_);
-}
-
-NDArray::NDArray(const ISMRMRD_NDArray *arr)
-{
- ismrmrd_init_ndarray(&arr_);
- ismrmrd_copy_ndarray(&arr_, arr);
+ ismrmrd_init_ndarray(this);
+ ismrmrd_copy_ndarray(this, &other);
}
NDArray::~NDArray()
{
- ismrmrd_cleanup_ndarray(&arr_);
+ ismrmrd_cleanup_ndarray(this);
}
NDArray & NDArray::operator= (const NDArray &other)
@@ -438,54 +425,44 @@ NDArray & NDArray::operator= (const NDArray &other)
// Assignment makes a copy
if (this != &other )
{
- ismrmrd_init_ndarray(&arr_);
- ismrmrd_copy_ndarray(&arr_, &other.arr_);
+ ismrmrd_init_ndarray(this);
+ ismrmrd_copy_ndarray(this, &other);
}
return *this;
}
-const uint16_t NDArray::version() {
- return arr_.version;
+const uint16_t NDArray::getVersion() {
+ return version;
};
-const ISMRMRD_DataTypes NDArray::data_type() {
- return static_cast<ISMRMRD_DataTypes>( arr_.data_type );
+const ISMRMRD_DataTypes NDArray::getDataType() {
+ return static_cast<ISMRMRD_DataTypes>( data_type );
}
-const uint16_t NDArray::ndim() {
- return arr_.ndim;
+const uint16_t NDArray::getNDim() {
+ return ndim;
};
-const uint16_t (&NDArray::dims())[ISMRMRD_NDARRAY_MAXDIM] {
- return arr_.dims;
+const uint16_t (&NDArray::getDims())[ISMRMRD_NDARRAY_MAXDIM] {
+ return dims;
};
-
-int NDArray::setProperties(const ISMRMRD_DataTypes dtype, const uint16_t ndim, const uint16_t dims[ISMRMRD_NDARRAY_MAXDIM]) {
- arr_.data_type = dtype;
- arr_.ndim = ndim;
- for (int n=0; n<ISMRMRD_NDARRAY_MAXDIM; n++) {
- arr_.dims[n] = dims[n];
- }
- int status = ismrmrd_make_consistent_ndarray(&arr_);
- return status;
-}
int NDArray::setProperties(const ISMRMRD_DataTypes dtype, const std::vector<uint16_t> dimvec) {
if (dimvec.size() > ISMRMRD_NDARRAY_MAXDIM) {
// TODO throw exception
return ISMRMRD_MEMORYERROR;
}
- arr_.data_type = dtype;
- arr_.ndim = dimvec.size();
- for (int n=0; n<arr_.ndim; n++) {
- arr_.dims[n] = dimvec[n];
+ data_type = dtype;
+ ndim = dimvec.size();
+ for (int n=0; n<ndim; n++) {
+ dims[n] = dimvec[n];
}
- int status=ismrmrd_make_consistent_ndarray(&arr_);
+ int status=ismrmrd_make_consistent_ndarray(this);
return status;
}
-void * NDArray::data() {
- return arr_.data;
+void * NDArray::getData() {
+ return data;
}
} // namespace ISMRMRD
diff --git a/ismrmrd.h b/ismrmrd.h
index 99295bd..af2cee2 100644
--- a/ismrmrd.h
+++ b/ismrmrd.h
@@ -401,11 +401,11 @@ public:
float (&user_float())[ISMRMRD_USER_FLOATS];
// Header, data and trajectory accessors
- AcquisitionHeader * getHead();
+ AcquisitionHeader &getHead();
void setHead(const AcquisitionHeader other);
- complex_float_t * getData();
+ complex_float_t *getData();
uint64_t numDataElements();
- float * getTraj();
+ float *getTraj();
uint64_t numTrajElements();
// Flag methods
@@ -484,28 +484,22 @@ protected:
ISMRMRD_Image image_;
};
-class NDArray {
+class NDArray: protected ISMRMRD_NDArray {
public:
// Constructors, destructor and copy
NDArray();
- NDArray(const ISMRMRD_DataTypes dtype, const uint16_t ndim, const uint16_t dims[ISMRMRD_NDARRAY_MAXDIM]);
NDArray(const ISMRMRD_DataTypes dtype, const std::vector<uint16_t> dimvec);
NDArray(const NDArray &other);
- NDArray(const ISMRMRD_NDArray *arr);
~NDArray();
NDArray & operator= (const NDArray &other);
// Accessors and mutators
- const uint16_t version();
- const ISMRMRD_DataTypes data_type();
- const uint16_t ndim();
- const uint16_t (&dims())[ISMRMRD_NDARRAY_MAXDIM];
- int setProperties(const ISMRMRD_DataTypes dtype, const uint16_t ndim, const uint16_t dims[ISMRMRD_NDARRAY_MAXDIM]);
+ const uint16_t getVersion();
+ const ISMRMRD_DataTypes getDataType();
+ const uint16_t getNDim();
+ const uint16_t (&getDims())[ISMRMRD_NDARRAY_MAXDIM];
int setProperties(const ISMRMRD_DataTypes dtype, const std::vector<uint16_t> dimvec);
- void * data();
-
-protected:
- ISMRMRD_NDArray arr_;
+ void * getData();
};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git
More information about the debian-science-commits
mailing list