cmvr-es/third_party/mech-eye-sdk/include/profiler/PointCloudTransformation.h
2025-08-21 13:56:39 +08:00

47 lines
2.3 KiB
C++

#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