CoordinateTransform

public final class CoordinateTransform
extends Object

java.lang.Object
   ↳ androidx.camera.view.transform.CoordinateTransform


This class represents the transform from one OutputTransform to another.

This class can be used to map the coordinates of one OutputTransform to another, given that they are associated with the same ViewPort. OutputTransform can represent the output of a UseCase or PreviewView. For example, mapping the coordinates of detected objects from ImageAnalysis output to the drawing location in PreviewView.


 // imageProxy the output of an ImageAnalysis.
 OutputTransform source = ImageProxyTransformFactory().getOutputTransform(imageProxy);
 OutputTransform target = previewView.getOutputTransform();

 // Build the transform from ImageAnalysis to PreviewView
 CoordinateTransform coordinateTransform = new CoordinateTransform(source, target);

 // Detect face in ImageProxy and transform the coordinates to PreviewView.
 // The value of faceBox can be used to highlight the face in PreviewView.
 RectF faceBox = detectFaceInImageProxy(imageProxy);
 coordinateTransform.mapRect(faceBox);

 

Summary

Public constructors

CoordinateTransform(OutputTransform source, OutputTransform target)

Creates the transform between the source and the target.

Public methods

void mapPoint(PointF point)

Apply this transform to the PointF, and write the transformed points back into the array

void mapPoints(float[] points)

Apply this transform to the array of 2D points, and write the transformed points back into the array

void mapRect(RectF rect)

Apply this transform to the rectangle, and write the transformed rectangle back into it.

void transform(Matrix outMatrix)

Copies the current transform to the specified Matrix.

Inherited methods

Public constructors

CoordinateTransform

public CoordinateTransform (OutputTransform source, 
                OutputTransform target)

Creates the transform between the source and the target.

The source and the target must be associated with the same ViewPort.

Parameters
source OutputTransform: the source

target OutputTransform

Public methods

mapPoint

public void mapPoint (PointF point)

Apply this transform to the PointF, and write the transformed points back into the array

Parameters
point PointF: The point to transform.

mapPoints

public void mapPoints (float[] points)

Apply this transform to the array of 2D points, and write the transformed points back into the array

Parameters
points float: The array [x0, y0, x1, y1, ...] of points to transform.

mapRect

public void mapRect (RectF rect)

Apply this transform to the rectangle, and write the transformed rectangle back into it. This is accomplished by transforming the 4 corners of rect, and then setting it to the bounds of those points.

Parameters
rect RectF: The rectangle to transform.

transform

public void transform (Matrix outMatrix)

Copies the current transform to the specified Matrix.

Parameters
outMatrix Matrix: a Matrix in which to copy the current transform.