00001 #ifndef UNIONCELLSET_H 00002 #define UNIONCELLSET_H 00003 00004 #include "SundanceDefs.h" 00005 #include "BinaryOpCellSet.h" 00006 #include "CellSet.h" 00007 00008 namespace Sundance 00009 { 00010 00011 using namespace TSF; 00012 using std::string; 00013 00014 using std::ostream; 00015 00016 /** \ingroup LowLevelGeometry 00017 * UnionCellSet represents the union of two cell sets. A cell is contained 00018 * in the set if it is contained in either of the two operands. 00019 */ 00020 00021 class UnionCellSet : public BinaryOpCellSet 00022 { 00023 public: 00024 /** construct a union with two operand CellSets */ 00025 UnionCellSet(const CellSet& left, const CellSet& right); 00026 00027 /** TUVD */ 00028 virtual ~UnionCellSet(){;} 00029 00030 /* determine if a cell is contained in this set */ 00031 virtual bool contains(const Cell& cell) const 00032 {return left_.contains(cell) || right_.contains(cell);} 00033 00034 00035 protected: 00036 virtual string opType() const {return "UnionCellSet";} 00037 }; 00038 00039 00040 00041 } 00042 #endif