//
// Created by zx on 22-11-2.
//

#ifndef SRC_LIO_LIVOX_INCLUDE_UTILS_TYPEDEF_H_
#define SRC_LIO_LIVOX_INCLUDE_UTILS_TYPEDEF_H_

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
typedef pcl::PointXYZINormal PointType;
typedef pcl::PointCloud<PointType> PointCloud;
typedef struct
{
    double timebase;
    pcl::PointCloud<PointType>::Ptr cloud;
}TimeCloud;

typedef void(*odomCallback)(Eigen::Matrix4d,double);
typedef void(*CloudMappedCallback)(pcl::PointCloud<PointType>::Ptr,double);
typedef void(*CostCallback)(double);


typedef struct
{
    double x;
    double y;
    double z;
}Data3d;
typedef struct
{
    double timebase;
    Data3d angular_velocity;
    Data3d linear_acceleration;

} ImuData;

#endif //SRC_LIO_LIVOX_INCLUDE_UTILS_TYPEDEF_H_
