** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: imagefile.h,v 1.18 2000/07/13 07:03:21 kevin Exp $
+** $Id: imagefile.h,v 1.23 2000/12/22 04:18:00 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
#ifndef IMAGEFILE_H
#define IMAGEFILE_H
+#ifndef MSVC\r
+#include <unistd.h>\r
+#endif\r
#include <string>
#include <sys/types.h>
-#include <unistd.h>
#include <fstream>
#include <iostream>
#include "ctsupport.h"
#include "fnetorderstream.h"
#include "array2dfile.h"
-using namespace std;
-
#ifdef HAVE_MPI
#include <mpi++.h>
#endif
class F32Image : public Array2dFile
{
public:
- F32Image (int nx, int ny)
- : Array2dFile::Array2dFile (nx, ny, sizeof(kfloat32), Array2dFile::PIXEL_FLOAT32)
- {
- }
-
- F32Image (void)
- : Array2dFile::Array2dFile()
- {
- setPixelFormat (Array2dFile::PIXEL_FLOAT32);
- setPixelSize (sizeof(kfloat32));
- }
+ F32Image (int nx, int ny);
+ F32Image (void);\r
kfloat32** getArray (void)
{ return (kfloat32**) (m_arrayData); }
- const kfloat32* const * getArray (void) const
- { return (const kfloat32**) (m_arrayData); }
+ kfloat32** const getArray (void) const
+ { return (kfloat32** const) (m_arrayData); }
#ifdef HAVE_MPI
MPI::Datatype getMPIDataType (void) const
{
public:
- F64Image (int nx, int ny)
- : Array2dFile::Array2dFile (nx, ny, sizeof(kfloat64), Array2dFile::PIXEL_FLOAT64)
- {
- }
-
- F64Image (void)
- : Array2dFile::Array2dFile ()
- {
- setPixelFormat (PIXEL_FLOAT64);
- setPixelSize (sizeof(kfloat64));
- }
+ F64Image (int nx, int ny);
+ F64Image (void);
kfloat64** getArray (void)
{ return (kfloat64**) (m_arrayData); }
- const kfloat64* const * getArray (void) const
- { return (const kfloat64**) (m_arrayData); }
+ kfloat64** const getArray (void) const
+ { return (kfloat64** const) (m_arrayData); }
#ifdef HAVE_MPI
MPI::Datatype getMPIDataType (void) const
typedef kfloat64 ImageFileValue;
typedef kfloat64* ImageFileColumn;
typedef kfloat64** ImageFileArray;
-typedef const kfloat64* const * ImageFileArrayConst;
+typedef kfloat64** const ImageFileArrayConst;\r
+typedef const kfloat64* ImageFileColumnConst;
#else
typedef F32Image ImageFileBase;
typedef kfloat32 ImageFileValue;
typedef kfloat32* ImageFileColumn;
typedef kfloat32** ImageFileArray;
-typedef const kfloat32* const * ImageFileArrayConst;
+typedef kfloat32** const ImageFileArrayConst;
+typedef const kfloat32* ImageFileColumnConst;\r
#endif
void getMinMax (double& min, double& max) const;
- void printStatistics (ostream& os) const;
+ void printStatistics (std::ostream& os) const;
bool comparativeStatistics (const ImageFile& imComp, double& d, double& r, double& e) const;
- bool printComparativeStatistics (const ImageFile& imComp, ostream& os) const;
+ bool printComparativeStatistics (const ImageFile& imComp, std::ostream& os) const;
+\r
+ bool subtractImages (const ImageFile& rRHS, ImageFile& result) const;\r
+ bool addImages (const ImageFile& rRHS, ImageFile& result) const;\r
+\r
+ bool multiplyImages (const ImageFile& rRHS, ImageFile& result) const;\r
+\r
+ bool divideImages (const ImageFile& rRHS, ImageFile& result) const;\r
+\r
int display (void) const;
int displayScaling (const int scaleFactor, ImageFileValue pmin, ImageFileValue pmax) const;