~Array2dFileLabel();
- const string& getLabelString (void) const
+ string getLabelString (void) const
{ return label_str; }
kfloat64 getCalcTime (void) const
kfloat64 getLabelType (void) const
{ return label_type; }
+ string& setLabelString (const char* const str)
+ { label_str = str; return (label_str); }
+
+ string& setLabelString (const string& str)
+ { label_str = str; return (label_str); }
+
void getDateString (string& str) const;
};
void labelAdd (int type, const char* const label_str, double calc_time=0.);
+ void labelsCopy (Array2dFile& file, const char* const idStr = NULL);
+
void fileClose (void);
void setPixelType (int type)
void setAxisExtent (double mMinX, double mMaxX, double mMinY, double mMaxY);
- void getPixelValueRange (T& pvmin, T& pvmax);
+ void getPixelValueRange (T& pvmin, T& pvmax) const;
void doPixelOffsetScale (double offset, double scale);
bool arrayDataWrite (void);
+ void arrayDataClear (void);
+
bool fileRead (void);
bool fileCreate (void);
template<class T>
void
-Array2dFile<T>::getPixelValueRange (T& pvmin, T& pvmax)
+Array2dFile<T>::getPixelValueRange (T& pvmin, T& pvmax) const
{
- if (array != NULL) {
- T** da = array.GetArray();
+ if (array != NULL) {
+ T** da = array->getArray();
pvmax = pvmin = da[0][0];
- for (int ix = 0; ix < mNX; ix++)
- for (int iy = 0; iy < mNY; iy++)
- if (pvmax < da[ix][iy])
- pvmax = da[ix][iy];
- else if (pvmin > da[ix][iy])
+ for (int ix = 0; ix < mNX; ix++)
+ for (int iy = 0; iy < mNY; iy++)
+ if (pvmax < da[ix][iy])
+ pvmax = da[ix][iy];
+ else if (pvmin > da[ix][iy])
pvmin = da[ix][iy];
- }
+ }
}
template<class T>
fsync(file_id);
}
+template<class T>
+void
+Array2dFile<T>::labelsCopy (Array2dFile& copyFile, const char* const idStr)
+{
+ string id = idStr;
+ for (int i = 0; i < copyFile.getNumLabels(); i++) {
+ Array2dFileLabel l;
+ copyFile.labelRead (l, i);
+ string lstr = l.getLabelString();
+ lstr = idStr + lstr;
+ l.setLabelString (lstr);
+ labelAdd (l);
+ }
+}
+
+template<class T>
+void
+Array2dFile<T>::arrayDataClear (void)
+{
+ if (array != NULL) {
+ T** v = array->getArray();
+ for (unsigned int ix = 0; ix < mNX; ix++)
+ for (unsigned int iy = 0; iy < mNY; iy++)
+ v[ix][iy] = 0;
+ }
+}
-#endif
#ifdef MPI_CT
#include <mpi.h>
adf.setPixelType (Array2dFile<kfloat64>::FLOAT32);
}
+ kfloat32** getArray(void) const
+ { return adf.getArray(); }
+
+ kuint32 nx(void) const
+ { return adf.nx(); }
+
+ kuint32 ny(void) const
+ { return adf.ny(); }
+
#ifdef MPI_CT
MPI_Datatype getMPIDataType (void) const
{ return MPI_FLOAT; }
{
adf.setPixelType (Array2dFile<kfloat64>::FLOAT64);
}
+
+ kfloat64** getArray(void) const
+ { return adf.getArray(); }
+
+ kuint32 nx(void) const
+ { return adf.nx(); }
+
+ kuint32 ny(void) const
+ { return adf.ny(); }
};
typedef F64Image ImageFile;
typedef kfloat64* ImageFileColumn;
typedef kfloat64** ImageFileArray;
+#endif
+