Class CameraParameters
camera parameters. image 크기, focal length, principal point, camera 유형, device natural orientation 기준 camera 회전 각도를 포함합니다.
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
Focal length. camera의 equivalent optical center에서 CCD 평면까지의 거리를 너비와 높이 방향의 unit pixel density로 나눈 값입니다. 단위는 픽셀입니다.
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
Principal point. camera의 principal optical axis가 CCD 평면과 만나는 지점에서 image 왼쪽 위 모서리까지의 픽셀 좌표입니다. 단위는 픽셀입니다.
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 device 유형. default camera, back camera 또는 front camera입니다. 데스크톱 장치는 모두 default camera이고, 모바일 장치는 back camera와 front 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
device natural orientation에서 camera image를 표시할 때 필요한 시계 방향 회전 각도입니다. 범위는 [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
default camera intrinsics로 CameraParameters를 생성합니다. default camera intrinsics(focal length 및 principal point)는 image 크기에 따라 자동으로 계산되지만 특별히 정확하지는 않습니다.
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
custom camera intrinsics로 CameraParameters를 생성합니다. camera intrinsics(focal length, principal point, distortion coefficients)와 camera model을 지정해야 합니다. 지원되는 camera model은 CameraModelType을 참고하십시오. 참고: 이 인터페이스는 신중하게 사용하십시오. 입력 데이터가 잘못되면 객체 생성이 실패하고 empty가 반환될 수 있습니다.
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
camera image 크기가 변경된 후의 동등한 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)
매개 변수
반환 값
imageOrientation
image가 screen에 맞춰 정렬되도록 screen을 기준으로 시계 방향으로 회전해야 하는 각도를 계산합니다. screenRotation은 natural orientation을 기준으로 한 screen image의 시계 방향 회전 각도입니다. 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
image에 horizontal flipping이 필요한지 계산합니다. image 렌더링 시 먼저 회전한 다음 flipping합니다. cameraDeviceType이 front camera이면 flipping이 자동으로 수행됩니다. manualHorizontalFlip을 전달하면 그 위에 수동 flipping을 한 번 더 적용할 수 있습니다.
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
virtual objects를 렌더링하는 데 필요한 perspective projection matrix를 계산하여 camera coordinate system의 점을 clip coordinate system ([-1, 1]^4)으로 변환합니다. z축 주위의 회전도 포함합니다. perspective projection matrix의 형식은 OpenGL과 동일합니다. matrix는 Direct3D처럼 왼쪽에서 곱하지 않고, 점의 동차 좌표 column vector에 오른쪽에서 곱합니다. 데이터는 row-major 순서로 배열되며 OpenGL의 column-major와 반대입니다. clip coordinate system 및 normalized device coordinate system의 정의는 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
camera background image를 렌더링하는 데 필요한 orthographic projection matrix를 계산하여 image rectangle coordinate system ([-1, 1]^2)의 점을 clip coordinate system ([-1, 1]^4)으로 변환합니다. z축 주위의 회전도 포함하며, 정의되지 않은 두 차원은 변경되지 않습니다. orthographic projection matrix의 형식은 OpenGL과 동일합니다. matrix는 Direct3D처럼 왼쪽에서 곱하지 않고, 점의 동차 좌표에 오른쪽에서 곱합니다. 데이터는 row-major 순서로 배열되며 OpenGL의 column-major와 반대입니다. clip coordinate system 및 normalized device coordinate system의 정의는 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
image coordinate system ([0, 1]^2)에서 screen coordinate system ([0, 1]^2)으로 변환합니다. 두 coordinate system 모두 x는 오른쪽, y는 아래쪽을 향하고 origin은 왼쪽 위 모서리에 있습니다.
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
screen coordinate system ([0, 1]^2)에서 image coordinate system ([0, 1]^2)으로 변환합니다. 두 coordinate system 모두 x는 오른쪽, y는 아래쪽을 향하고 origin은 왼쪽 위 모서리에 있습니다.
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
두 parameter 세트가 같은지 판단합니다.
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)
매개 변수
반환 값