Skip to content

Instantly share code, notes, and snippets.

@whitetigle
Created May 23, 2017 15:41
Show Gist options
  • Save whitetigle/2580c38eaa9682a1fb0e068106af0d4e to your computer and use it in GitHub Desktop.
Save whitetigle/2580c38eaa9682a1fb0e068106af0d4e to your computer and use it in GitHub Desktop.
Point class from paper.js
and [<AllowNullLiteral>] [<Import("Point","paper")>] Point(x: float,y:float) =
member __.x with get(): float = jsNative and set(v: float): unit = jsNative
member __.y with get(): float = jsNative and set(v: float): unit = jsNative
member __.length with get(): float = jsNative and set(v: float): unit = jsNative
member __.angle with get(): float = jsNative and set(v: float): unit = jsNative
member __.angleInRadians with get(): float = jsNative and set(v: float): unit = jsNative
member __.quadrant with get(): float = jsNative and set(v: float): unit = jsNative
member __.selected with get(): bool = jsNative and set(v: bool): unit = jsNative
static member min(point1: Point, point2: Point): Point = jsNative
static member max(point1: Point, point2: Point): Point = jsNative
static member random(): Point = jsNative
member __.equals(point: Point): bool = jsNative
member __.clone(): Point = jsNative
member __.toString(): string = jsNative
member __.getAngle(Point: Point): float = jsNative
member __.getAngleInRadians(point: Point): float = jsNative
member __.getDirectedAngle(point: Point): float = jsNative
member __.getDistance(point: Point, ?squared: bool): float = jsNative
member __.normalize(?length: float): Point = jsNative
member __.rotate(angle: float, center: Point): Point = jsNative
member __.transform(matrix: Matrix): Point = jsNative
member __.isInside(rect: Rectangle): bool = jsNative
member __.isClose(point: Point, tolerance: float): bool = jsNative
member __.isColinear(point: Point): bool = jsNative
member __.isOrthogonal(point: Point): bool = jsNative
member __.isZero(): bool = jsNative
member __.isNan(): bool = jsNative
member __.dot(point: Point): float = jsNative
member __.cross(point: Point): float = jsNative
member __.project(point: Point): Point = jsNative
member __.round(): Point = jsNative
member __.ceil(): Point = jsNative
member __.floor(): Point = jsNative
member __.abs(): Point = jsNative
member __.add(point: Point): Point = jsNative
member __.add(number: float): Point = jsNative
member __.subtract(point: Point): Point = jsNative
member __.subtract(number: float): Point = jsNative
member __.multiply(point: Point): Point = jsNative
member __.multiply(number: float): Point = jsNative
member __.divide(point: Point): Point = jsNative
member __.divide(number: float): Point = jsNative
member __.modulo(point: Point): Point = jsNative
member __.modulo(number: float): Point = jsNative
static member (+) (x:Point,y:Point) : Point = x.add y
static member (-) (x:Point,y:Point) : Point = x.subtract y
static member (*) (x:Point,y:Point) : Point = x.multiply y
static member (/) (x:Point,y:Point) : Point = x.divide y
static member (%) (x:Point,y:Point) : Point = x.modulo y
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment