#pragma once #include "CommonTypes.h" #include "profiler/Profiler.h" #include "api_global.h" namespace mmind { namespace eye { /** * @brief Obtains the rigid body transformations of the custom reference frame of a laser profiler. * The custom reference frame can be adjusted using the "Custom Reference Frame" tool in Mech-Eye * Viewer. The rigid body transformations are automatically calculated after the settings in this * tool have been applied. The "Custom Reference Frame" tool is recommended as the GUI allows you to * adjust the reference frame easily and conveniently. * Alternatively, you can use the rotation and translation methods in @ref FrameTransformation to * define the transformations manually. * @param [in] profiler The @ref profiler handle. * @return The rigid body transformations from the laser profiler reference frame to the custom * reference frame. Refer to @ref FrameTransformation for more details. */ MMIND_API_EXPORT FrameTransformation getTransformationParams(Profiler& profiler); /** * @brief Transforms the reference frame of a point cloud. * @param [in] coordinateTransformation The rigid body transformations from the original reference * frame to the new reference frame. Refer to @ref FrameTransformation for more details. * @param [in] originalPointCloud The @ref ProfileBatch::UntexturedPointCloud whose reference frame * is to be transformed. * @return The @ref ProfileBatch::UntexturedPointCloud after reference frame transformation. */ MMIND_API_EXPORT ProfileBatch::UntexturedPointCloud transformPointCloud( const FrameTransformation& coordinateTransformation, const ProfileBatch::UntexturedPointCloud& originalPointCloud); /** * @brief Transforms the reference frame of a textured point cloud. * @param [in] coordinateTransformation The rigid body transformations from the original reference * frame to the new reference frame. Refer to @ref FrameTransformation for more details. * @param [in] originalTexturedPointCloud The @ref TexturedPointCloud whose reference frame is to be * transformed. * @return The @ref TexturedPointCloud after reference frame transformation. */ MMIND_API_EXPORT ProfileBatch::TexturedPointCloud transformTexturedPointCloud( const FrameTransformation& coordinateTransformation, const ProfileBatch::TexturedPointCloud& originalTexturedPointCloud); } // namespace eye } // namespace mmind