UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

44 lines (35 loc) 1.07 kB
import type { CanvasKit, ContourMeasure } from "canvaskit-wasm"; import type { SkContourMeasure } from "../types"; import { HostObject } from "./Host"; import { JsiSkPath } from "./JsiSkPath"; import { JsiSkPoint } from "./JsiSkPoint"; export class JsiSkContourMeasure extends HostObject<ContourMeasure, "ContourMeasure"> implements SkContourMeasure { constructor(CanvasKit: CanvasKit, ref: ContourMeasure) { super(CanvasKit, ref, "ContourMeasure"); } getPosTan(distance: number): [position: JsiSkPoint, tangent: JsiSkPoint] { const posTan = this.ref.getPosTan(distance); return [ new JsiSkPoint(this.CanvasKit, posTan.slice(0, 2)), new JsiSkPoint(this.CanvasKit, posTan.slice(2)), ]; } getSegment(startD: number, stopD: number, startWithMoveTo: boolean) { return new JsiSkPath( this.CanvasKit, this.ref.getSegment(startD, stopD, startWithMoveTo) ); } isClosed() { return this.ref.isClosed(); } length() { return this.ref.length(); } dispose = () => { this.ref.delete(); }; }