include/topology/conesimplex.h
author Dmitriy Morozov <morozov@cs.duke.edu>
Wed, 15 Aug 2007 11:39:34 -0400
changeset 22 c42734397d62
parent 21 include/conesimplex.h@565a3e60eb7e
child 78 20e1dff50d03
permissions -rw-r--r--
Merged geometry and include breakup with AR vineyard

/**
 * Author: Dmitriy Morozov
 * Department of Computer Science, Duke University, 2007
 */

#ifndef __CONESIMPLEX_H__
#define __CONESIMPLEX_H__

#include <list>
#include <iostream>

template<class S>
class ConeSimplex: public S
{
	public:
		typedef		S													Parent;
		typedef		ConeSimplex<S>										Self;
		typedef		std::list<Self>										Cycle;

    public:
								ConeSimplex(const Parent& parent, 
											bool coned = false):
									Parent(parent), coned_(coned)		{}
	    
		Cycle					boundary() const;
		bool					coned() const							{ return coned_; }

		std::ostream& 			operator<<(std::ostream& out) const;
		
	private:
		bool					coned_;
};

template<class S>
std::ostream& 		operator<<(std::ostream& out, const ConeSimplex<S>& s)	{ return s.operator<<(out); }

#include "conesimplex.hpp"

#endif // __CONESIMPLEX_H__