Geometry Primitives

Since JavaScript does not ship geometry helpers by default, we at PSPDFKit developed a set of tested geometry classes that we use throughout all our classes. These types are based on the Immutable.js library in order to work with immutable data.

This article should give you a quick overview of the basic data types we expose right now and when you want to use them. Please refer to the PSPDFKit.Geometry documentation for an in-depth look at the APIs.

Nutrient Class Use Case
Point Describe a point in 2D space.
DrawingPoint An extension of the point with an intensity value. This is used for storing pressure while drawing an InkAnnotation.
Rect Describes a rectangle in space. This is the combination of a location (point) and a dimension (size).
Size Describes the size of an element. This is similar to point, but its value should be interpreted as a dimension.

All of these classes come with a number of geometric helpers. For a full list, please refer to the PSPDFKit.Geometry documentation:

const { Point } = PSPDFKit.Geometry;

const point = new Point({ x: 10, y: 20 })
  .translateX(20)
  .translateY(40)
  .scale(1.5);

console.log(point); // => Point({ x: 45, y: 90 })
var point = new PSPDFKit.Geometry.Point({ x: 10, y: 20 })
  .translateX(20)
  .translateY(40)
  .scale(1.5);

console.log(point); // => Point({ x: 45, y: 90 })