#ifndef _MODEL_H_
#define _MODEL_H_

#include <vector>
#include <boost/optional.hpp>

#include "Chain.hpp"
#include "Atom.hpp"

struct Chain;
struct Atom;

class Model
{
private:
	std::unordered_map<int, int> atomSerialToChainInVectorMap;
public:
	unsigned int serial;
	std::vector<Chain> chains;

	boost::optional<Atom &> findAtom(int atomID);
	boost::optional<const Atom &> findAtom(int atomID) const;
	void fillMap();
};

#endif
