#ifndef CSGTERMNORMALIZER_H_ #define CSGTERMNORMALIZER_H_ #include "memory.h" class CSGTermNormalizer { public: CSGTermNormalizer() : counter(0) {} ~CSGTermNormalizer() {} shared_ptr normalize(const shared_ptr &term); private: shared_ptr normalizePass(shared_ptr term) ; bool normalize_tail(shared_ptr &term); int count(const shared_ptr &term) const; int counter; }; #endif