├── .gitignore ├── ArcGIS_toolbox ├── LAStools Pipelines MB.tbx ├── LAStools Pipelines.tbx ├── LAStools Production.tbx ├── LAStools.tbx ├── README.txt ├── scripts │ ├── blast2dem.py │ ├── blast2iso.py │ ├── las2dem.py │ ├── las2iso.py │ ├── las2las_filter.py │ ├── las2las_project.py │ ├── las2las_transform.py │ ├── las2shp.py │ ├── las2tin.py │ ├── las2txt.py │ ├── lasboundary.py │ ├── lascanopy.py │ ├── lasclassify.py │ ├── lasclip.py │ ├── lascontrol.py │ ├── lasdiff.py │ ├── lasduplicate.py │ ├── lasgrid.py │ ├── lasground.py │ ├── lasheight.py │ ├── lasheight_classify.py │ ├── lasindex.py │ ├── lasinfo.py │ ├── lasmerge.py │ ├── lasnoise.py │ ├── lasoverage.py │ ├── lasoverlap.py │ ├── lasprecision.py │ ├── lassort.py │ ├── lassplit.py │ ├── lasthin.py │ ├── lastile.py │ ├── lasvalidate.py │ ├── lasview.py │ ├── laszip.py │ ├── shp2las.py │ └── txt2las.py ├── scripts_pipelines │ ├── flightlines_quality_report.py │ ├── flightlines_to_CHM.py │ ├── flightlines_to_DTM_and_DSM.py │ ├── flightlines_to_single_CHM_pit_free.py │ ├── huge_file_classify.py │ ├── huge_file_ground_classify.py │ ├── huge_file_normalize.py │ ├── huge_file_remove_duplicates.py │ ├── huge_file_sort_GPS_time.py │ └── huge_file_sort_spatial_coherence.py └── scripts_production │ ├── blast2demPro.py │ ├── blast2isoPro.py │ ├── las2demPro.py │ ├── las2isoPro.py │ ├── las2lasPro_filter.py │ ├── las2lasPro_project.py │ ├── las2lasPro_transform.py │ ├── las2tinPro.py │ ├── las2txtPro.py │ ├── lasboundaryPro.py │ ├── lascanopyPro.py │ ├── lasclassifyPro.py │ ├── lasclipPro.py │ ├── lascontrolPro.py │ ├── lasduplicatePro.py │ ├── lasgridPro.py │ ├── lasgroundPro.py │ ├── lasheightPro.py │ ├── lasheightPro_classify.py │ ├── lasindexPro.py │ ├── lasinfoPro.py │ ├── lasnoisePro.py │ ├── lasoveragePro.py │ ├── lasoverlapPro.py │ ├── lassortPro.py │ ├── lassplitPro.py │ ├── lasthinPro.py │ ├── lastilePro.py │ ├── lasvalidatePro.py │ ├── lasviewPro.py │ ├── laszipPro.py │ └── txt2lasPro.py ├── CHANGES.txt ├── COPYING.txt ├── IMAGINE_toolbox ├── LAStoolsForIMAGINE2014.zip ├── LAStoolsForIMAGINE2015.zip └── README.txt ├── LASlib ├── .gitignore ├── CHANGES.txt ├── LASlib.dsp ├── LASlib.dsw ├── Makefile ├── README.txt ├── example │ ├── Makefile │ ├── lasexample.cpp │ ├── lasexample.dsp │ ├── lasexample_write_only.cpp │ └── lasexample_write_only.dsp ├── inc │ ├── lasdefinitions.hpp │ ├── lasfilter.hpp │ ├── lasreader.hpp │ ├── lasreader_asc.hpp │ ├── lasreader_bil.hpp │ ├── lasreader_bin.hpp │ ├── lasreader_dtm.hpp │ ├── lasreader_las.hpp │ ├── lasreader_qfit.hpp │ ├── lasreader_shp.hpp │ ├── lasreader_txt.hpp │ ├── lasreaderbuffered.hpp │ ├── lasreadermerged.hpp │ ├── lasreaderpipeon.hpp │ ├── lastransform.hpp │ ├── lasutility.hpp │ ├── laswaveform13reader.hpp │ ├── laswaveform13writer.hpp │ ├── laswriter.hpp │ ├── laswriter_bin.hpp │ ├── laswriter_las.hpp │ ├── laswriter_qfit.hpp │ ├── laswriter_txt.hpp │ ├── laswriter_wrl.hpp │ └── laswritercompatible.hpp ├── lib │ └── .gitignore └── src │ ├── Makefile │ ├── fopen_compressed.cpp │ ├── lasfilter.cpp │ ├── lasreader.cpp │ ├── lasreader_asc.cpp │ ├── lasreader_bil.cpp │ ├── lasreader_bin.cpp │ ├── lasreader_dtm.cpp │ ├── lasreader_las.cpp │ ├── lasreader_qfit.cpp │ ├── lasreader_shp.cpp │ ├── lasreader_txt.cpp │ ├── lasreaderbuffered.cpp │ ├── lasreadermerged.cpp │ ├── lasreaderpipeon.cpp │ ├── lastransform.cpp │ ├── lasutility.cpp │ ├── laswaveform13reader.cpp │ ├── laswaveform13writer.cpp │ ├── laswriter.cpp │ ├── laswriter_bin.cpp │ ├── laswriter_las.cpp │ ├── laswriter_qfit.cpp │ ├── laswriter_txt.cpp │ ├── laswriter_wrl.cpp │ └── laswritercompatible.cpp ├── LASzip ├── CHANGES.txt ├── CMakeLists.txt ├── COPYING.txt ├── LASzip.dsp ├── LASzip.dsw ├── LICENSE.txt ├── Makefile ├── README.txt ├── dll │ ├── LASzip.dll │ ├── laszip_api.c │ ├── laszip_api.h │ └── laszipdllexample.exe ├── example │ ├── 5points_14.las │ ├── Makefile │ ├── laszipdllexample.cpp │ ├── laszipdllexample.dsp │ ├── laszippertest.cpp │ └── laszippertest.dsp ├── src │ ├── CMakeLists.txt │ ├── Makefile │ ├── arithmeticdecoder.cpp │ ├── arithmeticdecoder.hpp │ ├── arithmeticencoder.cpp │ ├── arithmeticencoder.hpp │ ├── arithmeticmodel.cpp │ ├── arithmeticmodel.hpp │ ├── bytestreamin.hpp │ ├── bytestreamin_array.hpp │ ├── bytestreamin_file.hpp │ ├── bytestreamin_istream.hpp │ ├── bytestreaminout.hpp │ ├── bytestreaminout_file.hpp │ ├── bytestreamout.hpp │ ├── bytestreamout_array.hpp │ ├── bytestreamout_file.hpp │ ├── bytestreamout_nil.hpp │ ├── bytestreamout_ostream.hpp │ ├── integercompressor.cpp │ ├── integercompressor.hpp │ ├── lasattributer.hpp │ ├── lasindex.cpp │ ├── lasindex.hpp │ ├── lasinterval.cpp │ ├── lasinterval.hpp │ ├── laspoint.hpp │ ├── lasquadtree.cpp │ ├── lasquadtree.hpp │ ├── lasquantizer.hpp │ ├── lasreaditem.hpp │ ├── lasreaditemcompressed_v1.cpp │ ├── lasreaditemcompressed_v1.hpp │ ├── lasreaditemcompressed_v2.cpp │ ├── lasreaditemcompressed_v2.hpp │ ├── lasreaditemcompressed_v3.cpp │ ├── lasreaditemcompressed_v3.hpp │ ├── lasreaditemraw.hpp │ ├── lasreadpoint.cpp │ ├── lasreadpoint.hpp │ ├── lasunzipper.cpp │ ├── lasunzipper.hpp │ ├── laswriteitem.hpp │ ├── laswriteitemcompressed_v1.cpp │ ├── laswriteitemcompressed_v1.hpp │ ├── laswriteitemcompressed_v2.cpp │ ├── laswriteitemcompressed_v2.hpp │ ├── laswriteitemcompressed_v3.cpp │ ├── laswriteitemcompressed_v3.hpp │ ├── laswriteitemraw.hpp │ ├── laswritepoint.cpp │ ├── laswritepoint.hpp │ ├── laszip.cpp │ ├── laszip.hpp │ ├── laszip_common_v1.hpp │ ├── laszip_common_v2.hpp │ ├── laszip_common_v3.hpp │ ├── laszip_decompress_selective_v3.hpp │ ├── laszip_dll.cpp │ ├── laszipper.cpp │ ├── laszipper.hpp │ └── mydefs.hpp └── stl │ ├── algo.h │ ├── algobase.h │ ├── algorithm │ ├── alloc.h │ ├── bitset │ ├── bvector.h │ ├── char_traits.h │ ├── concept_checks.h │ ├── container_concepts.h │ ├── defalloc.h │ ├── deque │ ├── deque.h │ ├── function.h │ ├── functional │ ├── hash_map │ ├── hash_map.h │ ├── hash_set │ ├── hash_set.h │ ├── hashtable.h │ ├── heap.h │ ├── iterator │ ├── iterator.h │ ├── limits │ ├── list │ ├── list.h │ ├── map │ ├── map.h │ ├── memory │ ├── multimap.h │ ├── multiset.h │ ├── numeric │ ├── pair.h │ ├── pthread_alloc │ ├── pthread_alloc.h │ ├── queue │ ├── rope │ ├── rope.h │ ├── ropeimpl.h │ ├── sequence_concepts.h │ ├── set │ ├── set.h │ ├── slist │ ├── slist.h │ ├── stack │ ├── stack.h │ ├── stdexcept │ ├── stl_algo.h │ ├── stl_algobase.h │ ├── stl_alloc.h │ ├── stl_bvector.h │ ├── stl_config.h │ ├── stl_construct.h │ ├── stl_ctraits_fns.h │ ├── stl_deque.h │ ├── stl_exception.h │ ├── stl_function.h │ ├── stl_hash_fun.h │ ├── stl_hash_map.h │ ├── stl_hash_set.h │ ├── stl_hashtable.h │ ├── stl_heap.h │ ├── stl_iterator.h │ ├── stl_iterator_base.h │ ├── stl_list.h │ ├── stl_map.h │ ├── stl_multimap.h │ ├── stl_multiset.h │ ├── stl_numeric.h │ ├── stl_pair.h │ ├── stl_queue.h │ ├── stl_range_errors.h │ ├── stl_raw_storage_iter.h │ ├── stl_relops.h │ ├── stl_rope.h │ ├── stl_set.h │ ├── stl_slist.h │ ├── stl_stack.h │ ├── stl_string_fwd.h │ ├── stl_tempbuf.h │ ├── stl_threads.h │ ├── stl_tree.h │ ├── stl_uninitialized.h │ ├── stl_vector.h │ ├── string │ ├── tempbuf.h │ ├── tree.h │ ├── type_traits.h │ ├── utility │ ├── valarray │ ├── vector │ └── vector.h ├── LICENSE.txt ├── Makefile ├── QGIS_toolbox ├── QGIS_1_8_toolbox.zip ├── QGIS_2_0_toolbox.zip ├── QGIS_2_2_toolbox.zip ├── QGIS_2_4_toolbox.zip ├── QGIS_2_8_toolbox_bug_fixes.zip └── README.txt ├── README.txt ├── bin ├── 7z.exe ├── blast │ ├── LICENSE.txt │ ├── sl2sl.exe │ ├── slclean.exe │ ├── slsimp.exe │ ├── smsmooth.exe │ ├── smsonar.exe │ ├── spdelaunay2d.exe │ ├── spfinalize.exe │ ├── tin2dem.exe │ └── tin2iso.exe ├── blast2dem.exe ├── blast2dem_README.txt ├── blast2iso.exe ├── blast2iso_README.txt ├── bytecopy.exe ├── e572las.exe ├── e572las_README.txt ├── gzip.exe ├── las2dem.exe ├── las2dem_README.txt ├── las2iso.exe ├── las2iso_README.txt ├── las2las.exe ├── las2las14_README.txt ├── las2las_README.txt ├── las2shp.exe ├── las2shp_README.txt ├── las2tin.exe ├── las2tin_README.txt ├── las2txt.exe ├── las2txt_README.txt ├── lasboundary.exe ├── lasboundary_README.txt ├── lascanopy.exe ├── lascanopy_README.txt ├── lasclassify.exe ├── lasclassify_README.txt ├── lasclip.exe ├── lasclip_README.txt ├── lascolor.exe ├── lascolor_README.txt ├── lascontrol.exe ├── lascontrol_README.txt ├── lasdiff.exe ├── lasdiff_README.txt ├── lasduplicate.exe ├── lasduplicate_README.txt ├── lasgrid.exe ├── lasgrid_README.txt ├── lasground.exe ├── lasground_README.txt ├── lasground_new.exe ├── lasground_new_README.txt ├── lasheight.exe ├── lasheight_README.txt ├── lasindex.exe ├── lasindex_README.txt ├── lasinfo.exe ├── lasinfo_README.txt ├── laslayers.exe ├── laslayers_README.txt ├── lasmerge.exe ├── lasmerge_README.txt ├── lasnoise.exe ├── lasnoise_README.txt ├── lasoverage.exe ├── lasoverage_README.txt ├── lasoverlap.exe ├── lasoverlap_README.txt ├── lasplanes.exe ├── lasplanes_README.txt ├── lasprecision.exe ├── lasprecision_README.txt ├── lassort.exe ├── lassort_README.txt ├── lassplit.exe ├── lassplit_README.txt ├── lasthin.exe ├── lasthin_README.txt ├── lastile.exe ├── lastile_README.txt ├── lastool.exe ├── lastool_README.txt ├── lastrack.exe ├── lastrack_README.txt ├── lasvalidate.exe ├── lasvalidate_README.txt ├── lasview.exe ├── lasview_README.txt ├── laszip.exe ├── laszip_README.txt ├── shp2las.exe ├── shp2las_README.txt ├── sonarnoiseblaster.exe ├── sonarnoiseblaster_README.txt ├── txt2las.exe ├── txt2las_README.txt └── unzip.exe ├── data ├── TO_city_hall.dbf ├── TO_city_hall.shp ├── TO_city_hall.shx ├── TO_core_last_zoom.laz ├── dallas1.xyzcirn.gz ├── dallas2.xyzcirn.gz ├── dallas3.xyzcirn.gz ├── dallas4.xyzcirn.gz ├── fusa.laz ├── house.laz ├── lake.laz ├── lake_breakline.dbf ├── lake_breakline.shp ├── lake_breakline.shx ├── sample.laz └── test.laz ├── example_batch_scripts ├── classify_lidar.bat ├── create_single_hillshaded_dtm.bat ├── create_tiled_hillshaded_dtm.bat ├── different_ways_to_create_a_chm.bat ├── do_not_use.bat ├── generating_a_pit_free_chm.bat ├── generating_a_pit_free_chm_beam_width.bat ├── generating_a_pit_free_chm_beam_width_piped.bat ├── generating_a_pit_free_dsm_beam_width.bat ├── huge_las_file_classify_ground.bat ├── huge_las_file_delete_duplicates.bat ├── huge_las_file_sort_by_gpstime.bat ├── huge_las_file_sort_spatial_coherence.bat ├── huge_las_file_thin_with_fine_grid.bat ├── lidar_to_dtm_dsm_iso_laz_tiles.bat ├── photogrammetry_points_to_dtm_dsm_countours.bat ├── pit_free_script.bat ├── planar_patches_mls.bat ├── planar_patches_tls.bat ├── quality_check_across_blocks.bat ├── quality_check_single_block.bat ├── tutorial1_quality_check.bat ├── tutorial2_lidar_preparation_tile_based_pipeline.bat ├── tutorial3_raster_products_tile_based_pipeline.bat ├── typical_lidar_preparation_pipeline.bat ├── typical_quality_check_pipeline.bat └── typical_raster_products_pipeline.bat ├── lastools.dsw └── src ├── Makefile ├── geoprojectionconverter.cpp ├── geoprojectionconverter.hpp ├── las2las.cpp ├── las2las.dsp ├── las2txt.cpp ├── las2txt.dsp ├── lasdiff.cpp ├── lasdiff.dsp ├── lasindex.cpp ├── lasindex.dsp ├── lasinfo.cpp ├── lasinfo.dsp ├── lasmerge.cpp ├── lasmerge.dsp ├── lasoptimize.cpp ├── lasoptimize.dsp ├── lasprecision.cpp ├── lasprecision.dsp ├── laszip.cpp ├── laszip.dsp ├── txt2las.cpp └── txt2las.dsp /.gitignore: -------------------------------------------------------------------------------- 1 | src_full 2 | Release 3 | Debug 4 | lastools.ncb 5 | lastools.opt 6 | *~ 7 | -------------------------------------------------------------------------------- /ArcGIS_toolbox/LAStools Pipelines MB.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/ArcGIS_toolbox/LAStools Pipelines MB.tbx -------------------------------------------------------------------------------- /ArcGIS_toolbox/LAStools Pipelines.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/ArcGIS_toolbox/LAStools Pipelines.tbx -------------------------------------------------------------------------------- /ArcGIS_toolbox/LAStools Production.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/ArcGIS_toolbox/LAStools Production.tbx -------------------------------------------------------------------------------- /ArcGIS_toolbox/LAStools.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/ArcGIS_toolbox/LAStools.tbx -------------------------------------------------------------------------------- /ArcGIS_toolbox/README.txt: -------------------------------------------------------------------------------- 1 | **************************************************************** 2 | 3 | LAStools LiDAR processing toolboxes for ArcGIS 9.3 ---> 10.2 4 | 5 | (c) 2012-2014 by rapidlasso - fast tools to catch reality 6 | 7 | legal details: http://lastools.org/LICENSE.txt 8 | 9 | **************************************************************** 10 | 11 | (1) Do not move or copy the "LAStools.tbx" from its original 12 | location .\lastools\ArcGIS_toolbox\LAStools.tbx where it is 13 | after unzipping the lastools.zip distribution. Instead, import 14 | the "LAStools.tbx" at its original location using the "add 15 | Toolbox" mechanism. To get to this location you may have to 16 | make a "folder connection" in ArcGIS to the place where you 17 | unzipped lastools.zip to. 18 | 19 | (2) Do not move the .\lastools\ArcGIS_toolbox\scripts or the 20 | .\lastools\bin or the folder. The relative path between the 21 | ArcGIS toolbox and the LAStools binaries needs to be preserved. 22 | 23 | (3) It's VERY VERY important that there is no space (e.g. " ") 24 | or other funny characters such as "(2)" or else in the name of 25 | your LAStools folder path. The limitation is inherent to Python. 26 | Try to always avoid spaces or unusual characters in a directory 27 | name or in a file name. It's bad practice. Instead you can use 28 | underscores to seperate words. 29 | 30 | This is okay: 31 | C:\lastools 32 | C:\LiDAR\lastools 33 | C:\kickass_tools\lastools 34 | C:\super_fast_LiDAR_tools\lastools 35 | 36 | This is *NOT* okay: 37 | C:\Documents and Settings\isenburg\lastools 38 | C:\Program Files\lastools 39 | C:\Program Files\lastools(2) 40 | C:\LiDAR software\lastools 41 | C:\i am totally loving it\lastools 42 | -------------------------------------------------------------------------------- /IMAGINE_toolbox/LAStoolsForIMAGINE2014.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/IMAGINE_toolbox/LAStoolsForIMAGINE2014.zip -------------------------------------------------------------------------------- /IMAGINE_toolbox/LAStoolsForIMAGINE2015.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/IMAGINE_toolbox/LAStoolsForIMAGINE2015.zip -------------------------------------------------------------------------------- /IMAGINE_toolbox/README.txt: -------------------------------------------------------------------------------- 1 | ************************************************************** 2 | 3 | The LAStools LiDAR toolbox for ERDAS IMAGINE 2014 and 2015 4 | 5 | (c) 2014-2015 - martin.isenburg@rapidlasso.com 6 | 7 | rapidlasso GmbH - fast tools to catch reality 8 | 9 | legal details: http://lastools.org/LICENSE.txt 10 | 11 | ************************************************************** 12 | 13 | Unzip the toolbox and follow the instructions. See this thread 14 | for details or to ask questions: 15 | 16 | http://groups.google.com/d/topic/lastools/QPXcEK7EXKM/discussion 17 | http://rapidlasso.com/2015/04/08/lastools-toolbox-for-erdas-imagine-2014-released/ 18 | -------------------------------------------------------------------------------- /LASlib/.gitignore: -------------------------------------------------------------------------------- 1 | Release 2 | Debug 3 | LASlib.ncb 4 | LASlib.opt 5 | LASlib.plg 6 | *~ 7 | -------------------------------------------------------------------------------- /LASlib/LASlib.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "LASlib"=.\LASlib.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Project: "lasexample"=.\example\lasexample.dsp - Package Owner=<4> 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<4> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | Project: "lasexample_write_only"=.\example\lasexample_write_only.dsp - Package Owner=<4> 31 | 32 | Package=<5> 33 | {{{ 34 | }}} 35 | 36 | Package=<4> 37 | {{{ 38 | }}} 39 | 40 | ############################################################################### 41 | 42 | Project: "laszippertest"=..\LASzip\example\laszippertest.dsp - Package Owner=<4> 43 | 44 | Package=<5> 45 | {{{ 46 | }}} 47 | 48 | Package=<4> 49 | {{{ 50 | }}} 51 | 52 | ############################################################################### 53 | 54 | Global: 55 | 56 | Package=<5> 57 | {{{ 58 | }}} 59 | 60 | Package=<3> 61 | {{{ 62 | }}} 63 | 64 | ############################################################################### 65 | 66 | -------------------------------------------------------------------------------- /LASlib/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | cd src && make 3 | cd example && make 4 | 5 | clean: 6 | cd src && make clean 7 | cd example && make clean 8 | rm -f lib/* 9 | rm -f libD/* 10 | 11 | clobber: 12 | cd src && make clobber 13 | cd example && make clobber 14 | rm -f lib/* 15 | rm -f libD/* 16 | -------------------------------------------------------------------------------- /LASlib/README.txt: -------------------------------------------------------------------------------- 1 | LASlib (with LASzip) is a C++ programming API for reading / writing LIDAR 2 | data stored in standard LAS or in compressed LAZ format (1.0 - 1.3). Both 3 | libraries - LASlib with LASzip - are released together under the terms of 4 | the GNU Lesser General Public Licence also known as LGPL. See LICENSE.txt 5 | for details. 6 | 7 | Internally LASlib includes my stand-alone LASzip compression library that 8 | provides lossless compression for LAS data. This allows you to read or 9 | write *.laz (LASzip compressed *.las files) directly like you would an 10 | uncompressed .las file using the same LASreader and LASwriter classes. 11 | 12 | This distribution comes with a small tool called "laszip" or "laszip.exe" 13 | compresses LAS files into much more compact LAZ files and vice versa. The 14 | resulting files are around 7 - 20 percent of their original size without 15 | a single bit being different (i.e. absolutely lossless compression). 16 | 17 | LASlib (with LASzip) is easy-to-use, light-weight, yet extremely fast. Just 18 | download it here and you are ready to go. For Windows users "laszip.exe" and 19 | other binary LAStools and a MSVC6.0 project environment are included. For 20 | Linux users there are simple Makefiles. 21 | 22 | The best way is get LASlib is to download LAStools, which contains the 23 | full LASlib (with LASzip) distribution: 24 | 25 | wget http://www.lastools.org/download/LAStools.zip 26 | unzip LAStools.zip 27 | cd LAStools/ 28 | make 29 | 30 | -------------------- 31 | 32 | Here is how simple the programming API is: 33 | 34 | #include "lasreader.hpp" 35 | #include "laswriter.hpp" 36 | 37 | int main(int argc, char *argv[]) 38 | { 39 | LASreadOpener lasreadopener; 40 | lasreadopener.set_file_name("original.las"); 41 | LASreader* lasreader = lasreadopener.open(); 42 | 43 | LASwriteOpener laswriteopener; 44 | laswriteopener.set_file_name("compressed.laz"); 45 | LASwriter* laswriter = laswriteopener.open(&lasreader->header); 46 | 47 | while (lasreader->read_point()) laswriter->write_point(&lasreader->point); 48 | 49 | laswriter->close(); 50 | delete laswriter; 51 | 52 | lasreader->close(); 53 | delete lasreader; 54 | 55 | return 0; 56 | } 57 | 58 | -------------------- 59 | 60 | Many LAStools are "free" open source (LGPL). But some of the more powerful 61 | LAStools (i.e. for contour extraction, boundary polygon computation, TIN 62 | generation, DEM creation, thinning, clipping, tiling, sorting, ...) need 63 | a license for commercial and government use. 64 | 65 | -------------------- 66 | 67 | (c) 2007-2014 martin.isenburg@rapidlasso.com 68 | -------------------------------------------------------------------------------- /LASlib/example/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for lasexample 2 | # 3 | #COPTS = -g -Wall 4 | COPTS = -O3 -Wall 5 | COMPILER = g++ 6 | LINKER = g++ 7 | #BITS = -64 8 | 9 | #LIBS = -L/usr/lib32 10 | #LIBS = -L/usr/lib64 11 | INCLUDE = -I/usr/include 12 | 13 | LASLIBS = -L../lib 14 | LASINCLUDE = -I../../LASzip/src -I../inc 15 | 16 | all: lasexample lasexample_write_only 17 | 18 | lasexample: lasexample.o 19 | ${LINKER} ${BITS} ${COPTS} lasexample.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 20 | 21 | lasexample_write_only: lasexample_write_only.o 22 | ${LINKER} ${BITS} ${COPTS} lasexample_write_only.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 23 | 24 | .cpp.o: 25 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LASINCLUDE) $< -o $@ 26 | 27 | .c.o: 28 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LASINCLUDE) $< -o $@ 29 | 30 | clean: 31 | rm -rf *.o 32 | rm -rf lasexample lasexample_write_only 33 | 34 | clobber: 35 | rm -rf *.o 36 | rm -rf lasexample lasexample_write_only 37 | rm -rf *~ 38 | -------------------------------------------------------------------------------- /LASlib/inc/lasfilter.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasfilter.hpp 5 | 6 | CONTENTS: 7 | 8 | Filters LIDAR points based on certain criteria being true (or not). 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 25 December 2010 -- created after swinging in Mara's hammock for hours 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_FILTER_HPP 32 | #define LAS_FILTER_HPP 33 | 34 | #include "lasdefinitions.hpp" 35 | 36 | class LAScriterion 37 | { 38 | public: 39 | virtual const CHAR * name() const = 0; 40 | virtual I32 get_command(CHAR* string) const = 0; 41 | virtual BOOL filter(const LASpoint* point) = 0; 42 | virtual void reset(){}; 43 | virtual ~LAScriterion(){}; 44 | }; 45 | 46 | class LASfilter 47 | { 48 | public: 49 | 50 | void usage() const; 51 | void clean(); 52 | BOOL parse(int argc, char* argv[]); 53 | BOOL parse(CHAR* string); 54 | I32 unparse(CHAR* string) const; 55 | inline BOOL active() const { return (num_criteria != 0); }; 56 | 57 | void addClipCircle(F64 x, F64 y, F64 radius); 58 | void addClipBox(F64 min_x, F64 min_y, F64 min_z, F64 max_x, F64 max_y, F64 max_z); 59 | void addScanDirectionChangeOnly(); 60 | 61 | BOOL filter(const LASpoint* point); 62 | void reset(); 63 | 64 | LASfilter(); 65 | ~LASfilter(); 66 | 67 | private: 68 | 69 | void add_criterion(LAScriterion* criterion); 70 | U32 num_criteria; 71 | U32 alloc_criteria; 72 | LAScriterion** criteria; 73 | I32* counters; 74 | }; 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /LASlib/inc/lasreader_bin.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasreader_bin.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads LIDAR from Terrascan's BIN format via on-the-fly conversion as LAS. 9 | 10 | Format description: http://www.terrasolid.fi/system/files/tscan.pdf 11 | 12 | PROGRAMMERS: 13 | 14 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 15 | 16 | COPYRIGHT: 17 | 18 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 19 | 20 | This is free software; you can redistribute and/or modify it under the 21 | terms of the GNU Lesser General Licence as published by the Free Software 22 | Foundation. See the LICENSE.txt file for more information. 23 | 24 | This software is distributed WITHOUT ANY WARRANTY and without even the 25 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 26 | 27 | CHANGE HISTORY: 28 | 29 | 4 September 2011 -- created on Labor Day Sunday far from beloved mountains 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_READER_BIN_HPP 34 | #define LAS_READER_BIN_HPP 35 | 36 | #include "lasreader.hpp" 37 | 38 | #include 39 | 40 | class LASreaderBIN : public LASreader 41 | { 42 | public: 43 | 44 | BOOL open(const char* file_name); 45 | 46 | I32 get_format() const { return LAS_TOOLS_FORMAT_BIN; }; 47 | 48 | BOOL seek(const I64 p_index); 49 | 50 | ByteStreamIn* get_stream() const; 51 | void close(BOOL close_stream=TRUE); 52 | BOOL reopen(const char* file_name); 53 | 54 | LASreaderBIN(); 55 | virtual ~LASreaderBIN(); 56 | 57 | protected: 58 | virtual BOOL open(ByteStreamIn* stream); 59 | BOOL read_point_default(); 60 | 61 | private: 62 | FILE* file; 63 | ByteStreamIn* stream; 64 | I32 version; 65 | }; 66 | 67 | class LASreaderBINrescale : public virtual LASreaderBIN 68 | { 69 | public: 70 | virtual BOOL open(ByteStreamIn* stream); 71 | LASreaderBINrescale(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor); 72 | 73 | protected: 74 | F64 scale_factor[3]; 75 | }; 76 | 77 | class LASreaderBINreoffset : public virtual LASreaderBIN 78 | { 79 | public: 80 | virtual BOOL open(ByteStreamIn* stream); 81 | LASreaderBINreoffset(F64 x_offset, F64 y_offset, F64 z_offset); 82 | protected: 83 | F64 offset[3]; 84 | }; 85 | 86 | class LASreaderBINrescalereoffset : public LASreaderBINrescale, LASreaderBINreoffset 87 | { 88 | public: 89 | BOOL open(ByteStreamIn* stream); 90 | LASreaderBINrescalereoffset(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor, F64 x_offset, F64 y_offset, F64 z_offset); 91 | }; 92 | 93 | #endif 94 | -------------------------------------------------------------------------------- /LASlib/inc/lasreader_dtm.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasreader_dtm.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads a binary DTM raster (*.dtm) as if it was a LiDAR point cloud. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 10 October 2013 -- created after returning from INTERGEO 2013 in Essen 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_READER_DTM_HPP 32 | #define LAS_READER_DTM_HPP 33 | 34 | #include "lasreader.hpp" 35 | 36 | #include 37 | 38 | class LASreaderDTM : public LASreader 39 | { 40 | public: 41 | 42 | void set_scale_factor(const F64* scale_factor); 43 | void set_offset(const F64* offset); 44 | virtual BOOL open(const CHAR* file_name); 45 | 46 | I32 get_format() const { return LAS_TOOLS_FORMAT_BIL; }; 47 | 48 | BOOL seek(const I64 p_index); 49 | 50 | ByteStreamIn* get_stream() const; 51 | void close(BOOL close_stream=TRUE); 52 | BOOL reopen(const CHAR* file_name); 53 | 54 | LASreaderDTM(); 55 | virtual ~LASreaderDTM(); 56 | 57 | protected: 58 | BOOL read_point_default(); 59 | 60 | private: 61 | F64* scale_factor; 62 | F64* offset; 63 | FILE* file; 64 | I32 col, row, ncols, nrows; 65 | F64 ll_x, ll_y; 66 | F32 xdim, ydim; 67 | F32 nodata; 68 | I16 data_type; // 2 = F32, 1 = I32, 0 = I16, 3 = F64 69 | 70 | void clean(); 71 | void populate_scale_and_offset(); 72 | void populate_bounding_box(); 73 | }; 74 | 75 | class LASreaderDTMrescale : public virtual LASreaderDTM 76 | { 77 | public: 78 | virtual BOOL open(const CHAR* file_name); 79 | LASreaderDTMrescale(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor); 80 | 81 | protected: 82 | F64 scale_factor[3]; 83 | }; 84 | 85 | class LASreaderDTMreoffset : public virtual LASreaderDTM 86 | { 87 | public: 88 | virtual BOOL open(const CHAR* file_name); 89 | LASreaderDTMreoffset(F64 x_offset, F64 y_offset, F64 z_offset); 90 | protected: 91 | F64 offset[3]; 92 | }; 93 | 94 | class LASreaderDTMrescalereoffset : public LASreaderDTMrescale, LASreaderDTMreoffset 95 | { 96 | public: 97 | BOOL open(const CHAR* file_name); 98 | LASreaderDTMrescalereoffset(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor, F64 x_offset, F64 y_offset, F64 z_offset); 99 | }; 100 | 101 | #endif 102 | -------------------------------------------------------------------------------- /LASlib/inc/lasreader_qfit.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasreader_qfit.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads LIDAR from NASA's ATM QFIT format via on-the-fly conversion to LAS. 9 | 10 | Format description: http://nsidc.org/data/docs/daac/icebridge/ilatm1b/docs/ReadMe.qfit.txt 11 | 12 | PROGRAMMERS: 13 | 14 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 15 | 16 | COPYRIGHT: 17 | 18 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 19 | 20 | This is free software; you can redistribute and/or modify it under the 21 | terms of the GNU Lesser General Licence as published by the Free Software 22 | Foundation. See the LICENSE.txt file for more information. 23 | 24 | This software is distributed WITHOUT ANY WARRANTY and without even the 25 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 26 | 27 | CHANGE HISTORY: 28 | 29 | 22 December 2011 -- created after my banker keeps me hostage for 2.5 hours 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_READER_QFIT_HPP 34 | #define LAS_READER_QFIT_HPP 35 | 36 | #include "lasreader.hpp" 37 | 38 | #include 39 | 40 | class LASreaderQFIT : public LASreader 41 | { 42 | public: 43 | 44 | BOOL open(const char* file_name); 45 | 46 | I32 get_format() const { return LAS_TOOLS_FORMAT_QFIT; }; 47 | 48 | BOOL seek(const I64 p_index); 49 | 50 | ByteStreamIn* get_stream() const; 51 | void close(BOOL close_stream=TRUE); 52 | BOOL reopen(const char* file_name); 53 | 54 | LASreaderQFIT(); 55 | virtual ~LASreaderQFIT(); 56 | 57 | protected: 58 | virtual BOOL open(ByteStreamIn* stream); 59 | BOOL read_point_default(); 60 | 61 | private: 62 | FILE* file; 63 | ByteStreamIn* stream; 64 | I32 version; 65 | BOOL little_endian; 66 | BOOL endian_swap; 67 | I32 offset; 68 | I32 buffer[14]; 69 | BOOL populated_header; 70 | I32 scan_azimuth_start; 71 | I32 pitch_start; 72 | I32 roll_start; 73 | I32 pulse_width_start; 74 | }; 75 | 76 | class LASreaderQFITrescale : public virtual LASreaderQFIT 77 | { 78 | public: 79 | virtual BOOL open(ByteStreamIn* stream); 80 | LASreaderQFITrescale(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor); 81 | 82 | protected: 83 | F64 scale_factor[3]; 84 | }; 85 | 86 | class LASreaderQFITreoffset : public virtual LASreaderQFIT 87 | { 88 | public: 89 | virtual BOOL open(ByteStreamIn* stream); 90 | LASreaderQFITreoffset(F64 x_offset, F64 y_offset, F64 z_offset); 91 | protected: 92 | F64 offset[3]; 93 | }; 94 | 95 | class LASreaderQFITrescalereoffset : public LASreaderQFITrescale, LASreaderQFITreoffset 96 | { 97 | public: 98 | BOOL open(ByteStreamIn* stream); 99 | LASreaderQFITrescalereoffset(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor, F64 x_offset, F64 y_offset, F64 z_offset); 100 | }; 101 | 102 | #endif 103 | -------------------------------------------------------------------------------- /LASlib/inc/lasreader_shp.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasreader_shp.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads LIDAR points in LAS format through on-the-fly conversion from SHP. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 16 December 2011 -- after Silke got Australia mad and didn't call anymore 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_READER_SHP_HPP 32 | #define LAS_READER_SHP_HPP 33 | 34 | #include "lasreader.hpp" 35 | 36 | #include 37 | 38 | class LASreaderSHP : public LASreader 39 | { 40 | public: 41 | 42 | void set_scale_factor(const F64* scale_factor); 43 | void set_offset(const F64* offset); 44 | virtual BOOL open(const char* file_name); 45 | 46 | I32 get_format() const { return LAS_TOOLS_FORMAT_SHP; }; 47 | 48 | BOOL seek(const I64 p_index); 49 | 50 | ByteStreamIn* get_stream() const; 51 | void close(BOOL close_stream=TRUE); 52 | BOOL reopen(const char* file_name); 53 | 54 | LASreaderSHP(); 55 | virtual ~LASreaderSHP(); 56 | 57 | protected: 58 | BOOL read_point_default(); 59 | 60 | private: 61 | F64* scale_factor; 62 | F64* offset; 63 | FILE* file; 64 | I32 shape_type; 65 | I32* points; 66 | I32 points_allocated; 67 | I32 number_of_points; 68 | I32 point_count; 69 | bool piped; 70 | void populate_scale_and_offset(); 71 | void populate_bounding_box(); 72 | void clean(); 73 | }; 74 | 75 | class LASreaderSHPrescale : public virtual LASreaderSHP 76 | { 77 | public: 78 | virtual BOOL open(const char* file_name); 79 | LASreaderSHPrescale(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor); 80 | 81 | protected: 82 | F64 scale_factor[3]; 83 | }; 84 | 85 | class LASreaderSHPreoffset : public virtual LASreaderSHP 86 | { 87 | public: 88 | virtual BOOL open(const char* file_name); 89 | LASreaderSHPreoffset(F64 x_offset, F64 y_offset, F64 z_offset); 90 | protected: 91 | F64 offset[3]; 92 | }; 93 | 94 | class LASreaderSHPrescalereoffset : public LASreaderSHPrescale, LASreaderSHPreoffset 95 | { 96 | public: 97 | BOOL open(const char* file_name); 98 | LASreaderSHPrescalereoffset(F64 x_scale_factor, F64 y_scale_factor, F64 z_scale_factor, F64 x_offset, F64 y_offset, F64 z_offset); 99 | }; 100 | 101 | #endif 102 | -------------------------------------------------------------------------------- /LASlib/inc/lasreaderpipeon.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasreaderpipeon.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads LIDAR points from another LASreader and writes them also to the stdout 9 | before returning them to the instance that is reading the points. 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the LICENSE.txt file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 21 August 2012 -- created after swimming in the Main river 3 days in a row 29 | 30 | =============================================================================== 31 | */ 32 | #ifndef LAS_READER_PIPE_ON_HPP 33 | #define LAS_READER_PIPE_ON_HPP 34 | 35 | #include "lasreader.hpp" 36 | #include "laswriter.hpp" 37 | 38 | class LASreaderPipeOn : public LASreader 39 | { 40 | public: 41 | 42 | BOOL open(LASreader* lasreader); 43 | LASreader* get_lasreader() const { return lasreader; }; 44 | 45 | I32 get_format() const; 46 | 47 | void set_index(LASindex* index); 48 | LASindex* get_index() const; 49 | void set_filter(LASfilter* filter); 50 | void set_transform(LAStransform* transform); 51 | 52 | BOOL inside_tile(const F32 ll_x, const F32 ll_y, const F32 size); 53 | BOOL inside_circle(const F64 center_x, const F64 center_y, const F64 radius); 54 | BOOL inside_rectangle(const F64 min_x, const F64 min_y, const F64 max_x, const F64 max_y); 55 | 56 | BOOL seek(const I64 p_index){ return FALSE; }; 57 | 58 | ByteStreamIn* get_stream() const { return 0; }; 59 | void close(BOOL close_stream=TRUE); 60 | 61 | LASreaderPipeOn(); 62 | ~LASreaderPipeOn(); 63 | 64 | protected: 65 | BOOL read_point_default(); 66 | 67 | private: 68 | LASreader* lasreader; 69 | LASwriter* laswriter; 70 | }; 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /LASlib/inc/lastransform.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lastransform.hpp 5 | 6 | CONTENTS: 7 | 8 | Transforms LIDAR points with a number of different operations. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2015, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 18 December 2011 -- added '-flip_waveform_direction' to deal with Riegl's data 28 | 20 March 2011 -- added -translate_raw_xyz after the fullest of full moons 29 | 21 January 2011 -- re-created after matt told me about the optech dashmap bug 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_TRANSFORM_HPP 34 | #define LAS_TRANSFORM_HPP 35 | 36 | #include "lasdefinitions.hpp" 37 | 38 | class LASoperation 39 | { 40 | public: 41 | virtual const CHAR * name() const = 0; 42 | virtual int get_command(CHAR* string) const = 0; 43 | virtual void transform(LASpoint* point) const = 0; 44 | virtual ~LASoperation(){}; 45 | }; 46 | 47 | class LAStransform 48 | { 49 | public: 50 | 51 | BOOL change_coordinates; 52 | 53 | void usage() const; 54 | void clean(); 55 | BOOL parse(int argc, char* argv[]); 56 | BOOL parse(CHAR* string); 57 | I32 unparse(CHAR* string) const; 58 | inline BOOL active() const { return (num_operations != 0); }; 59 | 60 | void setPointSource(U16 value); 61 | 62 | void transform(LASpoint* point) const; 63 | 64 | LAStransform(); 65 | ~LAStransform(); 66 | 67 | private: 68 | 69 | void add_operation(LASoperation* operation); 70 | U32 num_operations; 71 | U32 alloc_operations; 72 | LASoperation** operations; 73 | }; 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /LASlib/inc/laswaveform13reader.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswaveform13reader.hpp 5 | 6 | CONTENTS: 7 | 8 | Interface to read the Waveform Data Packets that are associated with points 9 | of type 4 and 5 in LAS 1.3. 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the LICENSE.txt file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 17 October 2011 -- created after bauarbeiter on the roof next door woke me 29 | 30 | =============================================================================== 31 | */ 32 | #ifndef LAS_WAVEFORM_13_READER_HPP 33 | #define LAS_WAVEFORM_13_READER_HPP 34 | 35 | #include "lasdefinitions.hpp" 36 | 37 | class ByteStreamIn; 38 | class LASwaveformDescription; 39 | class ArithmeticDecoder; 40 | class IntegerCompressor; 41 | 42 | class LASwaveform13reader 43 | { 44 | public: 45 | U32 nbits; 46 | U32 nsamples; 47 | U32 temporal; 48 | F32 location; 49 | F32 XYZt[3]; 50 | F64 XYZreturn[3]; 51 | 52 | F64 XYZsample[3]; 53 | 54 | U32 s_count; 55 | U32 sample; 56 | 57 | U32 sampleMin; 58 | U32 sampleMax; 59 | 60 | U8* samples; 61 | 62 | BOOL open(const char* file_name, I64 start_of_waveform_data_packet_record, const LASvlr_wave_packet_descr * const * wave_packet_descr); 63 | BOOL is_compressed() const; 64 | 65 | BOOL read_waveform(const LASpoint* point); 66 | 67 | BOOL get_samples(); 68 | BOOL has_samples(); 69 | 70 | BOOL get_samples_xyz(); 71 | BOOL has_samples_xyz(); 72 | 73 | void close(); 74 | 75 | LASwaveform13reader(); 76 | ~LASwaveform13reader(); 77 | 78 | private: 79 | BOOL compressed; 80 | U32 size; 81 | const LASvlr_wave_packet_descr * const * wave_packet_descr; 82 | FILE* file; 83 | ByteStreamIn* stream; 84 | I64 start_of_waveform_data_packet_record; 85 | I64 last_position; 86 | ArithmeticDecoder* dec; 87 | IntegerCompressor* ic8; 88 | IntegerCompressor* ic16; 89 | }; 90 | 91 | #endif 92 | -------------------------------------------------------------------------------- /LASlib/inc/laswaveform13writer.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswaveform13writer.hpp 5 | 6 | CONTENTS: 7 | 8 | Interface to write the Waveform Data Packets that are associated with points 9 | of type 4 and 5 in LAS 1.3. 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2012, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the LICENSE.txt file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 17 October 2011 -- created after bauarbeiter on the roof next door woke me 29 | 30 | =============================================================================== 31 | */ 32 | #ifndef LAS_WAVEFORM_13_WRITER_HPP 33 | #define LAS_WAVEFORM_13_WRITER_HPP 34 | 35 | #include "lasdefinitions.hpp" 36 | 37 | class ByteStreamOut; 38 | class LASwaveformDescription; 39 | class ArithmeticEncoder; 40 | class IntegerCompressor; 41 | 42 | class LASwaveform13writer 43 | { 44 | public: 45 | BOOL open(const char* file_name, const LASvlr_wave_packet_descr * const * wave_packet_descr); 46 | 47 | BOOL write_waveform(LASpoint* point, U8* samples); 48 | 49 | void close(); 50 | 51 | LASwaveform13writer(); 52 | ~LASwaveform13writer(); 53 | 54 | private: 55 | LASwaveformDescription** waveforms; 56 | FILE* file; 57 | ByteStreamOut* stream; 58 | 59 | ArithmeticEncoder* enc; 60 | IntegerCompressor* ic8; 61 | IntegerCompressor* ic16; 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /LASlib/inc/laswriter_bin.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswriter_bin.hpp 5 | 6 | CONTENTS: 7 | 8 | Writes LIDAR points from to ASCII through on-the-fly conversion from LAS. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 13 October 2014 -- changed default IO buffer size with setvbuf() to 262144 28 | 5 November 2011 -- changed default IO buffer size with setvbuf() to 65536 29 | 5 September 2011 -- created after sampling grapes in the sommerhausen hills 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_WRITER_BIN_HPP 34 | #define LAS_WRITER_BIN_HPP 35 | 36 | #include "laswriter.hpp" 37 | 38 | #include 39 | 40 | class ByteStreamOut; 41 | 42 | class LASwriterBIN : public LASwriter 43 | { 44 | public: 45 | 46 | BOOL refile(FILE* file); 47 | 48 | BOOL open(const char* file_name, const LASheader* header, const char* version, U32 io_buffer_size=LAS_TOOLS_IO_OBUFFER_SIZE ); 49 | BOOL open(FILE* file, const LASheader* header, const char* version); 50 | BOOL open(ByteStreamOut* stream, const LASheader* header, const char* version); 51 | 52 | BOOL write_point(const LASpoint* point); 53 | BOOL chunk() { return FALSE; }; 54 | 55 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 56 | I64 close(BOOL update_npoints=TRUE); 57 | 58 | LASwriterBIN(); 59 | ~LASwriterBIN(); 60 | 61 | private: 62 | ByteStreamOut* stream; 63 | FILE* file; 64 | U32 version; 65 | I32 units; 66 | F64 origin_x; 67 | F64 origin_y; 68 | F64 origin_z; 69 | }; 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /LASlib/inc/laswriter_qfit.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswriter_qfit.hpp 5 | 6 | CONTENTS: 7 | 8 | Writes LIDAR points from to ASCII through on-the-fly conversion from LAS. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 23 December 2011 -- created after by new OGIO laptop bagpack arrived 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_WRITER_QFIT_HPP 32 | #define LAS_WRITER_QFIT_HPP 33 | 34 | #include "laswriter.hpp" 35 | 36 | #include 37 | 38 | class ByteStreamOut; 39 | 40 | class LASwriterQFIT : public LASwriter 41 | { 42 | public: 43 | 44 | BOOL refile(FILE* file); 45 | 46 | BOOL open(const char* file_name, const LASheader* header, I32 version=48, U32 io_buffer_size=65536); 47 | BOOL open(FILE* file, const LASheader* header, I32 version=48); 48 | BOOL open(ByteStreamOut* stream, const LASheader* header, I32 version=48); 49 | 50 | BOOL write_point(const LASpoint* point); 51 | BOOL chunk() { return FALSE; }; 52 | 53 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 54 | I64 close(BOOL update_npoints=TRUE); 55 | 56 | LASwriterQFIT(); 57 | ~LASwriterQFIT(); 58 | 59 | private: 60 | ByteStreamOut* stream; 61 | FILE* file; 62 | I32 version; 63 | BOOL endian_swap; 64 | BOOL rescale_reoffset; 65 | I32 buffer[14]; 66 | I32 scan_azimuth_array_offset; 67 | I32 pitch_array_offset; 68 | I32 roll_array_offset; 69 | I32 pulse_width_array_offset; 70 | }; 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /LASlib/inc/laswriter_txt.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswriter_txt.hpp 5 | 6 | CONTENTS: 7 | 8 | Writes LIDAR points to ASCII through on-the-fly conversion from LAS. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 10 April 2011 -- created after a sunny weekend of biking to/from Buergel 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_WRITER_TXT_HPP 32 | #define LAS_WRITER_TXT_HPP 33 | 34 | #include "laswriter.hpp" 35 | 36 | #include 37 | 38 | class LASwriterTXT : public LASwriter 39 | { 40 | public: 41 | 42 | void set_pts(BOOL pts); 43 | void set_ptx(BOOL ptx); 44 | void set_scale_rgb(F32 scale_rgb); 45 | 46 | BOOL refile(FILE* file); 47 | 48 | BOOL open(const CHAR* file_name, const LASheader* header, const CHAR* parse_string=0, const CHAR* separator=0); 49 | BOOL open(FILE* file, const LASheader* header, const CHAR* parse_string=0, const CHAR* separator=0); 50 | 51 | BOOL write_point(const LASpoint* point); 52 | BOOL chunk() { return FALSE; }; 53 | 54 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 55 | I64 close(BOOL update_npoints=TRUE); 56 | 57 | LASwriterTXT(); 58 | ~LASwriterTXT(); 59 | 60 | private: 61 | BOOL close_file; 62 | FILE* file; 63 | const LASheader* header; 64 | CHAR* parse_string; 65 | BOOL opts; 66 | BOOL optx; 67 | F32 scale_rgb; 68 | CHAR separator_sign; 69 | CHAR printstring[512]; 70 | I32 attribute_starts[10]; 71 | BOOL check_parse_string(const CHAR* parse_string); 72 | BOOL unparse_attribute(const LASpoint* point, I32 index); 73 | }; 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /LASlib/inc/laswriter_wrl.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswriter_wrl.hpp 5 | 6 | CONTENTS: 7 | 8 | Writes LIDAR points to VRML through on-the-fly conversion from LAS. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the LICENSE.txt file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 26 August 2012 -- after a slice of cake at the Volksfest Sommerhausen 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LAS_WRITER_WRL_HPP 32 | #define LAS_WRITER_WRL_HPP 33 | 34 | #include "laswriter.hpp" 35 | 36 | #include 37 | 38 | class LASwriterWRL : public LASwriter 39 | { 40 | public: 41 | 42 | BOOL open(const CHAR* file_name, const LASheader* header, const CHAR* parse_string=0); 43 | BOOL open(FILE* file, const LASheader* header, const CHAR* parse_string=0); 44 | 45 | BOOL write_point(const LASpoint* point); 46 | BOOL chunk() { return FALSE; }; 47 | 48 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 49 | I64 close(BOOL update_npoints=TRUE); 50 | 51 | LASwriterWRL(); 52 | ~LASwriterWRL(); 53 | 54 | private: 55 | BOOL close_file; 56 | FILE* file; 57 | const LASheader* header; 58 | CHAR printstring[512]; 59 | U8* rgb; 60 | I32 rgb_alloc; 61 | }; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /LASlib/inc/laswritercompatible.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswritercompatible.hpp 5 | 6 | CONTENTS: 7 | 8 | Interface to write LIDAR points to the LAS format versions 1.0 - 1.4 and 9 | per on-the-fly conversion to simple ASCII files. 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2015, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the LICENSE.txt file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 29 March 2015 -- created on the last PHIL LiDAR tour 2015 day in Ali Mall 29 | 30 | =============================================================================== 31 | */ 32 | #ifndef LAS_WRITER_COMPATIBLE_HPP 33 | #define LAS_WRITER_COMPATIBLE_HPP 34 | 35 | #include "laswriter.hpp" 36 | 37 | class LASwriterCompatibleDown : public LASwriter 38 | { 39 | public: 40 | BOOL open(LASheader* header, LASwriteOpener* laswriteopener); 41 | 42 | BOOL write_point(const LASpoint* point); 43 | BOOL chunk() { return FALSE; }; 44 | 45 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 46 | I64 close(BOOL update_npoints=TRUE); 47 | 48 | LASwriterCompatibleDown(); 49 | ~LASwriterCompatibleDown(); 50 | 51 | private: 52 | LASpoint pointCompatibleDown; 53 | LASheader* header; 54 | LASwriter* writer; 55 | I32 start_scan_angle; 56 | I32 start_extended_returns; 57 | I32 start_classification; 58 | I32 start_flags_and_channel; 59 | I32 start_NIR_band; 60 | }; 61 | 62 | class LASwriterCompatibleUp : public LASwriter 63 | { 64 | public: 65 | BOOL open(LASheader* header, LASwriteOpener* laswriteopener); 66 | 67 | BOOL write_point(const LASpoint* point); 68 | BOOL chunk() { return FALSE; }; 69 | 70 | BOOL update_header(const LASheader* header, BOOL use_inventory=FALSE, BOOL update_extra_bytes=FALSE); 71 | I64 close(BOOL update_npoints=TRUE); 72 | 73 | LASwriterCompatibleUp(); 74 | ~LASwriterCompatibleUp(); 75 | 76 | private: 77 | LASpoint pointCompatibleUp; 78 | LASheader* header; 79 | LASwriter* writer; 80 | I32 start_scan_angle; 81 | I32 start_extended_returns; 82 | I32 start_classification; 83 | I32 start_flags_and_channel; 84 | I32 start_NIR_band; 85 | }; 86 | 87 | #endif 88 | -------------------------------------------------------------------------------- /LASlib/lib/.gitignore: -------------------------------------------------------------------------------- 1 | LASlib.lib 2 | LASlibD.lib 3 | -------------------------------------------------------------------------------- /LASlib/src/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for liblas.a 2 | # 3 | #COPTS = -g -Wall 4 | COPTS = -O3 -Wall -Wno-deprecated -DNDEBUG -DUNORDERED 5 | COMPILER = g++ 6 | AR = ar rc 7 | #BITS = -64 8 | 9 | INCLUDE = -I/usr/include/ -I../../LASzip/src -I../inc -I. 10 | 11 | OBJ_LAS = lasreader.o laswriter.o lasreader_las.o lasreader_bin.o lasreader_qfit.o lasreader_shp.o lasreader_asc.o lasreader_bil.o lasreader_dtm.o lasreader_txt.o lasreadermerged.o lasreaderbuffered.o lasreaderpipeon.o laswriter_las.o laswriter_bin.o laswriter_qfit.o laswriter_wrl.o laswriter_txt.o laswritercompatible.o laswaveform13reader.o laswaveform13writer.o lasutility.o lasfilter.o lastransform.o fopen_compressed.o 12 | 13 | OBJ_LAZ = ../../LASzip/src/laszip.o ../../LASzip/src/lasreadpoint.o ../../LASzip/src/lasreaditemcompressed_v1.o ../../LASzip/src/lasreaditemcompressed_v2.o ../../LASzip/src/laswritepoint.o ../../LASzip/src/laswriteitemcompressed_v1.o ../../LASzip/src/laswriteitemcompressed_v2.o ../../LASzip/src/integercompressor.o ../../LASzip/src/arithmeticdecoder.o ../../LASzip/src/arithmeticencoder.o ../../LASzip/src/arithmeticmodel.o ../../LASzip/src/lasindex.o ../../LASzip/src/lasquadtree.o ../../LASzip/src/lasinterval.o 14 | 15 | all: liblas.a 16 | 17 | liblas.a: ${OBJ_LAZ} ${OBJ_LAS} 18 | $(AR) $@ ${OBJ_LAZ} ${OBJ_LAS} 19 | cp -p $@ ../lib 20 | 21 | .cpp.o: 22 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $< -o $@ 23 | 24 | .c.o: 25 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $< -o $@ 26 | 27 | clean: 28 | rm -rf ${OBJ_LAZ} ${OBJ_LAS} 29 | 30 | clobber: 31 | rm -rf liblas.a 32 | rm -rf ${OBJ_LAZ} ${OBJ_LAS} 33 | rm -rf *~ 34 | -------------------------------------------------------------------------------- /LASzip/CHANGES.txt: -------------------------------------------------------------------------------- 1 | 28 May 2017 -- support for "selective decompression" of compressed LAS 1.4 points added into DLL API 2 | 25 April 2017 -- enable "native LAS 1.4 extension" in LASzip DLL via 'request_native_extension' 3 | 30 March 2017 -- alpha-release of "native LAS 1.4 extension" for LASzip compression 4 | 11 January 2017 -- new DLL/API function 'laszip_set_chunk_size()' to change chunk size 5 | 8 January 2017 -- changed file names from "laszip_dll.h" to "laszip_api.h" for hobu 6 | 7 January 2017 -- set reserved field in LASzip VLR from 0xAABB to 0x0 7 | 8 | 7 January 2017 -- make scan angle quantization in compatibility mode consistent with LASlib 9 | 10 | 7 January 2017 -- compatibility mode *decompression* fix for points with waveforms 11 | 23 September 2015 -- correct update of bounding box and counters from inventory on closing 12 | 23 September 2015 -- correct update of bounding box and counters from inventory on closing 13 | 22 September 2015 -- bug fix for not overwriting description of pre-existing "extra bytes" 14 | 5 September 201 -- the "LAS 1.4 compatibility mode" now allows pre-existing "extra bytes" 15 | 31 July 2015 -- new DLL (incompatible with prior version) supports "LAS 1.4 compatibility mode" 16 | 4 April 2015 -- added DLL functions for creation and exploitation of spatial indexing LAX files 17 | 3 April 2015 -- moved spatial indexing (LAX file generation) from LASlib to LASzip 18 | 16 November 2014 -- improved detection & reporting of file truncation and/or LAZ bit-errors 19 | 6 September 2014 -- removal of (unused) EntropyEncoder and EntropyDecoder purely virtual classes 20 | 24 August 2014 -- when reading LAZ chunk table read is delayed until first read() or seek() is called 21 | 18 September 2013 -- fixed small memory leak 22 | 24 August 2013 -- fixed bug with explicit cast from LASitem:type to unsigned short and vice versa 23 | 11 August 2013 -- laszipdllexample: new EXAMPLE_THREE shows export of geo-referenced LAZ 24 | 8 August 2013 -- LASzip: new DLL calls laszip_get_coordinates() and laszip_set_coordinates() 25 | 6 August 2013 -- LASzip: new DLL calls laszip_auto_offset() and laszip_check_for_integer_overflow() 26 | 1 August 2013 -- LASzip: new DLL calls unload_dll() and get_point_count() for FUSION integration 27 | 29 July 2013 -- LASzip: created an easy-to-use DLL interface for LASzip integration 28 | -------------------------------------------------------------------------------- /LASzip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | 3 | project(LASzip) 4 | 5 | set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) 6 | 7 | if(UNIX) 8 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++14") 9 | endif() 10 | 11 | add_subdirectory(src) 12 | -------------------------------------------------------------------------------- /LASzip/LASzip.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "LASzip"=.\LASzip.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Project: "laszipdllexample"=.\example\laszipdllexample.dsp - Package Owner=<4> 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<4> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | Project: "laszippertest"=.\example\laszippertest.dsp - Package Owner=<4> 31 | 32 | Package=<5> 33 | {{{ 34 | }}} 35 | 36 | Package=<4> 37 | {{{ 38 | }}} 39 | 40 | ############################################################################### 41 | 42 | Global: 43 | 44 | Package=<5> 45 | {{{ 46 | }}} 47 | 48 | Package=<3> 49 | {{{ 50 | }}} 51 | 52 | ############################################################################### 53 | 54 | -------------------------------------------------------------------------------- /LASzip/LICENSE.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------- 2 | 3 | LICENSE AGREEMENT (for LASzip LiDAR compression): 4 | 5 | LASzip is open-source and is licensed with the standard LGPL version 2.1 6 | (see COPYING.txt) modified by the following static linking exception. 7 | 8 | As a special exception, the copyright holders of this library give you 9 | permission to link this library with independent modules to produce an 10 | executable, regardless of the license terms of these independent modules, 11 | and to copy and distribute the resulting executable under terms of your 12 | choice, provided that you also meet, for each linked independent module, 13 | the terms and conditions of the license of that module. An independent 14 | module is a module which is not derived from or based on this library. 15 | If you modify this library, you may extend this exception to your version 16 | of the library, but you are not obliged to do so. If you do not wish to 17 | do so, delete this exception statement from your version. 18 | 19 | This software is distributed WITHOUT ANY WARRANTY and without even the 20 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 | 22 | -------------------------------------------------------------------------- 23 | 24 | PROGRAMMERS: 25 | 26 | martin@rapidlasso.com 27 | 28 | -------------------------------------------------------------------------- 29 | 30 | COPYRIGHT: 31 | 32 | (c) 2007-2015, martin isenburg, rapidlasso - fast tools to catch reality 33 | 34 | -------------------------------------------------------------------------- 35 | -------------------------------------------------------------------------------- /LASzip/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | cd example && make 3 | 4 | clean: 5 | cd example && make clean 6 | cd src && make clean 7 | 8 | clobber: 9 | cd example && make clobber 10 | cd src && make clobber 11 | -------------------------------------------------------------------------------- /LASzip/README.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------- 2 | 3 | LASzip LiDAR compression DLL 4 | 5 | -------------------------------------------------------------------------- 6 | 7 | The LASzip LiDAR compressor packaged as a simple stand-alone DLL for 8 | easy inclusion of compression and decompression functionality into 9 | other software. It compresses LAS files into much more compact LAZ 10 | files and vice versa. The resulting files are around 7 - 20 percent 11 | of their original size. Follow the code in laszipdllexample.cpp for 12 | a simple example how to use the DLL. 13 | 14 | To get LASzip just download the LAStools distribution which contains 15 | the LASlib as well as the LASzip sources together with the binaries 16 | of the popular LAStools software and some small example LAZ files. 17 | 18 | http://laszip.org/ 19 | http://lastools.org/ 20 | http://rapidlasso.com/LAStools/ 21 | 22 | -------------------------------------------------------------------------- 23 | 24 | PROGRAMMERS: 25 | 26 | martin@rapidlasso.com 27 | 28 | -------------------------------------------------------------------------- 29 | 30 | COPYRIGHT: 31 | 32 | (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality 33 | 34 | -------------------------------------------------------------------------- 35 | -------------------------------------------------------------------------------- /LASzip/dll/LASzip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/LASzip/dll/LASzip.dll -------------------------------------------------------------------------------- /LASzip/dll/laszipdllexample.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/LASzip/dll/laszipdllexample.exe -------------------------------------------------------------------------------- /LASzip/example/5points_14.las: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/LASzip/example/5points_14.las -------------------------------------------------------------------------------- /LASzip/example/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for laszippertest 2 | # 3 | #COPTS = -g -Wall 4 | COPTS = -O3 -Wall -Wno-strict-aliasing 5 | COMPILER = g++ 6 | LINKER = g++ 7 | #BITS = -64 8 | 9 | #LIBS = -L/usr/lib32 10 | #LIBS = -L/usr/lib64 11 | INCLUDE = -I/usr/include 12 | 13 | LAZLIBS = 14 | LAZINCLUDE = -I../src 15 | 16 | LAZOBJS = ../src/laszip.o ../src/laszipper.o ../src/lasunzipper.o ../src/lasreadpoint.o ../src/lasreaditemcompressed_v1.o ../src/lasreaditemcompressed_v2.o ../src/lasreaditemcompressed_v3.o ../src/laswritepoint.o ../src/laswriteitemcompressed_v1.o ../src/laswriteitemcompressed_v2.o ../src/laswriteitemcompressed_v3.o ../src/integercompressor.o ../src/arithmeticdecoder.o ../src/arithmeticencoder.o ../src/arithmeticmodel.o 17 | 18 | all: laszippertest 19 | 20 | laszippertest: laszippertest.o ${LAZOBJS} 21 | ${LINKER} ${BITS} ${COPTS} laszippertest.o ${LAZOBJS} -o $@ ${LIBS} ${LAZLIBS} $(INCLUDE) $(LAZINCLUDE) 22 | 23 | .cpp.o: 24 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LAZINCLUDE) $< -o $@ 25 | 26 | .c.o: 27 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LAZINCLUDE) $< -o $@ 28 | 29 | clean: 30 | rm -rf *.o 31 | rm -rf laszippertest 32 | 33 | clobber: 34 | rm -rf *.o 35 | rm -rf laszippertest 36 | rm -rf *~ 37 | -------------------------------------------------------------------------------- /LASzip/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | set(header_files 4 | arithmeticdecoder.hpp 5 | arithmeticencoder.hpp 6 | arithmeticmodel.hpp 7 | bytestreamin.hpp 8 | bytestreamin_array.hpp 9 | bytestreamin_file.hpp 10 | bytestreamin_istream.hpp 11 | bytestreaminout.hpp 12 | bytestreaminout_file.hpp 13 | bytestreamout.hpp 14 | bytestreamout_array.hpp 15 | bytestreamout_file.hpp 16 | bytestreamout_nil.hpp 17 | bytestreamout_ostream.hpp 18 | integercompressor.hpp 19 | lasattributer.hpp 20 | lasindex.hpp 21 | lasinterval.hpp 22 | laspoint.hpp 23 | lasquadtree.hpp 24 | lasquantizer.hpp 25 | lasreaditem.hpp 26 | lasreaditemcompressed_v1.hpp 27 | lasreaditemcompressed_v2.hpp 28 | lasreaditemcompressed_v3.hpp 29 | lasreaditemraw.hpp 30 | lasreadpoint.hpp 31 | lasunzipper.hpp 32 | laswriteitem.hpp 33 | laswriteitemcompressed_v1.hpp 34 | laswriteitemcompressed_v2.hpp 35 | laswriteitemcompressed_v3.hpp 36 | laswriteitemraw.hpp 37 | laswritepoint.hpp 38 | laszip.hpp 39 | laszip_common_v1.hpp 40 | laszip_common_v2.hpp 41 | laszip_common_v3.hpp 42 | laszip_decompress_selective_v3.hpp 43 | laszipper.hpp 44 | mydefs.hpp 45 | ) 46 | 47 | set(source_files 48 | arithmeticdecoder.cpp 49 | arithmeticencoder.cpp 50 | arithmeticmodel.cpp 51 | integercompressor.cpp 52 | lasindex.cpp 53 | lasinterval.cpp 54 | lasquadtree.cpp 55 | lasreaditemcompressed_v1.cpp 56 | lasreaditemcompressed_v2.cpp 57 | lasreaditemcompressed_v3.cpp 58 | lasreadpoint.cpp 59 | lasunzipper.cpp 60 | laswriteitemcompressed_v1.cpp 61 | laswriteitemcompressed_v2.cpp 62 | laswriteitemcompressed_v3.cpp 63 | laswritepoint.cpp 64 | laszip.cpp 65 | laszip_dll.cpp 66 | laszipper.cpp 67 | ) 68 | 69 | 70 | #if(WIN32) 71 | list(APPEND header_files ../dll/laszip_api.h) 72 | list(APPEND source_files laszip_dll.cpp) 73 | #endif() 74 | 75 | set(files ${header_files} ${source_files}) 76 | 77 | add_definitions("-DLASZIPDLL_EXPORTS") 78 | add_definitions("-DUNORDERED") 79 | if(WIN32) 80 | add_definitions("-D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS") 81 | add_definitions("-D_CRT_SECURE_NO_WARNINGS") 82 | add_definitions("-D_CRT_NONSTDC_NO_DEPRECATE") 83 | endif() 84 | 85 | include_directories(. ../dll) 86 | 87 | add_library(laszip SHARED ${files}) 88 | 89 | install(TARGETS laszip 90 | RUNTIME DESTINATION bin/ 91 | LIBRARY DESTINATION lib/ 92 | ) 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /LASzip/src/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for cleanup of laszip 2 | # 3 | 4 | clean: 5 | rm -rf *.o 6 | 7 | clobber: 8 | rm -rf *.o 9 | rm -rf *~ 10 | -------------------------------------------------------------------------------- /LASzip/src/arithmeticmodel.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: arithmeticmodel.hpp 5 | 6 | CONTENTS: 7 | 8 | A modular C++ wrapper for an adapted version of Amir Said's FastAC Code. 9 | see: http://www.cipr.rpi.edu/~said/FastAC.html 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the COPYING file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 10 January 2011 -- licensing change for LGPL release and liblas integration 29 | 8 December 2010 -- unified framework for all entropy coders 30 | 30 October 2009 -- refactoring Amir Said's FastAC code 31 | 32 | =============================================================================== 33 | */ 34 | #ifndef ARITHMETIC_MODEL_HPP 35 | #define ARITHMETIC_MODEL_HPP 36 | 37 | #include 38 | #include 39 | 40 | #include "mydefs.hpp" 41 | 42 | /* this header byte needs to change in case incompatible change happen */ 43 | #define AC_HEADER_BYTE 2 44 | #define AC_BUFFER_SIZE 1024 45 | 46 | const U32 AC__MinLength = 0x01000000U; // threshold for renormalization 47 | const U32 AC__MaxLength = 0xFFFFFFFFU; // maximum AC interval length 48 | 49 | // Maximum values for binary models 50 | const U32 BM__LengthShift = 13; // length bits discarded before mult. 51 | const U32 BM__MaxCount = 1 << BM__LengthShift; // for adaptive models 52 | 53 | // Maximum values for general models 54 | const U32 DM__LengthShift = 15; // length bits discarded before mult. 55 | const U32 DM__MaxCount = 1 << DM__LengthShift; // for adaptive models 56 | 57 | class ArithmeticModel 58 | { 59 | public: 60 | ArithmeticModel(U32 symbols, BOOL compress); 61 | ~ArithmeticModel(); 62 | 63 | I32 init(U32* table=0); 64 | 65 | private: 66 | void update(); 67 | U32 * distribution, * symbol_count, * decoder_table; 68 | U32 total_count, update_cycle, symbols_until_update; 69 | U32 symbols, last_symbol, table_size, table_shift; 70 | BOOL compress; 71 | friend class ArithmeticEncoder; 72 | friend class ArithmeticDecoder; 73 | }; 74 | 75 | class ArithmeticBitModel 76 | { 77 | public: 78 | ArithmeticBitModel(); 79 | ~ArithmeticBitModel(); 80 | 81 | void init(); 82 | 83 | private: 84 | void update(); 85 | U32 update_cycle, bits_until_update; 86 | U32 bit_0_prob, bit_0_count, bit_count; 87 | friend class ArithmeticEncoder; 88 | friend class ArithmeticDecoder; 89 | }; 90 | 91 | #endif 92 | -------------------------------------------------------------------------------- /LASzip/src/bytestreaminout.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: bytestreaminout.hpp 5 | 6 | CONTENTS: 7 | 8 | Abstract base class for streams that both input and output with endian handling. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 29 December 2013 -- created after helping a client to QA their Optech LiDAR 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef BYTE_STREAM_INOUT_HPP 32 | #define BYTE_STREAM_INOUT_HPP 33 | 34 | #include "mydefs.hpp" 35 | #include "bytestreamin.hpp" 36 | #include "bytestreamout.hpp" 37 | 38 | class ByteStreamInOut : public ByteStreamIn, ByteStreamOut 39 | { 40 | public: 41 | /* destructor */ 42 | virtual ~ByteStreamInOut() {}; 43 | }; 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /LASzip/src/bytestreaminout_file.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: bytestreaminout_file.hpp 5 | 6 | CONTENTS: 7 | 8 | Class for FILE*-based streams that both input and output with endian handling. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 29 December 2013 -- created after helping a client to QA their Optech LiDAR 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef BYTE_STREAM_INOUT_FILE_HPP 32 | #define BYTE_STREAM_INOUT_FILE_HPP 33 | 34 | #include "bytestreamin_file.hpp" 35 | #include "bytestreamout_file.hpp" 36 | 37 | class ByteStreamInOutFileLE : public ByteStreamInFileLE, public ByteStreamOutFileLE 38 | { 39 | public: 40 | ByteStreamInOutFileLE(FILE* file); 41 | }; 42 | 43 | class ByteStreamInOutFileBE : public ByteStreamInFileBE, public ByteStreamOutFileBE 44 | { 45 | public: 46 | ByteStreamInOutFileBE(FILE* file); 47 | }; 48 | 49 | inline ByteStreamInOutFileLE::ByteStreamInOutFileLE(FILE* file) : ByteStreamInFileLE(file), ByteStreamOutFileLE(file) 50 | { 51 | } 52 | 53 | inline ByteStreamInOutFileBE::ByteStreamInOutFileBE(FILE* file) : ByteStreamInFileBE(file), ByteStreamOutFileBE(file) 54 | { 55 | } 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /LASzip/src/lasquantizer.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasquantizer.hpp 5 | 6 | CONTENTS: 7 | 8 | This class assists with converting between a fixed-point notation based on 9 | scaled integers plus large offsets and standard double-precision floating- 10 | point numbers. For efficieny in storage and uniform precision (far from the 11 | origin) the LAS format stores all point coordinates as scaled and offset 12 | 32-bit integers. 13 | 14 | PROGRAMMERS: 15 | 16 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 17 | 18 | COPYRIGHT: 19 | 20 | (c) 2007-2015, martin isenburg, rapidlasso - fast tools to catch reality 21 | 22 | This is free software; you can redistribute and/or modify it under the 23 | terms of the GNU Lesser General Licence as published by the Free Software 24 | Foundation. See the LICENSE.txt file for more information. 25 | 26 | This software is distributed WITHOUT ANY WARRANTY and without even the 27 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28 | 29 | CHANGE HISTORY: 30 | 31 | 19 July 2015 -- created after FOSS4GE in the train back from Lake Como 32 | 33 | =============================================================================== 34 | */ 35 | #ifndef LAS_QUANTIZER_HPP 36 | #define LAS_QUANTIZER_HPP 37 | 38 | #include "mydefs.hpp" 39 | 40 | class LASquantizer 41 | { 42 | public: 43 | F64 x_scale_factor; 44 | F64 y_scale_factor; 45 | F64 z_scale_factor; 46 | F64 x_offset; 47 | F64 y_offset; 48 | F64 z_offset; 49 | 50 | inline F64 get_x(const I32 X) const { return x_scale_factor*X+x_offset; }; 51 | inline F64 get_y(const I32 Y) const { return y_scale_factor*Y+y_offset; }; 52 | inline F64 get_z(const I32 Z) const { return z_scale_factor*Z+z_offset; }; 53 | 54 | inline I32 get_X(const F64 x) const { if (x >= x_offset) return (I32)((x-x_offset)/x_scale_factor+0.5); else return (I32)((x-x_offset)/x_scale_factor-0.5); }; 55 | inline I32 get_Y(const F64 y) const { if (y >= y_offset) return (I32)((y-y_offset)/y_scale_factor+0.5); else return (I32)((y-y_offset)/y_scale_factor-0.5); }; 56 | inline I32 get_Z(const F64 z) const { if (z >= z_offset) return (I32)((z-z_offset)/z_scale_factor+0.5); else return (I32)((z-z_offset)/z_scale_factor-0.5); }; 57 | 58 | LASquantizer() 59 | { 60 | x_scale_factor = 0.01; 61 | y_scale_factor = 0.01; 62 | z_scale_factor = 0.01; 63 | x_offset = 0.0; 64 | y_offset = 0.0; 65 | z_offset = 0.0; 66 | }; 67 | 68 | LASquantizer & operator=(const LASquantizer & quantizer) 69 | { 70 | this->x_scale_factor = quantizer.x_scale_factor; 71 | this->y_scale_factor = quantizer.y_scale_factor; 72 | this->z_scale_factor = quantizer.z_scale_factor; 73 | this->x_offset = quantizer.x_offset; 74 | this->y_offset = quantizer.y_offset; 75 | this->z_offset = quantizer.z_offset; 76 | return *this; 77 | }; 78 | }; 79 | 80 | #endif 81 | -------------------------------------------------------------------------------- /LASzip/src/lasreaditem.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: LASreaditem.hpp 5 | 6 | CONTENTS: 7 | 8 | Common interface for all classes that read the items that compose a point. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 23 August 2016 -- layering of items for selective decompression in LAS 1.4 28 | 10 January 2011 -- licensing change for LGPL release and liblas integration 29 | 7 December 2010 -- refactored after getting invited to KAUST in Saudi Arabia 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_READ_ITEM_HPP 34 | #define LAS_READ_ITEM_HPP 35 | 36 | #include "mydefs.hpp" 37 | 38 | class ByteStreamIn; 39 | 40 | class LASreadItem 41 | { 42 | public: 43 | virtual void read(U8* item)=0; 44 | 45 | virtual ~LASreadItem(){}; 46 | }; 47 | 48 | class LASreadItemRaw : public LASreadItem 49 | { 50 | public: 51 | LASreadItemRaw() 52 | { 53 | instream = 0; 54 | }; 55 | BOOL init(ByteStreamIn* instream) 56 | { 57 | if (!instream) return FALSE; 58 | this->instream = instream; 59 | return TRUE; 60 | }; 61 | virtual ~LASreadItemRaw(){}; 62 | protected: 63 | ByteStreamIn* instream; 64 | }; 65 | 66 | class LASreadItemCompressed : public LASreadItem 67 | { 68 | public: 69 | virtual BOOL chunk_sizes() { return FALSE; }; 70 | virtual BOOL init(const U8* item)=0; 71 | 72 | virtual ~LASreadItemCompressed(){}; 73 | }; 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /LASzip/src/lasunzipper.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: lasunzipper.hpp 5 | 6 | CONTENTS: 7 | 8 | Reads (optionally compressed) LIDAR points to LAS formats 1.0 - 1.3. This 9 | particular class is only used for adding LASzip to libLAS (not to LASlib). 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the COPYING file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 23 April 2011 -- changed interface for easier future compressor support 29 | 10 January 2011 -- licensing change for LGPL release and liblas integration 30 | 12 December 2010 -- created from LASwriter/LASreader after Howard got pushy (-; 31 | 32 | =============================================================================== 33 | */ 34 | #ifndef LAS_UNZIPPER_HPP 35 | #define LAS_UNZIPPER_HPP 36 | 37 | #include 38 | 39 | #include "laszip.hpp" 40 | 41 | #ifdef LZ_WIN32_VC6 42 | #include 43 | #else 44 | #include 45 | #include 46 | using namespace std; 47 | #endif 48 | 49 | class ByteStreamIn; 50 | class LASreadPoint; 51 | 52 | class LASunzipper 53 | { 54 | public: 55 | bool open(FILE* file, const LASzip* laszip); 56 | bool open(istream& stream, const LASzip* laszip); 57 | 58 | unsigned int tell() const; 59 | bool seek(const unsigned int position); 60 | bool read(unsigned char * const * point); 61 | bool close(); 62 | 63 | LASunzipper(); 64 | ~LASunzipper(); 65 | 66 | // in case a function returns false this string describes the problem 67 | const char* get_error() const; 68 | 69 | private: 70 | unsigned int count; 71 | ByteStreamIn* stream; 72 | LASreadPoint* reader; 73 | bool return_error(const char* err); 74 | char* error_string; 75 | }; 76 | 77 | #endif 78 | -------------------------------------------------------------------------------- /LASzip/src/laswriteitem.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: LASwriteitem.hpp 5 | 6 | CONTENTS: 7 | 8 | Common interface for all classes that write the items that compose a point. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 23 August 2016 -- layering of items for selective decompression in LAS 1.4 28 | 10 January 2011 -- licensing change for LGPL release and liblas integration 29 | 12 December 2010 -- refactored after watching two movies with silke 30 | 31 | =============================================================================== 32 | */ 33 | #ifndef LAS_WRITE_ITEM_HPP 34 | #define LAS_WRITE_ITEM_HPP 35 | 36 | #include "mydefs.hpp" 37 | 38 | class ByteStreamOut; 39 | 40 | class LASwriteItem 41 | { 42 | public: 43 | virtual BOOL write(const U8* item)=0; 44 | 45 | virtual ~LASwriteItem(){}; 46 | }; 47 | 48 | class LASwriteItemRaw : public LASwriteItem 49 | { 50 | public: 51 | LASwriteItemRaw() 52 | { 53 | outstream = 0; 54 | }; 55 | BOOL init(ByteStreamOut* outstream) 56 | { 57 | if (!outstream) return FALSE; 58 | this->outstream = outstream; 59 | return TRUE; 60 | }; 61 | virtual ~LASwriteItemRaw(){}; 62 | protected: 63 | ByteStreamOut* outstream; 64 | }; 65 | 66 | class LASwriteItemCompressed : public LASwriteItem 67 | { 68 | public: 69 | virtual BOOL init(const U8* item)=0; 70 | virtual BOOL chunk_sizes() { return FALSE; }; 71 | virtual BOOL chunk_bytes() { return FALSE; }; 72 | 73 | virtual ~LASwriteItemCompressed(){}; 74 | }; 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /LASzip/src/laswritepoint.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laswritepoint.hpp 5 | 6 | CONTENTS: 7 | 8 | Common interface for the classes that write points raw or compressed. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 23 August 2016 -- layering of items for selective decompression in LAS 1.4 28 | 6 September 2014 -- removed inheritance of EntropyEncoder and EntropyDecoder 29 | 6 October 2011 -- large file support & reading with missing chunk table 30 | 9 May 2011 -- the chunked compressor now allows variable chunk sizes 31 | 25 April 2011 -- added chunked laszip for random access decompression 32 | 10 January 2011 -- licensing change for LGPL release and liblas integration 33 | 7 December 2010 -- adapted from LASpointWriter for better code modularity 34 | 3 December 2010 -- updated to (somewhat) support LAS format 1.3 35 | 7 September 2008 -- updated to support LAS format 1.2 36 | 22 February 2007 -- created about an hour before henna's birthday 37 | 38 | =============================================================================== 39 | */ 40 | #ifndef LAS_WRITE_POINT_HPP 41 | #define LAS_WRITE_POINT_HPP 42 | 43 | #include "mydefs.hpp" 44 | #include "laszip.hpp" 45 | #include "bytestreamout.hpp" 46 | 47 | class LASwriteItem; 48 | class ArithmeticEncoder; 49 | 50 | class LASwritePoint 51 | { 52 | public: 53 | LASwritePoint(); 54 | ~LASwritePoint(); 55 | 56 | // should only be called *once* 57 | BOOL setup(const U32 num_items, const LASitem* items, const LASzip* laszip=0); 58 | 59 | BOOL init(ByteStreamOut* outstream); 60 | BOOL write(const U8 * const * point); 61 | BOOL chunk(); 62 | BOOL done(); 63 | 64 | private: 65 | ByteStreamOut* outstream; 66 | U32 num_writers; 67 | LASwriteItem** writers; 68 | LASwriteItem** writers_raw; 69 | LASwriteItem** writers_compressed; 70 | ArithmeticEncoder* enc; 71 | BOOL layered_las14_compression; 72 | // used for chunking 73 | U32 chunk_size; 74 | U32 chunk_count; 75 | U32 number_chunks; 76 | U32 alloced_chunks; 77 | U32* chunk_sizes; 78 | U32* chunk_bytes; 79 | I64 chunk_start_position; 80 | I64 chunk_table_start_position; 81 | BOOL add_chunk_to_table(); 82 | BOOL write_chunk_table(); 83 | }; 84 | 85 | #endif 86 | -------------------------------------------------------------------------------- /LASzip/src/laszip_common_v1.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laszip_common_v1.hpp 5 | 6 | CONTENTS: 7 | 8 | Common defines and functionalities for version 1 of LASitemReadCompressed 9 | and LASitemwriteCompressed. 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | uday.karan@gmail.com - http://github.com/verma 15 | 16 | COPYRIGHT: 17 | 18 | (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality 19 | 20 | This is free software; you can redistribute and/or modify it under the 21 | terms of the GNU Lesser General Licence as published by the Free Software 22 | Foundation. See the COPYING file for more information. 23 | 24 | This software is distributed WITHOUT ANY WARRANTY and without even the 25 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 26 | 27 | CHANGE HISTORY: 28 | 29 | 10 April 2014 - refactor LASwavepacket13 and add other functions to it 30 | 31 | =============================================================================== 32 | */ 33 | 34 | #ifndef LASZIP_COMMON_V1_HPP 35 | #define LASZIP_COMMON_V1_HPP 36 | 37 | #include "mydefs.hpp" 38 | 39 | struct LASwavepacket13 40 | { 41 | U64 offset; 42 | U32 packet_size; 43 | U32I32F32 return_point; 44 | U32I32F32 x; 45 | U32I32F32 y; 46 | U32I32F32 z; 47 | 48 | static inline LASwavepacket13 unpack(const U8* item) 49 | { 50 | // unpack a LAS wavepacket out of raw memory 51 | LASwavepacket13 r; 52 | 53 | r.offset = makeU64(item); 54 | r.packet_size = makeU32(item + 8); 55 | r.return_point.u32 = makeU32(item + 12); 56 | 57 | r.x.u32 = makeU32(item + 16); 58 | r.y.u32 = makeU32(item + 20); 59 | r.z.u32 = makeU32(item + 24); 60 | 61 | return r; 62 | } 63 | 64 | void inline pack(U8 *item) 65 | { 66 | // pack a LAS wavepacket into raw memory 67 | packU32((U32)(offset & 0xFFFFFFFF), item); 68 | packU32((U32)(offset >> 32), item+4); 69 | 70 | packU32(packet_size, item + 8); 71 | packU32(return_point.u32, item + 12); 72 | packU32(x.u32, item + 16); 73 | packU32(y.u32, item + 20); 74 | packU32(z.u32, item + 24); 75 | } 76 | 77 | private: 78 | 79 | static inline U64 makeU64(const U8* item) 80 | { 81 | U64 dw0 = (U64)makeU32(item); 82 | U64 dw1 = (U64)makeU32(item+4); 83 | 84 | return dw0 | (dw1 << 32); 85 | } 86 | 87 | static inline U32 makeU32(const U8 *item) 88 | { 89 | U32 b0 = (U32)item[0]; 90 | U32 b1 = (U32)item[1]; 91 | U32 b2 = (U32)item[2]; 92 | U32 b3 = (U32)item[3]; 93 | 94 | return b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); 95 | } 96 | 97 | static inline void packU32(U32 v, U8 *item) 98 | { 99 | item[0] = v & 0xFF; 100 | item[1] = (v >> 8) & 0xFF; 101 | item[2] = (v >> 16) & 0xFF; 102 | item[3] = (v >> 24) & 0xFF; 103 | } 104 | }; 105 | 106 | #endif // LASZIP_COMMON_V1_HPP 107 | -------------------------------------------------------------------------------- /LASzip/src/laszip_decompress_selective_v3.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laszip_decompress_selective_v3.hpp 5 | 6 | CONTENTS: 7 | 8 | Contains bit mask definitions for selective decompression. 9 | 10 | PROGRAMMERS: 11 | 12 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 13 | 14 | COPYRIGHT: 15 | 16 | (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality 17 | 18 | This is free software; you can redistribute and/or modify it under the 19 | terms of the GNU Lesser General Licence as published by the Free Software 20 | Foundation. See the COPYING file for more information. 21 | 22 | This software is distributed WITHOUT ANY WARRANTY and without even the 23 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 | 25 | CHANGE HISTORY: 26 | 27 | 14 April 2017 -- created at Lo Que Hay where Gui was having birthday dinner 28 | 29 | =============================================================================== 30 | */ 31 | #ifndef LASZIP_DECOMPRESS_SELECTIVE_V3_HPP 32 | #define LASZIP_DECOMPRESS_SELECTIVE_V3_HPP 33 | 34 | #define LASZIP_DECOMPRESS_SELECTIVE_ALL 0xFFFFFFFF 35 | 36 | #define LASZIP_DECOMPRESS_SELECTIVE_CHANNEL_RETURNS_XY 0x00000000 37 | #define LASZIP_DECOMPRESS_SELECTIVE_Z 0x00000001 38 | #define LASZIP_DECOMPRESS_SELECTIVE_CLASSIFICATION 0x00000002 39 | #define LASZIP_DECOMPRESS_SELECTIVE_FLAGS 0x00000004 40 | #define LASZIP_DECOMPRESS_SELECTIVE_INTENSITY 0x00000008 41 | #define LASZIP_DECOMPRESS_SELECTIVE_SCAN_ANGLE 0x00000010 42 | #define LASZIP_DECOMPRESS_SELECTIVE_USER_DATA 0x00000020 43 | #define LASZIP_DECOMPRESS_SELECTIVE_POINT_SOURCE 0x00000040 44 | #define LASZIP_DECOMPRESS_SELECTIVE_GPS_TIME 0x00000080 45 | #define LASZIP_DECOMPRESS_SELECTIVE_RGB 0x00000100 46 | #define LASZIP_DECOMPRESS_SELECTIVE_NIR 0x00000200 47 | #define LASZIP_DECOMPRESS_SELECTIVE_WAVEPACKET 0x00000400 48 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE0 0x00010000 49 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE1 0x00020000 50 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE2 0x00040000 51 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE3 0x00080000 52 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE4 0x00100000 53 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE5 0x00200000 54 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE6 0x00400000 55 | #define LASZIP_DECOMPRESS_SELECTIVE_BYTE7 0x00800000 56 | #define LASZIP_DECOMPRESS_SELECTIVE_EXTRA_BYTES 0xFFF00000 57 | 58 | #endif // LASZIP_DECOMPRESS_SELECTIVE_V3_HPP 59 | -------------------------------------------------------------------------------- /LASzip/src/laszipper.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | =============================================================================== 3 | 4 | FILE: laszipper.hpp 5 | 6 | CONTENTS: 7 | 8 | Writes (optionally compressed) LIDAR points to LAS formats 1.0 - 1.3. This 9 | particular class is only used for adding LASzip to libLAS (not to LASlib). 10 | 11 | PROGRAMMERS: 12 | 13 | martin.isenburg@rapidlasso.com - http://rapidlasso.com 14 | 15 | COPYRIGHT: 16 | 17 | (c) 2007-2013, martin isenburg, rapidlasso - fast tools to catch reality 18 | 19 | This is free software; you can redistribute and/or modify it under the 20 | terms of the GNU Lesser General Licence as published by the Free Software 21 | Foundation. See the COPYING file for more information. 22 | 23 | This software is distributed WITHOUT ANY WARRANTY and without even the 24 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 | 26 | CHANGE HISTORY: 27 | 28 | 8 May 2011 -- added an option for variable chunking via chunk() 29 | 23 April 2011 -- changed interface for simplicity and chunking support 30 | 10 January 2011 -- licensing change for LGPL release and liblas integration 31 | 12 December 2010 -- created from LASwriter/LASreader after Howard got pushy (-; 32 | 33 | =============================================================================== 34 | */ 35 | #ifndef LAS_ZIPPER_HPP 36 | #define LAS_ZIPPER_HPP 37 | 38 | #include 39 | 40 | #include "laszip.hpp" 41 | 42 | #ifdef LZ_WIN32_VC6 43 | #include 44 | #else 45 | #include 46 | #include 47 | using namespace std; 48 | #endif 49 | 50 | class ByteStreamOut; 51 | class LASwritePoint; 52 | 53 | class LASzipper 54 | { 55 | public: 56 | bool open(FILE* outfile, const LASzip* laszip); 57 | bool open(ostream& outstream, const LASzip* laszip); 58 | 59 | bool write(const unsigned char* const * point); 60 | bool chunk(); 61 | bool close(); 62 | 63 | LASzipper(); 64 | ~LASzipper(); 65 | 66 | // in case a function returns false this string describes the problem 67 | const char* get_error() const; 68 | 69 | private: 70 | unsigned int count; 71 | ByteStreamOut* stream; 72 | LASwritePoint* writer; 73 | bool return_error(const char* err); 74 | char* error_string; 75 | }; 76 | 77 | #endif 78 | -------------------------------------------------------------------------------- /LASzip/stl/algobase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * Copyright (c) 1996,1997 15 | * Silicon Graphics Computer Systems, Inc. 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Silicon Graphics makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | */ 25 | 26 | #ifndef __SGI_STL_ALGOBASE_H 27 | #define __SGI_STL_ALGOBASE_H 28 | 29 | #ifndef __SGI_STL_PAIR_H 30 | #include 31 | #endif 32 | #ifndef __SGI_STL_ITERATOR_H 33 | #include 34 | #endif 35 | #ifndef __SGI_STL_INTERNAL_ALGOBASE_H 36 | #include 37 | #endif 38 | #ifndef __SGI_STL_INTERNAL_UNINITIALIZED_H 39 | #include 40 | #endif 41 | 42 | #ifdef __STL_USE_NAMESPACES 43 | 44 | // Names from stl_algobase.h 45 | using __STD::iter_swap; 46 | using __STD::swap; 47 | using __STD::min; 48 | using __STD::max; 49 | using __STD::copy; 50 | using __STD::copy_backward; 51 | using __STD::copy_n; 52 | using __STD::fill; 53 | using __STD::fill_n; 54 | using __STD::mismatch; 55 | using __STD::equal; 56 | using __STD::lexicographical_compare; 57 | using __STD::lexicographical_compare_3way; 58 | 59 | // Names from stl_uninitialized.h 60 | using __STD::uninitialized_copy; 61 | using __STD::uninitialized_copy_n; 62 | using __STD::uninitialized_fill; 63 | using __STD::uninitialized_fill_n; 64 | 65 | #endif /* __STL_USE_NAMESPACES */ 66 | 67 | #endif /* __SGI_STL_ALGOBASE_H */ 68 | 69 | // Local Variables: 70 | // mode:C++ 71 | // End: 72 | -------------------------------------------------------------------------------- /LASzip/stl/algorithm: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_ALGORITHM 28 | #define __SGI_STL_ALGORITHM 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | #endif /* __SGI_STL_ALGORITHM */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/alloc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996-1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_ALLOC_H 15 | #define __SGI_STL_ALLOC_H 16 | 17 | #ifndef __STL_CONFIG_H 18 | #include 19 | #endif 20 | #ifndef __SGI_STL_INTERNAL_ALLOC_H 21 | #include 22 | #endif 23 | 24 | #ifdef __STL_USE_NAMESPACES 25 | 26 | using __STD::__malloc_alloc_template; 27 | using __STD::malloc_alloc; 28 | using __STD::simple_alloc; 29 | using __STD::debug_alloc; 30 | using __STD::__default_alloc_template; 31 | using __STD::alloc; 32 | using __STD::single_client_alloc; 33 | #ifdef __STL_STATIC_TEMPLATE_MEMBER_BUG 34 | using __STD::__malloc_alloc_oom_handler; 35 | #endif /* __STL_STATIC_TEMPLATE_MEMBER_BUG */ 36 | #ifdef __STL_USE_STD_ALLOCATORS 37 | using __STD::allocator; 38 | #endif /* __STL_USE_STD_ALLOCATORS */ 39 | 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_ALLOC_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/bvector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_BVECTOR_H 28 | #define __SGI_STL_BVECTOR_H 29 | 30 | #include 31 | #ifdef __STL_CLASS_PARTIAL_SPECIALIZATION 32 | #include 33 | #else 34 | #include 35 | #include 36 | #endif 37 | 38 | #include 39 | 40 | #ifdef __STL_USE_NAMESPACES 41 | 42 | using __STD::bit_vector; 43 | 44 | #endif /* __STL_USE_NAMESPACES */ 45 | 46 | #endif /* __SGI_STL_BVECTOR_H */ 47 | 48 | // Local Variables: 49 | // mode:C++ 50 | // End: 51 | 52 | 53 | -------------------------------------------------------------------------------- /LASzip/stl/defalloc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | */ 15 | 16 | // Inclusion of this file is DEPRECATED. This is the original HP 17 | // default allocator. It is provided only for backward compatibility. 18 | // This file WILL BE REMOVED in a future release. 19 | // 20 | // DO NOT USE THIS FILE unless you have an old container implementation 21 | // that requires an allocator with the HP-style interface. 22 | // 23 | // Standard-conforming allocators have a very different interface. The 24 | // standard default allocator is declared in the header . 25 | 26 | #ifndef DEFALLOC_H 27 | #define DEFALLOC_H 28 | 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | 37 | template 38 | inline T* allocate(ptrdiff_t size, T*) { 39 | set_new_handler(0); 40 | T* tmp = (T*)(::operator new((size_t)(size * sizeof(T)))); 41 | if (tmp == 0) { 42 | cerr << "out of memory" << endl; 43 | exit(1); 44 | } 45 | return tmp; 46 | } 47 | 48 | 49 | template 50 | inline void deallocate(T* buffer) { 51 | ::operator delete(buffer); 52 | } 53 | 54 | template 55 | class allocator { 56 | public: 57 | typedef T value_type; 58 | typedef T* pointer; 59 | typedef const T* const_pointer; 60 | typedef T& reference; 61 | typedef const T& const_reference; 62 | typedef size_t size_type; 63 | typedef ptrdiff_t difference_type; 64 | pointer allocate(size_type n) { 65 | return ::allocate((difference_type)n, (pointer)0); 66 | } 67 | void deallocate(pointer p) { ::deallocate(p); } 68 | pointer address(reference x) { return (pointer)&x; } 69 | const_pointer const_address(const_reference x) { 70 | return (const_pointer)&x; 71 | } 72 | size_type init_page_size() { 73 | return max(size_type(1), size_type(4096/sizeof(T))); 74 | } 75 | size_type max_size() const { 76 | return max(size_type(1), size_type(UINT_MAX/sizeof(T))); 77 | } 78 | }; 79 | 80 | class allocator { 81 | public: 82 | typedef void* pointer; 83 | }; 84 | 85 | 86 | 87 | #endif 88 | -------------------------------------------------------------------------------- /LASzip/stl/deque: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_DEQUE 28 | #define __SGI_STL_DEQUE 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #endif /* __SGI_STL_DEQUE */ 38 | 39 | // Local Variables: 40 | // mode:C++ 41 | // End: 42 | -------------------------------------------------------------------------------- /LASzip/stl/deque.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_DEQUE_H 28 | #define __SGI_STL_DEQUE_H 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | 35 | #ifdef __STL_USE_NAMESPACES 36 | using __STD::deque; 37 | #endif /* __STL_USE_NAMESPACES */ 38 | 39 | #endif /* __SGI_STL_DEQUE_H */ 40 | 41 | // Local Variables: 42 | // mode:C++ 43 | // End: 44 | -------------------------------------------------------------------------------- /LASzip/stl/functional: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | */ 14 | 15 | #ifndef __SGI_STL_FUNCTIONAL 16 | #define __SGI_STL_FUNCTIONAL 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | #endif /* __SGI_STL_FUNCTIONAL */ 23 | 24 | // Local Variables: 25 | // mode:C++ 26 | // End: 27 | -------------------------------------------------------------------------------- /LASzip/stl/hash_map: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | * 14 | * Copyright (c) 1994 15 | * Hewlett-Packard Company 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Hewlett-Packard Company makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | #ifndef __SGI_STL_HASH_MAP 28 | #define __SGI_STL_HASH_MAP 29 | 30 | #ifndef __SGI_STL_INTERNAL_HASHTABLE_H 31 | #include 32 | #endif 33 | 34 | #include 35 | 36 | #endif /* __SGI_STL_HASH_MAP */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/hash_map.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | * 14 | * Copyright (c) 1994 15 | * Hewlett-Packard Company 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Hewlett-Packard Company makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | #ifndef __SGI_STL_HASH_MAP_H 28 | #define __SGI_STL_HASH_MAP_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_HASHTABLE_H 31 | #include 32 | #endif 33 | 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::hash; 39 | using __STD::hashtable; 40 | using __STD::hash_map; 41 | using __STD::hash_multimap; 42 | #endif /* __STL_USE_NAMESPACES */ 43 | 44 | 45 | #endif /* __SGI_STL_HASH_MAP_H */ 46 | 47 | // Local Variables: 48 | // mode:C++ 49 | // End: 50 | -------------------------------------------------------------------------------- /LASzip/stl/hash_set: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | * 14 | * Copyright (c) 1994 15 | * Hewlett-Packard Company 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Hewlett-Packard Company makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | #ifndef __SGI_STL_HASH_SET 28 | #define __SGI_STL_HASH_SET 29 | 30 | #ifndef __SGI_STL_INTERNAL_HASHTABLE_H 31 | #include 32 | #endif 33 | 34 | #include 35 | 36 | #endif /* __SGI_STL_HASH_SET */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/hash_set.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | * 14 | * Copyright (c) 1994 15 | * Hewlett-Packard Company 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Hewlett-Packard Company makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | #ifndef __SGI_STL_HASH_SET_H 28 | #define __SGI_STL_HASH_SET_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_HASHTABLE_H 31 | #include 32 | #endif 33 | 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::hash; 39 | using __STD::hashtable; 40 | using __STD::hash_set; 41 | using __STD::hash_multiset; 42 | #endif /* __STL_USE_NAMESPACES */ 43 | 44 | #endif /* __SGI_STL_HASH_SET_H */ 45 | -------------------------------------------------------------------------------- /LASzip/stl/hashtable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996,1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | * 14 | * Copyright (c) 1994 15 | * Hewlett-Packard Company 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Hewlett-Packard Company makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | /* NOTE: This is an internal header file, included by other STL headers. 28 | * You should not attempt to use it directly. 29 | */ 30 | 31 | #ifndef __SGI_STL_HASHTABLE_H 32 | #define __SGI_STL_HASHTABLE_H 33 | 34 | #include 35 | #include 36 | #include 37 | #include 38 | 39 | #ifdef __STL_USE_NAMESPACES 40 | using __STD::hash; 41 | using __STD::hashtable; 42 | #endif /* __STL_USE_NAMESPACES */ 43 | 44 | #endif /* __SGI_STL_HASHTABLE_H */ 45 | 46 | // Local Variables: 47 | // mode:C++ 48 | // End: 49 | -------------------------------------------------------------------------------- /LASzip/stl/heap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * Copyright (c) 1997 15 | * Silicon Graphics Computer Systems, Inc. 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Silicon Graphics makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | */ 25 | 26 | #ifndef __SGI_STL_HEAP_H 27 | #define __SGI_STL_HEAP_H 28 | 29 | #include 30 | #include 31 | 32 | #ifdef __STL_USE_NAMESPACES 33 | 34 | using __STD::push_heap; 35 | using __STD::pop_heap; 36 | using __STD::make_heap; 37 | using __STD::sort_heap; 38 | 39 | #endif /* __STL_USE_NAMESPACES */ 40 | 41 | 42 | #endif /* __SGI_STL_HEAP_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/iterator: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_ITERATOR 28 | #define __SGI_STL_ITERATOR 29 | 30 | #include 31 | #include 32 | #include 33 | 34 | #ifdef __STL_USE_NEW_IOSTREAMS 35 | #include 36 | #else /* __STL_USE_NEW_IOSTREAMS */ 37 | #include 38 | #endif /* __STL_USE_NEW_IOSTREAMS */ 39 | 40 | #include 41 | #include 42 | 43 | #endif /* __SGI_STL_ITERATOR */ 44 | 45 | // Local Variables: 46 | // mode:C++ 47 | // End: 48 | -------------------------------------------------------------------------------- /LASzip/stl/list: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_LIST 28 | #define __SGI_STL_LIST 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | #endif /* __SGI_STL_LIST */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/list.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_LIST_H 28 | #define __SGI_STL_LIST_H 29 | 30 | #include 31 | #include 32 | #include 33 | 34 | #ifdef __STL_USE_NAMESPACES 35 | using __STD::list; 36 | #endif /* __STL_USE_NAMESPACES */ 37 | 38 | #endif /* __SGI_STL_LIST_H */ 39 | 40 | // Local Variables: 41 | // mode:C++ 42 | // End: 43 | -------------------------------------------------------------------------------- /LASzip/stl/map: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_MAP 28 | #define __SGI_STL_MAP 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | 36 | #endif /* __SGI_STL_MAP */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/map.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_MAP_H 28 | #define __SGI_STL_MAP_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::rb_tree; 39 | using __STD::map; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_MAP_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/multimap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_MULTIMAP_H 28 | #define __SGI_STL_MULTIMAP_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::rb_tree; 39 | using __STD::multimap; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_MULTIMAP_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/multiset.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_MULTISET_H 28 | #define __SGI_STL_MULTISET_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::rb_tree; 39 | using __STD::multiset; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_MULTISET_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/numeric: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_NUMERIC 28 | #define __SGI_STL_NUMERIC 29 | 30 | #include 31 | #include 32 | #include 33 | 34 | #ifdef __STL_USE_NEW_IOSTREAMS 35 | #include 36 | #else /* __STL_USE_NEW_IOSTREAMS */ 37 | #include 38 | #endif /* __STL_USE_NEW_IOSTREAMS */ 39 | 40 | #include 41 | #include 42 | #include 43 | #include 44 | 45 | #endif /* __SGI_STL_NUMERIC */ 46 | 47 | // Local Variables: 48 | // mode:C++ 49 | // End: 50 | -------------------------------------------------------------------------------- /LASzip/stl/pair.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_PAIR_H 28 | #define __SGI_STL_PAIR_H 29 | 30 | #ifndef __STL_CONFIG_H 31 | #include 32 | #endif 33 | #ifndef __SGI_STL_INTERNAL_RELOPS 34 | #include 35 | #endif 36 | #ifndef __SGI_STL_INTERNAL_PAIR_H 37 | #include 38 | #endif 39 | 40 | #ifdef __STL_USE_NAMESPACES 41 | 42 | using __STD::pair; 43 | using __STD::make_pair; 44 | 45 | #endif /* __STL_USE_NAMESPACES */ 46 | 47 | #endif /* __SGI_STL_PAIR_H */ 48 | 49 | // Local Variables: 50 | // mode:C++ 51 | // End: 52 | -------------------------------------------------------------------------------- /LASzip/stl/pthread_alloc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996-1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_PTHREAD_ALLOC_H 15 | #define __SGI_STL_PTHREAD_ALLOC_H 16 | 17 | #include 18 | 19 | #ifdef __STL_USE_NAMESPACES 20 | 21 | using __STD::_Pthread_alloc_template; 22 | using __STD::pthread_alloc; 23 | 24 | #endif /* __STL_USE_NAMESPACES */ 25 | 26 | 27 | #endif /* __SGI_STL_PTHREAD_ALLOC_H */ 28 | 29 | // Local Variables: 30 | // mode:C++ 31 | // End: 32 | -------------------------------------------------------------------------------- /LASzip/stl/queue: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_QUEUE 28 | #define __SGI_STL_QUEUE 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | #endif /* __SGI_STL_QUEUE */ 42 | 43 | // Local Variables: 44 | // mode:C++ 45 | // End: 46 | -------------------------------------------------------------------------------- /LASzip/stl/rope: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_ROPE 15 | #define __SGI_STL_ROPE 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | #endif /* __SGI_STL_ROPE */ 29 | 30 | // Local Variables: 31 | // mode:C++ 32 | // End: 33 | -------------------------------------------------------------------------------- /LASzip/stl/rope.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_ROPE_H 15 | #define __SGI_STL_ROPE_H 16 | 17 | #include 18 | #include 19 | 20 | #ifdef __STL_USE_NAMESPACES 21 | 22 | using __STD::char_producer; 23 | using __STD::sequence_buffer; 24 | using __STD::rope; 25 | using __STD::crope; 26 | using __STD::wrope; 27 | 28 | #endif /* __STL_USE_NAMESPACES */ 29 | 30 | #endif /* __SGI_STL_ROPE_H */ 31 | 32 | // Local Variables: 33 | // mode:C++ 34 | // End: 35 | -------------------------------------------------------------------------------- /LASzip/stl/set: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_SET 28 | #define __SGI_STL_SET 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | 36 | #endif /* __SGI_STL_SET */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/set.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_SET_H 28 | #define __SGI_STL_SET_H 29 | 30 | #ifndef __SGI_STL_INTERNAL_TREE_H 31 | #include 32 | #endif 33 | #include 34 | #include 35 | #include 36 | 37 | #ifdef __STL_USE_NAMESPACES 38 | using __STD::rb_tree; 39 | using __STD::set; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_SET_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/slist: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | */ 14 | 15 | #ifndef __SGI_STL_SLIST 16 | #define __SGI_STL_SLIST 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #endif /* __SGI_STL_SLIST */ 25 | 26 | // Local Variables: 27 | // mode:C++ 28 | // End: 29 | -------------------------------------------------------------------------------- /LASzip/stl/slist.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | */ 14 | 15 | #ifndef __SGI_STL_SLIST_H 16 | #define __SGI_STL_SLIST_H 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | #ifdef __STL_USE_NAMESPACES 23 | using __STD::slist; 24 | #endif /* __STL_USE_NAMESPACES */ 25 | 26 | #endif /* __SGI_STL_SLIST_H */ 27 | 28 | // Local Variables: 29 | // mode:C++ 30 | // End: 31 | -------------------------------------------------------------------------------- /LASzip/stl/stack: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_STACK 28 | #define __SGI_STL_STACK 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #endif /* __SGI_STL_STACK */ 38 | 39 | // Local Variables: 40 | // mode:C++ 41 | // End: 42 | -------------------------------------------------------------------------------- /LASzip/stl/stack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_STACK_H 28 | #define __SGI_STL_STACK_H 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | #ifdef __STL_USE_NAMESPACES 37 | using __STD::stack; 38 | using __STD::queue; 39 | using __STD::priority_queue; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_STACK_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/stdexcept: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STDEXCEPT 15 | #define __SGI_STDEXCEPT 16 | 17 | #include 18 | 19 | #if defined(__STL_USE_EXCEPTIONS) || \ 20 | !(defined(_MIPS_SIM) && defined(_ABIO32) && _MIPS_SIM == _ABIO32) 21 | 22 | #include 23 | 24 | __STL_BEGIN_NAMESPACE 25 | 26 | class __Named_exception : public __STL_EXCEPTION_BASE { 27 | public: 28 | __Named_exception(const string& __str) { 29 | strncpy(_M_name, __get_c_string(__str), _S_bufsize); 30 | _M_name[_S_bufsize - 1] = '\0'; 31 | } 32 | virtual const char* what() const __STL_NOTHROW { return _M_name; } 33 | 34 | private: 35 | enum { _S_bufsize = 256 }; 36 | char _M_name[_S_bufsize]; 37 | }; 38 | 39 | class logic_error : public __Named_exception { 40 | public: 41 | logic_error(const string& __s) : __Named_exception(__s) {} 42 | }; 43 | 44 | class runtime_error : public __Named_exception { 45 | public: 46 | runtime_error(const string& __s) : __Named_exception(__s) {} 47 | }; 48 | 49 | class domain_error : public logic_error { 50 | public: 51 | domain_error(const string& __arg) : logic_error(__arg) {} 52 | }; 53 | 54 | class invalid_argument : public logic_error { 55 | public: 56 | invalid_argument(const string& __arg) : logic_error(__arg) {} 57 | }; 58 | 59 | class length_error : public logic_error { 60 | public: 61 | length_error(const string& __arg) : logic_error(__arg) {} 62 | }; 63 | 64 | class out_of_range : public logic_error { 65 | public: 66 | out_of_range(const string& __arg) : logic_error(__arg) {} 67 | }; 68 | 69 | class range_error : public runtime_error { 70 | public: 71 | range_error(const string& __arg) : runtime_error(__arg) {} 72 | }; 73 | 74 | class overflow_error : public runtime_error { 75 | public: 76 | overflow_error(const string& __arg) : runtime_error(__arg) {} 77 | }; 78 | 79 | class underflow_error : public runtime_error { 80 | public: 81 | underflow_error(const string& __arg) : runtime_error(__arg) {} 82 | }; 83 | 84 | __STL_END_NAMESPACE 85 | 86 | #ifndef __SGI_STL_STRING 87 | #include 88 | #endif 89 | 90 | #endif /* Not o32, and no exceptions */ 91 | 92 | #endif /* __SGI_STDEXCEPT */ 93 | 94 | // Local Variables: 95 | // mode:C++ 96 | // End: 97 | -------------------------------------------------------------------------------- /LASzip/stl/stl_ctraits_fns.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1999 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | // WARNING: This is an internal header file, included by other C++ 15 | // standard library headers. You should not attempt to use this header 16 | // file directly. 17 | 18 | #ifndef __SGI_STL_INTERNAL_CTRAITS_FUNCTIONS_H 19 | #define __SGI_STL_INTERNAL_CTRAITS_FUNCTIONS_H 20 | 21 | // This file contains a few small adapters that allow a character 22 | // traits class to be used as a function object. 23 | 24 | __STL_BEGIN_NAMESPACE 25 | 26 | template 27 | struct _Eq_traits 28 | : public binary_function 31 | { 32 | bool operator()(const typename _Traits::char_type& __x, 33 | const typename _Traits::char_type& __y) const 34 | { return _Traits::eq(__x, __y); } 35 | }; 36 | 37 | template 38 | struct _Eq_int_traits 39 | : public binary_function 42 | { 43 | bool operator()(const typename _Traits::char_type& __x, 44 | const typename _Traits::int_type& __y) const 45 | { return _Traits::eq_int_type(_Traits::to_int_type(__x), __y); } 46 | }; 47 | 48 | template 49 | struct _Lt_traits 50 | : public binary_function 53 | { 54 | bool operator()(const typename _Traits::char_type& __x, 55 | const typename _Traits::char_type& __y) const 56 | { return _Traits::lt(__x, __y); } 57 | }; 58 | 59 | __STL_END_NAMESPACE 60 | 61 | #endif /* __SGI_STL_INTERNAL_CTRAITS_FUNCTIONS_H */ 62 | 63 | // Local Variables: 64 | // mode:C++ 65 | // End: 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /LASzip/stl/stl_exception.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1998 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_EXCEPTION_H 15 | #define __SGI_STL_EXCEPTION_H 16 | 17 | // This header exists solely for portability. Normally it just includes 18 | // the header . 19 | 20 | // The header contains low-level functions that interact 21 | // with a compiler's exception-handling mechanism. It is assumed to 22 | // be supplied with the compiler, rather than with the library, because 23 | // it is inherently tied very closely to the compiler itself. 24 | 25 | // On platforms where does not exist, this header defines 26 | // an exception base class. This is *not* a substitute for everything 27 | // in , but it suffices to support a bare minimum of STL 28 | // functionality. 29 | 30 | #include 31 | 32 | #ifndef __STL_NO_EXCEPTION_HEADER 33 | 34 | #include 35 | #define __STL_EXCEPTION_BASE exception 36 | 37 | #else /* __STL_NO_EXCEPTION_HEADER */ 38 | 39 | __STL_BEGIN_NAMESPACE 40 | 41 | class _Exception { 42 | public: 43 | virtual ~_Exception() __STL_NOTHROW {} 44 | virtual const char* what() const __STL_NOTHROW { return ""; } 45 | }; 46 | 47 | #define __STL_EXCEPTION_BASE _Exception 48 | 49 | __STL_END_NAMESPACE 50 | 51 | #endif /* __STL_NO_EXCEPTION_HEADER */ 52 | 53 | #endif /* __SGI_STL_EXCEPTION_H */ 54 | 55 | // Local Variables: 56 | // mode:C++ 57 | // End: 58 | -------------------------------------------------------------------------------- /LASzip/stl/stl_range_errors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1999 3 | * Silicon Graphics 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | * 13 | */ 14 | 15 | #ifndef __STL_RANGE_ERRORS_H 16 | #define __STL_RANGE_ERRORS_H 17 | 18 | // A few places in the STL throw range errors, using standard exception 19 | // classes defined in . This header file provides functions 20 | // to throw those exception objects. 21 | 22 | // __STL_DONT_THROW_RANGE_ERRORS is a hook so that users can disable 23 | // this exception throwing. 24 | 25 | #include 26 | 27 | #if defined(__STL_CAN_THROW_RANGE_ERRORS) && \ 28 | defined(__STL_USE_EXCEPTIONS) && \ 29 | !defined(__STL_DONT_THROW_RANGE_ERRORS) 30 | # define __STL_THROW_RANGE_ERRORS 31 | #endif 32 | 33 | // For the SGI 7.3 compiler, declare these functions here and define them 34 | // elsewhere. 35 | #if defined(__STL_THROW_RANGE_ERRORS) && \ 36 | defined(__sgi) && !defined(__GNUC__) && \ 37 | _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS) 38 | 39 | __STL_BEGIN_NAMESPACE 40 | void __stl_throw_range_error(const char* __msg); 41 | void __stl_throw_length_error(const char* __msg); 42 | __STL_END_NAMESPACE 43 | 44 | // For other compilers where we're throwing range errors, include the 45 | // stdexcept header and throw the appropriate exceptions directly. 46 | #elif defined(__STL_THROW_RANGE_ERRORS) 47 | 48 | #include 49 | 50 | __STL_BEGIN_NAMESPACE 51 | inline void __stl_throw_range_error(const char* __msg) 52 | { throw range_error(__msg); } 53 | inline void __stl_throw_length_error(const char* __msg) 54 | { throw length_error(__msg); } 55 | __STL_END_NAMESPACE 56 | 57 | // Otherwise, define inline functions that do nothing. 58 | #else 59 | 60 | __STL_BEGIN_NAMESPACE 61 | inline void __stl_throw_range_error(const char*) {} 62 | inline void __stl_throw_length_error(const char*) {} 63 | __STL_END_NAMESPACE 64 | 65 | #endif 66 | 67 | #endif /* __STL_RANGE_ERRORS_H */ 68 | 69 | // Local Variables: 70 | // mode:C++ 71 | // End: 72 | -------------------------------------------------------------------------------- /LASzip/stl/stl_raw_storage_iter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | /* NOTE: This is an internal header file, included by other STL headers. 28 | * You should not attempt to use it directly. 29 | */ 30 | 31 | #ifndef __SGI_STL_INTERNAL_RAW_STORAGE_ITERATOR_H 32 | #define __SGI_STL_INTERNAL_RAW_STORAGE_ITERATOR_H 33 | 34 | __STL_BEGIN_NAMESPACE 35 | 36 | template 37 | class raw_storage_iterator { 38 | protected: 39 | _ForwardIterator _M_iter; 40 | public: 41 | typedef output_iterator_tag iterator_category; 42 | typedef void value_type; 43 | typedef void difference_type; 44 | typedef void pointer; 45 | typedef void reference; 46 | 47 | explicit raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} 48 | raw_storage_iterator& operator*() { return *this; } 49 | raw_storage_iterator& operator=(const _Tp& __element) { 50 | construct(&*_M_iter, __element); 51 | return *this; 52 | } 53 | raw_storage_iterator<_ForwardIterator, _Tp>& operator++() { 54 | ++_M_iter; 55 | return *this; 56 | } 57 | raw_storage_iterator<_ForwardIterator, _Tp> operator++(int) { 58 | raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; 59 | ++_M_iter; 60 | return __tmp; 61 | } 62 | }; 63 | 64 | #ifndef __STL_CLASS_PARTIAL_SPECIALIZATION 65 | 66 | template 67 | inline output_iterator_tag 68 | iterator_category(const raw_storage_iterator<_ForwardIterator, _Tp>&) 69 | { 70 | return output_iterator_tag(); 71 | } 72 | 73 | #endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */ 74 | 75 | __STL_END_NAMESPACE 76 | 77 | #endif /* __SGI_STL_INTERNAL_RAW_STORAGE_ITERATOR_H */ 78 | 79 | // Local Variables: 80 | // mode:C++ 81 | // End: 82 | -------------------------------------------------------------------------------- /LASzip/stl/stl_relops.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * Copyright (c) 1996,1997 15 | * Silicon Graphics 16 | * 17 | * Permission to use, copy, modify, distribute and sell this software 18 | * and its documentation for any purpose is hereby granted without fee, 19 | * provided that the above copyright notice appear in all copies and 20 | * that both that copyright notice and this permission notice appear 21 | * in supporting documentation. Silicon Graphics makes no 22 | * representations about the suitability of this software for any 23 | * purpose. It is provided "as is" without express or implied warranty. 24 | * 25 | */ 26 | 27 | /* NOTE: This is an internal header file, included by other STL headers. 28 | * You should not attempt to use it directly. 29 | */ 30 | 31 | #ifndef __SGI_STL_INTERNAL_RELOPS 32 | #define __SGI_STL_INTERNAL_RELOPS 33 | 34 | __STL_BEGIN_RELOPS_NAMESPACE 35 | 36 | template 37 | inline bool operator!=(const _Tp& __x, const _Tp& __y) { 38 | return !(__x == __y); 39 | } 40 | 41 | template 42 | inline bool operator>(const _Tp& __x, const _Tp& __y) { 43 | return __y < __x; 44 | } 45 | 46 | template 47 | inline bool operator<=(const _Tp& __x, const _Tp& __y) { 48 | return !(__y < __x); 49 | } 50 | 51 | template 52 | inline bool operator>=(const _Tp& __x, const _Tp& __y) { 53 | return !(__x < __y); 54 | } 55 | 56 | __STL_END_RELOPS_NAMESPACE 57 | 58 | #endif /* __SGI_STL_INTERNAL_RELOPS */ 59 | 60 | // Local Variables: 61 | // mode:C++ 62 | // End: 63 | -------------------------------------------------------------------------------- /LASzip/stl/stl_string_fwd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1997 3 | * Silicon Graphics Computer Systems, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute and sell this software 6 | * and its documentation for any purpose is hereby granted without fee, 7 | * provided that the above copyright notice appear in all copies and 8 | * that both that copyright notice and this permission notice appear 9 | * in supporting documentation. Silicon Graphics makes no 10 | * representations about the suitability of this software for any 11 | * purpose. It is provided "as is" without express or implied warranty. 12 | */ 13 | 14 | #ifndef __SGI_STL_STRING_FWD_H 15 | #define __SGI_STL_STRING_FWD_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | __STL_BEGIN_NAMESPACE 23 | 24 | template , 26 | class _Alloc = __STL_DEFAULT_ALLOCATOR(_CharT) > 27 | class basic_string; 28 | 29 | typedef basic_string string; 30 | typedef basic_string wstring; 31 | 32 | static const char* __get_c_string(const string&); 33 | 34 | __STL_END_NAMESPACE 35 | 36 | #endif /* __SGI_STL_STRING_FWD_H */ 37 | 38 | // Local Variables: 39 | // mode:C++ 40 | // End: 41 | -------------------------------------------------------------------------------- /LASzip/stl/tempbuf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_TEMPBUF_H 28 | #define __SGI_STL_TEMPBUF_H 29 | 30 | #ifndef __SGI_STL_PAIR_H 31 | #include 32 | #endif 33 | #include /* XXX should use */ 34 | #include /* XXX should use */ 35 | #include /* XXX should use */ 36 | #ifndef __TYPE_TRAITS_H 37 | #include 38 | #endif 39 | #ifndef __SGI_STL_INTERNAL_CONSTRUCT_H 40 | #include 41 | #endif 42 | #ifndef __SGI_STL_INTERNAL_UNINITIALIZED_H 43 | #include 44 | #endif 45 | #ifndef __SGI_STL_INTERNAL_TEMPBUF_H 46 | #include 47 | #endif 48 | 49 | #ifdef __STL_USE_NAMESPACES 50 | 51 | using __STD::get_temporary_buffer; 52 | using __STD::return_temporary_buffer; 53 | using __STD::temporary_buffer; 54 | 55 | #endif /* __STL_USE_NAMESPACES */ 56 | 57 | #endif /* __SGI_STL_TEMPBUF_H */ 58 | 59 | // Local Variables: 60 | // mode:C++ 61 | // End: 62 | -------------------------------------------------------------------------------- /LASzip/stl/tree.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1996,1997 4 | * Silicon Graphics Computer Systems, Inc. 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Silicon Graphics makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1994 16 | * Hewlett-Packard Company 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Hewlett-Packard Company makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | * 26 | * 27 | */ 28 | 29 | #ifndef __SGI_STL_TREE_H 30 | #define __SGI_STL_TREE_H 31 | 32 | #ifndef __SGI_STL_INTERNAL_TREE_H 33 | #include 34 | #endif 35 | #include 36 | #include 37 | 38 | #ifdef __STL_USE_NAMESPACES 39 | using __STD::rb_tree; 40 | #endif /* __STL_USE_NAMESPACES */ 41 | 42 | #endif /* __SGI_STL_TREE_H */ 43 | 44 | // Local Variables: 45 | // mode:C++ 46 | // End: 47 | -------------------------------------------------------------------------------- /LASzip/stl/utility: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996,1997 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_UTILITY 28 | #define __SGI_STL_UTILITY 29 | 30 | #include 31 | #include 32 | #include 33 | 34 | #endif /* __SGI_STL_UTILITY */ 35 | 36 | // Local Variables: 37 | // mode:C++ 38 | // End: 39 | -------------------------------------------------------------------------------- /LASzip/stl/vector: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_VECTOR 28 | #define __SGI_STL_VECTOR 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #endif /* __SGI_STL_VECTOR */ 39 | 40 | // Local Variables: 41 | // mode:C++ 42 | // End: 43 | -------------------------------------------------------------------------------- /LASzip/stl/vector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 1994 4 | * Hewlett-Packard Company 5 | * 6 | * Permission to use, copy, modify, distribute and sell this software 7 | * and its documentation for any purpose is hereby granted without fee, 8 | * provided that the above copyright notice appear in all copies and 9 | * that both that copyright notice and this permission notice appear 10 | * in supporting documentation. Hewlett-Packard Company makes no 11 | * representations about the suitability of this software for any 12 | * purpose. It is provided "as is" without express or implied warranty. 13 | * 14 | * 15 | * Copyright (c) 1996 16 | * Silicon Graphics Computer Systems, Inc. 17 | * 18 | * Permission to use, copy, modify, distribute and sell this software 19 | * and its documentation for any purpose is hereby granted without fee, 20 | * provided that the above copyright notice appear in all copies and 21 | * that both that copyright notice and this permission notice appear 22 | * in supporting documentation. Silicon Graphics makes no 23 | * representations about the suitability of this software for any 24 | * purpose. It is provided "as is" without express or implied warranty. 25 | */ 26 | 27 | #ifndef __SGI_STL_VECTOR_H 28 | #define __SGI_STL_VECTOR_H 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | 35 | #ifdef __STL_USE_NAMESPACES 36 | using __STD::vector; 37 | #endif /* __STL_USE_NAMESPACES */ 38 | 39 | #endif /* __SGI_STL_VECTOR_H */ 40 | 41 | // Local Variables: 42 | // mode:C++ 43 | // End: 44 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | cd LASlib && make 3 | cd LASzip && make 4 | cd src && make 5 | # cd src_full && make 6 | 7 | clean: 8 | cd LASlib && make clean 9 | cd LASzip && make clean 10 | cd src && make clean 11 | # cd src_full && make clean 12 | 13 | clobber: 14 | cd LASlib && make clobber 15 | cd LASzip && make clobber 16 | cd src && make clobber 17 | # cd src_full && make clobber 18 | cd bin && rm -rf lasinfo laszip lasprecision las2txt txt2las las2las lasdiff lasmerge lasthin las2shp shp2las las2iso las2tin lasboundary lasview las2dem 19 | -------------------------------------------------------------------------------- /QGIS_toolbox/QGIS_1_8_toolbox.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/QGIS_toolbox/QGIS_1_8_toolbox.zip -------------------------------------------------------------------------------- /QGIS_toolbox/QGIS_2_0_toolbox.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/QGIS_toolbox/QGIS_2_0_toolbox.zip -------------------------------------------------------------------------------- /QGIS_toolbox/QGIS_2_2_toolbox.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/QGIS_toolbox/QGIS_2_2_toolbox.zip -------------------------------------------------------------------------------- /QGIS_toolbox/QGIS_2_4_toolbox.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/QGIS_toolbox/QGIS_2_4_toolbox.zip -------------------------------------------------------------------------------- /QGIS_toolbox/QGIS_2_8_toolbox_bug_fixes.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/QGIS_toolbox/QGIS_2_8_toolbox_bug_fixes.zip -------------------------------------------------------------------------------- /QGIS_toolbox/README.txt: -------------------------------------------------------------------------------- 1 | **************************************************************** 2 | 3 | The LAStools LiDAR processing toolbox for QGIS 1.8.0 - 2.6.1 4 | 5 | (c) 2013-2014 - martin.isenburg@rapidlasso.com 6 | 7 | rapidlasso GmbH - fast tools to catch reality 8 | 9 | legal details: http://rapidlasso.com/LICENSE.txt 10 | 11 | **************************************************************** 12 | 13 | For QGIS 1.8, 2.0, and 2.2 follow all steps in this blog 14 | 15 | http://rapidlasso.com/2013/09/29/how-to-install-lastools-toolbox-in-qgis/ 16 | 17 | For the old QGIS 2.4 toolbox there is nothing to copy. Simply 18 | enable the "Tools for LiDAR Data" and set the LAStools path to 19 | your installation (e.g. skip directly to step 4 of the blog 20 | and disregard most of step 6). 21 | 22 | ================================================================ 23 | 24 | For the new and improved LAStools toolbox for QGIS 2.4 created 25 | during the QGIS hackfest in Essen use the QGIS_2_4_toolbox.zip 26 | file. First, rename the current 'processing' (sub-)folder of 27 | your QGIS install that is located here: 28 | 29 | C:/Program Files/QGIS Chugiak/apps/qgis/python/plugins/processing 30 | 31 | to something like this: 32 | 33 | C:/Program Files/QGIS Chugiak/apps/qgis/python/plugins/processing_org 34 | 35 | and then put the contents of the downloaded QGIS_2_4_toolbox.zip 36 | ZIP archive - which contains a folder called 'processing' - in 37 | the place of the folder that was just renamed. If you have trouble 38 | there is some more information here: 39 | 40 | http://rapidlasso.com/2013/09/29/how-to-install-lastools-toolbox-in-qgis/ 41 | 42 | If you have problems make sure you read *ALL* the comments to this 43 | blog article or add some new comments detailing your troubles. 44 | 45 | For our Spanish-speaking LiDAR friends ... check these two blogs: 46 | 47 | http://digimapas.blogspot.com.es/2015/04/lidar-en-qgis-lastools.html 48 | http://mappinggis.com/2015/04/como-configurar-lastools-en-qgis/ 49 | 50 | ================================================================ 51 | 52 | For QGIS 2.6 the latest toolbox is already included. But maybe 53 | have a look what was said in this discussion: 54 | 55 | http://groups.google.com/d/topic/lastools/ktyrnfDjrQ4/discussion 56 | 57 | ================================================================ 58 | 59 | For QGIS 2.8 all is great. For small bug fixes copy and replace 60 | the scripts of the "QGIS_2_8_toolbox_bug_fixes.zip" archive into 61 | whatever path corresponds in your installation to this one: 62 | 63 | C:\Program Files\QGIS Wien\apps\qgis\python\plugins\processing\algs\lidar\lastools 64 | 65 | ================================================================ 66 | 67 | For QGIS 2.10 all is great. 68 | -------------------------------------------------------------------------------- /bin/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/7z.exe -------------------------------------------------------------------------------- /bin/blast/LICENSE.txt: -------------------------------------------------------------------------------- 1 | LICENSE AGREEMENT: 2 | 3 | The BLAST extension pack as well as LAStools requires a license for 4 | commercial and/or any type of production use be it by a government 5 | or an industry entity. Please contact martin@rapidlasso.com if you 6 | need to clarify the licensing terms. 7 | 8 | (c) 2007-2015 martin isenburg, rapidlasso - fast tools to catch reality 9 | -------------------------------------------------------------------------------- /bin/blast/sl2sl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/sl2sl.exe -------------------------------------------------------------------------------- /bin/blast/slclean.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/slclean.exe -------------------------------------------------------------------------------- /bin/blast/slsimp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/slsimp.exe -------------------------------------------------------------------------------- /bin/blast/smsmooth.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/smsmooth.exe -------------------------------------------------------------------------------- /bin/blast/smsonar.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/smsonar.exe -------------------------------------------------------------------------------- /bin/blast/spdelaunay2d.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/spdelaunay2d.exe -------------------------------------------------------------------------------- /bin/blast/spfinalize.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/spfinalize.exe -------------------------------------------------------------------------------- /bin/blast/tin2dem.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/tin2dem.exe -------------------------------------------------------------------------------- /bin/blast/tin2iso.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast/tin2iso.exe -------------------------------------------------------------------------------- /bin/blast2dem.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast2dem.exe -------------------------------------------------------------------------------- /bin/blast2iso.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/blast2iso.exe -------------------------------------------------------------------------------- /bin/bytecopy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/bytecopy.exe -------------------------------------------------------------------------------- /bin/e572las.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/e572las.exe -------------------------------------------------------------------------------- /bin/gzip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/gzip.exe -------------------------------------------------------------------------------- /bin/las2dem.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2dem.exe -------------------------------------------------------------------------------- /bin/las2iso.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2iso.exe -------------------------------------------------------------------------------- /bin/las2las.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2las.exe -------------------------------------------------------------------------------- /bin/las2shp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2shp.exe -------------------------------------------------------------------------------- /bin/las2tin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2tin.exe -------------------------------------------------------------------------------- /bin/las2txt.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/las2txt.exe -------------------------------------------------------------------------------- /bin/lasboundary.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasboundary.exe -------------------------------------------------------------------------------- /bin/lascanopy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lascanopy.exe -------------------------------------------------------------------------------- /bin/lasclassify.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasclassify.exe -------------------------------------------------------------------------------- /bin/lasclip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasclip.exe -------------------------------------------------------------------------------- /bin/lascolor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lascolor.exe -------------------------------------------------------------------------------- /bin/lascontrol.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lascontrol.exe -------------------------------------------------------------------------------- /bin/lasdiff.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasdiff.exe -------------------------------------------------------------------------------- /bin/lasduplicate.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasduplicate.exe -------------------------------------------------------------------------------- /bin/lasgrid.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasgrid.exe -------------------------------------------------------------------------------- /bin/lasground.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasground.exe -------------------------------------------------------------------------------- /bin/lasground_new.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasground_new.exe -------------------------------------------------------------------------------- /bin/lasheight.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasheight.exe -------------------------------------------------------------------------------- /bin/lasindex.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasindex.exe -------------------------------------------------------------------------------- /bin/lasindex_README.txt: -------------------------------------------------------------------------------- 1 | **************************************************************** 2 | 3 | lasindex: 4 | 5 | Creates a *.lax file for a given *.las or *.laz file that 6 | contains spatial indexing information. When this LAX file is 7 | present it will be used to speed up access to the relevant 8 | areas of the LAS/LAZ file whenever a spatial queries of the 9 | type 10 | 11 | -inside_tile ll_x ll_y size 12 | -inside_circle center_x center_y radius 13 | -inside_rectangle min_x min_y max_x max_y (or simply -inside) 14 | 15 | appears in the command line of any LAStools invocation. This 16 | acceleration is also available to users of the LASlib API. The 17 | LASreader class has three new functions called 18 | 19 | BOOL inside_tile(F32 ll_x, F32 ll_y, F32 size); 20 | BOOL inside_circle(F64 center_x, F64 center_y, F64 radius); 21 | BOOL inside_rectangle(F64 min_x, F64 min_y, F64 max_x, F64 max_y); 22 | 23 | if any of these functions is called the LASreader will only 24 | return the points that fall inside the specified region and 25 | use - when available - the spatial indexing information in the 26 | LAX file created by lasindex. 27 | 28 | For updates check the website or join the LAStools mailing list. 29 | 30 | http://lastools.org/ 31 | http://groups.google.com/group/lastools/ 32 | http://twitter.com/lastools/ 33 | http://facebook.com/lastools/ 34 | http://linkedin.com/groups?gid=4408378 35 | 36 | Martin @lastools 37 | 38 | **************************************************************** 39 | 40 | example usage: 41 | 42 | >> lasindex -i *.las 43 | 44 | creates a spatial indexing file for all LAS files *.las 45 | 46 | >> lasindex -i in.las 47 | 48 | created a spatial indexing file called 'in.lax' that need to be 49 | in the same folder as the file 'in.las' to be useful. If you 50 | modify the spatial location of the points in the LAS file or 51 | their order then you need to recreate the LAX file. 52 | 53 | --------------- 54 | 55 | if you find bugs let me (martin.isenburg@rapidlasso.com) know. -------------------------------------------------------------------------------- /bin/lasinfo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasinfo.exe -------------------------------------------------------------------------------- /bin/laslayers.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/laslayers.exe -------------------------------------------------------------------------------- /bin/lasmerge.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasmerge.exe -------------------------------------------------------------------------------- /bin/lasnoise.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasnoise.exe -------------------------------------------------------------------------------- /bin/lasoverage.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasoverage.exe -------------------------------------------------------------------------------- /bin/lasoverlap.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasoverlap.exe -------------------------------------------------------------------------------- /bin/lasplanes.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasplanes.exe -------------------------------------------------------------------------------- /bin/lasprecision.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasprecision.exe -------------------------------------------------------------------------------- /bin/lassort.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lassort.exe -------------------------------------------------------------------------------- /bin/lassplit.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lassplit.exe -------------------------------------------------------------------------------- /bin/lasthin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasthin.exe -------------------------------------------------------------------------------- /bin/lastile.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lastile.exe -------------------------------------------------------------------------------- /bin/lastool.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lastool.exe -------------------------------------------------------------------------------- /bin/lastool_README.txt: -------------------------------------------------------------------------------- 1 | **************************************************************** 2 | 3 | lastool 4 | 5 | One tool to rule them all - a simple GUI for LAStools. 6 | 7 | Please license from martin.isenburg@rapidlasso.com to use lastool 8 | commercially. 9 | 10 | For updates check the website or join the LAStools mailing list. 11 | 12 | http://lastools.org/ 13 | http://groups.google.com/group/lastools/ 14 | http://twitter.com/lastools/ 15 | http://facebook.com/lastools/ 16 | http://linkedin.com/groups?gid=4408378 17 | 18 | Martin @lastools 19 | 20 | acknowledgment: 21 | The GUI of lastool is realized with Paul Rademacher's GLUI - a 22 | GLUT-based C++ user interface library which provides controls 23 | such as buttons, checkboxes, radio buttons, and spinners to 24 | OpenGL applications. see: http://www.cs.unc.edu/~rademach/glui/ 25 | 26 | **************************************************************** 27 | 28 | example usage: 29 | 30 | >> lastool 31 | >> lastool -i terrain.las 32 | >> lastool -i flight1.las flight2.las flight3.las 33 | >> lastool -i *.las 34 | >> lastool -i *.laz 35 | >> lastool -i C:\data\lake_superior\*.las 36 | 37 | loads some preview information of the listed files into the 38 | bounding box view of the lastool GUI. 39 | 40 | for more info: 41 | 42 | C:\lastools\bin> lastool -h 43 | Please note that LAStools is not "free" (see http://lastools.org/LICENSE.txt) 44 | contact 'martin.isenburg@rapidlasso.com' to clarify licensing terms if needed. 45 | LAStools (by martin@rapidlasso.com) version 140615 46 | usage: 47 | lastool 48 | lastool -i *.las 49 | lastool -i c:\data\lake_superior\*.laz 50 | lastool -i flight1*.laz flight2*.laz 51 | lastool -i lidar1.las lidar2.las lidar3.las lidar4.las 52 | lastool -i *.txt -iparse xyziat 53 | lastool -h 54 | 55 | --------------- 56 | 57 | if you find bugs let me (martin.isenburg@rapidlasso.com) know 58 | -------------------------------------------------------------------------------- /bin/lastrack.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lastrack.exe -------------------------------------------------------------------------------- /bin/lasvalidate.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasvalidate.exe -------------------------------------------------------------------------------- /bin/lasview.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/lasview.exe -------------------------------------------------------------------------------- /bin/laszip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/laszip.exe -------------------------------------------------------------------------------- /bin/shp2las.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/shp2las.exe -------------------------------------------------------------------------------- /bin/shp2las_README.txt: -------------------------------------------------------------------------------- 1 | **************************************************************** 2 | 3 | shp2las: 4 | 5 | Converts from points from ESRI's Shapefile to LAS/LAZ/ASCII 6 | format given the input contains Points or MultiPoints (that 7 | is any of the shape types 1,11,21,8,18,28). 8 | 9 | Allows adding a VLR to the header with projection information. 10 | 11 | Please license from martin.isenburg@rapidlasso.com to use shp2las 12 | commercially. 13 | 14 | For updates check the website or join the LAStools mailing list. 15 | 16 | http://lastools.org/ 17 | http://groups.google.com/group/lastools/ 18 | http://twitter.com/lastools/ 19 | http://facebook.com/lastools/ 20 | http://linkedin.com/groups?gid=4408378 21 | 22 | Martin @lastools 23 | 24 | **************************************************************** 25 | 26 | example usage: 27 | 28 | >> shp2las lidar.shp 29 | 30 | converts the ESRI's Shapefile 'lidar.shp' to the LAS file 'lidar.las' 31 | 32 | >> shp2las -compress lidar.shp 33 | 34 | converts 'lidar.shp' to the compressed LAZ file 'lidar.laz' 35 | 36 | >> shp2las -set_scale 0.001 0.001 0.001 -i lidar.shp -o lidar.las 37 | 38 | converts 'lidar.shp' to the LAS file 'lidar.las' with the specified scale 39 | 40 | >> shp2las -i lidar.shp -o lidar.laz -set_offset 500000 4000000 41 | 42 | converts 'lidar.shp' to the compressed LAZ file 'lidar.laz' with the specified offsey 43 | 44 | >> shp2las -i lidar.shp -o lidar.las -v 45 | 46 | converts 'lidar.shp' to the LAS file 'lidar.las' and outputs some of 47 | the header information found in the SHP file 48 | 49 | C:\lastools\bin>shp2las -h 50 | Supported LAS Outputs 51 | -o lidar.las 52 | -o lidar.laz 53 | -o xyzta.txt -oparse xyzta (on-the-fly to ASCII) 54 | -olas -olaz -otxt (specify format) 55 | -stdout (pipe to stdout) 56 | -nil (pipe to NULL) 57 | usage: 58 | shp2las -i lidar.shp 59 | shp2las -i lidar.shp -compress 60 | shp2las -i lidar.shp -o lidar.las -utm 12S 61 | shp2las -set_offset 500000 4000000 -ishp -o lidar.laz < lidar.shp 62 | shp2las -set_scale 0.001 0.001 0.001 0 lidar.shp lidar.las 63 | shp2las -h 64 | --------------------------------------------- 65 | Other parameters are 66 | '-set_scale 0.05 0.05 0.001' 67 | '-set_offset 500000 2000000 0' 68 | '-set_file_creation 67 2011' 69 | '-set_system_identifier "Riegl 500,000 Hz"' 70 | '-set_generating_software "LAStools"' 71 | '-utm 14T' 72 | '-sp83 CA_I -feet -elevation_survey_feet' 73 | '-longlat -elevation_feet' 74 | 75 | --------------- 76 | 77 | if you find bugs let me (martin.isenburg@rapidlasso.com) know. 78 | -------------------------------------------------------------------------------- /bin/sonarnoiseblaster.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/sonarnoiseblaster.exe -------------------------------------------------------------------------------- /bin/txt2las.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/txt2las.exe -------------------------------------------------------------------------------- /bin/unzip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/bin/unzip.exe -------------------------------------------------------------------------------- /data/TO_city_hall.dbf: -------------------------------------------------------------------------------- 1 |  !W -------------------------------------------------------------------------------- /data/TO_city_hall.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/TO_city_hall.shp -------------------------------------------------------------------------------- /data/TO_city_hall.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/TO_city_hall.shx -------------------------------------------------------------------------------- /data/TO_core_last_zoom.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/TO_core_last_zoom.laz -------------------------------------------------------------------------------- /data/dallas1.xyzcirn.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/dallas1.xyzcirn.gz -------------------------------------------------------------------------------- /data/dallas2.xyzcirn.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/dallas2.xyzcirn.gz -------------------------------------------------------------------------------- /data/dallas3.xyzcirn.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/dallas3.xyzcirn.gz -------------------------------------------------------------------------------- /data/dallas4.xyzcirn.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/dallas4.xyzcirn.gz -------------------------------------------------------------------------------- /data/fusa.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/fusa.laz -------------------------------------------------------------------------------- /data/house.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/house.laz -------------------------------------------------------------------------------- /data/lake.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/lake.laz -------------------------------------------------------------------------------- /data/lake_breakline.dbf: -------------------------------------------------------------------------------- 1 | p!W  -------------------------------------------------------------------------------- /data/lake_breakline.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/lake_breakline.shp -------------------------------------------------------------------------------- /data/lake_breakline.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/lake_breakline.shx -------------------------------------------------------------------------------- /data/sample.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/sample.laz -------------------------------------------------------------------------------- /data/test.laz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/data/test.laz -------------------------------------------------------------------------------- /example_batch_scripts/classify_lidar.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for classifying a single LAS file 3 | :: 4 | 5 | echo off 6 | 7 | set PATH=%PATH%;C:\lastools\bin; 8 | 9 | lasground -v -i %1 -city -fine -o temp1.las 10 | lasheight -i temp1.las -o temp2.las 11 | del temp1.las 12 | lasclassify -v -i temp2.las -o %1 -odix _classified -olaz 13 | del temp2.las 14 | -------------------------------------------------------------------------------- /example_batch_scripts/create_single_hillshaded_dtm.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/example_batch_scripts/create_single_hillshaded_dtm.bat -------------------------------------------------------------------------------- /example_batch_scripts/create_tiled_hillshaded_dtm.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/example_batch_scripts/create_tiled_hillshaded_dtm.bat -------------------------------------------------------------------------------- /example_batch_scripts/do_not_use.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: a batch script for quality checking of poor tiles 3 | :: 4 | 5 | :: 6 | :: specify parameters 7 | :: 8 | 9 | :: allows you to run the script from other folders 10 | set PATH=%PATH%;D:\lastools\bin; 11 | 12 | :: here we specify the directory (e.g. the folder) in which the 13 | :: bad tiles are stored 14 | set BAD_TILES_FOLDER=D:\data_fiji\FMG1986 15 | 16 | :: here we specify in which format the bad tiles are stored in 17 | :: the BAD_TILES_FOLDER folder 18 | set TILE_FORMAT=laz 19 | 20 | :: here we specify the directory (e.g. the folder) in which the 21 | :: temporary files are stored 22 | set TEMP_FILES=D:\data_fiji\temp 23 | 24 | :: here we specify the directory (e.g. the folder) in which the 25 | :: resulting quality reports are stored 26 | set OUTPUT_DIRECTORY=D:\data_fiji\quality 27 | 28 | :: here we specify the number of cores we want to run on 29 | set NUM_CORES=7 30 | 31 | rmdir %TEMP_FILES% /s /q 32 | 33 | :: 34 | :: loop over all bad tiles 35 | :: 36 | 37 | for %%f IN (%BAD_TILES_FOLDER%\*.%TILE_FORMAT%) DO ( 38 | ::FOR /R %%f IN (*.*) DO ( 39 | ECHO processing %BAD_TILES_FOLDER%\%%~nxf to %OUTPUT_DIRECTORY%\%%~nf.png 40 | mkdir %TEMP_FILES% 41 | CALL lassplit -i %BAD_TILES_FOLDER%\%%~nxf -by_gps_time_interval 500 -olaz -odir %TEMP_FILES% 42 | CALL lasoverlap -i %TEMP_FILES%\*.laz -files_are_flightlines -o %OUTPUT_DIRECTORY%\%%~nf.png -utm 60K 43 | rmdir %TEMP_FILES% /s /q 44 | ) 45 | 46 | echo "bye bye" 47 | -------------------------------------------------------------------------------- /example_batch_scripts/generating_a_pit_free_chm.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: a batch script for generating a pit-free CHM as outlined 3 | :: in the Silvilaser 2013 poster by A. Khosravipour et al. 4 | :: 5 | 6 | :: 7 | :: specify parameters 8 | :: 9 | 10 | :: allows you to run the script from other folders 11 | set PATH=%PATH%;D:\lastools\bin; 12 | 13 | :: here we specify the input (already height-normalized) 14 | set NORMALIZED_LIDAR=D:\data\normalized\bois_noir.laz 15 | 16 | :: specify the desired resolution 17 | set STEP=0.5 18 | 19 | :: specify the desired triangle kill (about 3 times the step) 20 | set KILL=1.5 21 | 22 | :: specify a temporary directory for the partial CHMs 23 | set TEMP_CHM_DIR=temp_chms 24 | 25 | :: specify the final output CHM file name and format 26 | set PIT_FREE_CHM=D:\data\result\chm.tif 27 | 28 | rmdir %TEMP_CHM_DIR% /s /q 29 | mkdir %TEMP_CHM_DIR% 30 | 31 | :: 32 | :: do the actual processing 33 | :: 34 | 35 | blast2dem -i %NORMALIZED_LIDAR% ^ 36 | -keep_first ^ 37 | -step %STEP% ^ 38 | -odir %TEMP_CHM_DIR% -odix _00 -obil 39 | 40 | blast2dem -i %NORMALIZED_LIDAR% ^ 41 | -keep_first -drop_z_below 2 ^ 42 | -step %STEP% -kill %KILL% ^ 43 | -odir %TEMP_CHM_DIR% -odix _02 -obil 44 | 45 | blast2dem -i %NORMALIZED_LIDAR% ^ 46 | -keep_first -drop_z_below 5 ^ 47 | -step %STEP% -kill %KILL% ^ 48 | -odir %TEMP_CHM_DIR% -odix _05 -obil 49 | 50 | blast2dem -i %NORMALIZED_LIDAR% ^ 51 | -keep_first -drop_z_below 10 ^ 52 | -step %STEP% -kill %KILL% ^ 53 | -odir %TEMP_CHM_DIR% -odix _10 -obil 54 | 55 | blast2dem -i %NORMALIZED_LIDAR% ^ 56 | -keep_first -drop_z_below 15 ^ 57 | -step %STEP% -kill %KILL% ^ 58 | -odir %TEMP_CHM_DIR% -odix _15 -obil 59 | 60 | :: this would be sufficient for forests with tree height 61 | :: of up to about 20 meter. maybe delete higher up steps 62 | 63 | blast2dem -i %NORMALIZED_LIDAR% ^ 64 | -keep_first -drop_z_below 20 ^ 65 | -step %STEP% -kill %KILL% ^ 66 | -odir %TEMP_CHM_DIR% -odix _20 -obil 67 | 68 | blast2dem -i %NORMALIZED_LIDAR% ^ 69 | -keep_first -drop_z_below 25 ^ 70 | -step %STEP% -kill %KILL% ^ 71 | -odir %TEMP_CHM_DIR% -odix _25 -obil 72 | 73 | blast2dem -i %NORMALIZED_LIDAR% ^ 74 | -keep_first -drop_z_below 30 ^ 75 | -step %STEP% -kill %KILL% ^ 76 | -odir %TEMP_CHM_DIR% -odix _30 -obil 77 | 78 | :: merge partial CHMs together into pit-free CHM 79 | 80 | lasgrid -i %TEMP_CHM_DIR%\*.bil -merged ^ 81 | -step %STEP% -highest ^ 82 | -o %PIT_FREE_CHM% 83 | 84 | :: remove the temporary files and directory 85 | 86 | rmdir %TEMP_CHM_DIR% /s /q 87 | 88 | echo "bye bye" 89 | -------------------------------------------------------------------------------- /example_batch_scripts/huge_las_file_classify_ground.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for ground classifying points in a single 3 | :: huge LAS/LAZ file 4 | :: 5 | 6 | echo off 7 | 8 | set PATH=%PATH%;C:\lastools\bin; 9 | 10 | :: create temporary tile directory 11 | 12 | rmdir temp_tiles /s /q 13 | mkdir temp_tiles 14 | 15 | :: create a temporary and reversible tiling with tile size 500 and buffer 50 16 | 17 | lastile -i %1 ^ 18 | -reversible -tile_size 500 -buffer 50 ^ 19 | -o temp_tiles\tile.laz -olaz 20 | 21 | :: create another temporary tile directory 22 | 23 | rmdir temp_tiles_ground /s /q 24 | mkdir temp_tiles_ground 25 | 26 | :: run lasground on all temporary tiles on 3 cores 27 | 28 | lasground -i temp_tiles\tile*.laz ^ 29 | -town -extra_fine ^ 30 | -odir temp_tiles_ground -olaz ^ 31 | -cores 3 32 | 33 | :: delete temporary tile directory 34 | 35 | rmdir temp_tiles /s /q 36 | 37 | :: recreate ground classified huge LAS / LAZ file 38 | 39 | lastile -i temp_tiles_ground\tile*.laz ^ 40 | -reverse_tiling ^ 41 | -o %1 -odix _ground -olaz 42 | 43 | :: delete other temporary tile directory 44 | 45 | rmdir temp_tiles_ground /s /q 46 | -------------------------------------------------------------------------------- /example_batch_scripts/huge_las_file_delete_duplicates.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for removing xyz duplicate points in a single 3 | :: huge LAS/LAZ file 4 | :: 5 | 6 | echo off 7 | 8 | set PATH=%PATH%;C:\lastools\bin; 9 | 10 | :: create temporary tile directory 11 | 12 | mkdir temp_tiles 13 | 14 | :: create a temporary and reversible tiling with tile size 500 15 | 16 | lastile -i %1 ^ 17 | -reversible -tile_size 500 ^ 18 | -o temp_tiles\tile.laz -olaz 19 | 20 | :: create another temporary tile directory 21 | 22 | mkdir temp_tiles_duplicate 23 | 24 | :: remove unique xyz duplicates in all temporary tiles on 3 cores 25 | 26 | lasduplicate -i temp_tiles\tile*.laz ^ 27 | -unique_xyz ^ 28 | -odir temp_tiles_duplicate -olaz ^ 29 | -cores 3 30 | 31 | :: delete temporary tile directory 32 | 33 | rmdir temp_tiles /s /q 34 | 35 | :: recreate huge LAS / LAZ file without duplicates 36 | 37 | lastile -i temp_tiles_duplicate\tile*.laz ^ 38 | -reverse_tiling ^ 39 | -o %1 -odix _no_dup 40 | 41 | :: delete other temporary tile directory 42 | 43 | rmdir temp_tiles_duplicate /s /q 44 | -------------------------------------------------------------------------------- /example_batch_scripts/huge_las_file_sort_by_gpstime.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for sorting points by their GPS time for 3 | :: a single huge LAS/LAZ file 4 | :: 5 | 6 | echo off 7 | 8 | set PATH=%PATH%;..\bin; 9 | 10 | :: create temporary split directory 11 | 12 | rmdir temp_split /s /q 13 | mkdir temp_split 14 | 15 | :: create a temporary splitting of the file into 100 second splits 16 | 17 | lassplit -i %1 ^ 18 | -by_gps_time_interval 100 -digits 6 ^ 19 | -o temp_split\split.laz -olaz 20 | 21 | :: create another temporary tile directory 22 | 23 | rmdir temp_split_sorted /s /q 24 | mkdir temp_split_sorted 25 | 26 | :: run lassort on all temporary split files on 3 cores 27 | 28 | lassort -i temp_split\split*.laz ^ 29 | -gps_time ^ 30 | -odir temp_split_sorted -olaz ^ 31 | -cores 3 32 | 33 | :: delete temporary split directory 34 | 35 | rmdir temp_split /s /q 36 | 37 | :: merge the sorted split files into one huge LAS / LAZ file 38 | 39 | lasmerge -i temp_split_sorted\split*.laz ^ 40 | -o %1 -odix _sorted -olaz 41 | 42 | :: delete other temporary tile directory 43 | 44 | rmdir temp_split_sorted /s /q 45 | -------------------------------------------------------------------------------- /example_batch_scripts/huge_las_file_sort_spatial_coherence.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for sorting points by their GPS time for 3 | :: a single huge LAS/LAZ file 4 | :: 5 | 6 | echo off 7 | 8 | set PATH=%PATH%;..\bin; 9 | 10 | :: create temporary tiles directory 11 | 12 | rmdir temp_tiles /s /q 13 | mkdir temp_tiles 14 | 15 | :: create a temporary tiling of the file into 400 by 400 meter tiles 16 | 17 | lastile -i %1 ^ 18 | -tile_size 400 ^ 19 | -o temp_tiles\tiles.laz -olaz 20 | 21 | :: create another temporary tile directory 22 | 23 | rmdir temp_tiles_sorted /s /q 24 | mkdir temp_tiles_sorted 25 | 26 | :: run lassort on all temporary tiled files on 3 cores 27 | 28 | lassort -i temp_tiles\split*.laz ^ 29 | -odir temp_tiles_sorted -olaz ^ 30 | -cores 3 31 | 32 | :: delete temporary split directory 33 | 34 | rmdir temp_tiles /s /q 35 | 36 | :: merge the sorted tiles files back into one huge LAS / LAZ file 37 | 38 | lasmerge -i temp_tiles_sorted\split*.laz ^ 39 | -o %1 -odix _sorted -olaz 40 | 41 | :: delete other temporary tile directory 42 | 43 | rmdir temp_tiles_sorted /s /q 44 | -------------------------------------------------------------------------------- /example_batch_scripts/huge_las_file_thin_with_fine_grid.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for thinning a single huge LAS/LAZ file 3 | :: with a very very fine grid 4 | :: 5 | 6 | echo off 7 | 8 | :: 9 | :: specify parameters 10 | :: 11 | 12 | :: allows you to run the script from other folders 13 | set PATH=%PATH%;D:\lastools\bin; 14 | 15 | :: specify the resolution of the thinning grid 16 | set STEP=0.05 17 | 18 | :: specify the size of the temporary tiles. it is important that 19 | :: the tile size can be evenly divided by the grid resolution 20 | :: meaning that TILE_SIZE/STEP is XXXX.0 without decimal digits 21 | set TILE_SIZE=500 22 | 23 | :: specify the number of cores to run on 24 | set NUM_CORES=3 25 | 26 | :: specify the name for temporary directory 27 | set TEMP_DIR=temp_dir_thinning 28 | 29 | :: 30 | :: do the actual processing 31 | :: 32 | 33 | :: create temporary tile directory 34 | 35 | rmdir %TEMP_DIR% /s /q 36 | mkdir %TEMP_DIR% 37 | 38 | :: create a temporary tiling with TILE_SIZE 39 | 40 | lastile -i %1 ^ 41 | -tile_size %TILE_SIZE% ^ 42 | -o %TEMP_DIR%\tile.laz -olaz 43 | 44 | :: thins the tiles on NUM_CORES 45 | 46 | lasthin -i %TEMP_DIR%\tile*.laz ^ 47 | -step %STEP% -lowest ^ 48 | -odix _thinned -olaz ^ 49 | -cores %NUM_CORES% 50 | 51 | :: recreate the (less huge) thinned LAS / LAZ file 52 | 53 | lasmerge -i %TEMP_DIR%\tile*_thinned.laz ^ 54 | -o %1 -odix _thinned 55 | 56 | :: delete the temporary tile directory 57 | 58 | rmdir %TEMP_DIR% /s /q 59 | -------------------------------------------------------------------------------- /example_batch_scripts/lidar_to_dtm_dsm_iso_laz_tiles.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: an example batch script for converting raw flight 3 | :: lines into a number of products with a tile-based 4 | :: multi-core batch pipeline 5 | :: 6 | 7 | set PATH=%PATH%;C:\lastools\bin; 8 | 9 | :: create point density grid for entire project 10 | 11 | lasgrid -i flightlines\*.laz -merged ^ 12 | -density -step 10 -false -set_min_max 0 200 ^ 13 | -o density.png 14 | 15 | :: create buffered tiling 16 | 17 | mkdir tiles_raw 18 | lastile -i flightlines\*.laz -files_are_flightlines ^ 19 | -tile_size 1000 -buffer 50 ^ 20 | -o tiles_raw\tile -olaz 21 | 22 | :: ground classify all tiles 23 | 24 | mkdir tiles_ground 25 | lasground -i tiles_raw\tile*.laz ^ 26 | -extra_fine ^ 27 | -odir tiles_ground -olaz ^ 28 | -cores 7 29 | 30 | :: create raster DTM hillshades (2 meters) 31 | 32 | mkdir tiles_dtm 33 | las2dem -i tiles_ground\*.laz ^ 34 | -keep_class 2 -extra_pass -step 2 -use_tile_bb -hillshade ^ 35 | -odir tiles_dtm -opng ^ 36 | -cores 7 37 | 38 | :: classify vegetation and remove high and low points 39 | 40 | mkdir tiles_classified 41 | lasheight -i tiles_ground\*.laz ^ 42 | -drop_below -5 -drop_above 100 ^ 43 | -classify_between 0.5 2 3 -classify_between 2 5 4 -classify_between 5 100 5 ^ 44 | -odir tiles_classified -olaz ^ 45 | -cores 7 46 | 47 | :: create raster DSM hillshades (2 meters) 48 | 49 | mkdir tiles_dsm 50 | las2dem -i tiles_classified\*.laz ^ 51 | -first_only -step 2 -use_tile_bb -hillshade ^ 52 | -odir tiles_dsm -opng ^ 53 | -cores 7 54 | 55 | :: remove buffer and make clean LAZ tiles as product 56 | 57 | mkdir tiles_final 58 | lastile -i tiles_classified\*.laz ^ 59 | -remove_buffer -set_user_data 0 ^ 60 | -odir tiles_final -olaz 61 | 62 | :: create contours for final tiles 63 | 64 | mkdir tiles_contours 65 | las2iso -i tiles_final\*.laz ^ 66 | -keep_class 2 -extra_pass -iso_every 2 -smooth 2 -simplify 1 -clean 5 ^ 67 | -odir tiles_contours -oshp ^ 68 | -cores 7 69 | 70 | :: create single raster DTM hillshade (2 meters) 71 | 72 | blast2dem -i tiles_final\*.laz -merged ^ 73 | -keep_class 2 -step 2 -hillshade ^ 74 | -o dtm.png 75 | 76 | :: create single raster DSM hillshade (2 meters) 77 | 78 | blast2dem -i tiles_final\*.laz -merged ^ 79 | -first_only -step 2 -hillshade ^ 80 | -o dsm.png 81 | -------------------------------------------------------------------------------- /example_batch_scripts/quality_check_across_blocks.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: Quality check across blocks (using their coarse DTMs as proxies) 3 | :: 4 | 5 | set PATH=%PATH%;D:\LAStools\bin; 6 | 7 | :: global definitions 8 | 9 | set INPUT_PATH=. 10 | set OUTPUT_PATH=. 11 | set COARSE_DTM_FOLDER=coarse_dtms 12 | set COARSE_DTM_STEP=5 13 | 14 | :: check alignment and overlap of blocks via their coarse DTM with lasoverlap 15 | 16 | lasoverlap -i "%INPUT_PATH%\%COARSE_DTM_FOLDER%\*.bil" ^ 17 | -files_are_flightlines -step %COARSE_DTM_STEP% ^ 18 | -utm 51N ^ 19 | -o %OUTPUT_PATH%\%COARSE_DTM_FOLDER%\block.png 20 | 21 | 22 | -------------------------------------------------------------------------------- /example_batch_scripts/quality_check_single_block.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: Quality check for a single block 3 | :: 4 | 5 | set PATH=%PATH%;D:\LAStools\bin; 6 | 7 | :: global definitions 8 | 9 | set SERVER_PATH=\\Lidar02_server\raw_data_vd0\PhilLiDAR2\Classified LAS 10 | set OUTPUT_PATH=. 11 | set QUALITY_FOLDER=quality_checks 12 | set COARSE_DTM_FOLDER=coarse_dtms 13 | set BLOCK=Agno5F_20130417 14 | set LIDAR_FOLDER=LAS_FILES 15 | set LIDAR_FORMAT=las 16 | set COARSE_DTM_STEP=5 17 | set CORES=4 18 | 19 | :: remove old new directories 20 | 21 | rmdir %OUTPUT_PATH%\%QUALITY_FOLDER%\%BLOCK% /s /q 22 | 23 | :: make directories 24 | 25 | mkdir %OUTPUT_PATH%\%QUALITY_FOLDER%\%BLOCK% 26 | mkdir %OUTPUT_PATH%\%COARSE_DTM_FOLDER% 27 | 28 | :: check LAS file integrity with lasvalidate 29 | 30 | lasvalidate -i "%SERVER_PATH%\%BLOCK%\%LIDAR_FOLDER%\*.%LIDAR_FORMAT%" ^ 31 | -no_CRS_fail ^ 32 | -o %OUTPUT_PATH%\%QUALITY_FOLDER%\%BLOCK%_validate.xml 33 | 34 | 35 | :: check flightline overlap with lasoverlap 36 | 37 | lasoverlap -i "%SERVER_PATH%\%BLOCK%\%LIDAR_FOLDER%\*.%LIDAR_FORMAT%" ^ 38 | -recover_flightlines -utm 51N ^ 39 | -odir %OUTPUT_PATH%\%QUALITY_FOLDER%\%BLOCK% ^ 40 | -opng ^ 41 | -cores %CORES% 42 | 43 | :: create coarse DTM for inter-block alignment check with lasgrid 44 | 45 | lasgrid -i "%SERVER_PATH%\%BLOCK%\%LIDAR_FOLDER%\*.%LIDAR_FORMAT%" ^ 46 | -merged ^ 47 | -step %COARSE_DTM_STEP% -lowest ^ 48 | -o %OUTPUT_PATH%\%COARSE_DTM_FOLDER%\%BLOCK%_%COARSE_DTM_STEP%m.bil 49 | -------------------------------------------------------------------------------- /example_batch_scripts/typical_lidar_preparation_pipeline.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: a batch script for converting raw flight lines (not tiled) into 3 | :: a number of products with a tile-based multi-core batch pipeline 4 | :: 5 | 6 | :: 7 | :: specify parameters 8 | :: 9 | 10 | :: allows you to run the script from other folders 11 | set PATH=%PATH%;C:\Users\Public\lastools\bin; 12 | 13 | :: here we specify the directory (e.g. the folder) in which the 14 | :: original raw flight lines files are stored 15 | set RAW_FLIGHT_LINES=E:\Raw_strips 16 | 17 | :: here we specify in which format the original raw flight lines 18 | :: files are stored in the RAW_FLIGHT_LINES folder 19 | set RAW_FORMAT=las 20 | 21 | :: here we specify the directory (e.g. the folder) in which the 22 | :: temporary files are stored 23 | set TEMP_FILES=C:\lastools_temp 24 | 25 | :: here we specify the directory (e.g. the folder) in which the 26 | :: resulting output files are stored 27 | set OUTPUT_FILES=C:\lastools_output 28 | 29 | :: here we specify where the GEOID transformation grid is stored 30 | set GEOID=C:\Users\Public\Documents\WGS84_to_EGM2008_GRID_Adjustment\wgs84_2_egm08.asc 31 | 32 | :: here we specify the number of cores we want to run on 33 | set NUM_CORES=7 34 | 35 | :: here we specify the target tile size of the tiling 36 | set TILE_SIZE=1000 37 | 38 | :: here we specify the target buffer size for each tile 39 | set TILE_BUFFER=50 40 | 41 | rmdir %TEMP_FILES% /s /q 42 | 43 | :: 44 | :: start processing 45 | :: 46 | 47 | :: transform the strips to GEOID EGM2008 orthometric heights 48 | 49 | mkdir %TEMP_FILES%\orthometric_strips 50 | lasheight -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% ^ 51 | -rescale 0.01 0.01 0.01 -auto_reoffset ^ 52 | -ground_points %GEOID% ^ 53 | -replace_z ^ 54 | -odir %TEMP_FILES%\orthometric_strips -olaz ^ 55 | -cores %NUM_CORES% 56 | 57 | :: create buffered tiling from orthometric strips 58 | 59 | mkdir %TEMP_FILES%\tiles_raw 60 | lastile -i %TEMP_FILES%\orthometric_strips\*.laz -files_are_flightlines ^ 61 | -tile_size %TILE_SIZE% -buffer %TILE_BUFFER% ^ 62 | -o %TEMP_FILES%\tiles_raw\tile -olaz 63 | 64 | :: ground classify all orthometric tiles 65 | 66 | mkdir %TEMP_FILES%\tiles_ground_town 67 | lasground -i %TEMP_FILES%\tiles_raw\tile*.laz ^ 68 | -town -extra_fine ^ 69 | -odir %TEMP_FILES%\tiles_ground_town -olaz ^ 70 | -cores %NUM_CORES% 71 | 72 | :: remove low and high outliers 73 | 74 | mkdir %TEMP_FILES%\height_denoised 75 | lasheight -i %TEMP_FILES%\tiles_ground_town\*.laz ^ 76 | -drop_above 40 -drop_below -3 ^ 77 | -odir %TEMP_FILES%\height_denoised -olaz ^ 78 | -cores %NUM_CORES% 79 | 80 | :: building & veggy classify all ground and denoised tiles 81 | 82 | mkdir %OUTPUT_FILES%\classified_buffered_tiles 83 | lasclassify -i %TEMP_FILES%\height_denoised\*.laz ^ 84 | -odir %OUTPUT_FILES%\classified_buffered_tiles -olaz ^ 85 | -cores %NUM_CORES% 86 | 87 | echo "bye bye" 88 | 89 | goto the_end 90 | 91 | :the_end 92 | -------------------------------------------------------------------------------- /example_batch_scripts/typical_quality_check_pipeline.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: a batch script for quality checking raw flight lines 3 | :: 4 | 5 | :: 6 | :: specify parameters 7 | :: 8 | 9 | :: allows you to run the script from other folders 10 | set PATH=%PATH%;C:\Users\Public\lastools\bin; 11 | 12 | :: here we specify the directory (e.g. the folder) in which the 13 | :: original raw flight lines files are stored 14 | set RAW_FLIGHT_LINES=C:\Users\Public\Documents\pam8a_outputlas 15 | 16 | :: here we specify in which format the original raw flight lines 17 | :: files are stored in the RAW_FLIGHT_LINES folder 18 | set RAW_FORMAT=las 19 | 20 | :: here we specify the directory (e.g. the folder) in which the 21 | :: temporary files are stored 22 | set TEMP_FILES=C:\lastools_temp 23 | 24 | :: here we specify the directory (e.g. the folder) in which the 25 | :: resulting quality reports are stored 26 | set OUTPUT_FILES=C:\lastools_quality 27 | 28 | :: here we specify the number of cores we want to run on 29 | set NUM_CORES=7 30 | 31 | rmdir %TEMP_FILES% /s /q 32 | 33 | :: 34 | :: start processing 35 | :: 36 | 37 | :: run lasinfo on all the input flight lines 38 | 39 | mkdir %TEMP_FILES%\lasinfo_output 40 | lasinfo -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% ^ 41 | -odir %TEMP_FILES%\lasinfo_output -otxt ^ 42 | -cores %NUM_CORES% 43 | 44 | find /N "WARNING" %TEMP_FILES%\lasinfo_output\*.txt 45 | 46 | :: create visualization overlap and alignment of flight lines 47 | 48 | mkdir %OUTPUT_FILES% 49 | lasoverlap -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% -files_are_flightlines ^ 50 | -max_diff 1.0 -max_over 5 -step 2 ^ 51 | -o %OUTPUT_FILES%\lasoverlap.png 52 | 53 | :: create density grid of flight lines 54 | 55 | lasgrid -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% -merged -last_only ^ 56 | -counter -step 2 -false -set_min_max 0 8 ^ 57 | -o %OUTPUT_FILES%\density_2_pts.png 58 | 59 | lasgrid -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% -merged -last_only ^ 60 | -counter -step 2 -false -set_min_max 0 16 ^ 61 | -o %OUTPUT_FILES%\density_4_pts.png 62 | 63 | :: compute a boundary around the merged set of flight lines (also look for holes) 64 | 65 | lasboundary -i %RAW_FLIGHT_LINES%\*.%RAW_FORMAT% -merged ^ 66 | -last_only -thin_with_grid 2 ^ 67 | -concavity 10 -disjoint -holes ^ 68 | -o %OUTPUT_FILES%\boundary.kml 69 | 70 | echo "bye bye" 71 | 72 | goto the_end 73 | 74 | :the_end 75 | -------------------------------------------------------------------------------- /example_batch_scripts/typical_raster_products_pipeline.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: a batch script for converting classified, buffered, LiDAR tiles 3 | :: into a number of raster products with a tile-based multi-core 4 | :: batch pipeline 5 | :: 6 | 7 | :: 8 | :: specify parameters 9 | :: 10 | 11 | :: allows you to run the script from other folders 12 | set PATH=%PATH%;C:\Users\Public\lastools\bin; 13 | 14 | :: here we specify the directory (e.g. the folder) in which the 15 | :: classified, buffered, LiDAR tiles are stored 16 | set INPUT_TILES=C:\lastools_output\classified_buffered_tiles 17 | 18 | :: here we specify in which format the original raw flight lines 19 | :: files are stored in the RAW_FLIGHT_LINES folder 20 | set RAW_FORMAT=las 21 | 22 | :: here we specify the directory (e.g. the folder) in which the 23 | :: temporary files are stored 24 | set TEMP_FILES=C:\lastools_temp 25 | 26 | :: here we specify the directory (e.g. the folder) in which the 27 | :: resulting output files are stored 28 | set OUTPUT_FILES=C:\lastools_output 29 | 30 | :: here we specify the resolution of the output DEMs 31 | set STEP=1.0 32 | 33 | :: here we specify the number of cores we want to run on 34 | set NUM_CORES=7 35 | 36 | rmdir %TEMP_FILES% /s /q 37 | 38 | :: 39 | :: start processing 40 | :: 41 | 42 | :: create raster DTM hillshades (with resolution of STEP meters) 43 | 44 | mkdir %OUTPUT_FILES%\tiles_dtm 45 | las2dem -i %INPUT_TILES%\*.laz ^ 46 | -keep_class 2 -extra_pass -step %STEP% -use_tile_bb -hillshade ^ 47 | -odir %OUTPUT_FILES%\tiles_dtm -opng ^ 48 | -cores %NUM_CORES% 49 | 50 | :: create raster DSM hillshades (with resolution of STEP meters) 51 | 52 | mkdir %OUTPUT_FILES%\tiles_dsm 53 | las2dem -i %INPUT_TILES%\*.laz ^ 54 | -first_only -step %STEP% -use_tile_bb -hillshade ^ 55 | -odir %OUTPUT_FILES%\tiles_dsm -opng ^ 56 | -cores %NUM_CORES% 57 | 58 | :: create height normalized tiles (stores "height above ground" as z coordinate) 59 | 60 | mkdir %TEMP_FILES%\height_normalized 61 | lasheight -i %INPUT_TILES%\*.laz ^ 62 | -replace_z ^ 63 | -odir %TEMP_FILES%\height_normalized -olaz ^ 64 | -cores %NUM_CORES% 65 | 66 | :: create canopy height raster (with resolution of STEP meters) 67 | 68 | lasgrid -i %TEMP_FILES%\height_normalized\*.laz -merged ^ 69 | -highest -step %STEP% -false -set_min_max 0 10 -fill 2 ^ 70 | -o %OUTPUT_FILES%\canopy.png 71 | 72 | echo "bye bye" 73 | 74 | goto the_end 75 | 76 | :the_end 77 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for LGPL-licensed LAStools 2 | # 3 | #COPTS = -g -Wall -Wno-deprecated -DDEBUG 4 | COPTS = -O3 -Wall -Wno-deprecated -DNDEBUG 5 | #COMPILER = CC 6 | COMPILER = g++ 7 | LINKER = g++ 8 | #BITS = -64 9 | 10 | #LIBS = -L/usr/lib64 11 | #LIBS = -L/usr/lib32 12 | #INCLUDE = -I/usr/include 13 | 14 | LASLIBS = -L../LASlib/lib 15 | LASINCLUDE = -I../LASzip/src -I../LASlib/inc 16 | 17 | all: laszip lasinfo lasprecision las2txt txt2las las2las lasdiff lasmerge lasindex 18 | 19 | laszip: laszip.o geoprojectionconverter.o 20 | ${LINKER} ${BITS} ${COPTS} laszip.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 21 | cp $@ ../bin 22 | 23 | lasinfo: lasinfo.o geoprojectionconverter.o 24 | ${LINKER} ${BITS} ${COPTS} lasinfo.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 25 | cp $@ ../bin 26 | 27 | lasprecision: lasprecision.o geoprojectionconverter.o 28 | ${LINKER} ${BITS} ${COPTS} lasprecision.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 29 | cp $@ ../bin 30 | 31 | las2txt: las2txt.o 32 | ${LINKER} ${BITS} ${COPTS} las2txt.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 33 | cp $@ ../bin 34 | 35 | txt2las: txt2las.o geoprojectionconverter.o 36 | ${LINKER} ${BITS} ${COPTS} txt2las.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 37 | cp $@ ../bin 38 | 39 | las2las: las2las.o geoprojectionconverter.o 40 | ${LINKER} ${BITS} ${COPTS} las2las.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 41 | cp $@ ../bin 42 | 43 | lasdiff: lasdiff.o 44 | ${LINKER} ${BITS} ${COPTS} lasdiff.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 45 | cp $@ ../bin 46 | 47 | lasmerge: lasmerge.o geoprojectionconverter.o 48 | ${LINKER} ${BITS} ${COPTS} lasmerge.o geoprojectionconverter.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 49 | cp $@ ../bin 50 | 51 | lasindex: lasindex.o 52 | ${LINKER} ${BITS} ${COPTS} lasindex.o -llas -o $@ ${LIBS} ${LASLIBS} $(INCLUDE) $(LASINCLUDE) 53 | cp $@ ../bin 54 | 55 | .cpp.o: 56 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LASINCLUDE) $< -o $@ 57 | 58 | .c.o: 59 | ${COMPILER} ${BITS} -c ${COPTS} ${INCLUDE} $(LASINCLUDE) $< -o $@ 60 | 61 | clean: 62 | rm -rf *.o 63 | rm -rf laszip lasinfo lasprecision las2txt txt2las las2las lasdiff lasmerge lasindex 64 | 65 | clobber: 66 | rm -rf *.o 67 | rm -rf laszip lasinfo lasprecision las2txt txt2las las2las lasdiff lasmerge lasindex 68 | rm -rf *~ 69 | -------------------------------------------------------------------------------- /src/las2las.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/las2las.cpp -------------------------------------------------------------------------------- /src/las2txt.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/las2txt.cpp -------------------------------------------------------------------------------- /src/lasdiff.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasdiff.cpp -------------------------------------------------------------------------------- /src/lasindex.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasindex.cpp -------------------------------------------------------------------------------- /src/lasinfo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasinfo.cpp -------------------------------------------------------------------------------- /src/lasmerge.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasmerge.cpp -------------------------------------------------------------------------------- /src/lasoptimize.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasoptimize.cpp -------------------------------------------------------------------------------- /src/lasprecision.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/lasprecision.cpp -------------------------------------------------------------------------------- /src/laszip.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/laszip.cpp -------------------------------------------------------------------------------- /src/txt2las.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-schuetz/LAStools/965e5e8ccf9708cbceab082aea7ce6f15fd2bec5/src/txt2las.cpp --------------------------------------------------------------------------------