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 Inherited XYZ Add x,y,z from other in place.
addScaledInPlace(other: Readonly<WritableXYAndZ>, scale: number): void Inherited XYZ Add (in place) the scaled x,y,z of other
addXYZInPlace(dx: number0.0, dy: number0.0, dz: number0.0): void Inherited XYZ Add to x, y, z parts
at(index: number): number Inherited XYZ Return the x,y, z component corresponding to 0,1,2
cloneAsPoint3d(): Point3d Inherited XYZ Clone strongly typed as Point3d
distance(other: Readonly<WritableXYAndZ>): number Inherited XYZ Return the distance from this point to other
distanceSquared(other: Readonly<WritableXYAndZ>): number Inherited XYZ Return squared distance from this point to other
distanceSquaredXY(other: Readonly<WritableXAndY>): number Inherited XYZ Return squared XY distance from this point to other
distanceXY(other: Readonly<WritableXAndY>): number Inherited XYZ Return the XY distance from this point to other
freeze(): Readonly<Point3d> Inherited XYZ Freeze this XYZ
indexOfMaxAbs(): number Inherited 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 Inherited XYZ Returns true if this and other have equal x,y,z parts within Geometry.smallMetricDistance.
isAlmostEqualMetric(other: Readonly<WritableXYAndZ>): boolean Inherited XYZ Equality test with Geometry.smallMetricDistance tolerance
isAlmostEqualPointPlusScaledVector(other: Readonly<WritableXYAndZ>, vector: Readonly<WritableXYAndZ>, scale: number, tol?: number): boolean Inherited 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 Inherited 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 Inherited XYZ Return true if this and other have equal x,y,z parts within Geometry.smallMetricDistance.
isExactEqual(other: Readonly<WritableXYAndZ>): boolean Inherited XYZ Exact equality test.
magnitude(): number Inherited XYZ Return the sqrt of the sum of squared x,y,z parts
magnitudeSquared(): number Inherited XYZ Return the sum of squared x,y,z parts
magnitudeSquaredXY(): number Inherited XYZ Return the sum of squared x,y parts
magnitudeXY(): number Inherited XYZ Return sqrt of the sum of squared x,y parts
maxAbs(): number Inherited XYZ Return the largest absolute value of any component
maxDiff(other: Readonly<WritableXYAndZ>): number Inherited XYZ Return the largest absolute distance between corresponding components
scaledVectorTo(other: Readonly<WritableXYAndZ>, scale: number, result?: Vector3d): Vector3d Inherited XYZ Return a multiple of a the (full length) vector from this point to other
scaleInPlace(scale: number): void Inherited XYZ Multiply the x, y, z parts by scale.
set(x: number0, y: number0, z: number0): void Inherited XYZ Set the x,y,z parts.
setAt(index: number, value: number): void Inherited XYZ Set value at index 0 or 1 or 2
setFrom(other: Float64Array | Readonly<WritableXAndY> | Readonly<WritableXYAndZ>): void Inherited XYZ Set the x,y,z parts from one of these input types
setFromJSON(json?: XYZProps): void Inherited XYZ Set the x,y,z properties from one of several json forms:
setFromPoint3d(other?: Readonly<WritableXYAndZ>): void Inherited XYZ Set the x,y,z parts from a Point3d.
setFromVector3d(other?: Vector3d): void Inherited XYZ Set the x,y,z parts from a Vector3d
setZero(): void Inherited XYZ Set the x,y,z parts to zero.
subtractInPlace(other: Readonly<WritableXYAndZ>): void Inherited XYZ Subtract x,y,z from other in place.
toArray(): number[] Inherited XYZ Return as an array [x,y,z]
toFloat64Array(): Float64Array Inherited XYZ Pack the x,y,z values in a Float64Array.
toJSON(): XYZProps Inherited XYZ Return a JSON object as array [x,y,z]
toJSONXYZ(): XYZProps Inherited XYZ Return a JSON object as key value pairs {x: value, y: value, z: value}
unitVectorTo(target: Readonly<WritableXYAndZ>, result?: Vector3d): undefined | Vector3d Inherited XYZ Return a unit vector from this vector to other.
vectorTo(other: Readonly<WritableXYAndZ>, result?: Vector3d): Vector3d Inherited XYZ Return a (full length) vector from this point to other
accessX(arg: any, defaultValue?: number): undefined | number Static Inherited XYZ Look for (in order) an x coordinate present as:
accessY(arg: any, defaultValue?: number): undefined | number Static Inherited XYZ Look for (in order) a y coordinate present as:
accessZ(arg: any, defaultValue?: number): undefined | number Static Inherited XYZ Look for (in order) a z coordinate present as:
hasZ(arg: any): arg is Readonly<WriteableHasZ> Static Inherited XYZ Type guard to determine whether an object has a member called "z"
isAnyImmediatePointType(arg: any): arg is number[] | Readonly<WritableXAndY> | Readonly<WritableXYAndZ> Static Inherited XYZ Test if arg is any of:
isXAndY(arg: any): arg is Readonly<WritableXAndY> Static Inherited XYZ Type guard for XAndY.
isXYAndZ(arg: any): arg is Readonly<WritableXYAndZ> Static Inherited XYZ Type guard for XYAndZ.
x(xyz: XYZProps, defaultValue: number0): number Static Inherited XYZ Access x part of XYZProps (which may be .x or [0])
y(xyz: XYZProps, defaultValue: number0): number Static Inherited XYZ Access x part of XYZProps (which may be .x or [0])
z(xyz: XYZProps, defaultValue: number0): number Static Inherited XYZ Access x part of XYZProps (which may be .x or [0])

Inherited properties

Name Type Inherited from Description
isAlmostZero Accessor Inherited ReadOnly boolean XYZ Return true if the x,y,z components are all nearly zero to tolerance Geometry.smallMetricDistance
isZero Accessor Inherited ReadOnly boolean XYZ Return true if the x,y,z components are all exactly zero
x Inherited number XYZ x coordinate
y Inherited number XYZ y coordinate
z Inherited number XYZ z coordinate

Defined in

Last Updated: 23 November, 2024