Table of Contents

Class CameraParameters

Spazio dei nomi
easyar

camera parameters, inclusi dimensione dell'image, focal length, principal point, tipo di camera e angolo di rotazione della camera rispetto alla device natural orientation.

CameraParameters

Costruttori

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)

Parametri

Nome Tipo Descrizione
imageSize Vec2I
focalLength Vec2F
principalPoint Vec2F
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Metodi

size

Dimensione dell'image.

easyar_Vec2I easyar_CameraParameters_size(const easyar_CameraParameters * This)
Vec2I size()
public @Nonnull Vec2I size()
fun size(): Vec2I
- (easyar_Vec2I *)size
public func size() -> Vec2I
public virtual Vec2I size()

Valore restituito

Tipo Descrizione
Vec2I

focalLength

Focal length. La distanza dall'optical center equivalente della camera al piano CCD divisa per la unit pixel density nelle direzioni di larghezza e altezza. L'unita e in pixel.

easyar_Vec2F easyar_CameraParameters_focalLength(const easyar_CameraParameters * This)
Vec2F focalLength()
public @Nonnull Vec2F focalLength()
fun focalLength(): Vec2F
- (easyar_Vec2F *)focalLength
public func focalLength() -> Vec2F
public virtual Vec2F focalLength()

Valore restituito

Tipo Descrizione
Vec2F

principalPoint

Principal point. Le coordinate pixel dal punto di intersezione del principal optical axis della camera sul piano CCD all'angolo superiore sinistro dell'image. L'unita e in pixel.

easyar_Vec2F easyar_CameraParameters_principalPoint(const easyar_CameraParameters * This)
Vec2F principalPoint()
public @Nonnull Vec2F principalPoint()
fun principalPoint(): Vec2F
- (easyar_Vec2F *)principalPoint
public func principalPoint() -> Vec2F
public virtual Vec2F principalPoint()

Valore restituito

Tipo Descrizione
Vec2F

cameraModelType

Camera model.

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()

Valore restituito

Tipo Descrizione
CameraModelType

cameraDeviceType

Tipo di camera device. Default camera, back camera o front camera. I dispositivi desktop sono tutti default camera, mentre i dispositivi mobile distinguono back camera e 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()

Valore restituito

Tipo Descrizione
CameraDeviceType

cameraOrientation

L'angolo di rotazione in senso orario richiesto quando si visualizza la camera image nella device natural orientation. L'intervallo e [0, 360). Telefoni Android e alcuni tablet Android sono a 90 gradi. Occhiali Android e alcuni tablet Android sono a 0 gradi. I dispositivi iOS esistenti sono tutti a 90 gradi.

int easyar_CameraParameters_cameraOrientation(const easyar_CameraParameters * This)
int cameraOrientation()
public int cameraOrientation()
fun cameraOrientation(): Int
- (int)cameraOrientation
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()

Valore restituito

Tipo Descrizione
Int32

createWithDefaultIntrinsics

Crea CameraParameters con default camera intrinsics. I default camera intrinsics (focal length e principal point) sono calcolati automaticamente in base alla dimensione dell'image, ma non sono particolarmente accurati.

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)

Parametri

Nome Tipo Descrizione
imageSize Vec2I
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Valore restituito

Tipo Descrizione
CameraParameters

tryCreateWithCustomIntrinsics

Crea CameraParameters con custom camera intrinsics. Devono essere specificati camera intrinsics (focal length, principal point, distortion coefficients) e camera model. Per i camera model supportati, fare riferimento a CameraModelType. Nota: usare questa interfaccia con cautela. Dati di input errati possono causare il fallimento della creazione dell'oggetto e restituire 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)

Parametri

Nome Tipo Descrizione
imageSize Vec2I
cameraParamList List<Single>
cameraModel CameraModelType
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Valore restituito

Tipo Descrizione
Optional<>

getResized

Ottiene CameraParameters equivalenti dopo la modifica della dimensione della 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)

Parametri

Nome Tipo Descrizione
imageSize Vec2I

Valore restituito

Tipo Descrizione
CameraParameters

imageOrientation

Calcola l'angolo in senso orario di cui l'image deve ruotare rispetto allo screen per allinearsi allo screen. screenRotation e l'angolo di rotazione in senso orario della screen image rispetto alla natural orientation. Per iOS: * UIInterfaceOrientationPortrait: screenRotation = 0 * UIInterfaceOrientationLandscapeRight: screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180 * UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Per 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)

Parametri

Nome Tipo Descrizione
screenRotation Int32

Valore restituito

Tipo Descrizione
Int32

imageHorizontalFlip

Calcola se l'image necessita di horizontal flipping. Durante il rendering dell'image, viene applicata prima la rotazione e poi il flipping. Quando cameraDeviceType e front camera, il flipping viene eseguito automaticamente; manualHorizontalFlip puo essere passato per applicare un ulteriore flip manuale.

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)

Parametri

Nome Tipo Descrizione
manualHorizontalFlip Boolean

Valore restituito

Tipo Descrizione
Boolean

projection

Calcola la perspective projection matrix necessaria per renderizzare virtual objects, trasformando i punti nel camera coordinate system nel clip coordinate system ([-1, 1]^4), inclusa la rotazione attorno all'asse z. La perspective projection matrix ha la stessa forma di OpenGL: la matrix viene moltiplicata a destra per il column vector delle coordinate omogenee del punto, non a sinistra come in Direct3D. I dati sono disposti in ordine row-major, opposto al column-major di OpenGL. Le definizioni di clip coordinate system e normalized device coordinate system sono uguali ai default di 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)

Parametri

Nome Tipo Descrizione
nearPlane Single
farPlane Single
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Valore restituito

Tipo Descrizione
Matrix44F

imageProjection

Calcola la orthographic projection matrix necessaria per renderizzare la camera background image, trasformando i punti nell'image rectangle coordinate system ([-1, 1]^2) nel clip coordinate system ([-1, 1]^4), inclusa la rotazione attorno all'asse z, mentre le due dimensioni non definite restano invariate. La orthographic projection matrix ha la stessa forma di OpenGL: la matrix viene moltiplicata a destra per le coordinate omogenee del punto, non a sinistra come in Direct3D. I dati sono disposti in ordine row-major, opposto al column-major di OpenGL. Le definizioni di clip coordinate system e normalized device coordinate system sono uguali ai default di 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)

Parametri

Nome Tipo Descrizione
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Valore restituito

Tipo Descrizione
Matrix44F

screenCoordinatesFromImageCoordinates

Trasforma dall'image coordinate system ([0, 1]^2) allo screen coordinate system ([0, 1]^2). In entrambi i coordinate system, x punta a destra, y punta verso il basso e l'origin e nell'angolo superiore sinistro.

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)

Parametri

Nome Tipo Descrizione
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
imageCoordinates Vec2F

Valore restituito

Tipo Descrizione
Vec2F

imageCoordinatesFromScreenCoordinates

Trasforma dallo screen coordinate system ([0, 1]^2) all'image coordinate system ([0, 1]^2). In entrambi i coordinate system, x punta a destra, y punta verso il basso e l'origin e nell'angolo superiore sinistro.

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)

Parametri

Nome Tipo Descrizione
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
screenCoordinates Vec2F

Valore restituito

Tipo Descrizione
Vec2F

equalsTo

Determina se due set di parameters sono uguali.

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)

Parametri

Nome Tipo Descrizione
other CameraParameters

Valore restituito

Tipo Descrizione
Boolean