| 553 | } |
| 554 | |
| 555 | LASreader* LASreadOpener::open(const CHAR* other_file_name, BOOL reset_after_other) { |
| 556 | inside_depth_opener = 0; |
| 557 | if (filter) filter->reset(); |
| 558 | if (transform) transform->reset(); |
| 559 | |
| 560 | if (file_names || other_file_name) { |
| 561 | use_stdin = FALSE; |
| 562 | if (file_name_current == file_name_number && other_file_name == 0) return 0; |
| 563 | if ((other_file_name == 0) && ((file_name_number > 1) || (file_names_ID)) && merged) { |
| 564 | LASreaderMerged* lasreadermerged = new LASreaderMerged(this); |
| 565 | lasreadermerged->set_scale_factor(scale_factor); |
| 566 | lasreadermerged->set_offset(offset); |
| 567 | lasreadermerged->set_parse_string(parse_string); |
| 568 | lasreadermerged->set_skip_lines(skip_lines); |
| 569 | lasreadermerged->set_populate_header(populate_header); |
| 570 | lasreadermerged->set_keep_lastiling(keep_lastiling); |
| 571 | lasreadermerged->set_translate_intensity(translate_intensity); |
| 572 | lasreadermerged->set_scale_intensity(scale_intensity); |
| 573 | lasreadermerged->set_translate_scan_angle(translate_scan_angle); |
| 574 | lasreadermerged->set_scale_scan_angle(scale_scan_angle); |
| 575 | lasreadermerged->set_io_ibuffer_size(io_ibuffer_size); |
| 576 | lasreadermerged->set_copc_stream_order(copc_stream_order); |
| 577 | if (file_names_ID) { |
| 578 | for (file_name_current = 0; file_name_current < file_name_number; file_name_current++) |
| 579 | lasreadermerged->add_file_name(file_names[file_name_current], file_names_ID[file_name_current]); |
| 580 | } else { |
| 581 | for (file_name_current = 0; file_name_current < file_name_number; file_name_current++) |
| 582 | lasreadermerged->add_file_name(file_names[file_name_current]); |
| 583 | } |
| 584 | if (!lasreadermerged->open()) { |
| 585 | laserror("cannot open lasreadermerged with %d file names", file_name_number); |
| 586 | delete lasreadermerged; |
| 587 | return 0; |
| 588 | } |
| 589 | if (files_are_flightlines) lasreadermerged->set_files_are_flightlines(files_are_flightlines); |
| 590 | if (apply_file_source_ID) lasreadermerged->set_apply_file_source_ID(TRUE); |
| 591 | if (filter) lasreadermerged->set_filter(filter); |
| 592 | if (transform) lasreadermerged->set_transform(transform); |
| 593 | if (ignore) lasreadermerged->set_ignore(ignore); |
| 594 | if (inside_tile) lasreadermerged->inside_tile(inside_tile[0], inside_tile[1], inside_tile[2]); |
| 595 | if (inside_circle) lasreadermerged->inside_circle(inside_circle[0], inside_circle[1], inside_circle[2]); |
| 596 | if (inside_rectangle) lasreadermerged->inside_rectangle(inside_rectangle[0], inside_rectangle[1], inside_rectangle[2], inside_rectangle[3]); |
| 597 | if (inside_depth_opener) lasreadermerged->inside_copc_depth(inside_depth_opener, copc_depth, copc_resolution); |
| 598 | if (filter) { filter->addHeaderInfo(lasreadermerged); }; |
| 599 | if (transform) { transform->addHeaderInfo(lasreadermerged); } |
| 600 | |
| 601 | LASreader* lasreader = 0; |
| 602 | if (stored) { |
| 603 | LASreaderStored* lasreaderstored = new LASreaderStored(this); |
| 604 | if (!lasreaderstored->open(lasreadermerged)) { |
| 605 | laserror("could not open lasreaderstored with lasreadermerged"); |
| 606 | delete lasreaderstored; |
| 607 | return 0; |
| 608 | } |
| 609 | lasreader = lasreaderstored; |
| 610 | } else { |
| 611 | lasreader = lasreadermerged; |
| 612 | } |
no test coverage detected