Class CameraParameters
Параметры камеры, включая размер изображения, фокусное расстояние, главную точку, тип камеры и угол поворота камеры относительно естественной ориентации устройства.
CameraParameters
Конструкторы
CameraParameters
void easyar_CameraParameters__ctor(easyar_Vec2I imageSize, easyar_Vec2F focalLength, easyar_Vec2F principalPoint, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_CameraParameters * * Return)
CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
public CameraParameters(@Nonnull Vec2I imageSize, @Nonnull Vec2F focalLength, @Nonnull Vec2F principalPoint, int cameraDeviceType, int cameraOrientation)
constructor(imageSize: Vec2I, focalLength: Vec2F, principalPoint: Vec2F, cameraDeviceType: Int, cameraOrientation: Int)
+ (easyar_CameraParameters *) create:(easyar_Vec2I *)imageSize focalLength:(easyar_Vec2F *)focalLength principalPoint:(easyar_Vec2F *)principalPoint cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public convenience init(_ imageSize: Vec2I, _ focalLength: Vec2F, _ principalPoint: Vec2F, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32)
public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
Параметры
Методы
size
easyar_Vec2I easyar_CameraParameters_size(const easyar_CameraParameters * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Возвращаемое значение
focalLength
Фокусное расстояние. Расстояние от эквивалентного оптического центра камеры до плоскости CCD, деленное на плотность пикселей по ширине и высоте. Единица измерения: пиксели.
easyar_Vec2F easyar_CameraParameters_focalLength(const easyar_CameraParameters * This)
public @Nonnull Vec2F focalLength()
- (easyar_Vec2F *)focalLength
public func focalLength() -> Vec2F
public virtual Vec2F focalLength()
Возвращаемое значение
principalPoint
Главная точка. Координаты в пикселях точки пересечения главной оптической оси камеры с плоскостью CCD относительно верхнего левого угла изображения. Единица измерения: пиксели.
easyar_Vec2F easyar_CameraParameters_principalPoint(const easyar_CameraParameters * This)
public @Nonnull Vec2F principalPoint()
fun principalPoint(): Vec2F
- (easyar_Vec2F *)principalPoint
public func principalPoint() -> Vec2F
public virtual Vec2F principalPoint()
Возвращаемое значение
cameraModelType
easyar_CameraModelType easyar_CameraParameters_cameraModelType(const easyar_CameraParameters * This)
CameraModelType cameraModelType()
public int cameraModelType()
fun cameraModelType(): Int
- (easyar_CameraModelType)cameraModelType
public func cameraModelType() -> CameraModelType
public virtual CameraModelType cameraModelType()
Возвращаемое значение
cameraDeviceType
Тип устройства камеры. По умолчанию camera, задняя камера или фронтальная камера. На настольных устройствах всегда используется камера по умолчанию, на мобильных устройствах различаются задняя и фронтальная камеры.
easyar_CameraDeviceType easyar_CameraParameters_cameraDeviceType(const easyar_CameraParameters * This)
CameraDeviceType cameraDeviceType()
public int cameraDeviceType()
fun cameraDeviceType(): Int
- (easyar_CameraDeviceType)cameraDeviceType
public func cameraDeviceType() -> CameraDeviceType
public virtual CameraDeviceType cameraDeviceType()
Возвращаемое значение
cameraOrientation
Угол, на который требуется повернуть изображение камеры по часовой стрелке для отображения в естественной ориентации устройства. Диапазон: [0, 360).
Для Android-смартфонов и некоторых Android-планшетов: 90 градусов.
Для Android-очков и некоторых Android-планшетов: 0 градусов.
Для существующих iOS-устройств: 90 градусов.
int easyar_CameraParameters_cameraOrientation(const easyar_CameraParameters * This)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Возвращаемое значение
createWithDefaultIntrinsics
Создает CameraParameters с параметрами камеры по умолчанию. Параметры камеры по умолчанию (фокусное расстояние, главная точка) рассчитываются автоматически на основе размера изображения, но не являются особенно точными.
void easyar_CameraParameters_createWithDefaultIntrinsics(easyar_Vec2I imageSize, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_CameraParameters * * Return)
static std::shared_ptr<CameraParameters> createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
public static @Nonnull CameraParameters createWithDefaultIntrinsics(@Nonnull Vec2I imageSize, int cameraDeviceType, int cameraOrientation)
companion object fun createWithDefaultIntrinsics(imageSize: Vec2I, cameraDeviceType: Int, cameraOrientation: Int): CameraParameters
+ (easyar_CameraParameters *)createWithDefaultIntrinsics:(easyar_Vec2I *)imageSize cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public static func createWithDefaultIntrinsics(_ imageSize: Vec2I, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32) -> CameraParameters
public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
Параметры
Возвращаемое значение
tryCreateWithCustomIntrinsics
Создает CameraParameters с пользовательскими внутренними параметрами камеры. Требуется указать внутренние параметры камеры (фокусное расстояние, главная точка, коэффициенты искажения) и модель камеры. Поддерживаемые модели камер см. в CameraModelType.
Примечание: Используйте этот интерфейс с осторожностью; некорректные входные данные могут привести к сбою создания объекта, возвращается пустое значение.
void easyar_CameraParameters_tryCreateWithCustomIntrinsics(easyar_Vec2I imageSize, easyar_ListOfFloat * cameraParamList, easyar_CameraModelType cameraModel, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_OptionalOfCameraParameters * Return)
static std::optional<std::shared_ptr<CameraParameters>> tryCreateWithCustomIntrinsics(Vec2I imageSize, std::vector<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
public static @Nullable CameraParameters tryCreateWithCustomIntrinsics(@Nonnull Vec2I imageSize, java.util.@Nonnull ArrayList<java.lang.@Nonnull Float> cameraParamList, int cameraModel, int cameraDeviceType, int cameraOrientation)
companion object fun tryCreateWithCustomIntrinsics(imageSize: Vec2I, cameraParamList: ArrayList<Float>, cameraModel: Int, cameraDeviceType: Int, cameraOrientation: Int): CameraParameters?
+ (easyar_CameraParameters *)tryCreateWithCustomIntrinsics:(easyar_Vec2I *)imageSize cameraParamList:(NSArray<NSNumber *> *)cameraParamList cameraModel:(easyar_CameraModelType)cameraModel cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public static func tryCreateWithCustomIntrinsics(_ imageSize: Vec2I, _ cameraParamList: [Float], _ cameraModel: CameraModelType, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32) -> CameraParameters?
public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
Параметры
Возвращаемое значение
getResized
Получает эквивалентные CameraParameters после изменения размера изображения камеры.
void easyar_CameraParameters_getResized(easyar_CameraParameters * This, easyar_Vec2I imageSize, easyar_CameraParameters * * Return)
std::shared_ptr<CameraParameters> getResized(Vec2I imageSize)
public @Nonnull CameraParameters getResized(@Nonnull Vec2I imageSize)
fun getResized(imageSize: Vec2I): CameraParameters
- (easyar_CameraParameters *)getResized:(easyar_Vec2I *)imageSize
public func getResized(_ imageSize: Vec2I) -> CameraParameters
public virtual CameraParameters getResized(Vec2I imageSize)
Параметры
| Имя |
Тип |
Описание |
| imageSize |
Vec2I |
|
Возвращаемое значение
imageOrientation
Вычисляет угол, на который требуется повернуть изображение по часовой стрелке относительно экрана для совмещения с экраном.
screenRotation - угол поворота изображения экрана по часовой стрелке относительно естественной ориентации.
Для iOS:
- UIInterfaceOrientationPortrait: screenRotation = 0
- UIInterfaceOrientationLandscapeRight: screenRotation = 90
- UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180
- UIInterfaceOrientationLandscapeLeft: screenRotation = 270
Для Android:
- Surface.ROTATION_0: screenRotation = 0
- Surface.ROTATION_90: screenRotation = 90
- Surface.ROTATION_180: screenRotation = 180
- Surface.ROTATION_270: screenRotation = 270
int easyar_CameraParameters_imageOrientation(const easyar_CameraParameters * This, int screenRotation)
int imageOrientation(int screenRotation)
public int imageOrientation(int screenRotation)
fun imageOrientation(screenRotation: Int): Int
- (int)imageOrientation:(int)screenRotation
public func imageOrientation(_ screenRotation: Int32) -> Int32
public virtual int imageOrientation(int screenRotation)
Параметры
| Имя |
Тип |
Описание |
| screenRotation |
Int32 |
|
Возвращаемое значение
imageHorizontalFlip
Определяет, требуется ли зеркальное отражение изображения по горизонтали. При рендеринге изображения сначала выполняется поворот, затем отражение. Когда cameraDeviceType является фронтальной камерой, отражение выполняется автоматически; на основе этого можно передать manualHorizontalFlip для дополнительного ручного отражения.
bool easyar_CameraParameters_imageHorizontalFlip(const easyar_CameraParameters * This, bool manualHorizontalFlip)
bool imageHorizontalFlip(bool manualHorizontalFlip)
public boolean imageHorizontalFlip(boolean manualHorizontalFlip)
fun imageHorizontalFlip(manualHorizontalFlip: Boolean): Boolean
- (bool)imageHorizontalFlip:(bool)manualHorizontalFlip
public func imageHorizontalFlip(_ manualHorizontalFlip: Bool) -> Bool
public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)
Параметры
| Имя |
Тип |
Описание |
| manualHorizontalFlip |
Boolean |
|
Возвращаемое значение
projection
Вычисляет матрицу перспективной проекции, необходимую для рендеринга виртуальных объектов, преобразуя точки из системы координат камеры в систему координат отсечения ([-1, 1]^4) (включая поворот вокруг оси Z). Форма матрицы перспективной проекции совпадает с OpenGL: матрица умножается справа на вектор-столбец однородных координат точки, в отличие от Direct3D, где умножение слева. Однако данные располагаются в порядке row-major, в отличие от column-major в OpenGL. Определения систем координат отсечения и нормализованных устройственных координат по умолчанию совпадают с OpenGL.
easyar_Matrix44F easyar_CameraParameters_projection(const easyar_CameraParameters * This, float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
public @Nonnull Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip)
fun projection(nearPlane: Float, farPlane: Float, viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean): Matrix44F
- (easyar_Matrix44F *)projection:(float)nearPlane farPlane:(float)farPlane viewportAspectRatio:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip
public func projection(_ nearPlane: Float, _ farPlane: Float, _ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool) -> Matrix44F
public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Параметры
| Имя |
Тип |
Описание |
| nearPlane |
Single |
|
| farPlane |
Single |
|
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
Возвращаемое значение
imageProjection
Вычисляет матрицу ортографической проекции, необходимую для рендеринга фонового изображения камеры, преобразуя точки из системы координат прямоугольника изображения ([-1, 1]^2) в систему координат отсечения ([-1, 1]^4) (включая поворот вокруг оси Z), оставляя две неопределенные размерности неизменными. Форма матрицы ортографической проекции совпадает с OpenGL: матрица умножается справа на однородные координаты точки, в отличие от Direct3D, где умножение слева. Однако данные располагаются в порядке row-major, в отличие от column-major в OpenGL. Определения систем координат отсечения и нормализованных устройственных координат по умолчанию совпадают с OpenGL.
easyar_Matrix44F easyar_CameraParameters_imageProjection(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
public @Nonnull Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip)
fun imageProjection(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean): Matrix44F
- (easyar_Matrix44F *)imageProjection:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip
public func imageProjection(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool) -> Matrix44F
public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Параметры
| Имя |
Тип |
Описание |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
Возвращаемое значение
screenCoordinatesFromImageCoordinates
Преобразует из системы координат изображения ([0, 1]^2) в систему координат экрана ([0, 1]^2). В обеих системах ось X направлена вправо, ось Y - вниз, начало координат - в верхнем левом углу.
easyar_Vec2F easyar_CameraParameters_screenCoordinatesFromImageCoordinates(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, easyar_Vec2F imageCoordinates)
Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
public @Nonnull Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip, @Nonnull Vec2F imageCoordinates)
fun screenCoordinatesFromImageCoordinates(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean, imageCoordinates: Vec2F): Vec2F
- (easyar_Vec2F *)screenCoordinatesFromImageCoordinates:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip imageCoordinates:(easyar_Vec2F *)imageCoordinates
public func screenCoordinatesFromImageCoordinates(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool, _ imageCoordinates: Vec2F) -> Vec2F
public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
Параметры
| Имя |
Тип |
Описание |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
| imageCoordinates |
Vec2F |
|
Возвращаемое значение
imageCoordinatesFromScreenCoordinates
Преобразует из системы координат экрана ([0, 1]^2) в систему координат изображения ([0, 1]^2). В обеих системах ось X направлена вправо, ось Y - вниз, начало координат - в верхнем левом углу.
easyar_Vec2F easyar_CameraParameters_imageCoordinatesFromScreenCoordinates(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, easyar_Vec2F screenCoordinates)
Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
public @Nonnull Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip, @Nonnull Vec2F screenCoordinates)
fun imageCoordinatesFromScreenCoordinates(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean, screenCoordinates: Vec2F): Vec2F
- (easyar_Vec2F *)imageCoordinatesFromScreenCoordinates:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip screenCoordinates:(easyar_Vec2F *)screenCoordinates
public func imageCoordinatesFromScreenCoordinates(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool, _ screenCoordinates: Vec2F) -> Vec2F
public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
Параметры
| Имя |
Тип |
Описание |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
| screenCoordinates |
Vec2F |
|
Возвращаемое значение
equalsTo
Определяет, равны ли два набора параметров.
bool easyar_CameraParameters_equalsTo(const easyar_CameraParameters * This, easyar_CameraParameters * other)
bool equalsTo(std::shared_ptr<CameraParameters> other)
public boolean equalsTo(@Nonnull CameraParameters other)
fun equalsTo(other: CameraParameters): Boolean
- (bool)equalsTo:(easyar_CameraParameters *)other
public func equalsTo(_ other: CameraParameters) -> Bool
public virtual bool equalsTo(CameraParameters other)
Параметры
Возвращаемое значение