orbbec-sdk-sys 0.1.2+2.5.5

Low-level Rust bindings for https://github.com/orbbec/OrbbecSDK_v2
Documentation
// Copyright (c) Orbbec Inc. All Rights Reserved.
// Licensed under the MIT License.

#pragma once

#include <string.h>
#include <vector>
#include <memory>
#include "libobsensor/h/ObTypes.h"

namespace libobsensor {

const OBExtrinsic IdentityExtrinsics = { {
                                             1,
                                             0,
                                             0,
                                             0,
                                             1,
                                             0,
                                             0,
                                             0,
                                             1,
                                         },
                                         { 0, 0, 0 } };

class CameraParamProcessor {
public:
    static void cameraIntrinsicParamsMirror(OBCameraIntrinsic *intrinsic);
    static void distortionParamMirror(OBCameraDistortion *distort);
    static void d2cTransformParamsMirror(OBD2CTransform *transform);

    static void cameraIntrinsicParamsFlip(OBCameraIntrinsic *intrinsic);
    static void distortionParamFlip(OBCameraDistortion *distort);
    static void d2cTransformParamsFlip(OBD2CTransform *transform);

    static void cameraIntrinsicParamsRotate90(OBCameraIntrinsic *intrinsic);
    static void distortionParamRotate90(OBCameraDistortion *distort);
    static void d2cTransformParamsRotate90(OBD2CTransform *transform);

    static void cameraIntrinsicParamsRotate180(OBCameraIntrinsic *intrinsic);
    static void distortionParamRotate180(OBCameraDistortion *distort);
    static void d2cTransformParamsRotate180(OBD2CTransform *transform);

    static void cameraIntrinsicParamsRotate270(OBCameraIntrinsic *intrinsic);
    static void distortionParamRotate270(OBCameraDistortion *distort);
    static void d2cTransformParamsRotate270(OBD2CTransform *transform);

    static void mirrorCameraParam(OBCameraParam *cameraParam);
    static void flipCameraParam(OBCameraParam *cameraParam);
    static void rotateCameraParam(OBCameraParam *cameraParam, int rotateAngle);

    static OBExtrinsic multiplyExtrinsic(const OBExtrinsic &extrinsic1, const OBExtrinsic &extrinsic2);
    static OBExtrinsic inverseExtrinsic(const OBExtrinsic &extrinsic);
};
}  // namespace libobsensor