Point3d Class
3D point with x
,y
,z
as properties
Extends
Methods
Name | Description | |
---|---|---|
constructor(x: number0, y: number0, z: number0): Point3d | Constructor for Point3d | |
clone(result?: Point3d): Point3d | Return a new Point3d with the same coordinates | |
crossProductToPoints(pointA: Point3d, pointB: Point3d, result?: Vector3d): Vector3d | Return the cross product of the vectors from this to pointA and pointB | |
crossProductToPointsMagnitude(pointA: Point3d, pointB: Point3d): number | Return the magnitude of the cross product of the vectors from this to pointA and pointB | |
crossProductToPointsXY(pointA: Point3d, pointB: Point3d): number | Return the cross product of the vectors from this to pointA and pointB | |
dotVectorsToTargets(targetA: Point3d, targetB: Point3d): number | Return the dot product of vectors from this to pointA and this to pointB. | |
fractionOfProjectionToLine(startPoint: Point3d, endPoint: Point3d, defaultFraction: number0): number | Return the fractional projection of this onto a line between points. | |
interpolate(fraction: number, other: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | Return a point interpolated between this point and the other point. |
|
interpolatePerpendicularXY(fraction: number, pointB: Point3d, fractionXYPerp: number, result?: Point3d): Point3d | Interpolate between points, then add a shift in the xy plane by a fraction of the XY projection perpendicular. | |
interpolateXYZ(fractionX: number, fractionY: number, fractionZ: number, other: Point3d, result?: Point3d): Point3d | Return a point with independent x,y,z fractional interpolation. | |
minus(vector: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | Return point minus vector | |
plus(vector: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | Return point plus vector | |
plus2Scaled(vectorA: Readonly<WritableXYAndZ>, scalarA: number, vectorB: XYZ, scalarB: number, result?: Point3d): Point3d | Return point + vectorA * scalarA + vectorB * scalarB | |
plus3Scaled(vectorA: Readonly<WritableXYAndZ>, scalarA: number, vectorB: Readonly<WritableXYAndZ>, scalarB: number, vectorC: Readonly<WritableXYAndZ>, scalarC: number, result?: Point3d): Point3d | Return point + vectorA * scalarA + vectorB * scalarB + vectorC * scalarC | |
plusScaled(vector: Readonly<WritableXYAndZ>, scaleFactor: number, result?: Point3d): Point3d | Return point + vector * scalar | |
plusXYZ(dx: number0, dy: number0, dz: number0, result?: Point3d): Point3d | Return point plus vector | |
tripleProductToPoints(pointA: Point3d, pointB: Point3d, pointC: Point3d): number | Return the triple product of the vectors from this to pointA, pointB, pointC | |
create(x: number0, y: number0, z: number0, result?: Point3d): Point3d Static | Create a new Point3d with given coordinates | |
createAdd2Scaled(pointA: Readonly<WritableXYAndZ>, scaleA: number, pointB: Readonly<WritableXYAndZ>, scaleB: number, result?: Point3d): Point3d Static | Create a point that is a linear combination (weighted sum) of 2 input points. | |
createAdd3Scaled(pointA: Readonly<WritableXYAndZ>, scaleA: number, pointB: Readonly<WritableXYAndZ>, scaleB: number, pointC: Readonly<WritableXYAndZ>, scaleC: number, result?: Point3d): Point3d Static | Create a point that is a linear combination (weighted sum) of 3 input points. | |
createArrayFromPackedXYZ(data: Float64Array): Point3d[] Static | Return an array of points constructed from groups of 3 entries in a Float64Array. | |
createFrom(data: Float64Array | Readonly<WritableXAndY> | Readonly<WritableXYAndZ>, result?: Point3d): Point3d Static | Copy contents from another Point3d, Point2d, Vector2d, or Vector3d | |
createFromPacked(xyzData: Float64Array, pointIndex: number, result?: Point3d): undefined | Point3d Static | Copy x,y,z from | |
createFromPackedXYZW(xyzwData: Float64Array, pointIndex: number, result?: Point3d): undefined | Point3d Static | Copy and unweight xyzw. | |
createScale(source: Readonly<WritableXYAndZ>, scale: number, result?: Point3d): Point3d Static | Return a point that is scaled from the source point. | |
createZero(result?: Point3d): Point3d Static | Create a new point with 000 xyz | |
fromJSON(json?: XYZProps): Point3d Static | Convert json to Point3d. |
Inherited methods
Name | Inherited from | Description |
---|---|---|
addInPlace(other: Readonly<WritableXYAndZ>): void | XYZ | Add x,y,z from other in place. |
addScaledInPlace(other: Readonly<WritableXYAndZ>, scale: number): void | XYZ | Add (in place) the scaled x,y,z of other |
addXYZInPlace(dx: number0.0, dy: number0.0, dz: number0.0): void | XYZ | Add to x, y, z parts |
at(index: number): number | XYZ | Return the x,y, z component corresponding to 0,1,2 |
cloneAsPoint3d(): Point3d | XYZ | Clone strongly typed as Point3d |
distance(other: Readonly<WritableXYAndZ>): number | XYZ | Return the distance from this point to other |
distanceSquared(other: Readonly<WritableXYAndZ>): number | XYZ | Return squared distance from this point to other |
distanceSquaredXY(other: Readonly<WritableXAndY>): number | XYZ | Return squared XY distance from this point to other |
distanceXY(other: Readonly<WritableXAndY>): number | XYZ | Return the XY distance from this point to other |
freeze(): Readonly<Point3d> | XYZ | Freeze this XYZ |
indexOfMaxAbs(): number | XYZ | Return the index (0,1,2) of the x,y,z component with largest absolute value |
isAlmostEqual(other: Readonly<Readonly<WritableXYAndZ>>, tol?: number): boolean | XYZ | Returns true if this and other have equal x,y,z parts within Geometry.smallMetricDistance. |
isAlmostEqualMetric(other: Readonly<WritableXYAndZ>): boolean | XYZ | Equality test with Geometry.smallMetricDistance tolerance |
isAlmostEqualPointPlusScaledVector(other: Readonly<WritableXYAndZ>, vector: Readonly<WritableXYAndZ>, scale: number, tol?: number): boolean | XYZ | Return true if this and {other + vector*scale} have equal x,y,z parts within Geometry.smallMetricDistance. |
isAlmostEqualXY(other: Readonly<WritableXAndY>, tol?: number): boolean | XYZ | Return true if this and other have equal x,y parts within Geometry.smallMetricDistance. |
isAlmostEqualXYZ(x: number, y: number, z: number, tol?: number): boolean | XYZ | Return true if this and other have equal x,y,z parts within Geometry.smallMetricDistance. |
isExactEqual(other: Readonly<WritableXYAndZ>): boolean | XYZ | Exact equality test. |
magnitude(): number | XYZ | Return the sqrt of the sum of squared x,y,z parts |
magnitudeSquared(): number | XYZ | Return the sum of squared x,y,z parts |
magnitudeSquaredXY(): number | XYZ | Return the sum of squared x,y parts |
magnitudeXY(): number | XYZ | Return sqrt of the sum of squared x,y parts |
maxAbs(): number | XYZ | Return the largest absolute value of any component |
maxDiff(other: Readonly<WritableXYAndZ>): number | XYZ | Return the largest absolute distance between corresponding components |
scaleInPlace(scale: number): void | XYZ | Multiply the x, y, z parts by scale. |
scaledVectorTo(other: Readonly<WritableXYAndZ>, scale: number, result?: Vector3d): Vector3d | XYZ | Return a multiple of a the (full length) vector from this point to other |
set(x: number0, y: number0, z: number0): void | XYZ | Set the x,y,z parts. |
setAt(index: number, value: number): void | XYZ | Set value at index 0 or 1 or 2 |
setFrom(other: Float64Array | Readonly<WritableXAndY> | Readonly<WritableXYAndZ>): void | XYZ | Set the x,y,z parts from one of these input types |
setFromJSON(json?: XYZProps): void | XYZ | Set the x,y,z properties from one of several json forms: |
setFromPoint3d(other?: Readonly<WritableXYAndZ>): void | XYZ | Set the x,y,z parts from a Point3d. |
setFromVector3d(other?: Vector3d): void | XYZ | Set the x,y,z parts from a Vector3d |
setZero(): void | XYZ | Set the x,y,z parts to zero. |
subtractInPlace(other: Readonly<WritableXYAndZ>): void | XYZ | Subtract x,y,z from other in place. |
toArray(): number[] | XYZ | Return as an array [x,y,z] |
toFloat64Array(): Float64Array | XYZ | Pack the x,y,z values in a Float64Array. |
toJSON(): XYZProps | XYZ | Return a JSON object as array [x,y,z] |
toJSONXYZ(): XYZProps | XYZ | Return a JSON object as key value pairs {x: value, y: value, z: value} |
unitVectorTo(target: Readonly<WritableXYAndZ>, result?: Vector3d): undefined | Vector3d | XYZ | Return a unit vector from this vector to other. |
vectorTo(other: Readonly<WritableXYAndZ>, result?: Vector3d): Vector3d | XYZ | Return a (full length) vector from this point to other |
accessX(arg: any, defaultValue?: number): undefined | number Static | XYZ | Look for (in order) an x coordinate present as: |
accessY(arg: any, defaultValue?: number): undefined | number Static | XYZ | Look for (in order) an x coordinate present as: |
accessZ(arg: any, defaultValue?: number): undefined | number Static | XYZ | Look for (in order) an x coordinate present as: |
hasZ(arg: any): arg is Readonly<WriteableHasZ> Static | XYZ | Type guard to determine whether an object has a member called "z" |
isAnyImmediatePointType(arg: any): arg is number[] | Readonly<WritableXAndY> | Readonly<WritableXYAndZ> Static | XYZ | Test if arg is any of: |
isXAndY(arg: any): arg is Readonly<WritableXAndY> Static | XYZ | Type guard for XAndY. |
isXYAndZ(arg: any): arg is Readonly<WritableXYAndZ> Static | XYZ | Type guard for XYAndZ. |
x(xyz: XYZProps, defaultValue: number0): number Static | XYZ | Access x part of XYZProps (which may be .x or [0]) |
y(xyz: XYZProps, defaultValue: number0): number Static | XYZ | Access x part of XYZProps (which may be .x or [0]) |
z(xyz: XYZProps, defaultValue: number0): number Static | XYZ | Access x part of XYZProps (which may be .x or [0]) |
Inherited properties
Name | Type | Inherited from | Description |
---|---|---|---|
isAlmostZero Accessor ReadOnly | boolean | XYZ | Return true if the x,y,z components are all nearly zero to tolerance Geometry.smallMetricDistance |
isZero Accessor ReadOnly | boolean | XYZ | Return true if the x,y,z components are all exactly zero |
x | number | XYZ | x coordinate |
y | number | XYZ | y coordinate |
z | number | XYZ | z coordinate |
Defined in
- geometry3d/Point3dVector3d.ts Line 412
Last Updated: 04 October, 2024
Found something wrong, missing, or unclear on this page?Raise an issue in our repo.