# Common Data Structures

## Geometric Types

Defined in package com.scandit.datacapture.core.geometry

MeasureUnit

Specifies in what units the value has been specified (fraction, device-independent pixels, pixels).

DIP

Value is measured in device-independent pixels.

PIXEL

Value is measured in pixels.

FRACTION

Value is measured as a fraction. Valid values range from 0 to 1. This can be used to specify values in relative coordinates with respect to a reference, e.g. the view width or height.

SizingMode

An enumeration of possible ways to define a rectangular size.

WIDTH_AND_HEIGHT

This value will use a SizeWithUnit to determine width and the height.

WIDTH_AND_ASPECT_RATIO

This value will use a FloatWithUnit to determine the width and a float multiplier to determine the height.

HEIGHT_AND_ASPECT_RATIO

This value will use a FloatWithUnit to determine the height and a float multiplier to determine the width.

SHORTER_DIMENSION_AND_ASPECT_RATIO

This value will use a FloatWithUnit to determine the rectangle length on the short side of the reference and a float multiplier to determine the length on the long side.

Point
`class Point`

Point()
```Point(`float` x,
`float` y)```

Construct a new point at position x and y.

x
````float` getX()
```

X coordinate of the point.

y
````float` getY()
```

Y coordinate of the point.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

PointWithUnit
`class PointWithUnit`

PointWithUnit()
```PointWithUnit(@NonNull FloatWithUnit x,
@NonNull FloatWithUnit y)```

Construct a new point at position x and y.

x
```@NonNull FloatWithUnit getX()
```

X coordinate of the point.

y
```@NonNull FloatWithUnit getY()
```

Y coordinate of the point.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

Rect
`class Rect`

Rect()
```Rect(@NonNull Point origin,
@NonNull Size2 size)```

Construct a new rectangle.

origin
```@NonNull Point getOrigin()
```

The origin (top-left corner) of the rectangle.

size
```@NonNull Size2 getSize()
```

The size of the rectangle.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

RectWithUnit
`class RectWithUnit`

RectWithUnit()
```RectWithUnit(@NonNull PointWithUnit origin,
@NonNull SizeWithUnit size)```

Construct a new rectangle with unit.

origin
```@NonNull PointWithUnit getOrigin()
```

The origin (top-left corner) of the rectangle.

size
```@NonNull SizeWithUnit getSize()
```

The size of the rectangle.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

Size2
`class Size2`

Size2()
```Size2(`float` width,
`float` height)```

Construct a new Size2 instance.

width
````float` getWidth()
```

The width.

height
````float` getHeight()
```

The height.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

SizeWithUnit
`class SizeWithUnit`

SizeWithUnit()
```SizeWithUnit(@NonNull FloatWithUnit width,
@NonNull FloatWithUnit height)```

Construct a new size with unit.

width
```@NonNull FloatWithUnit getWidth()
```

The width.

height
```@NonNull FloatWithUnit getHeight()
```

The height.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

SizeWithAspect
`class SizeWithAspect`

Holds values to define a rectangular size using a dimension and an aspect ratio multiplier.

SizeWithAspect()
```SizeWithAspect(@NonNull FloatWithUnit size,
`float` aspect)```

Construct a new size with aspect.

size
```@NonNull FloatWithUnit getSize()
```

The size of one dimension.

aspect
````float` getAspect()
```

The aspect ratio for the other dimension.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

FloatWithUnit
`class FloatWithUnit`

Holds a floating-point value plus a measure unit.

FloatWithUnit()
```FloatWithUnit(`float` value,
MeasureUnit unit)```

Construct a new float with unit.

value
````float` getValue()
```

unit
```MeasureUnit getUnit()
```

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

MarginsWithUnit
`class MarginsWithUnit`

Holds margin values (left, top, right, bottom) that can each be expressed with a different measure unit.

MarginsWithUnit()
```MarginsWithUnit(@NonNull FloatWithUnit left,
@NonNull FloatWithUnit top,
@NonNull FloatWithUnit right,
@NonNull FloatWithUnit bottom)```

Constructs a new MarginsWithUnit instance.

left
```@NonNull FloatWithUnit getLeft()
```

Left margin.

right
```@NonNull FloatWithUnit getRight()
```

Right margin.

top
```@NonNull FloatWithUnit getTop()
```

Top margin.

bottom
```@NonNull FloatWithUnit getBottom()
```

Bottom margin.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

MarginsF
`class MarginsF`

Holds float margin values (left, top, right, bottom).

MarginsF()
```MarginsF(`float` left,
`float` top,
`float` right,
`float` bottom)```

Constructs a new MarginsF instance.

left
````float` getLeft()
```

Left margin.

right
````float` getRight()
```

Right margin.

top
````float` getTop()
```

Top margin.

bottom
````float` getBottom()
```

Bottom margin.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

`class Quadrilateral`

Polygon represented by 4 corners.

```Quadrilateral(@NonNull Point topLeft,
@NonNull Point topRight,
@NonNull Point bottomRight,
@NonNull Point bottomLeft)```

topLeft
```@NonNull Point getTopLeft()
```

topRight
```@NonNull Point getTopRight()
```

bottomRight
```@NonNull Point getBottomRight()
```

bottomLeft
```@NonNull Point getBottomLeft()
```

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

SizeWithUnitAndAspect
`class SizeWithUnitAndAspect`

Holds a SizingMode - and corresponding required values - to define a rectangular size.

widthAndHeight
```@Nullable SizeWithUnit getWidthAndHeight()
```

The values for width and height.

Note

This value will always be null unless sizingMode is SizingMode.WIDTH_AND_HEIGHT.

widthAndAspectRatio
```@Nullable SizeWithAspect getWidthAndAspectRatio()
```

The value for width and the aspect ratio for height.

Note

This value will always be null unless sizingMode is SizingMode.WIDTH_AND_ASPECT_RATIO.

heightAndAspectRatio
```@Nullable SizeWithAspect getHeightAndAspectRatio()
```

The value for height and the aspect ratio for width.

Note

This value will always be null unless sizingMode is SizingMode.HEIGHT_AND_ASPECT_RATIO.

shorterDimensionAndAspectRatio
```@Nullable SizeWithAspect getShorterDimensionAndAspectRatio()
```

The value for the short dimension of the reference view and the aspect ratio for the long dimension of the reference view.

Note

This value will always be null unless sizingMode is SizingMode.SHORTER_DIMENSION_AND_ASPECT_RATIO.

sizingMode
```SizingMode getSizingMode()
```

The sizing mode.

toJson()
`@NonNull String toJson()`

## Misc Types

Defined in package com.scandit.datacapture.core.common.async

Callback
`interface Callback<T>`

Interface for a callback/callable accepting a generic parameter of type T.

run(result)
``void` run(@NonNull `T` result)`

Called when the callback is invoked.

Defined in package com.scandit.datacapture.core.common.buffer

EncodingRange
`class EncodingRange`

Defines the encoding of a range of bytes.

EncodingRange()
```EncodingRange(@NonNull String ianaName,
`int` startIndex,
`int` endIndex)```

Construct a new encoding range.

ianaName
```@NonNull String getIanaName()
```

Charset encoding name as defined by IANA.

startIndex
````int` getStartIndex()
```

Start index of this encoding range.

endIndex
````int` getEndIndex()
```

End index (first index after the last) of this encoding range.

equals(obj)
``boolean` equals(@Nullable Object obj)`

Indicates whether some other object is equal to this one.

hashCode()
``int` hashCode()`

Returns a hash code value for the object.

Defined in package com.scandit.datacapture.core

Defined in package com.scandit.datacapture.core.time

TimeInterval
`class TimeInterval`

Represents a duration/time interval.

millis(duration)
`static @NonNull TimeInterval millis(`long` duration)`

Returns a new time interval from the provided duration in milliseconds.

seconds(duration)
`static @NonNull TimeInterval seconds(`float` duration)`

Returns a new time interval from the provided duration in seconds.

asSeconds()
``float` asSeconds()`

Returns the duration in seconds.

asMillis()
``long` asMillis()`

Returns the duration in milliseconds

equals(other)
``boolean` equals(@Nullable Object other)`

``int` hashCode()`