Class OsfScanSource
Defined in File osf_scan_source.h
Inheritance Relationships
Base Types
public ouster::sdk::core::ScanSource(Class ScanSource)private ouster::sdk::impl::ScanSourceBuilder< ouster::sdk::core::IoType::OSF, OsfScanSource >
Class Documentation
-
class OsfScanSource : public ouster::sdk::core::ScanSource, private ouster::sdk::impl::ScanSourceBuilder<ouster::sdk::core::IoType::OSF, OsfScanSource>
ScanSource that produces LidarScans from a given OSF file.
Public Functions
-
OsfScanSource(const std::string &file, const std::function<void(OsfScanSourceOptions&)> &options = {})
open_source compatible constructor
- Parameters:
file[in] OSF file to open
options[in] scan source options
-
OsfScanSource(const std::string &file, OsfScanSourceOptions options)
open_source compatible constructor
- Parameters:
file[in] OSF file to open
options[in] scan source options
-
virtual ouster::sdk::core::ScanIterator begin() const override
Provides each scan from all sensors in time order.
- Returns:
start iterator for all sensors
-
virtual ouster::sdk::core::ScanIterator begin(int sensor_index) const override
Provides scans from a single sensor in time order If idx < 0 provides scans from all sensors.
- Parameters:
sensor_index[in] sensor index
sensor_index[in] – sensor index
- Throws:
std::runtime_error – if sensor_idx >= number of sensors
- Returns:
start iterator for the sensor with the given index
-
virtual size_t size() const override
The length of the source from begin to end.
For example: If uncollated this is the total number of scans in the source, if collated this is the number of scan collations.
- Throws:
std::runtime_error – if unindexed
- Returns:
length of the source
-
virtual size_t size_hint() const override
The approximate length of the source if unindexed, or the real size if indexed.
Live sources or sources with undefined length will return 0.
- Returns:
approximate length of source
-
virtual const std::vector<size_t> &scans_num() const override
Get the scan count for each sensor in the file.
- Throws:
std::runtime_error – if unindexed
- Returns:
scan count for each sensor in the file
-
virtual const std::vector<std::vector<std::pair<uint64_t, uint64_t>>> &individual_index() const override
timestamp based index of all scans in the file for each sensor, each pair is timestamp followed by global scan index
- Throws:
std::runtime_error – if unindexed
- Returns:
index
-
virtual const std::vector<std::pair<uint64_t, uint64_t>> &full_index() const override
timestamp based index of all scans in the file, each pair is timestamp followed by sensor index
- Throws:
std::runtime_error – if unindexed
- Returns:
index
-
virtual bool is_indexed() const override
Indicates if the source contains an index for fast random access.
- Returns:
if indexed or not
-
virtual const std::vector<std::shared_ptr<ouster::sdk::core::SensorInfo>> &sensor_info() const override
Get the sensor info for each sensor in this dataset.
- Returns:
sensor info for each sensor
-
virtual std::unique_ptr<ScanSource> move() override
move into a newly allocated item
- Returns:
a unique pointer to a newly allocated
ScanSourceinstance containing the moved-from state.
-
bool is_collated() const
Check if the OsfScanSource has collations available and enabled.
- Returns:
true if collations are available and enabled
-
static std::unique_ptr<core::ScanSource> create(const std::vector<std::string> &sources, const ScanSourceOptions &options, bool collate, int sensor_idx = -1)
open_source compatible factory that handles different collating behaviours.
- Parameters:
sources[in] – source filenames
options[in] – source options
collate[in] – whether to collate the source or not
sensor_idx[in] – access specific sensor index in the osf
- Returns:
unique_ptr of ScanSource type
-
OsfScanSource(const std::string &file, const std::function<void(OsfScanSourceOptions&)> &options = {})