Added vector overload of unit onversion methods.

This commit is contained in:
Joakim Hove
2016-10-05 21:52:00 +02:00
parent e7c2ebd915
commit 0d4bfdea2d
3 changed files with 31 additions and 0 deletions

View File

@@ -447,6 +447,21 @@ namespace {
return this->measure_table_to_si[ static_cast< int >( m ) ] * val;
}
void UnitSystem::from_si( measure m, std::vector<double>& data ) const {
double factor = this->measure_table_from_si[ static_cast< int >( m ) ];
auto scale = [=](double x) { return x * factor; };
std::transform( data.begin() , data.end() , data.begin() , scale);
}
void UnitSystem::to_si( measure m, std::vector<double>& data) const {
double factor = this->measure_table_to_si[ static_cast< int >( m ) ];
auto scale = [=](double x) { return x * factor; };
std::transform( data.begin() , data.end() , data.begin() , scale);
}
const char* UnitSystem::name( measure m ) const {
return this->unit_name_table[ static_cast< int >( m ) ];
}