Changeset 642:562c41493a79
- Timestamp:
- 05/13/08 22:05:04 (2 years ago)
- Branch:
- default
- Convert:
- svn:1766ff46-f334-0410-ab20-d63176f87757/trunk@709
- Location:
- src
- Files:
-
- 2 edited
-
detail/reader10.cpp (modified) (5 diffs)
-
lasrecordheader.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/detail/reader10.cpp
r641 r642 225 225 read_n(vlrh, m_ifs, sizeof(VLRHeader)); 226 226 227 int16_t count = vlrh.recordLengthAfterHeader / sizeof(uint8_t); 228 uint8_t *rawdata = new uint8_t[count]; 229 230 read_n(rawdata, m_ifs, vlrh.recordLengthAfterHeader); 227 int16_t count = vlrh.recordLengthAfterHeader; 231 228 232 229 std::vector<uint8_t> data; 233 for (int j=0; j< count; ++j) { 234 data.push_back(rawdata[j]); 235 } 230 data.resize( count ); 231 232 unsigned char *ptr = &(data[0]); // we need a real variable because 233 // read_n() is f'ing evil magic. 234 read_n(ptr, m_ifs, count ); 236 235 237 236 LASVLR vlr; … … 242 241 vlr.SetRecordId(vlrh.recordId); 243 242 vlr.SetData(data); 244 delete[] rawdata; 243 245 244 header.AddVLR(vlr); 246 245 } … … 278 277 279 278 printf("count for int16_t: %d\n", count); 280 uint16_t *geokeys = new uint16_t[count]; 281 for (int j = 0; j< count; ++j) { 282 geokeys[j] = (uint16_t)data[j]; 283 } 284 ST_SetKey( st, record.GetRecordId(), count, STT_SHORT, geokeys ); 285 delete[] geokeys; 286 279 280 ST_SetKey( st, record.GetRecordId(), count, STT_SHORT, 281 &(data[0]) ); 287 282 } 288 283 … … 294 289 printf("count for int: %d\n", count); 295 290 296 double *geokeys = new double[count]; 297 for (int j = 0; j< count; ++j) { 298 geokeys[j] = (double)data[j]; 299 } 300 ST_SetKey( st, record.GetRecordId(), count, STT_DOUBLE, geokeys ); 301 delete[] geokeys; 302 291 ST_SetKey( st, record.GetRecordId(), count, STT_DOUBLE, 292 &(data[0]) ); 303 293 } 304 294 … … 310 300 311 301 printf("count for string: %d data.size(): %d", count, (int)data.size()); 312 313 char *geokeys = new char[count]; 314 for (int j = 0; j< count; ++j) { 315 geokeys[j] = (uint8_t)data[j]; 316 } 317 // geokeys[count] = '\0'; 318 printf("Geokeys: '%s'", geokeys); 319 ST_SetKey( st, record.GetRecordId(), count, STT_ASCII, geokeys ); 320 delete[] geokeys; 321 322 323 } 324 // else if (uid == record.GetUserId() && record.GetRecordId()) 325 // { 326 // int count = vlrh.recordLengthAfterHeader / sizeof(double); 327 // double *values = new double[count]; 328 // read_n(values, m_ifs, vlrh.recordLengthAfterHeader); 329 // ST_SetKey( st, vlrh.recordId, count, STT_DOUBLE, values ); 330 // delete[] values; 331 // } 332 // else if (uid == record.GetUserId() && record.GetRecordId()) 333 // { 334 // uint8_t count = vlrh.recordLengthAfterHeader / sizeof(uint8_t); 335 // char *values = new char[count]; 336 // read_n(values, m_ifs, vlrh.recordLengthAfterHeader); 337 // ST_SetKey( st, vlrh.recordId, count, STT_ASCII, values ); 338 // delete[] values; 339 // } 340 // else 341 // { 342 // std::istream::pos_type const pos = m_ifs.tellg(); 343 // m_ifs.seekg(pos + std::istream::pos_type(vlrh.recordLengthAfterHeader)); 344 // } 302 ST_SetKey( st, record.GetRecordId(), count, STT_ASCII, 303 &(data[0]) ); 304 } 345 305 } 346 306 347 307 GTIF *gtif = GTIFNewSimpleTags( st ); 308 309 //GTIFPrint(gtif,0,0); 310 348 311 GTIFDefn defn; 349 312 if (GTIFGetDefn(gtif, &defn)) -
src/lasrecordheader.cpp
r641 r642 195 195 void LASVLR::SetData(const std::vector<uint8_t>& v) 196 196 { 197 std::vector<uint8_t> m_data(v);197 m_data = v; 198 198 } 199 199
Note: See TracChangeset
for help on using the changeset viewer.
