Changed implementation of WeightedRips to store simplex values (max distance between simplices' vertices) as an invisible layer on top of each simplex object, so that the data() field of WeightedRips has been freed for use by the users again.
/*
* Author: Dmitriy Morozov
* Department of Computer Science, Duke University, 2005 -- 2006
*/
#ifndef __GRID2D_H__
#define __GRID2D_H__
#include <memory>
#include <vector>
#include <map>
#include <set>
#include <limits>
#include <iostream>
//#include <cmath>
#include <boost/serialization/access.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/split_member.hpp>
#include <boost/serialization/nvp.hpp>
#include "utilities/types.h"
#include <boost/serialization/export.hpp>
/**
* Grid2D stores a grid
*/
class Grid2D
{
public:
typedef RealType ValueType;
typedef unsigned int CoordinateIndex;
typedef std::vector<ValueType> ValueVector;
public:
Grid2D(CoordinateIndex xx = 1, CoordinateIndex yy = 1);
/// Sets the grid dimensions to (xx,yy)
void change_dimensions(CoordinateIndex xx, CoordinateIndex yy);
ValueType& operator()(CoordinateIndex i, CoordinateIndex j) { return data[i*x + j]; }
const ValueType& operator()(CoordinateIndex i, CoordinateIndex j) const { return data[i*x + j]; }
ValueType& operator()(CoordinateIndex i) { return data[i]; }
const ValueType& operator()(CoordinateIndex i) const { return data[i]; }
CoordinateIndex xsize() const { return x; }
CoordinateIndex ysize() const { return y; }
CoordinateIndex size() const { return x*y; }
/* Given a sequential index of an element return its coordinates */
CoordinateIndex xpos(CoordinateIndex i) const { return i / x; }
CoordinateIndex ypos(CoordinateIndex i) const { return i % x; }
CoordinateIndex seq(CoordinateIndex i, CoordinateIndex j) const;
std::ostream& operator<<(std::ostream& out) const;
static const CoordinateIndex INVALID_INDEX = -1;
private:
CoordinateIndex x,y;
ValueVector data;
#if 0
private:
// Serialization
friend class boost::serialization::access;
template<class Archive> void save(Archive& ar, version_type ) const;
template<class Archive> void load(Archive& ar, version_type );
BOOST_SERIALIZATION_SPLIT_MEMBER()
#endif
};
//BOOST_CLASS_EXPORT(Grid2D)
std::ostream& operator<<(std::ostream& out, const Grid2D& grid) { return grid.operator<<(out); }
#include "grid2D.hpp"
#endif // __GRID2D_H__