[Liblas-commits] libpc: 32-bit compilation lint

liblas-commits at liblas.org liblas-commits at liblas.org
Tue Mar 1 14:10:13 EST 2011


details:   http://hg.liblas.orglibpc/rev/51bc33046bc2
changeset: 134:51bc33046bc2
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Tue Mar 01 09:21:30 2011 -0800
description:
32-bit compilation lint
Subject: libpc: 32-bit compilation lint

details:   http://hg.liblas.orglibpc/rev/96067463164a
changeset: 135:96067463164a
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Tue Mar 01 09:27:22 2011 -0800
description:
32-bit compilation lint
Subject: libpc: fixes to getDimension APIs; trying to get liblaswriter to work

details:   http://hg.liblas.orglibpc/rev/169c159ff63e
changeset: 136:169c159ff63e
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Tue Mar 01 11:09:53 2011 -0800
description:
fixes to getDimension APIs; trying to get liblaswriter to work
Subject: libpc: merge

details:   http://hg.liblas.orglibpc/rev/caa53970a5cf
changeset: 137:caa53970a5cf
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Tue Mar 01 11:10:07 2011 -0800
description:
merge

diffstat:

 apps/pc2pc.cpp                  |     4 +-
 include/libpc/PointData.hpp     |     6 -
 include/libpc/Schema.hpp        |    20 +-
 mpg-config.bat                  |     3 +-
 src/CMakeLists.txt              |     3 +-
 src/ColorFilter.cpp             |    18 +-
 src/CropFilter.cpp              |    14 +-
 src/Schema.cpp                  |    32 -
 src/Writer.cpp                  |     2 +-
 src/drivers/CMakeLists.txt      |     7 +-
 src/drivers/liblas/reader.cpp   |    50 +-
 src/drivers/liblas/writer.cpp   |    58 +-
 src/drivers/oci/CMakeLists.txt  |    19 +
 src/drivers/oci/oci_wrapper.cpp |  1774 +++++++++++++++++++++++++++++++++++++++
 src/drivers/oci/oci_wrapper.h   |   417 +++++++++
 test/unit/LiblasWriterTest.cpp  |     8 +-
 test/unit/support.cpp           |     6 +-
 17 files changed, 2311 insertions(+), 130 deletions(-)

diffs (truncated from 2644 to 300 lines):

diff -r 4f0309a45e4e -r caa53970a5cf apps/pc2pc.cpp
--- a/apps/pc2pc.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/apps/pc2pc.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -108,7 +108,9 @@
 
         //BUG: handle laz writer.setCompressed(false);
 
-        writer.write(numPoints);
+        size_t np = (size_t)numPoints;
+        assert(numPoints == np); // BUG
+        writer.write(np);
     }
 
     Utils::closeFile(ofs);
diff -r 4f0309a45e4e -r caa53970a5cf include/libpc/PointData.hpp
--- a/include/libpc/PointData.hpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/include/libpc/PointData.hpp	Tue Mar 01 11:10:07 2011 -0800
@@ -88,12 +88,6 @@
     bool isValid(std::size_t pointIndex) const;
     void setValid(std::size_t pointIndex, bool value=true);
 
-    // convenience function
-    std::size_t getDimensionIndex(Dimension::Field field) const
-    {
-        return getSchema().getDimensionIndex(field);
-    }
-
     // accessors to a particular field of a particular point in this buffer
     template<class T> T getField(std::size_t pointIndex, std::size_t fieldIndex) const;
     template<class T> void setField(std::size_t pointIndex, std::size_t fieldIndex, T value);
diff -r 4f0309a45e4e -r caa53970a5cf include/libpc/Schema.hpp
--- a/include/libpc/Schema.hpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/include/libpc/Schema.hpp	Tue Mar 01 11:10:07 2011 -0800
@@ -91,14 +91,20 @@
         return m_dimensions;
     }
 
-    // returns true if found and sets index, otherwise returns false
-    // BUG: this is deadly slow, need to use old assoc array or fixed enum for field names
-    bool findDimensionIndex(Dimension::Field field, std::size_t& index) const; 
-    bool hasDimension(Dimension::Field field) const;
+    bool hasDimension(Dimension::Field field) const
+    {
+        int index = m_indexTable[field];
+        return index != -1;
+    }
 
-    // this version throws if the index not found
-    std::size_t getDimensionIndex(Dimension::Field field) const; 
-
+    // returns -1 if the index not found
+    int getDimensionIndex(Dimension::Field field) const
+    {
+        int index = m_indexTable[field];
+        assert(index != -1);
+        return index;
+    }
+    
     boost::property_tree::ptree getPTree() const;
 
 private:
diff -r 4f0309a45e4e -r caa53970a5cf mpg-config.bat
--- a/mpg-config.bat	Tue Mar 01 08:57:41 2011 -0600
+++ b/mpg-config.bat	Tue Mar 01 11:10:07 2011 -0800
@@ -1,6 +1,7 @@
 @echo off
 
 set COMPILER="Visual Studio 10 Win64"
+REM set COMPILER="Visual Studio 10"
 
 set LIBPC_DIR=d:\dev\libpc
 
@@ -8,7 +9,7 @@
 set LASZIP_DIR=d:\dev\laszip
 set OSGEO4W_DIR=C:\OSGeo4W
 set OSGEO4W_GDAL=C:\OSGeo4W\apps\gdal-17
-set BOOST_DIR="C:\Utils\boost_1_45_0"
+set BOOST_DIR="C:\Utils\boost_1_45_0-win64"
 set ORACLE_HOME=%OSGEO4W_DIR%
 
 set BUILD_TYPE=Release
diff -r 4f0309a45e4e -r caa53970a5cf src/CMakeLists.txt
--- a/src/CMakeLists.txt	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/CMakeLists.txt	Tue Mar 01 11:10:07 2011 -0800
@@ -52,6 +52,7 @@
   ${LIBPC_HEADERS_DIR}/Writer.hpp)
 
 set (LIBPC_SOURCES "libpc_config.cpp" CACHE INTERNAL "sources to compile")
+set (APPS_CPP_DEPENDENCIES "${LIBPC_LIB_NAME}" CACHE INTERNAL "libraries to link")
 
 add_subdirectory(drivers)
 
@@ -120,7 +121,7 @@
 
 add_library(${LIBPC_LIB_NAME} SHARED ${LIBPC_SOURCES})
 
-target_link_libraries(${LIBPC_LIB_NAME}
+target_link_libraries(${APPS_CPP_DEPENDENCIES}
   ${LIBPC_LIB_NAME}
   ${LIBLAS_LIBRARY}
   ${TIFF_LIBRARY}
diff -r 4f0309a45e4e -r caa53970a5cf src/ColorFilter.cpp
--- a/src/ColorFilter.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/ColorFilter.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -62,20 +62,10 @@
     const SchemaLayout& schemaLayout = data.getSchemaLayout();
     const Schema& schema = schemaLayout.getSchema();
 
-    std::size_t fieldIndexR;
-    std::size_t fieldIndexG;
-    std::size_t fieldIndexB;
-    std::size_t offsetZ;
-    bool ok;
-
-    ok = schema.findDimensionIndex(Dimension::Field_Red, fieldIndexR);
-    assert(ok);
-    ok = schema.findDimensionIndex(Dimension::Field_Green, fieldIndexG);
-    assert(ok);
-    ok = schema.findDimensionIndex(Dimension::Field_Blue, fieldIndexB);
-    assert(ok);
-    ok = schema.findDimensionIndex(Dimension::Field_Z, offsetZ);
-    assert(ok);
+    int fieldIndexR = schema.getDimensionIndex(Dimension::Field_Red);
+    int fieldIndexG = schema.getDimensionIndex(Dimension::Field_Green);
+    int fieldIndexB = schema.getDimensionIndex(Dimension::Field_Blue);
+    int offsetZ = schema.getDimensionIndex(Dimension::Field_Z);
 
     boost::uint32_t numValidPoints = 0;
 
diff -r 4f0309a45e4e -r caa53970a5cf src/CropFilter.cpp
--- a/src/CropFilter.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/CropFilter.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -58,17 +58,9 @@
     const SchemaLayout& schemaLayout = data.getSchemaLayout();
     const Schema& schema = schemaLayout.getSchema();
 
-    std::size_t fieldX;
-    std::size_t fieldY;
-    std::size_t fieldZ;
-    bool ok;
-
-    ok = schema.findDimensionIndex(Dimension::Field_X, fieldX);
-    assert(ok);
-    ok = schema.findDimensionIndex(Dimension::Field_Y, fieldY);
-    assert(ok);
-    ok = schema.findDimensionIndex(Dimension::Field_Z, fieldZ);
-    assert(ok);
+    int fieldX = schema.getDimensionIndex(Dimension::Field_X);
+    int fieldY = schema.getDimensionIndex(Dimension::Field_Y);
+    int fieldZ = schema.getDimensionIndex(Dimension::Field_Z);
 
     boost::uint32_t numValidPoints = 0;
 
diff -r 4f0309a45e4e -r caa53970a5cf src/Schema.cpp
--- a/src/Schema.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/Schema.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -150,38 +150,6 @@
 }
 
 
-bool Schema::findDimensionIndex(Dimension::Field field, std::size_t& index) const
-{
-    if (m_indexTable[field] == -1) 
-    {
-        return false;
-    }
-
-    index = m_indexTable[field];
-    return true;
-}
-
-
-std::size_t Schema::getDimensionIndex(Dimension::Field field) const
-{
-    std::size_t index = 0;
-    
-    if (!findDimensionIndex(field, index))
-    {
-        throw; // BUG
-    }
-
-    return index;
-}
-
-
-bool Schema::hasDimension(Dimension::Field field) const
-{
-    std::size_t notused = 0;
-    return findDimensionIndex(field, notused);
-}
-
-
 std::ostream& operator<<(std::ostream& os, Schema const& schema)
 {
     using property_tree::ptree;
diff -r 4f0309a45e4e -r caa53970a5cf src/Writer.cpp
--- a/src/Writer.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/Writer.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -40,7 +40,7 @@
 namespace libpc
 {
 
-const boost::uint32_t Writer::s_defaultChunkSize = 1024; // BUG
+const boost::uint32_t Writer::s_defaultChunkSize = 10; // BUG
 
 
 Writer::Writer(Stage& prevStage)
diff -r 4f0309a45e4e -r caa53970a5cf src/drivers/CMakeLists.txt
--- a/src/drivers/CMakeLists.txt	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/drivers/CMakeLists.txt	Tue Mar 01 11:10:07 2011 -0800
@@ -9,4 +9,9 @@
 
 
 add_subdirectory(liblas)
-add_subdirectory(las)
\ No newline at end of file
+add_subdirectory(las)
+
+if(ORACLE_FOUND AND GDAL_FOUND)
+    add_subdirectory(oci)
+endif()
+
diff -r 4f0309a45e4e -r caa53970a5cf src/drivers/liblas/reader.cpp
--- a/src/drivers/liblas/reader.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/drivers/liblas/reader.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -214,7 +214,9 @@
 
 void LiblasReader::seekToPoint(boost::uint64_t n)
 {
-    m_externalReader->Seek(n);
+    size_t nn = (size_t)n;
+    if (n != nn) throw; // BUG
+    m_externalReader->Seek(nn);
     return;
 }
 
@@ -230,32 +232,34 @@
     boost::uint32_t numPoints = pointData.getNumPoints();
     boost::uint32_t i = 0;
 
-    const std::size_t indexX = pointData.getDimensionIndex(Dimension::Field_X);
-    const std::size_t indexY = pointData.getDimensionIndex(Dimension::Field_Y);
-    const std::size_t indexZ = pointData.getDimensionIndex(Dimension::Field_Z);
+    const Schema& schema = pointData.getSchema();
+
+    const int indexX = schema.getDimensionIndex(Dimension::Field_X);
+    const int indexY = schema.getDimensionIndex(Dimension::Field_Y);
+    const int indexZ = schema.getDimensionIndex(Dimension::Field_Z);
     
-    const std::size_t indexIntensity = pointData.getDimensionIndex(Dimension::Field_Intensity);
-    const std::size_t indexReturnNumber = pointData.getDimensionIndex(Dimension::Field_ReturnNumber);
-    const std::size_t indexNumberOfReturns = pointData.getDimensionIndex(Dimension::Field_NumberOfReturns);
-    const std::size_t indexScanDirectionFlag = pointData.getDimensionIndex(Dimension::Field_ScanDirectionFlag);
-    const std::size_t indexEdgeOfFlightLine = pointData.getDimensionIndex(Dimension::Field_EdgeOfFlightLine);
-    const std::size_t indexClassification = pointData.getDimensionIndex(Dimension::Field_Classification);
-    const std::size_t indexScanAngleRank = pointData.getDimensionIndex(Dimension::Field_ScanAngleRank);
-    const std::size_t indexUserData = pointData.getDimensionIndex(Dimension::Field_UserData);
-    const std::size_t indexPointSourceId = pointData.getDimensionIndex(Dimension::Field_PointSourceId);
+    const int indexIntensity = schema.getDimensionIndex(Dimension::Field_Intensity);
+    const int indexReturnNumber = schema.getDimensionIndex(Dimension::Field_ReturnNumber);
+    const int indexNumberOfReturns = schema.getDimensionIndex(Dimension::Field_NumberOfReturns);
+    const int indexScanDirectionFlag = schema.getDimensionIndex(Dimension::Field_ScanDirectionFlag);
+    const int indexEdgeOfFlightLine = schema.getDimensionIndex(Dimension::Field_EdgeOfFlightLine);
+    const int indexClassification = schema.getDimensionIndex(Dimension::Field_Classification);
+    const int indexScanAngleRank = schema.getDimensionIndex(Dimension::Field_ScanAngleRank);
+    const int indexUserData = schema.getDimensionIndex(Dimension::Field_UserData);
+    const int indexPointSourceId = schema.getDimensionIndex(Dimension::Field_PointSourceId);
     
-    const std::size_t indexGpsTime = (m_hasTimeData ? pointData.getDimensionIndex(Dimension::Field_GpsTime) : 0);
+    const int indexGpsTime = (m_hasTimeData ? schema.getDimensionIndex(Dimension::Field_GpsTime) : 0);
 
-    const std::size_t indexRed = (m_hasColorData ? pointData.getDimensionIndex(Dimension::Field_Red) : 0);
-    const std::size_t indexGreen = (m_hasColorData ? pointData.getDimensionIndex(Dimension::Field_Green) : 0);
-    const std::size_t indexBlue = (m_hasColorData ? pointData.getDimensionIndex(Dimension::Field_Blue) : 0);
+    const int indexRed = (m_hasColorData ? schema.getDimensionIndex(Dimension::Field_Red) : 0);
+    const int indexGreen = (m_hasColorData ? schema.getDimensionIndex(Dimension::Field_Green) : 0);
+    const int indexBlue = (m_hasColorData ? schema.getDimensionIndex(Dimension::Field_Blue) : 0);
 
-    //const std::size_t indexWavePacketDescriptorIndex = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_WavePacketDescriptorIndex) : 0);
-    //const std::size_t indexWaveformDataOffset = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_WaveformDataOffset) : 0);
-    //const std::size_t indexReturnPointWaveformLocation = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_ReturnPointWaveformLocation) : 0);
-    //const std::size_t indexWaveformXt = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_WaveformXt) : 0);
-    //const std::size_t indexWaveformYt = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_WaveformYt) : 0);
-    //const std::size_t indexWaveformZt = (m_hasWaveData ? pointData.getDimensionIndex(Dimension::Field_WaveformZt) : 0);
+    //const int indexWavePacketDescriptorIndex = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_WavePacketDescriptorIndex) : 0);
+    //const int indexWaveformDataOffset = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_WaveformDataOffset) : 0);
+    //const int indexReturnPointWaveformLocation = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_ReturnPointWaveformLocation) : 0);
+    //const int indexWaveformXt = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_WaveformXt) : 0);
+    //const int indexWaveformYt = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_WaveformYt) : 0);
+    //const t indexWaveformZt = (m_hasWaveData ? schema.getDimensionIndex(Dimension::Field_WaveformZt) : 0);
 
     for (i=0; i<numPoints; i++)
     {
diff -r 4f0309a45e4e -r caa53970a5cf src/drivers/liblas/writer.cpp
--- a/src/drivers/liblas/writer.cpp	Tue Mar 01 08:57:41 2011 -0600
+++ b/src/drivers/liblas/writer.cpp	Tue Mar 01 11:10:07 2011 -0800
@@ -71,7 +71,7 @@
 
 LiblasWriter::~LiblasWriter()
 {


More information about the Liblas-commits mailing list