All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jgrasstools.gears.io.las.core.liblas.LiblasJNALibrary Maven / Gradle / Ivy

The newest version!
/*
 * 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 .
 */
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 );
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy