Class CameraParameters
camera parameters, incluidos el tamano de la image, focal length, principal point, tipo de camera y angulo de rotacion de la camera relativo a la device natural orientation.
CameraParameters
Constructores
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)
Parámetros
Métodos
size
easyar_Vec2I easyar_CameraParameters_size(const easyar_CameraParameters * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Devuelve
focalLength
Focal length. La distancia desde el optical center equivalente de la camera hasta el plano CCD dividida por la unit pixel density en las direcciones de anchura y altura. La unidad son pixeles.
easyar_Vec2F easyar_CameraParameters_focalLength(const easyar_CameraParameters * This)
public @Nonnull Vec2F focalLength()
- (easyar_Vec2F *)focalLength
public func focalLength() -> Vec2F
public virtual Vec2F focalLength()
Devuelve
principalPoint
Principal point. Las coordenadas de pixel desde el punto de interseccion del principal optical axis de la camera en el plano CCD hasta la esquina superior izquierda de la image. La unidad son pixeles.
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()
Devuelve
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()
Devuelve
cameraDeviceType
Tipo de camera device. Default camera, back camera o front camera. Los dispositivos desktop son todos default camera, mientras que los dispositivos moviles distinguen back camera y 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()
Devuelve
cameraOrientation
El angulo de rotacion en sentido horario necesario al mostrar la camera image en la device natural orientation. El rango es [0, 360). Los telefonos Android y algunas tabletas Android son 90 grados. Las gafas Android y algunas tabletas Android son 0 grados. Los dispositivos iOS existentes son todos 90 grados.
int easyar_CameraParameters_cameraOrientation(const easyar_CameraParameters * This)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Devuelve
createWithDefaultIntrinsics
Crea CameraParameters con default camera intrinsics. Los default camera intrinsics (focal length y principal point) se calculan automaticamente segun el tamano de la image, pero no son especialmente precisos.
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)
Parámetros
Devuelve
tryCreateWithCustomIntrinsics
Crea CameraParameters con custom camera intrinsics. Se deben especificar camera intrinsics (focal length, principal point, distortion coefficients) y camera model. Para los camera model soportados, consulte CameraModelType. Nota: use esta interfaz con cuidado. Datos de entrada incorrectos pueden hacer que la creacion del objeto falle y devuelva 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)
Parámetros
Devuelve
| Tipo |
Descripción |
| Optional<> |
|
getResized
Obtiene CameraParameters equivalentes despues de que cambie el tamano de la camera image.
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)
Parámetros
| Nombre |
Tipo |
Descripción |
| imageSize |
Vec2I |
|
Devuelve
imageOrientation
Calcula el angulo horario que la image debe rotar respecto a la screen para alinearse con la screen. screenRotation es el angulo de rotacion horario de la screen image relativo a la natural orientation. Para iOS: * UIInterfaceOrientationPortrait: screenRotation = 0 * UIInterfaceOrientationLandscapeRight: screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180 * UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Para 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)
Parámetros
| Nombre |
Tipo |
Descripción |
| screenRotation |
Int32 |
|
Devuelve
imageHorizontalFlip
Calcula si la image necesita horizontal flipping. Durante el renderizado de la image, primero se aplica la rotacion y luego el flipping. Cuando cameraDeviceType es front camera, el flipping se realiza automaticamente; manualHorizontalFlip se puede pasar para aplicar un flipping manual adicional.
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)
Parámetros
| Nombre |
Tipo |
Descripción |
| manualHorizontalFlip |
Boolean |
|
Devuelve
projection
Calcula la perspective projection matrix necesaria para renderizar virtual objects, transformando puntos del camera coordinate system al clip coordinate system ([-1, 1]^4), incluida la rotacion alrededor del eje z. La perspective projection matrix tiene la misma forma que OpenGL: la matrix multiplica por la derecha al column vector de coordenadas homogeneas del punto, no por la izquierda como en Direct3D. Los datos estan en orden row-major, opuesto al column-major de OpenGL. Las definiciones del clip coordinate system y del normalized device coordinate system son iguales a las predeterminadas de 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)
Parámetros
| Nombre |
Tipo |
Descripción |
| nearPlane |
Single |
|
| farPlane |
Single |
|
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
Devuelve
imageProjection
Calcula la orthographic projection matrix necesaria para renderizar la camera background image, transformando puntos del image rectangle coordinate system ([-1, 1]^2) al clip coordinate system ([-1, 1]^4), incluida la rotacion alrededor del eje z, mientras que las dos dimensiones no definidas permanecen sin cambios. La orthographic projection matrix tiene la misma forma que OpenGL: la matrix multiplica por la derecha a las coordenadas homogeneas del punto, no por la izquierda como en Direct3D. Los datos estan en orden row-major, opuesto al column-major de OpenGL. Las definiciones del clip coordinate system y del normalized device coordinate system son iguales a las predeterminadas de 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)
Parámetros
| Nombre |
Tipo |
Descripción |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
Devuelve
screenCoordinatesFromImageCoordinates
Transforma desde el image coordinate system ([0, 1]^2) al screen coordinate system ([0, 1]^2). En ambos coordinate system, x apunta a la derecha, y apunta hacia abajo y el origin esta en la esquina superior izquierda.
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)
Parámetros
| Nombre |
Tipo |
Descripción |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
| imageCoordinates |
Vec2F |
|
Devuelve
imageCoordinatesFromScreenCoordinates
Transforma desde el screen coordinate system ([0, 1]^2) al image coordinate system ([0, 1]^2). En ambos coordinate system, x apunta a la derecha, y apunta hacia abajo y el origin esta en la esquina superior izquierda.
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)
Parámetros
| Nombre |
Tipo |
Descripción |
| viewportAspectRatio |
Single |
|
| screenRotation |
Int32 |
|
| combiningFlip |
Boolean |
|
| manualHorizontalFlip |
Boolean |
|
| screenCoordinates |
Vec2F |
|
Devuelve
equalsTo
Determina si dos conjuntos de parameters son iguales.
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)
Parámetros
Devuelve