41 LidarPatternRayArchive();
58 virtual ~LidarPatternRayArchive() =
default;
64 std::shared_ptr<LidarRayPatternStorage> m_storage;
118 virtual
size_t getNumRays() const override;
125 static
bool createPatternFromFile(
RayFileDefinition rayFileDefinition, LidarRayPatternStorage& storage);
133 size_t frameSize = 0;
134 size_t last = std::numeric_limits<size_t>::max();
139 PatternState m_state;
140 std::shared_ptr<LidarRayPatternStorage> m_pattern;
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
Ray pattern that is read from an external file (.csv or compact binary file).
LidarRayPatternFromFile(agxSensor::RayFileDefinition rayFileDefinition, agx::Real frequency, size_t frameSize, size_t downsample=1)
Construct from CSV file.
LidarRayPatternFromFile()
Default constructor, zero rays.
static bool createPatternArchiveFromFile(RayFileDefinition rayFileDefinition, LidarPatternRayArchive &storage)
Read a RayFilePattern file from disk and fill in the data in the storage argument.
Base of lidar ray pattern implementations responsible of providing a set of ray transforms (ray along...
Class for writing serialized data in binary format to a stream.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
Ray pattern interval (index range) with a start index and size.
bool firstLineIsHeader
If true: ignore first line.
bool twoColumns
If true: file has only azimuth,elevation (no first column)
char delimiter
CSV delimiter.
bool anglesInDegrees
If true: angles are in degrees, else radians.
std::string path
Absolute or relative file path, if filetype != ".csv" the rest of the parameters are ignored.