Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Point3

Brief

Point3 class represents a point of 3D affine space. Points inherit from Vector3.

Main features

  • manipulate relative and absolute coordinates origin, absolute, ...
  • affine geometry displacement and origin changes at, to, ...
  • geometrical transforms translate, affine, ...

Getting started

Point3 objects behave mostly like Vector3 objects. A point is just a displacement vector represented from a particular origin.

Point diagram

You can manipulate a point like a regular vector.

Example

p.x // x position from origin
p.r // r coordinate from origin

Each operation between two points has the same result as between two vectors but translates coordinates of the right operand in coordinates from origin of the left operand.

Operations between two points can be considered as operations between two positions vectors located from the origin of the left operand.

Origin change diagram

Position

A point stores relative position from current origin, if the origin is modified using p.origin = ... syntax then the coordinates of the points are updated to the coordinates from new origin.

Example

let p = Point3.zeros; // sets point (0, 0, 0) from origin (0, 0, 0)
p.origin = Vector3.ex; // sets point (-1, 0, 0) from origin (1, 0, 0)

Note If you want to access absolute position of the point use the syntax p.absolute = ....

Chalses Relation

Addition and subtraction are performed using Chalses relation from the origin of the left operand of the operation.

Chalses relation

Example

let p = Point3(1, 2, 3), q = Point3(2, 0, 0, Vector3.ex);
p.add(q); // sets p to (4, 2, 3) from origin (0, 0, 0)
p.sub(q); // sets p to (-2, 2, 3) from origin (0, 0, 0)

Displacement and Origin Changes

Represent the displacement vector between two points p and q with to method. Get coordinates of a point from a given origin with at method.

let p = Point3.zeros, q = new Point3(1, 0, 0), ex = Vector3.ex;
p.to(b); // (1, 0, 0)
q.to(a); // (-1, 0, 0)
q.at(ex); // (0, 0, 0)
p.at(ex); // (-1, 0, 0)

Translation and Transformation

Apply matrix transform, translations and affine transforms. All theses features modify the displacement vector between point and origin.

p.translate(u);
p.transform(m);
p.affine(m, u);

2019 samiBendou © All Rights Reserved

Hierarchy

Implements

Indexable

[index: number]: number

Brief

Point3 class represents a point of 3D affine space. Points inherit from Vector3.

Main features

  • manipulate relative and absolute coordinates origin, absolute, ...
  • affine geometry displacement and origin changes at, to, ...
  • geometrical transforms translate, affine, ...

Getting started

Point3 objects behave mostly like Vector3 objects. A point is just a displacement vector represented from a particular origin.

Point diagram

You can manipulate a point like a regular vector.

Example

p.x // x position from origin
p.r // r coordinate from origin

Each operation between two points has the same result as between two vectors but translates coordinates of the right operand in coordinates from origin of the left operand.

Operations between two points can be considered as operations between two positions vectors located from the origin of the left operand.

Origin change diagram

Position

A point stores relative position from current origin, if the origin is modified using p.origin = ... syntax then the coordinates of the points are updated to the coordinates from new origin.

Example

let p = Point3.zeros; // sets point (0, 0, 0) from origin (0, 0, 0)
p.origin = Vector3.ex; // sets point (-1, 0, 0) from origin (1, 0, 0)

Note If you want to access absolute position of the point use the syntax p.absolute = ....

Chalses Relation

Addition and subtraction are performed using Chalses relation from the origin of the left operand of the operation.

Chalses relation

Example

let p = Point3(1, 2, 3), q = Point3(2, 0, 0, Vector3.ex);
p.add(q); // sets p to (4, 2, 3) from origin (0, 0, 0)
p.sub(q); // sets p to (-2, 2, 3) from origin (0, 0, 0)

Displacement and Origin Changes

Represent the displacement vector between two points p and q with to method. Get coordinates of a point from a given origin with at method.

let p = Point3.zeros, q = new Point3(1, 0, 0), ex = Vector3.ex;
p.to(b); // (1, 0, 0)
q.to(a); // (-1, 0, 0)
q.at(ex); // (0, 0, 0)
p.at(ex); // (-1, 0, 0)

Translation and Transformation

Apply matrix transform, translations and affine transforms. All theses features modify the displacement vector between point and origin.

p.translate(u);
p.transform(m);
p.affine(m, u);

2019 samiBendou © All Rights Reserved

Index

Constructors

constructor

  • new Point3(x: number, y: number, z: number, origin?: Vector3): Point3

Properties

BYTES_PER_ELEMENT

BYTES_PER_ELEMENT: number

The size in bytes of each element in the array.

__@toStringTag

__@toStringTag: "Float64Array"

buffer

buffer: ArrayBufferLike

The ArrayBuffer instance referenced by the array.

byteLength

byteLength: number

The length in bytes of the array.

byteOffset

byteOffset: number

The offset in bytes of the array.

dim

dim: Readonly<number> = 3

length

length: number

The length of the array.

Accessors

absolute

lat

  • get lat(): number
  • set lat(newLat: number): void

lon

  • get lon(): number
  • set lon(newLon: number): void

mag

  • get mag(): number

mag2

  • get mag2(): number

origin

phi

  • get phi(): number
  • set phi(newPhi: number): void
  • third spherical coordinate, clockwise angle formed with ez in radians

    Returns number

  • third spherical coordinate, clockwise angle formed with ez in radians

    Parameters

    • newPhi: number

    Returns void

r

  • get r(): number
  • set r(newR: number): void
  • first spherical coordinate, length of the vector

    Returns number

  • first spherical coordinate, length of the vector

    Parameters

    • newR: number

    Returns void

rthph

  • get rthph(): [number, number, number]
  • set rthph(coordinates: [number, number, number]): void
  • spherical coordinates of the vector

    Returns [number, number, number]

  • spherical coordinates of the vector

    Parameters

    • coordinates: [number, number, number]

    Returns void

rthz

  • get rthz(): [number, number, number]
  • set rthz(coordinates: [number, number, number]): void
  • cylindrical coordinates of the vector

    Returns [number, number, number]

  • cylindrical coordinates of the vector

    Parameters

    • coordinates: [number, number, number]

    Returns void

rxy

  • get rxy(): number
  • set rxy(newRxy: number): void
  • first cylindrical coordinate, length of the projection of the vector on the plane formed with ex, ey

    Returns number

  • first cylindrical coordinate, length of the projection of the vector on the plane formed with ex, ey

    Parameters

    • newRxy: number

    Returns void

theta

  • get theta(): number
  • set theta(newTheta: number): void
  • second cylindrical and spherical coordinate, counterclockwise angle formed with ex in radians

    Returns number

  • second cylindrical and spherical coordinate, counterclockwise angle formed with ex in radians

    Parameters

    • newTheta: number

    Returns void

x

  • get x(): number
  • set x(newX: number): void

xyz

  • get xyz(): [number, number, number]
  • set xyz(coordinates: [number, number, number]): void
  • cartesian coordinates of the vector

    Returns [number, number, number]

  • cartesian coordinates of the vector

    Parameters

    • coordinates: [number, number, number]

    Returns void

y

  • get y(): number
  • set y(newY: number): void

z

  • get z(): number
  • set z(newZ: number): void

Static dim

  • get dim(): number

Static ex

Static exn

Static ey

Static eyn

Static ez

Static ezn

Static ones

Static zeros

Methods

__@iterator

  • __@iterator(): IterableIterator<number>
  • Returns IterableIterator<number>

abs

  • abs(): this

absc

add

addc

affine

  • brief

    apply an affine transform to the position of the point

    Parameters

    • m: Matrix3

      matrix of transformation

    • u: Vector3

      vector of translation

    Returns this

angle

area

array

  • array(): number[]

assign

  • assign(x: number, y: number, z: number): this

at

berp

berpc

ceil

  • ceil(): this

ceilc

clone

comb

  • comb(s: number, p: Point3): this

combc

copy

copyWithin

  • copyWithin(target: number, start: number, end?: number): this
  • Returns the this object after copying a section of the array identified by start and end to the same array starting at position target

    Parameters

    • target: number

      If target is negative, it is treated as length+target where length is the length of the array.

    • start: number

      If start is negative, it is treated as length+start. If end is negative, it is treated as length+end.

    • Optional end: number

      If not specified, length of the this object is used as its default value.

    Returns this

cos

cross

crossc

der

  • der(ds: number, p: Point3): this

derc

dist

dist1

dist2

div

  • div(s: number): this

divc

dot

entries

  • entries(): IterableIterator<[number, number]>
  • Returns an array of key, value pairs for every entry in the array

    Returns IterableIterator<[number, number]>

ephi

equal1

equal2

er

erxy

etheta

every

  • every(callbackfn: function, thisArg?: any): boolean
  • Determines whether all the members of an array satisfy the specified test.

    Parameters

    • callbackfn: function

      A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.

        • (value: number, index: number, array: Float64Array): boolean
        • Parameters

          • value: number
          • index: number
          • array: Float64Array

          Returns boolean

    • Optional thisArg: any

      An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

    Returns boolean

exact

fill

  • fill(s: number): this

fillc

filter

  • filter(callbackfn: function, thisArg?: any): Float64Array
  • Returns the elements of an array that meet the condition specified in a callback function.

    Parameters

    • callbackfn: function

      A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.

        • (value: number, index: number, array: Float64Array): any
        • Parameters

          • value: number
          • index: number
          • array: Float64Array

          Returns any

    • Optional thisArg: any

      An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

    Returns Float64Array

find

  • find(predicate: function, thisArg?: any): number | undefined
  • Returns the value of the first element in the array where predicate is true, and undefined otherwise.

    Parameters

    • predicate: function

      find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined.

        • (value: number, index: number, obj: Float64Array): boolean
        • Parameters

          • value: number
          • index: number
          • obj: Float64Array

          Returns boolean

    • Optional thisArg: any

      If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead.

    Returns number | undefined

findIndex

  • findIndex(predicate: function, thisArg?: any): number
  • Returns the index of the first element in the array where predicate is true, and -1 otherwise.

    Parameters

    • predicate: function

      find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, findIndex immediately returns that element index. Otherwise, findIndex returns -1.

        • (value: number, index: number, obj: Float64Array): boolean
        • Parameters

          • value: number
          • index: number
          • obj: Float64Array

          Returns boolean

    • Optional thisArg: any

      If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead.

    Returns number

floor

  • floor(): this

floorc

forEach

  • forEach(callbackfn: function, thisArg?: any): void
  • Performs the specified action for each element in an array.

    Parameters

    • callbackfn: function

      A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.

        • (value: number, index: number, array: Float64Array): void
        • Parameters

          • value: number
          • index: number
          • array: Float64Array

          Returns void

    • Optional thisArg: any

      An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

    Returns void

gaussian

  • gaussian(xm: number, ym: number, zm: number, xd: number, yd?: number, zd?: number): this
  • brief

    random vector following normal law

    details

    If yd and zd are unspecified then xd will represent the standard deviation for all axis.

    Parameters

    • xm: number

      average value of x

    • ym: number

      average value of y

    • zm: number

      average value of z

    • xd: number

      standard deviation along x axis

    • Default value yd: number = xd

      standard deviation along y axis

    • Default value zd: number = xd

      standard deviation along z axis

    Returns this

herp

herpc

includes

  • includes(searchElement: number, fromIndex?: number): boolean
  • Determines whether an array includes a certain element, returning true or false as appropriate.

    Parameters

    • searchElement: number

      The element to search for.

    • Optional fromIndex: number

      The position in this array at which to begin searching for searchElement.

    Returns boolean

indexOf

  • indexOf(searchElement: number, fromIndex?: number): number
  • Returns the index of the first occurrence of a value in an array.

    Parameters

    • searchElement: number

      The value to locate in the array.

    • Optional fromIndex: number

      The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.

    Returns number

inv

  • inv(): this

invc

join

  • join(separator?: string): string
  • Adds all the elements of an array separated by the specified separator string.

    Parameters

    • Optional separator: string

      A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.

    Returns string

keys

  • keys(): IterableIterator<number>
  • Returns an list of keys in the array

    Returns IterableIterator<number>

lastIndexOf

  • lastIndexOf(searchElement: number, fromIndex?: number): number
  • Returns the index of the last occurrence of a value in an array.

    Parameters

    • searchElement: number

      The value to locate in the array.

    • Optional fromIndex: number

      The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.

    Returns number

lerp

  • lerp(p: Point3, t: number): this

lerpc

map

  • map(callbackfn: function, thisArg?: any): Float64Array
  • Calls a defined callback function on each element of an array, and returns an array that contains the results.

    Parameters

    • callbackfn: function

      A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.

        • (value: number, index: number, array: Float64Array): number
        • Parameters

          • value: number
          • index: number
          • array: Float64Array

          Returns number

    • Optional thisArg: any

      An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

    Returns Float64Array

max

maxc

min

minc

mul

  • mul(s: number): this

mulc

neg

  • neg(): this

negc

nil

  • nil(): boolean

norm

  • norm(): this

normc

prod

prodc

random

  • random(): this

reduce

  • reduce(callbackfn: function): number
  • reduce(callbackfn: function, initialValue: number): number
  • reduce<U>(callbackfn: function, initialValue: U): U
  • Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    Parameters

    • callbackfn: function

      A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

        • (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array): number
        • Parameters

          • previousValue: number
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns number

    Returns number

  • Parameters

    • callbackfn: function
        • (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array): number
        • Parameters

          • previousValue: number
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns number

    • initialValue: number

    Returns number

  • Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    Type parameters

    • U

    Parameters

    • callbackfn: function

      A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

        • (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array): U
        • Parameters

          • previousValue: U
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns U

    • initialValue: U

      If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

    Returns U

reduceRight

  • reduceRight(callbackfn: function): number
  • reduceRight(callbackfn: function, initialValue: number): number
  • reduceRight<U>(callbackfn: function, initialValue: U): U
  • Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    Parameters

    • callbackfn: function

      A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

        • (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array): number
        • Parameters

          • previousValue: number
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns number

    Returns number

  • Parameters

    • callbackfn: function
        • (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array): number
        • Parameters

          • previousValue: number
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns number

    • initialValue: number

    Returns number

  • Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    Type parameters

    • U

    Parameters

    • callbackfn: function

      A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

        • (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array): U
        • Parameters

          • previousValue: U
          • currentValue: number
          • currentIndex: number
          • array: Float64Array

          Returns U

    • initialValue: U

      If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

    Returns U

reset0

  • reset0(): this

reset1

  • reset1(): this

reverse

  • reverse(): Float64Array
  • Reverses the elements in an Array.

    Returns Float64Array

rot

  • rot(u: Vector, theta: number, cos?: cos, sin?: sin): this
  • See Object3 for more details

    Parameters

    • u: Vector
    • theta: number
    • Default value cos: cos = Math.cos
    • Default value sin: sin = Math.sin

    Returns this

rotX

  • rotX(theta: number, cos?: cos, sin?: sin): this
  • See Object3 for more details

    Parameters

    • theta: number
    • Default value cos: cos = Math.cos
    • Default value sin: sin = Math.sin

    Returns this

rotY

  • rotY(theta: number, cos?: cos, sin?: sin): this
  • See Object3 for more details

    Parameters

    • theta: number
    • Default value cos: cos = Math.cos
    • Default value sin: sin = Math.sin

    Returns this

rotZ

  • rotZ(theta: number, cos?: cos, sin?: sin): this
  • See Object3 for more details

    Parameters

    • theta: number
    • Default value cos: cos = Math.cos
    • Default value sin: sin = Math.sin

    Returns this

round

  • round(): this

roundc

set

  • set(array: ArrayLike<number>, offset?: number): void
  • Sets a value or an array of values.

    Parameters

    • array: ArrayLike<number>

      A typed or untyped array of values to set.

    • Optional offset: number

      The index in the current array at which the values are to be written.

    Returns void

slice

  • slice(start?: number, end?: number): Float64Array
  • Returns a section of an array.

    Parameters

    • Optional start: number

      The beginning of the specified portion of the array.

    • Optional end: number

      The end of the specified portion of the array.

    Returns Float64Array

some

  • some(callbackfn: function, thisArg?: any): boolean
  • Determines whether the specified callback function returns true for any element of an array.

    Parameters

    • callbackfn: function

      A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.

        • (value: number, index: number, array: Float64Array): boolean
        • Parameters

          • value: number
          • index: number
          • array: Float64Array

          Returns boolean

    • Optional thisArg: any

      An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

    Returns boolean

sort

  • sort(compareFn?: function): this
  • Sorts an array.

    Parameters

    • Optional compareFn: function

      The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.

        • (a: number, b: number): number
        • Parameters

          • a: number
          • b: number

          Returns number

    Returns this

string

  • string(): string

sub

subarray

  • subarray(begin: number, end?: number): Float64Array
  • Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements at begin, inclusive, up to end, exclusive.

    Parameters

    • begin: number

      The index of the beginning of the array.

    • Optional end: number

      The index of the end of the array.

    Returns Float64Array

subc

to

toLocaleString

  • toLocaleString(): string
  • Converts a number to a string by using the current locale.

    Returns string

toString

  • toString(): string
  • Returns a string representation of an array.

    Returns string

trans

  • trans(): this

transc

transform

  • brief

    apply a transformation matrix to the position of a point

    Parameters

    • m: Matrix3

      matrix of transformation

    Returns this

translate

  • brief

    translate a point by a given vector

    Parameters

    Returns this

trunc

  • trunc(decimals: number): this

truncc

  • truncc(decimals: number): Point3

values

  • values(): IterableIterator<number>
  • Returns an list of values in the array

    Returns IterableIterator<number>

zero1

  • zero1(): boolean

zero2

  • zero2(): boolean

Static array

  • array(arr: number[]): Point3
  • brief

    point from array of coordinates

    Parameters

    • arr: number[]

      array containing coordinates of both position and origin

    Returns Point3

Static at

  • brief

    point at given position as vector

    Parameters

    • position: Vector3

      position of the point

    • Default value origin: Vector3 = Vector3.zeros

      origin of the point

    Returns Point3

Static e

  • brief

    standard basis vector

    details

    e(0) == ex, e(1) == ey, e(2) == ez.

    Parameters

    • k: number

      order of the vector in basis

    Returns Vector3

Static en

  • brief

    opposite of standard basis vector

    details

    en(0) == exn, en(1) == eyn, en(2) == ezn.

    Parameters

    • k: number

      order of the vector in basis

    Returns Vector3

Static ephi

  • brief

    normal vector of spherical basis

    details

    Normal vector is perpendicular to the radial vector and oriented in the positive phi direction.

    Parameters

    • u: Vector

      position of local basis

    Returns Vector3

Static er

Static erxy

Static etheta

  • brief

    prograde vector of spherical basis

    details

    Prograde vector is perpendicular to the radial vector and oriented in the positive theta direction. This vector also correspond to the prograde vector of cylindrical basis.

    Parameters

    • u: Vector

      position of local basis

    Returns Vector3

Static gaussian

  • gaussian(xm: number, ym: number, zm: number, xd: number, yd?: number, zd?: number): Vector3
  • vector with coordinates following gaussian law. See Vector3.gaussian for more details.

    Parameters

    • xm: number
    • ym: number
    • zm: number
    • xd: number
    • Default value yd: number = xd
    • Default value zd: number = xd

    Returns Vector3

Static origin

Static random

Static rthph

  • rthph(r: number, theta: number, phi: number): Vector3

Static rthz

  • rthz(rxy: number, theta: number, z: number): Vector3
  • vector with given cylindrical coordinates. See [[this.rthz]] for more details.

    Parameters

    • rxy: number
    • theta: number
    • z: number

    Returns Vector3

Static scalar

Generated using TypeDoc