00001 #pragma once 00002 00003 namespace Moses 00004 { 00005 00009 class AlignmentConstraint 00010 { 00011 public: 00012 AlignmentConstraint() : m_min(std::numeric_limits<int>::max()), m_max(-1) {} 00013 00014 AlignmentConstraint(int min, int max) : m_min(min), m_max(max) {} 00015 00019 void Update(int point) { 00020 if (m_min > point) m_min = point; 00021 if (m_max < point) m_max = point; 00022 } 00023 00024 bool IsSet() const { 00025 return m_max != -1; 00026 } 00027 00028 int GetMin() const { 00029 return m_min; 00030 } 00031 00032 int GetMax() const { 00033 return m_max; 00034 } 00035 00036 private: 00037 int m_min, m_max; 00038 }; 00039 00040 }