Skip to content

Commit

Permalink
remove Point::Point() default constructor that was confusing, didn't …
Browse files Browse the repository at this point in the history
…work, and and allowed people to blow their feet off #46
  • Loading branch information
hobu committed Jul 21, 2014
1 parent 1337204 commit aa90312
Show file tree
Hide file tree
Showing 15 changed files with 183 additions and 186 deletions.
9 changes: 8 additions & 1 deletion apps/laskernel.cpp
Expand Up @@ -1319,7 +1319,14 @@ std::vector<liblas::TransformPtr> GetTransforms(po::variables_map vm, bool verbo
header.SetSRS(out_ref);

liblas::Bounds<double> b = header.GetExtent();
b.project(in_ref, out_ref);

liblas::ReprojectionTransform trans(in_ref, out_ref);

liblas::Point minimum(&header);
liblas::Point maximum(&header);
trans.transform(minimum);
trans.transform(maximum);
b = liblas::Bounds<double>(minimum, maximum);
header.SetExtent(b);
liblas::TransformPtr srs_transform = liblas::TransformPtr(new liblas::ReprojectionTransform(in_ref, out_ref, &header));
transforms.push_back(srs_transform);
Expand Down
2 changes: 1 addition & 1 deletion apps/ts2las.cpp
Expand Up @@ -192,7 +192,7 @@ bool WritePoints(liblas::Writer& writer, std::istream& strm, ScanHdr* hdr, bool
point->Intensity = row->EchoInt & 0x3FFF;
point->Echo = (row->EchoInt >> 14);
}
Point p;
Point p(&writer.GetHeader());

p.SetRawX(point->Pnt.x);
p.SetRawY(point->Pnt.y);
Expand Down
77 changes: 39 additions & 38 deletions include/liblas/bounds.hpp
Expand Up @@ -59,6 +59,7 @@

namespace liblas {


template <typename T>
class LAS_DLL Range
{
Expand Down Expand Up @@ -323,34 +324,34 @@ void (max)(std::size_t const& index, T v)
ranges[index].maximum = v;
}

liblas::Point (min)() {
liblas::Point p;
try
{
p.SetCoordinates(ranges[0].minimum, ranges[1].minimum, ranges[2].minimum);
}
catch (std::runtime_error const& )
{
p.SetCoordinates(ranges[0].minimum, ranges[1].minimum, 0);
}

return p;
}

liblas::Point (max)() {
liblas::Point p;
try
{
p.SetCoordinates(ranges[0].maximum, ranges[1].maximum, ranges[2].maximum);
}
catch (std::runtime_error const& )
{
p.SetCoordinates(ranges[0].maximum, ranges[1].maximum, 0);
}
return p;
}
// liblas::Point (min)() {
// liblas::Point p(&DefaultHeader::get());
// try
// {
// p.SetCoordinates(ranges[0].minimum, ranges[1].minimum, ranges[2].minimum);
// }
// catch (std::runtime_error const& )
// {
// p.SetCoordinates(ranges[0].minimum, ranges[1].minimum, 0);
//
// }
//
// return p;
// }
//
// liblas::Point (max)() {
// liblas::Point p(&DefaultHeader::get());
// try
// {
// p.SetCoordinates(ranges[0].maximum, ranges[1].maximum, ranges[2].maximum);
// }
// catch (std::runtime_error const& )
// {
// p.SetCoordinates(ranges[0].maximum, ranges[1].maximum, 0);
//
// }
// return p;
// }

T minx() const { if (ranges.size() == 0) return 0; return ranges[0].minimum; }
T miny() const { if (ranges.size() < 2) return 0; return ranges[1].minimum; }
Expand Down Expand Up @@ -567,16 +568,16 @@ void verify()
}
}

Bounds<T> project(liblas::SpatialReference const& in_ref, liblas::SpatialReference const& out_ref)
{
liblas::ReprojectionTransform trans(in_ref, out_ref);
liblas::Point minimum = (min)();
liblas::Point maximum = (max)();
trans.transform(minimum);
trans.transform(maximum);
return Bounds<T>(minimum, maximum);
}
// Bounds<T> project(liblas::SpatialReference const& in_ref, liblas::SpatialReference const& out_ref)
// {
// liblas::ReprojectionTransform trans(in_ref, out_ref);
//
// liblas::Point minimum = (min)();
// liblas::Point maximum = (max)();
// trans.transform(minimum);
// trans.transform(maximum);
// return Bounds<T>(minimum, maximum);
// }



Expand Down
2 changes: 1 addition & 1 deletion include/liblas/detail/reader/cachedreader.hpp
Expand Up @@ -90,7 +90,7 @@ class CachedReaderImpl : public ReaderImpl
cache_mask_type::size_type m_cache_start_position;
cache_mask_type::size_type m_cache_read_position;

typedef std::vector<liblas::Point> cache_type;
typedef std::vector<liblas::Point*> cache_type;
cache_type m_cache;
bool m_cache_initialized;
};
Expand Down
2 changes: 1 addition & 1 deletion include/liblas/point.hpp
Expand Up @@ -104,7 +104,7 @@ class LAS_DLL Point
eScanAngleRankMax = 90
};

Point();
// Point();
~Point() {}
Point(Header const* header);
Point(Point const& other);
Expand Down
9 changes: 5 additions & 4 deletions include/liblas/utility.hpp
Expand Up @@ -54,6 +54,7 @@
#include <vector>
#include <functional>
#include <string>
#include <memory>

using liblas::property_tree::ptree;
typedef boost::array<uint32_t, 32> classes_type;
Expand Down Expand Up @@ -85,8 +86,8 @@ class LAS_DLL Summary : public FilterI
boost::array<uint32_t, 8> points_by_return;
boost::array<uint32_t, 8> returns_of_given_pulse;
bool first;
liblas::Point minimum;
liblas::Point maximum;
std::unique_ptr<liblas::Point> minimum;
std::unique_ptr<liblas::Point> maximum;
liblas::Header m_header;
bool bHaveHeader;
bool bHaveColor;
Expand Down Expand Up @@ -114,8 +115,8 @@ class LAS_DLL CoordinateSummary : public FilterI
boost::array<uint32_t, 8> points_by_return;
boost::array<uint32_t, 8> returns_of_given_pulse;
bool first;
liblas::Point minimum;
liblas::Point maximum;
std::unique_ptr<liblas::Point> minimum;
std::unique_ptr<liblas::Point> maximum;
liblas::Header m_header;
bool bHaveHeader;
bool bHaveColor;
Expand Down
3 changes: 2 additions & 1 deletion src/c_api.cpp
Expand Up @@ -531,7 +531,8 @@ LAS_DLL LASHeaderH LASHeader_Create(void) {
}

LAS_DLL LASPointH LASPoint_Create(void) {
return (LASPointH) new liblas::Point();
// return (LASPointH) new liblas::Point();
return 0;
}

LAS_DLL LASPointH LASPoint_Copy(const LASPointH hPoint) {
Expand Down
6 changes: 3 additions & 3 deletions src/detail/reader/cachedreader.cpp
Expand Up @@ -120,7 +120,7 @@ void CachedReaderImpl::CacheData(uint32_t position)
try {
m_mask[m_current] = 1;
ReadNextUncachedPoint();
m_cache[i] = ReaderImpl::GetPoint();
m_cache[i] = new liblas::Point(ReaderImpl::GetPoint());
} catch (std::out_of_range&) {
// cached to the end
break;
Expand Down Expand Up @@ -181,7 +181,7 @@ void CachedReaderImpl::ReadCachedPoint(uint32_t position) {
}
if (m_mask[position] == 1) {
m_cache_read_position = position;
*m_point = m_cache[cache_position];
*m_point = *m_cache[cache_position];
return;
} else {

Expand All @@ -208,7 +208,7 @@ void CachedReaderImpl::ReadCachedPoint(uint32_t position) {
<< " greater than cache size: " << m_cache.size() ;
throw std::runtime_error(msg.str());
}
*m_point = m_cache[cache_position];
*m_point = *m_cache[cache_position];
return;
} else {
std::ostringstream msg;
Expand Down
4 changes: 2 additions & 2 deletions src/detail/reader/reader.cpp
Expand Up @@ -63,8 +63,8 @@ ReaderImpl::ReaderImpl(std::istream& ifs)
, m_current(0)
// , m_point_reader(PointReaderPtr())
, m_header_reader(new reader::Header(m_ifs))
, m_header(HeaderPtr())
, m_point(PointPtr(new liblas::Point()))
, m_header(HeaderPtr(new liblas::Header(DefaultHeader::get())))
, m_point(PointPtr(new liblas::Point(m_header.get())))
, m_filters(0)
, m_transforms(0)
, bNeedHeaderCheck(false)
Expand Down
12 changes: 0 additions & 12 deletions src/point.cpp
Expand Up @@ -63,16 +63,6 @@ using namespace boost;

namespace liblas {

Point::Point()
:
m_header(0)
, m_default_header(DefaultHeader::get())

{
m_data.resize(DefaultHeader::get().GetDataRecordLength());
m_data.assign(DefaultHeader::get().GetDataRecordLength(), 0);
}

Point::Point(Header const* hdr)
:
m_header(hdr)
Expand All @@ -84,7 +74,6 @@ Point::Point(Header const* hdr)

Point::Point(Point const& other)
: m_data(other.m_data)
// , m_header(other.m_header)
, m_header(other.GetHeader())
, m_default_header(DefaultHeader::get())
{
Expand All @@ -95,7 +84,6 @@ Point& Point::operator=(Point const& rhs)
if (&rhs != this)
{
m_data = rhs.m_data;
// m_header = rhs.m_header;
m_header = rhs.m_header;
}
return *this;
Expand Down

0 comments on commit aa90312

Please sign in to comment.