/* * This file is part of JGrasstools (http://www.jgrasstools.org) * (C) HydroloGIS - www.hydrologis.com * * JGrasstools is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.jgrasstools.gears.io.las.core.liblas; /** * JNA wrapper for the laslib library. * * @see LiblasReader * @author Andrea Antonello (www.hydrologis.com) */ public interface LiblasJNALibrary extends com.sun.jna.Library { abstract String LAS_GetVersion(); abstract String LAS_GetFullVersion(); abstract int LAS_IsGDALEnabled(); abstract int LAS_IsLibGeoTIFFEnabled(); /* * READER */ abstract long LASReader_Create( String filename ); abstract void LASReader_Destroy( long fileHandle ); abstract long LASReader_Seek( long fileHandle, long position ); abstract long LASReader_GetNextPoint( long fileHandle ); abstract long LASReader_GetPointAt( long fileHandle, long position ); /* * WRITER */ abstract long LASWriter_Create( String filename, long headerHandle, byte mode ); abstract long LASWriter_WritePoint( long fileHandle, long pointHandle ); abstract void LASWriter_Destroy( long fileHandle ); /* * POINT READING */ abstract double LASPoint_GetX( long pointHandle ); abstract double LASPoint_GetY( long pointHandle ); abstract double LASPoint_GetZ( long pointHandle ); abstract short LASPoint_GetIntensity( long pointHandle ); // LASPoint_GetFlightLineEdge( long pointHandle ); // LASPoint_GetScanDirection( long pointHandle ); /* the number of returns of given pulse */ abstract short LASPoint_GetNumberOfReturns( long pointHandle ); abstract short LASPoint_GetReturnNumber( long pointHandle ); abstract byte LASPoint_GetClassification( long pointHandle ); /* the scan angle */ // LASPoint_GetScanAngleRank( long pointHandle ); // LASPoint_GetUserData( long pointHandle ); abstract double LASPoint_GetTime( long pointHandle ); /* * POINT WRITING */ abstract long LASPoint_Create( long fileHandle ); abstract void LASPoint_Destroy( long pointHandle ); abstract void LASPoint_SetHeader( long pointHandle, long headerHandle ); abstract void LASPoint_SetX( long pointHandle, double x ); abstract void LASPoint_SetY( long pointHandle, double y ); abstract void LASPoint_SetZ( long pointHandle, double z ); abstract void LASPoint_SetTime( long pointHandle, double gpsTime ); abstract void LASPoint_SetIntensity( long pointHandle, short intensity ); // void LASPoint_SetScanAngleRank( long pointHandle, short scanAngle ); abstract void LASPoint_SetNumberOfReturns( long pointHandle, short numberOfReturns ); abstract void LASPoint_SetReturnNumber( long pointHandle, short returnNumber ); abstract void LASPoint_SetClassification( long pointHandle, byte classification ); // LASPoint_SetUserData(point, temp_i); // LASPoint_SetPointSourceId(point, temp_i); // LASPoint_SetFlightLineEdge(point, temp_i ? 1: 0); // LASPoint_SetScanDirection(point, temp_i ? 1: 0); abstract void LASPoint_SetColor( long pointHandle, long colorHandle ); /* * COLOR WRITING */ abstract long LASColor_Create(); abstract void LASColor_SetRed( long colorHandle, short color ); abstract void LASColor_SetGreen( long colorHandle, short color ); abstract void LASColor_SetBlue( long colorHandle, short color ); abstract void LASColor_Destroy( long colorHandle ); /* * COLOR READING */ abstract long LASPoint_GetColor( long pointHandle ); abstract short LASColor_GetRed( long colorHandle ); abstract short LASColor_GetGreen( long colorHandle ); abstract short LASColor_GetBlue( long colorHandle ); /* * HEADER READING */ abstract long LASReader_GetHeader( long fileHandle ); abstract void LASHeader_Destroy( long headerHandle ); abstract String LASHeader_GetFileSignature( long headerHandle ); abstract short LASHeader_GetFileSourceId( long headerHandle ); abstract long LASHeader_GetReserved( long headerHandle ); abstract String LASHeader_GetProjectId( long headerHandle ); abstract byte LASHeader_GetVersionMajor( long headerHandle ); abstract byte LASHeader_GetVersionMinor( long headerHandle ); abstract String LASHeader_GetSystemId( long headerHandle ); abstract String LASHeader_GetSoftwareId( long headerHandle ); abstract short LASHeader_GetCreationDOY( long headerHandle ); abstract short LASHeader_GetCreationYear( long headerHandle ); abstract short LASHeader_GetHeaderSize( long headerHandle ); abstract long LASHeader_GetDataOffset( long headerHandle ); abstract long LASHeader_GetRecordsCount( long headerHandle ); abstract byte LASHeader_GetDataFormatId( long headerHandle ); abstract short LASHeader_GetDataRecordLength( long headerHandle ); abstract long LASHeader_GetPointRecordsCount( long headerHandle ); abstract long LASHeader_GetPointRecordsByReturnCount( long headerHandle, int returnNum ); abstract double LASHeader_GetScaleX( long headerHandle ); abstract double LASHeader_GetScaleY( long headerHandle ); abstract double LASHeader_GetScaleZ( long headerHandle ); abstract double LASHeader_GetOffsetX( long headerHandle ); abstract double LASHeader_GetOffsetY( long headerHandle ); abstract double LASHeader_GetOffsetZ( long headerHandle ); abstract double LASHeader_GetMinX( long headerHandle ); abstract double LASHeader_GetMinY( long headerHandle ); abstract double LASHeader_GetMinZ( long headerHandle ); abstract double LASHeader_GetMaxX( long headerHandle ); abstract double LASHeader_GetMaxY( long headerHandle ); abstract double LASHeader_GetMaxZ( long headerHandle ); abstract long LASHeader_GetSRS( long headerHandle ); abstract String LASSRS_GetWKT( long srsHandle ); /* * HEADER WRITING */ abstract long LASHeader_Create(); abstract long LASHeader_SetReserved( long headerHandle, short reserved ); abstract void LASHeader_SetSystemId( long headerHandle, String system_identifier ); abstract void LASHeader_SetSoftwareId( long headerHandle, String generating_software ); abstract void LASHeader_SetCreationDOY( long headerHandle, short file_creation_day ); abstract void LASHeader_SetCreationYear( long headerHandle, short file_creation_year ); abstract void LASHeader_SetVersionMinor( long headerHandle, int version ); abstract void LASHeader_SetDataFormatId( long headerHandle, byte formatId ); abstract void LASHeader_SetDataOffset( long headerHandle, int offset ); abstract void LASHeader_SetDataRecordLength( long headerHandle, short recordLength ); abstract void LASHeader_SetPointRecordsCount( long headerHandle, long number_of_point_records ); abstract void LASHeader_SetScale( long headerHandle, double xScale, double yScale, double zScale ); abstract void LASHeader_SetOffset( long headerHandle, double xOffset, double yOffset, double zOffset ); abstract void LASHeader_SetMin( long headerHandle, double xMin, double yMin, double zMin ); abstract void LASHeader_SetMax( long headerHandle, double xMax, double yMax, double zMax ); }