** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: array2dfile.cpp,v 1.2 2000/06/27 10:48:11 kevin Exp $
+** $Id: array2dfile.cpp,v 1.6 2000/07/13 07:03:21 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
}
Array2dFileLabel::Array2dFileLabel(const char* const str, double ctime = 0.)
- : m_strLabel (str)
+ : m_strLabel (str)
{
init();
Array2dFileLabel::getDateString (void) const
{
ostringstream oss;
- oss << m_month + 1 <<"/"<< m_day <<"/"<< m_year + 1900 << " " << m_hour <<":"<< m_minute <<":"<< m_second;
+ oss << static_cast<int>(m_month + 1) <<"/"<< static_cast<int>(m_day) <<"/"<< static_cast<int>(m_year + 1900) << " " << static_cast<int>(m_hour) <<":"<< static_cast<int>(m_minute) <<":"<< static_cast<int>(m_second);
m_strDate = oss.str();
return m_strDate;
}
+Array2dFileLabel::Array2dFileLabel (const Array2dFileLabel& rhs)
+{
+ m_calcTime = rhs.m_calcTime;
+ m_labelType = rhs.m_labelType;
+ m_strLabel = rhs.m_strLabel;
+ m_year = rhs.m_year; m_month = rhs.m_month; m_day = rhs.m_day;
+ m_hour = rhs.m_hour; m_minute = rhs.m_minute; m_second = rhs.m_second;
+}
+
+Array2dFileLabel&
+Array2dFileLabel::operator= (const Array2dFileLabel& rhs)
+{
+ m_calcTime = rhs.m_calcTime;
+ m_labelType = rhs.m_labelType;
+ m_strLabel = rhs.m_strLabel;
+ m_year = rhs.m_year; m_month = rhs.m_month; m_day = rhs.m_day;
+ m_hour = rhs.m_hour; m_minute = rhs.m_minute; m_second = rhs.m_second;
+
+ return (*this);
+}
+
+void
+Array2dFileLabel::print (ostream& os) const
+{
+ if (m_labelType == L_HISTORY) {
+ os << "History: " << endl;
+ os << " " << m_strLabel << endl;
+ os << " calc time = " << m_calcTime << " secs" << endl;
+ os << " Timestamp = " << getDateString() << endl;
+ } else if (m_labelType == L_USER) {
+ os << "Note: " << m_strLabel << endl;
+ os << " Timestamp = %s" << getDateString() << endl;
+ } else {
+ os << "Unknown (" << m_labelType << "): " << m_strLabel << endl;
+ os << " Timestamp = %s" << getDateString() << endl;
+ }
+}
+
+
///////////////////////////////////////////////////////////////////////////
// CLASS IMPLEMENTATION
//
m_arrayData = new unsigned char* [m_nx];
int columnBytes = m_ny * m_pixelSize;
- for (int i = 0; i < m_nx; i++)
+ for (unsigned int i = 0; i < m_nx; i++)
m_arrayData[i] = new unsigned char [columnBytes];
}
Array2dFile::freeArray (void)
{
if (m_arrayData) {
- for (int i = 0; i < m_nx; i++)
+ for (unsigned int i = 0; i < m_nx; i++)
delete m_arrayData[i];
delete m_arrayData;
m_arrayData = NULL;
}
}
+bool
+Array2dFile::fileWrite (const string& filename)
+{
+ return fileWrite (filename.c_str());
+}
+
bool
Array2dFile::fileWrite (const char* const filename)
{
return true;
}
+bool
+Array2dFile::fileRead (const string& filename)
+{
+ return fileRead (filename.c_str());
+}
+
bool
Array2dFile::fileRead (const char* const filename)
{
fs.seekg (m_headersize);
int columnSize = m_ny * m_pixelSize;
- for (int ix = 0; ix < m_nx; ix++) {
+ for (unsigned int ix = 0; ix < m_nx; ix++) {
unsigned char* ptrColumn = m_arrayData[ix];
if (NativeBigEndian()) {
for (unsigned int iy = 0; iy < m_ny; iy++) {
Array2dFile::labelsCopy (Array2dFile& copyFile, const char* const idStr)
{
string id = idStr;
- for (int i = 0; i < copyFile.getNumLabels(); i++) {
- Array2dFileLabel l = copyFile.labelGet (i);
+ for (unsigned int i = 0; i < copyFile.getNumLabels(); i++) {
+ Array2dFileLabel l (copyFile.labelGet (i));
string lstr = l.getLabelString();
lstr = idStr + lstr;
l.setLabelString (lstr);
{
if (m_arrayData) {
int columnSize = m_ny * m_pixelSize;
- for (int ix = 0; ix < m_nx; ix++)
+ for (unsigned int ix = 0; ix < m_nx; ix++)
memset (m_arrayData[ix], 0, columnSize);
}
}
void
Array2dFile::printLabels (ostream& os) const
{
- int nlabels = getNumLabels();
-
for (constLabelIterator l = m_labels.begin(); l != m_labels.end(); l++) {
const Array2dFileLabel& label = **l;
- if (label.getLabelType() == Array2dFileLabel::L_HISTORY) {
- os << "History: " << endl;
- os << " " << label.getLabelString() << endl;
- os << " calc time = " << label.getCalcTime() << " secs" << endl;
- os << " Timestamp = " << label.getDateString() << endl;
- } else if (label.getLabelType() == Array2dFileLabel::L_USER) {
- os << "Note: " << label.getLabelString() << endl;
- os << " Timestamp = %s" << label.getDateString() << endl;
- }
- os << endl;
+ label.print (os);
+ os << endl;
}
}