Skip to content

Commit

Permalink
Merge branch 'master' of github.com:PDAL/PDAL
Browse files Browse the repository at this point in the history
  • Loading branch information
mpgerlek committed Mar 29, 2012
2 parents 6bda001 + 5e2ecf1 commit 674e12f
Showing 1 changed file with 38 additions and 38 deletions.
76 changes: 38 additions & 38 deletions src/filters/Scaling.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,58 +275,58 @@ void Scaling::writeScaledData( PointBuffer& buffer,
Dimension const& to_dimension,
boost::uint32_t pointIndex)
{
double dbl(0.0);
float flt(0.0);

if (from_dimension.getInterpretation() == dimension::Float)
{
if (from_dimension.getByteSize() == 4)
{
flt = buffer.getField<float>(from_dimension, pointIndex);
flt = from_dimension.removeScaling<float>(flt);
dbl = boost::numeric_cast<double>(flt);
} else if (from_dimension.getByteSize() == 8)
float v = buffer.getField<float>(from_dimension, pointIndex);
scale(from_dimension,
to_dimension,
v);
if (to_dimension.getInterpretation() == dimension::SignedInteger)
{
if (to_dimension.getByteSize() == 1)
buffer.setField<boost::int8_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 2)
buffer.setField<boost::int16_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 4)
buffer.setField<boost::int32_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 8)
buffer.setField<boost::int64_t>(to_dimension, pointIndex, v);
else
throw pdal_error("Unable to convert dimension::Float to dimension::SignedInteger of size >8");
return;
}
}
else if (from_dimension.getByteSize() == 8)
{
dbl = buffer.getField<double>(from_dimension, pointIndex);
dbl = from_dimension.removeScaling<double>(dbl);
double v = buffer.getField<double>(from_dimension, pointIndex);
scale(from_dimension,
to_dimension,
v);
if (to_dimension.getInterpretation() == dimension::SignedInteger)
{
if (to_dimension.getByteSize() == 1)
buffer.setField<boost::int8_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 2)
buffer.setField<boost::int16_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 4)
buffer.setField<boost::int32_t>(to_dimension, pointIndex, v);
else if (to_dimension.getByteSize() == 8)
buffer.setField<boost::int64_t>(to_dimension, pointIndex, v);
else
throw pdal_error("Unable to convert dimension::Float to dimension::SignedInteger of size >8");
return;
}
}
else
{
std::ostringstream oss;
oss << "Unable to interpret Float of size '" << from_dimension.getByteSize() <<"'";
throw pdal_error(oss.str());
}

if (to_dimension.getInterpretation() == dimension::SignedInteger)
{
if (to_dimension.getByteSize() == 1)
{
boost::int8_t i = to_dimension.removeScaling<double>(dbl);
buffer.setField<boost::int8_t>(to_dimension, pointIndex, i);
return;
} else if (to_dimension.getByteSize() == 2)
{
boost::int16_t i = to_dimension.removeScaling<double>(dbl);
buffer.setField<boost::int16_t>(to_dimension, pointIndex, i);
return;
} else if (to_dimension.getByteSize() == 4)
{
boost::int32_t i = to_dimension.removeScaling<double>(dbl);
buffer.setField<boost::int32_t>(to_dimension, pointIndex, i);
return;
} else if (to_dimension.getByteSize() == 8)
{
boost::int64_t i = to_dimension.removeScaling<double>(dbl);
buffer.setField<boost::int64_t>(to_dimension, pointIndex, i);
return;
} else
{
throw pdal_error("Unable to convert dimension::Float to dimension::SignedInteger of size >8");
}
}
}


if (from_dimension.getInterpretation() == dimension::SignedInteger)
{

Expand Down

0 comments on commit 674e12f

Please sign in to comment.