AngleRange.cpp
#include "AngleRange.h"
using namespace Robotics;
using namespace System;
using namespace System::Diagnostics;
/// [ Constructor ]
AngleRange::AngleRange( double minimum, double maximum ) :
m_minimum( Angle( minimum ) ),
m_maximum( Angle( maximum ) )
{
}
/// [ Constructor ]
AngleRange::AngleRange( Angle minimum, Angle maximum ) :
m_minimum( minimum ),
m_maximum( maximum )
{
}
/// 等価演算子 == [ Operator Overloading ]
bool AngleRange::operator==( AngleRange% left, AngleRange% right )
{
return ( left.m_minimum == right.m_minimum )
&& ( left.m_maximum == right.m_maximum );
}
/// 不等価演算子 != [ Operator Overloading ]
bool AngleRange::operator!=( AngleRange% left, AngleRange% right )
{
// 等価演算の否定を返す
return !( left == right );
}
/// 範囲内にあるか?
bool AngleRange::IsWithinRange( Angle val )
{
return ( m_minimum <= val ) && ( val <= m_maximum );
}
/// 範囲を拡張する
void AngleRange::ExpandRange( Angle value )
{
if( m_maximum < value )
{
// 上限より大きいならば、それを上限に設定する
m_maximum = value;
}
if( value < m_minimum )
{
// 下限より小さいならば、それを下限に設定する
m_minimum = value;
}
}
/// インスタンスの説明を文字列で返す
System::String^ AngleRange::ToString()
{
return String::Format( "{0} {1}", m_minimum, m_maximum );
}