[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