#include <alma/ASDM/Angle.h>
#include <alma/ASDM/DoubleWrapper.h>
#include <alma/ASDM/NumberFormatException.h>
Angle Angle::getAngle(StringTokenizer &t) {
double value = Double::parseDouble(t.nextToken());
bool Angle::isZero() const {
double Angle::fromString(const string& s) {
return Double::parseDouble(s);
string Angle::toString(double x) {
return Double::toString(x);
void Angle::toBin(EndianOSStream& eoss) {
eoss.writeDouble( value);
void Angle::toBin(const vector<Angle>& angle, EndianOSStream& eoss) {
eoss.writeInt((int) angle.size());
for (unsigned int i = 0; i < angle.size(); i++)
eoss.writeDouble(angle.at(i).value);
void Angle::toBin(const vector<vector<Angle> >& angle, EndianOSStream& eoss) {
eoss.writeInt((int) angle.size());
eoss.writeInt((int) angle.at(0).size());
for (unsigned int i = 0; i < angle.size(); i++)
for (unsigned int j = 0; j < angle.at(0).size(); j++)
eoss.writeDouble(angle.at(i).at(j).value);
void Angle::toBin(const vector< vector<vector<Angle> > >& angle, EndianOSStream& eoss) {
eoss.writeInt((int) angle.size());
eoss.writeInt((int) angle.at(0).size());
eoss.writeInt((int) angle.at(0).at(0).size());
for (unsigned int i = 0; i < angle.size(); i++)
for (unsigned int j = 0; j < angle.at(0).size(); j++)
for (unsigned int k = 0; k < angle.at(0).at(0).size(); j++)
eoss.writeDouble(angle.at(i).at(j).at(k).value);
Angle Angle::fromBin(EndianIStream & eis) {
return Angle(eis.readDouble());
vector<Angle> Angle::from1DBin(EndianIStream & eis) {
int dim1 = eis.readInt();
for (int i = 0; i < dim1; i++)
result.push_back(Angle(eis.readDouble()));