Table of Contents

Class CameraParameters

Espaço de nomes
easyar

parâmetros da camera,incluindo tamanho da imagem,distância focal,ponto principal,tipo de camera e ângulo de rotação da camera em relação à orientação natural do dispositivo.

CameraParameters

Construtores

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

Nome Tipo Descrição
imageSize Vec2I
focalLength Vec2F
principalPoint Vec2F
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Métodos

size

Tamanho da imagem.

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

Retorna

Tipo Descrição
Vec2I

focalLength

Distância focal. Distância equivalente do centro óptico da câmera ao plano CCD dividida pela densidade de pixels por unidade nas direções de largura e altura. Unidade: pixels.

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

Retorna

Tipo Descrição
Vec2F

principalPoint

Ponto principal. Coordenadas de pixel do ponto onde o eixo óptico principal da câmera cruza o plano CCD até o canto superior esquerdo da imagem. Unidade: pixels.

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

Retorna

Tipo Descrição
Vec2F

cameraModelType

Modelo de câmera.

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

Retorna

Tipo Descrição
CameraModelType

cameraDeviceType

Tipo de dispositivo da câmera. Padrão,camera traseira ou camera frontal. Dispositivos desktop são todos camera padrão,dispositivos móveis distinguem entre camera traseira e frontal.

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

Retorna

Tipo Descrição
CameraDeviceType

cameraOrientation

Ângulo de rotação no sentido horário necessário para exibir a imagem da camera na orientação natural do dispositivo. Intervalo: [0, 360). Celulares Android e alguns tablets Android: 90 graus. Óculos Android e alguns tablets Android: 0 grau. Dispositivos iOS existentes: 90 graus.

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

Retorna

Tipo Descrição
Int32

createWithDefaultIntrinsics

Cria CameraParameters com parâmetros intrínsecos padrão da câmera. Os parâmetros intrínsecos padrão (distância focal,ponto principal) são calculados automaticamente com base no tamanho da imagem,mas não são particularmente 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

Nome Tipo Descrição
imageSize Vec2I
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Retorna

Tipo Descrição
CameraParameters

tryCreateWithCustomIntrinsics

Cria CameraParameters com parâmetros intrínsecos personalizados da câmera. Requer especificação dos parâmetros intrínsecos (distância focal,ponto principal,coeficientes de distorção) e do modelo da câmera. Modelos de câmera suportados consultar CameraModelType. Nota: Use esta interface com cautela,dados de entrada incorretos podem causar falha na criação do objeto,retornando vazio.

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

Nome Tipo Descrição
imageSize Vec2I
cameraParamList List<Single>
cameraModel CameraModelType
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Retorna

Tipo Descrição
Optional<>

getResized

Obtém o CameraParameters equivalente após alteração do tamanho da imagem da câmera.

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

Nome Tipo Descrição
imageSize Vec2I

Retorna

Tipo Descrição
CameraParameters

imageOrientation

Calcula o ângulo de rotação no sentido horário necessário para alinhar a imagem à tela. screenRotation é o ângulo de rotação no sentido horário da imagem da tela em relação à orientação natural. 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

Nome Tipo Descrição
screenRotation Int32

Retorna

Tipo Descrição
Int32

imageHorizontalFlip

Calcula se a imagem precisa ser invertida horizontalmente. Ao renderizar,a imagem é rotacionada primeiro e depois invertida. Quando cameraDeviceType é camera frontal,a inversão é automática. Com base nisso,pode-se aplicar uma inversão horizontal manual adicional via 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)

Parâmetros

Nome Tipo Descrição
manualHorizontalFlip Boolean

Retorna

Tipo Descrição
Boolean

projection

Calcula a matriz de projeção em perspectiva necessária para renderizar objetos virtuais,transformando pontos do sistema de coordenadas da camera para o sistema de coordenadas de recorte ([-1, 1]^4) (incluindo rotação em torno do eixo z). A forma da matriz é idêntica ao OpenGL: matriz multiplicada à direita pelo vetor coluna de coordenadas homogêneas do ponto,oposto ao Direct3D (multiplicação à esquerda). Porém,a disposição dos dados é row-major,oposta ao column-major do OpenGL. As definições dos sistemas de coordenadas de recorte e de dispositivo normalizado são iguais às padrão do 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

Nome Tipo Descrição
nearPlane Single
farPlane Single
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Retorna

Tipo Descrição
Matrix44F

imageProjection

Calcula a matriz de projeção ortográfica necessária para renderizar a imagem de fundo da câmera,transformando pontos do sistema de coordenadas do retângulo da imagem ([-1, 1]^2) para o sistema de coordenadas de recorte ([-1, 1]^4) (incluindo rotação em torno do eixo z),mantendo inalteradas as duas dimensões não definidas. A forma da matriz é idêntica ao OpenGL: matriz multiplicada à direita pelas coordenadas homogêneas do ponto,oposto ao Direct3D. A disposição dos dados é row-major,oposta ao column-major do OpenGL. As definições dos sistemas de coordenadas são iguais às padrão do 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

Nome Tipo Descrição
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Retorna

Tipo Descrição
Matrix44F

screenCoordinatesFromImageCoordinates

Transforma do sistema de coordenadas da imagem ([0, 1]^2) para o sistema de coordenadas da tela ([0, 1]^2),ambos com x para a direita,y para baixo e origem no canto superior esquerdo.

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

Nome Tipo Descrição
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
imageCoordinates Vec2F

Retorna

Tipo Descrição
Vec2F

imageCoordinatesFromScreenCoordinates

Transforma do sistema de coordenadas da tela ([0, 1]^2) para o sistema de coordenadas da imagem ([0, 1]^2),ambos com x para a direita,y para baixo e origem no canto superior esquerdo.

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

Nome Tipo Descrição
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
screenCoordinates Vec2F

Retorna

Tipo Descrição
Vec2F

equalsTo

Determina se dois conjuntos de parâmetros são iguais.

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

Nome Tipo Descrição
other CameraParameters

Retorna

Tipo Descrição
Boolean