Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
rtabmap Namespace Reference

Namespaces

 graph
 
 OptimizerGTSAM
 
 util2d
 
 util3d
 

Classes

struct  AABB
 
class  AboutDialog
 
class  BayesFilter
 
class  BRISK
 
class  CalibrationDialog
 
class  Camera
 
class  CameraARCore
 
class  CameraAREngine
 
struct  CameraConfig
 
class  CameraDepthAI
 
class  CameraFreenect
 
class  CameraFreenect2
 
class  CameraImages
 
class  CameraInfoEvent
 
class  CameraK4A
 
class  CameraK4W2
 
class  CameraMobile
 
class  CameraModel
 
class  CameraMyntEye
 
class  CameraOpenni
 
class  CameraOpenNI2
 
class  CameraOpenNICV
 
class  CameraRealSense
 
class  CameraRealSense2
 
class  CameraRGBDImages
 
class  CameraSeerSense
 
class  CameraStereoDC1394
 
class  CameraStereoFlyCapture2
 
class  CameraStereoImages
 
class  CameraStereoTara
 
class  CameraStereoVideo
 
class  CameraStereoZed
 
class  CameraStereoZedOC
 
class  CameraTango
 
class  CameraVideo
 
class  CameraViewer
 
class  CloudMap
 
class  CloudViewer
 
class  CloudViewerCellPicker
 
class  CloudViewerInteractorStyle
 
class  ComplementaryFilter
 
class  CompressionThread
 
class  ConsoleWidget
 
class  CreateSimpleCalibrationDialog
 
class  CV_ORB
 
class  DatabaseViewer
 
class  DataRecorder
 
class  DBDriver
 
class  DBDriverSqlite3
 
class  DBReader
 
class  DepthCalibrationDialog
 
class  DerivedValue
 
class  EdgeSBACamGravity
 
class  EdgeSE3Gravity
 
class  EditConstraintDialog
 
class  EditDepthArea
 
class  EditMapArea
 
class  EnvSensor
 
class  EpipolarGeometry
 
class  ExportBundlerDialog
 
class  ExportCloudsDialog
 
class  ExportDialog
 
class  ExtractorNode
 
class  FAST
 
class  FAST_BRIEF
 
class  FAST_FREAK
 
class  Feature2D
 
class  FeatureBA
 
class  FlannIndex
 
class  GainCompensator
 
class  GeodeticCoords
 
class  GFTT
 
class  GFTT_BRIEF
 
class  GFTT_DAISY
 
class  GFTT_FREAK
 
class  GFTT_ORB
 
class  GlobalDescriptor
 
class  GlobalDescriptorExtractor
 
class  GlobalMap
 
class  GPS
 
class  GraphViewer
 
class  GravityFactor
 
class  GridMap
 
class  ImageView
 
class  IMU
 
class  IMUEvent
 
class  IMUFilter
 
class  IMUThread
 
class  KAZE
 
struct  KeyPointCompare
 
class  KeypointItem
 
class  Landmark
 
class  LaserScan
 
class  Lidar
 
class  LidarVLP16
 
class  LineItem
 
class  Link
 
class  LinkItem
 
class  LinkRefiningDialog
 
class  LocalGrid
 
class  LocalGridCache
 
class  LocalGridMaker
 
class  LogHandler
 
class  LoopClosureViewer
 
class  MadgwickFilter
 
class  MainWindow
 
class  MapVisibilityWidget
 
class  MarkerDetector
 
class  MarkerInfo
 
class  Memory
 
class  Mesh
 
class  MultiSessionLocSubView
 
class  MultiSessionLocWidget
 
class  NearestPathKey
 
class  NodeGPSItem
 
class  NodeItem
 
class  OccupancyGrid
 
class  OctoMap
 
class  Odometry
 
class  OdometryDVO
 
class  OdometryEvent
 
class  OdometryF2F
 
class  OdometryF2M
 
class  OdometryFLOAM
 
class  OdometryFovis
 
class  OdometryInfo
 
class  OdometryLOAM
 
class  OdometryMono
 
class  OdometryMSCKF
 
class  OdometryOkvis
 
class  OdometryOpen3D
 
class  OdometryOpenVINS
 
class  OdometryORBSLAM2
 
class  OdometryORBSLAM3
 
class  OdometryResetEvent
 
class  OdometryThread
 
class  OdometryViewer
 
class  OdometryVINS
 
class  OdometryViso2
 
class  Optimizer
 
class  OptimizerCeres
 
class  OptimizerCVSBA
 
class  OptimizerG2O
 
class  OptimizerGTSAM
 
class  OptimizerTORO
 
class  ORB
 
class  ORBextractor
 
class  ORBOctree
 
class  Parameters
 
class  ParametersToolBox
 
class  ParamEvent
 
class  ParticleFilter
 
class  PdfPlotCurve
 
class  PdfPlotItem
 
class  PointCloudColorHandlerIntensityField
 
struct  PointXYZIT
 
class  Pose3GravityFactor
 
class  PoseEvent
 
class  PostProcessingDialog
 
class  PreferencesDialog
 
class  PreUpdateThread
 
class  ProgressDialog
 
class  ProgressEvent
 
class  ProgressionStatus
 
class  ProgressState
 
class  PyDescriptor
 
class  PyDetector
 
class  PyMatcher
 
class  PythonInterface
 
class  RecoveryState
 
class  Registration
 
class  RegistrationIcp
 
class  RegistrationInfo
 
class  RegistrationVis
 
class  Rot3GravityFactor
 
class  Rtabmap
 
class  RtabmapColorOcTree
 
class  RtabmapColorOcTreeNode
 
class  RtabmapEvent
 
class  RtabmapEvent3DMap
 
class  RtabmapEventCmd
 
class  RtabmapEventInit
 
class  RtabmapGlobalPathEvent
 
class  RtabmapGoalStatusEvent
 
class  RtabmapLabelErrorEvent
 
class  RtabmapThread
 
class  RvlCodec
 
class  SensorCapture
 
class  SensorCaptureInfo
 
class  SensorCaptureThread
 
class  SensorData
 
class  SensorEvent
 
class  SIFT
 
class  Signature
 
class  SPDetector
 
class  Statistics
 
class  StatItem
 
class  StatsToolBox
 
class  Stereo
 
class  StereoBM
 
class  StereoCameraModel
 
class  StereoDense
 
class  StereoOpticalFlow
 
class  StereoSGBM
 
struct  SuperPoint
 
class  SuperPointTorch
 
class  SURF
 
class  SURF_DAISY
 
class  SURF_FREAK
 
class  TexturingState
 
class  Transform
 
class  TransformStamped
 
class  UserDataEvent
 
class  VisualWord
 
class  vtkImageMatSource
 
class  VWDictionary
 
class  WeightAgeIdKey
 
class  XYFactor
 
class  XYZFactor
 

Typedefs

typedef std::map< EnvSensor::Type, EnvSensorEnvSensors
 
typedef std::map< int, LandmarkLandmarks
 
typedef std::map< int, TransformMapIdPose
 
typedef std::map< std::string, std::stringParametersMap
 
typedef std::pair< std::string, std::stringParametersPair
 

Enumerations

enum  ScreenRotation
 

Functions

static void addGradientDescentStep (float q0, float q1, float q2, float q3, float _2dx, float _2dy, float _2dz, float mx, float my, float mz, float &s0, float &s1, float &s2, float &s3)
 
float addNeighborProb (cv::Mat &prediction, unsigned int col, const std::map< int, int > &neighbors, const std::vector< double > &predictionLC, const std::map< int, int > &idToIndex)
 
void applyFovModel (double xu, double yu, double w, double w_inverse, double two_tan_w_div_two, double *xd, double *yd)
 
void applyImpl (int index, typename pcl::PointCloud< PointT >::Ptr &cloud, const pcl::IndicesPtr &indices, const cv::Mat_< double > &gains, bool rgb)
 
chisel::PinholeCamera cameraModelToChiselCamera (const CameraModel &camera)
 
pcl::PolygonMesh::Ptr chiselToPolygonMesh (const chisel::MeshMap &meshMap, unsigned char r=100, unsigned char g=100, unsigned char b=100)
 
std::shared_ptr< chisel::ColorImage< unsigned char > > colorImageToChisel (const cv::Mat &image)
 
std::vector< unsigned char > RTABMAP_CORE_EXPORT compressData (const cv::Mat &data)
 
cv::Mat RTABMAP_CORE_EXPORT compressData2 (const cv::Mat &data)
 
std::string RTABMAP_CORE_EXPORT compressedDepthFormat (const cv::Mat &bytes)
 
std::string RTABMAP_CORE_EXPORT compressedDepthFormat (const std::vector< unsigned char > &bytes)
 
std::string RTABMAP_CORE_EXPORT compressedDepthFormat (const unsigned char *bytes, size_t size)
 
std::vector< unsigned char > RTABMAP_CORE_EXPORT compressImage (const cv::Mat &image, const std::string &format=".png")
 
cv::Mat RTABMAP_CORE_EXPORT compressImage2 (const cv::Mat &image, const std::string &format=".png")
 
cv::Mat RTABMAP_CORE_EXPORT compressString (const std::string &str)
 
static void computeDescriptors (const Mat &image, std::vector< KeyPoint > &keypoints, Mat &descriptors, const std::vector< Point > &pattern, int dsize, int WTA_K)
 
static void computeDescriptors (const Mat &image, vector< KeyPoint > &keypoints, Mat &descriptors, const vector< Point > &pattern)
 
static void computeKeyPoints (const std::vector< Mat > &imagePyramid, const std::vector< Mat > &maskPyramid, std::vector< std::vector< KeyPoint > > &allKeypoints, int nfeatures, int firstLevel, double scaleFactor, int edgeThreshold, int patchSize, int scoreType, ParametersMap fastParameters)
 
static void computeOrbDescriptor (const KeyPoint &kpt, const Mat &img, const Point *pattern, uchar *desc)
 
static void computeOrbDescriptor (const KeyPoint &kpt, const Mat &img, const Point *pattern, uchar *desc, int dsize, int WTA_K)
 
static void computeOrientation (const Mat &image, std::vector< KeyPoint > &keypoints, int halfPatchSize, const std::vector< int > &umax)
 
static void computeOrientation (const Mat &image, vector< KeyPoint > &keypoints, const vector< int > &umax, int halfPatchSize)
 
static bool computeOrientation (Eigen::Vector3f A, Eigen::Quaternionf &orientation)
 
static bool computeOrientation (Eigen::Vector3f A, Eigen::Vector3f E, Eigen::Quaternionf &orientation)
 
void copyCameraConfig (const ArSession *ar_session, const ArCameraConfigList *all_configs, int index, int num_configs, CameraConfig *camera_config)
 
QIcon createIcon (const QColor &color)
 
static void crossProduct (T ax, T ay, T az, T bx, T by, T bz, T &rx, T &ry, T &rz)
 
std::vector< double > cumSum (const std::vector< double > &v)
 
void cvStereoRectifyFisheye (const CvMat *_cameraMatrix1, const CvMat *_cameraMatrix2, const CvMat *_distCoeffs1, const CvMat *_distCoeffs2, CvSize imageSize, const CvMat *matR, const CvMat *matT, CvMat *_R1, CvMat *_R2, CvMat *_P1, CvMat *_P2, CvMat *matQ, int flags, double alpha, CvSize newImgSize)
 
bool RTABMAP_CORE_EXPORT databaseRecovery (const std::string &corruptedDatabase, bool keepCorruptedDatabase=true, std::string *errorMsg=0, ProgressState *progressState=0)
 
double DEG2RAD (const double x)
 
std::shared_ptr< chisel::DepthImage< float > > depthImageToChisel (const cv::Mat &image)
 
void destroyCameraConfigs (std::vector< CameraConfig > &camera_configs)
 
cv::Mat drawChessboard (int squareSize, int boardWidth, int boardHeight, int borderSize)
 
void drawDetectedCornersCharuco (cv::InputOutputArray image, cv::InputArray charucoCorners, cv::InputArray charucoIds=cv::noArray(), cv::Scalar cornerColor=cv::Scalar(255, 0, 0))
 
PointMatcher< T >::TransformationParameters eigenMatrixToDim (const typename PointMatcher< T >::TransformationParameters &matrix, int dimp1)
 
void feedImpl (const std::map< int, typename pcl::PointCloud< PointT >::Ptr > &clouds, const std::map< int, pcl::IndicesPtr > &indices, const std::multimap< int, Link > &links, float maxCorrespondenceDistance, double minOverlap, double alpha, double beta, cv::Mat_< double > &gains, std::map< int, int > &idToIndex)
 
void floodfill (QRgb *bits, const cv::Mat &depthImage, int x, int y, float lastDepthValue, float error, int &iterations)
 
ScreenRotation GetAndroidRotationFromColorCameraToDisplay (int display_rotation, int color_camera_rotation)
 
ScreenRotation GetAndroidRotationFromColorCameraToDisplay (ScreenRotation display_rotation, int color_camera_rotation)
 
void getCameraConfigLowestAndHighestResolutions (std::vector< CameraConfig > &camera_configs, CameraConfig **lowest_resolution_config, CameraConfig **highest_resolution_config)
 
Transform getMeanVelocity (const std::list< std::pair< std::vector< float >, double > > &transforms)
 
std::string getPDALSupportedWriters ()
 
std::string getPythonTraceback ()
 
static float getScale (int level, int firstLevel, double scaleFactor)
 
glm::mat4 glmFromTransform (const rtabmap::Transform &transform)
 
rtabmap::Transform glmToTransform (const glm::mat4 &mat)
 
static void HarrisResponses (const Mat &img, std::vector< KeyPoint > &pts, int blockSize, float harris_k)
 
static float IC_Angle (const Mat &image, const int half_k, Point2f pt, const std::vector< int > &u_max)
 
static float IC_Angle (const Mat &image, Point2f pt, const vector< int > &u_max, int halfPatchSize)
 
rtabmap::Transform icpCC (const pcl::PointCloud< pcl::PointXYZI >::Ptr &fromCloud, pcl::PointCloud< pcl::PointXYZI >::Ptr &toCloud, int maxIterations=150, double minRMSDecrease=0.00001, bool force3DoF=false, bool force4DoF=false, int samplingLimit=50000, double finalOverlapRatio=0.85, bool filterOutFarthestPoints=false, double maxFinalRMS=0.2, float *finalRMS=0, std::string *errorMsg=0)
 
void icvGetRectanglesFisheye (const CvMat *cameraMatrix, const CvMat *distCoeffs, const CvMat *R, const CvMat *newCameraMatrix, CvSize imgSize, cv::Rect_< float > &inner, cv::Rect_< float > &outer)
 
int inFrontOfBothCameras (const cv::Mat &x, const cv::Mat &xp, const cv::Mat &R, const cv::Mat &T)
 
void initFisheyeRectificationMap (const CameraModel &fisheyeModel, cv::Mat &mapX, cv::Mat &mapY)
 
static void initializeOrbPattern (const Point *pattern0, std::vector< Point > &pattern, int ntuples, int tupleSize, int poolSize)
 
void invertQuaternion (double q0, double q1, double q2, double q3, double &q0_inv, double &q1_inv, double &q2_inv, double &q3_inv)
 
static float invSqrt (float x)
 
rtabmap::LaserScan laserScanFromDP (const DP &cloud, const rtabmap::Transform &localTransform=rtabmap::Transform::getIdentity())
 
DP laserScanToDP (const rtabmap::LaserScan &scan, bool ignoreLocalTransform=false)
 
static void makeRandomPattern (int patchSize, Point *pattern, int npoints)
 
int NormalizedColorCameraRotation (int camera_rotation)
 
void normalizeQuaternion (double &q0, double &q1, double &q2, double &q3)
 
static void normalizeQuaternion (T &q0, T &q1, T &q2, T &q3)
 
void normalizeVector (double &x, double &y, double &z)
 
static T normalizeVector (T &vx, T &vy, T &vz)
 
static void normalizeVectorOpt (T &vx, T &vy, T &vz)
 
void onFrameAvailableRouter (void *context, TangoCameraId id, const TangoImageBuffer *color)
 
void onPointCloudAvailableRouter (void *context, const TangoPointCloud *point_cloud)
 
void onPoseAvailableRouter (void *context, const TangoPoseData *pose)
 
void onTangoEventAvailableRouter (void *context, const TangoEvent *event)
 
RTABMAP_CORE_EXPORT std::ostream & operator<< (std::ostream &os, const CameraModel &model)
 
RTABMAP_CORE_EXPORT std::ostream & operator<< (std::ostream &os, const StereoCameraModel &model)
 
RTABMAP_CORE_EXPORT std::ostream & operator<< (std::ostream &os, const Transform &s)
 
static void orientationChangeFromGyro (float q0, float q1, float q2, float q3, float gx, float gy, float gz, float &qDot1, float &qDot2, float &qDot3, float &qDot4)
 
void pclFromDP (const DP &cloud, pcl::PointCloud< pcl::PointXYZI > &pclCloud)
 
void pclFromDP (const DP &cloud, pcl::PointCloud< pcl::PointXYZINormal > &pclCloud)
 
DP pclToDP (const pcl::PointCloud< pcl::PointXYZI >::Ptr &pclCloud, bool is2D)
 
DP pclToDP (const pcl::PointCloud< pcl::PointXYZINormal >::Ptr &pclCloud, bool is2D)
 
chisel::PointCloudPtr pointCloudRGBToChisel (const typename pcl::PointCloud< PointRGBT > &cloud, const Transform &transform=Transform::getIdentity())
 
chisel::PointCloudPtr pointCloudToChisel (const typename pcl::PointCloud< PointT > &cloud, const Transform &transform=Transform::getIdentity())
 
void quaternionMultiplication (double p0, double p1, double p2, double p3, double q0, double q1, double q2, double q3, double &r0, double &r1, double &r2, double &r3)
 
double RAD2DEG (const double x)
 
void readINIImpl (const CSimpleIniA &ini, const std::string &configFilePath, ParametersMap &parameters, bool modifiedOnly)
 
std::vector< double > resample (const std::vector< double > &p, const std::vector< double > &w, bool normalizeWeights=false)
 
double resolveHourAmbiguity (const double &stamp, const double &nominal_stamp)
 
double rosTimeFromGpsTimestamp (const uint32_t data)
 
static void rotateAndScaleVector (float q0, float q1, float q2, float q3, float _2dx, float _2dy, float _2dz, float &rx, float &ry, float &rz)
 
Eigen::Vector3f rotatePointAroundAxe (const Eigen::Vector3f &point, const Eigen::Vector3f &axis, float angle)
 
void rotateVectorByQuaternion (double x, double y, double z, double q0, double q1, double q2, double q3, double &vx, double &vy, double &vz)
 
 RTABMAP_DEPRECATED (typedef SensorData Image, "rtabmap::Image class is renamed to rtabmap::SensorData, use the last one instead.")
 
int saveLASFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZ > &cloud, const std::vector< int > &cameraIds=std::vector< int >())
 
int saveLASFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZI > &cloud, const std::vector< int > &cameraIds=std::vector< int >())
 
int saveLASFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZRGB > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), const std::vector< float > &intensities=std::vector< float >())
 
int savePDALFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZ > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), bool binary=false)
 
int savePDALFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZI > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), bool binary=false)
 
int savePDALFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZINormal > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), bool binary=false)
 
int savePDALFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZRGB > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), bool binary=false, const std::vector< float > &intensities=std::vector< float >())
 
int savePDALFile (const std::string &filePath, const pcl::PointCloud< pcl::PointXYZRGBNormal > &cloud, const std::vector< int > &cameraIds=std::vector< int >(), bool binary=false, const std::vector< float > &intensities=std::vector< float >())
 
void scaleQuaternion (double gain, double &dq0, double &dq1, double &dq2, double &dq3)
 
bool sortCallback (const std::string &a, const std::string &b)
 
double sqr (uchar v)
 
double square (const double &value)
 
void stereoRectifyFisheye (cv::InputArray _cameraMatrix1, cv::InputArray _distCoeffs1, cv::InputArray _cameraMatrix2, cv::InputArray _distCoeffs2, cv::Size imageSize, cv::InputArray _Rmat, cv::InputArray _Tmat, cv::OutputArray _Rmat1, cv::OutputArray _Rmat2, cv::OutputArray _Pmat1, cv::OutputArray _Pmat2, cv::OutputArray _Qmat, int flags, double alpha, cv::Size newImageSize)
 
bool testAABBAABB (const AABB &a, const AABB &b)
 
cv::Mat RTABMAP_CORE_EXPORT uncompressData (const cv::Mat &bytes)
 
cv::Mat RTABMAP_CORE_EXPORT uncompressData (const std::vector< unsigned char > &bytes)
 
cv::Mat RTABMAP_CORE_EXPORT uncompressData (const unsigned char *bytes, unsigned long size)
 
cv::Mat RTABMAP_CORE_EXPORT uncompressImage (const cv::Mat &bytes)
 
cv::Mat RTABMAP_CORE_EXPORT uncompressImage (const std::vector< unsigned char > &bytes)
 
std::string RTABMAP_CORE_EXPORT uncompressString (const cv::Mat &bytes)
 
 vtkStandardNewMacro (CloudViewerCellPicker)
 
 vtkStandardNewMacro (CloudViewerInteractorStyle)
 
 vtkStandardNewMacro (vtkImageMatSource)
 

Variables

static int bit_pattern_31_ [256 *4]
 
static int bit_pattern_31_ [256 *4]
 
const int c1
 
const int c2
 
const int c3
 
const int c4
 
const int c5
 
RTABMAP_DEPRECATED typedef SensorEvent CameraEvent
 
RTABMAP_DEPRECATED typedef SensorCaptureInfo CameraInfo
 
RTABMAP_DEPRECATED typedef SensorCaptureThread CameraThread
 
const int d1
 
const float factorPI
 
static const int frustum_indices []
 
static const float frustum_vertices []
 
const float HARRIS_K
 
const int holeSize
 
const float kTextureCoords0 []
 
const float kTextureCoords180 []
 
const float kTextureCoords270 []
 
const float kTextureCoords90 []
 
const int kVersionStringLength
 
const float maxDepthError
 
static const rtabmap::Transform opengl_world_T_rtabmap_world (0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f)
 
static const rtabmap::Transform opengl_world_T_tango_world (1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f)
 
static const rtabmap::Transform optical_T_opengl (1.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f)
 
 ROTATION_0
 
 ROTATION_180
 
 ROTATION_270
 
 ROTATION_90
 
 ROTATION_IGNORED
 
static const rtabmap::Transform rtabmap_world_T_opengl_world (0.0f, 0.0f,-1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f)
 
static const rtabmap::Transform rtabmap_world_T_tango_world (0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f)
 
const int scanDownsampling
 
static const rtabmap::Transform tango_device_T_rtabmap_world (0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f)
 
static const rtabmap::Transform tango_world_T_rtabmap_world (0.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f)
 


rtabmap_viz
Author(s): Mathieu Labbe
autogenerated on Mon Apr 28 2025 02:45:31