Changeset 875

Show
Ignore:
Timestamp:
09/20/08 16:28:41 (4 months ago)
Author:
hobu
Message:

Add missing methods, including a SetReserved? method for LASHeader, to C API #67

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/include/liblas/capi/liblas.h

    r819 r875  
    112112 *  @return the version string for this library. 
    113113*/ 
    114 LAS_DLL const char* LAS_GetVersion(); 
     114LAS_DLL char* LAS_GetVersion(); 
    115115 
    116116/****************************************************************************/ 
     
    465465LAS_DLL uint16_t LASHeader_GetFileSourceId(const LASHeaderH hHeader); 
    466466 
     467/** Sets the FileSource ID value for the header.  By default, this value is "0" if it  
     468 *  is not explicitly set.  See the LAS specification for details on what this 
     469 *  value should logically be set to. 
     470 *  @param hHeader LASHeaderH instance 
     471 *  @param value the value to set as the FileSource ID value for the header 
     472 *  @return LASError enum 
     473*/ 
     474LAS_DLL LASError LASHeader_SetFileSourceId(LASHeaderH hHeader, uint16_t value); 
    467475 
    468476/** Returns the project id for the header as a GUID string 
     
    470478*/ 
    471479LAS_DLL char *LASHeader_GetProjectId(const LASHeaderH hHeader); 
     480 
     481/** Sets the project id/GUID for the header 
     482 *  @param hHeader LASHeaderH instance 
     483 *  @param value character value GUID to set the header value to 
     484 *  @return LASError enum 
     485*/ 
     486LAS_DLL LASError LASHeader_SetProjectId(LASHeaderH hHeader, const char* value); 
    472487 
    473488/** Sets the project id/GUID for the header 
     
    539554 *  @return the reserved value for the header. 
    540555*/ 
    541 LAS_DLL int16_t LASHeader_GetReserved(const LASHeaderH hHeader); 
     556LAS_DLL uint16_t LASHeader_GetReserved(const LASHeaderH hHeader); 
     557 
     558/** Sets the Reserved value for the header.  By default, this value is "0" if it  
     559 *  is not explicitly set.  See the LAS specification for details on what this 
     560 *  value should logically be set to. 
     561 *  @param hHeader LASHeaderH instance 
     562 *  @param value the value to set as the reserved value for the header 
     563 *  @return LASError enum 
     564*/ 
     565LAS_DLL LASError LASHeader_SetReserved(LASHeaderH hHeader, uint16_t value); 
    542566 
    543567/** Returns the file creation day of the year.  The values start from 1, being January 1st,  
  • trunk/include/liblas/lasheader.hpp

    r813 r875  
    134134    uint16_t GetReserved() const; 
    135135 
     136    /// Set reserved value for the header identifier. 
     137    /// \param v - should be set to a value between 1 and 65535. 
     138    /// \exception No throw 
     139    void SetReserved(uint16_t v); 
     140 
    136141    /// Get project identifier. 
    137142    /// \return Global Unique Identifier as an instance of liblas::guid class. 
  • trunk/src/las_c_api.cpp

    r851 r875  
    691691} 
    692692 
     693LAS_DLL LASErrorEnum LASHeader_SetFileSourceId(LASHeaderH hHeader, liblas::uint16_t value) { 
     694    VALIDATE_POINTER1(hHeader, "LASHeader_SetFileSourceId", LE_Failure); 
     695    ((LASHeader*) hHeader)->SetFileSourceId(value);     
     696    return LE_None; 
     697} 
     698 
     699 
    693700LAS_DLL liblas::uint16_t LASHeader_GetReserved(const LASHeaderH hHeader) { 
    694701    VALIDATE_POINTER1(hHeader, "LASHeader_GetReserved", 0); 
     
    698705} 
    699706 
     707LAS_DLL LASErrorEnum LASHeader_SetReserved(LASHeaderH hHeader, liblas::uint16_t value) { 
     708    VALIDATE_POINTER1(hHeader, "LASHeader_SetReserved", LE_Failure); 
     709    ((LASHeader*) hHeader)->SetReserved(value);     
     710    return LE_None; 
     711} 
     712 
    700713LAS_DLL char* LASHeader_GetProjectId(const LASHeaderH hHeader) { 
    701714    VALIDATE_POINTER1(hHeader, "LASHeader_GetProjectId", 0); 
     
    705718} 
    706719 
    707 LAS_DLL LASErrorEnum LASHeader_SetGUID(LASHeaderH hHeader, LASGuidH hId) { 
    708     VALIDATE_POINTER1(hHeader, "LASHeader_SetGUID", LE_Failure); 
    709  
    710     try { 
    711         liblas::guid* id = (liblas::guid*) hId; 
    712          
    713         ((LASHeader*) hHeader)->SetProjectId(*id);     
     720LAS_DLL LASErrorEnum LASHeader_SetProjectId(LASHeaderH hHeader, const char* value) { 
     721    VALIDATE_POINTER1(hHeader, "LASHeader_SetProjectId", LE_Failure); 
     722 
     723    try { 
     724        liblas::guid id; 
     725        id = liblas::guid::guid(value); 
     726        ((LASHeader*) hHeader)->SetProjectId(id);     
    714727    } catch (std::exception const& e) 
    715728    { 
     
    720733    return LE_None; 
    721734} 
    722  
    723735 
    724736LAS_DLL liblas::uint8_t LASHeader_GetVersionMajor(const LASHeaderH hHeader) { 
     
    11011113    liblas::guid id = ((LASHeader*) hHeader)->GetProjectId(); 
    11021114    return (LASGuidH) new liblas::guid(id); 
     1115} 
     1116 
     1117 
     1118LAS_DLL LASErrorEnum LASHeader_SetGUID(LASHeaderH hHeader, LASGuidH hId) { 
     1119    VALIDATE_POINTER1(hHeader, "LASHeader_SetGUID", LE_Failure); 
     1120 
     1121    try { 
     1122        liblas::guid* id = (liblas::guid*) hId; 
     1123         
     1124        ((LASHeader*) hHeader)->SetProjectId(*id);     
     1125    } catch (std::exception const& e) 
     1126    { 
     1127        LASError_PushError(LE_Failure, e.what(), "LASHeader_SetGUID"); 
     1128        return LE_Failure; 
     1129    } 
     1130 
     1131    return LE_None; 
    11031132} 
    11041133 
     
    13271356} 
    13281357 
    1329 LAS_DLL const char * LAS_GetVersion() { 
     1358LAS_DLL char * LAS_GetVersion() { 
    13301359 
    13311360    /* XXX - mloskot: I'd suggest to define PACKAGE_VERSION as static object 
  • trunk/src/lasheader.cpp

    r847 r875  
    220220} 
    221221 
     222void LASHeader::SetReserved(uint16_t v) 
     223{ 
     224    // TODO: Should we warn or throw about type overflow occuring when 
     225    //       user passes 65535 + 1 = 0 
     226    m_reserved = v; 
     227} 
     228 
    222229liblas::guid LASHeader::GetProjectId() const 
    223230{