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 }