Ray3d Class

A Ray3d contains

• an origin point.
• a direction vector. The vector is NOT required to be normalized.
• an optional weight (number).

Methods

Name Description
clone(result?: Ray3d): Clone the ray.
cloneTransformed(transform: Transform): Create a clone and return the transform of the clone.
distance(spacePoint: Point3d): number return distance from the ray to point in space
dotProductToPoint(spacePoint: Point3d): number Return the dot product of the ray's direction vector with a vector from the ray origin to the space point.
fractionToPoint(fraction: number): fraction 0 is the ray origin.
getDirectionRef(): Return a reference to the ray's direction vector.
getOriginRef(): Return a reference to the ray's origin.
intersectionWithPlane(plane: Plane3dByOriginAndUnitNormal, result?: Point3d): number | undefined Return the intersection of the unbounded ray with a plane.
intersectionWithRange3d(range: Range3d, result?: Range1d): * Find intersection of the ray with a Range3d.
isAlmostEqual(other: Ray3d): boolean Test for nearly equal rays.
perpendicularPartOfVectorToTarget(targetPoint: XYAndZ, result?: Vector3d): Construct a vector from `ray.origin` to target point.
pointToFraction(spacePoint: Point3d): number Return the fractional coordinate (along the direction vector) of the spacePoint projected to the ray.
projectPointToRay(spacePoint: Point3d): Return the spacePoint projected onto the ray.
set(origin: Point3d, direction: Vector3d): void copy coordinates from origin and direction.
setFrom(source: Ray3d): void Copy data from another ray.
setFromJSON(json?: any): void Convert {origin:[x,y,z], direction:[u,v,w]} to a Ray3d.
toJSON(): any Convert an Angle to a JSON object.
toRigidZFrame(): Transform | undefined Return a transform for rigid axes
at ray origin with z in ray direction.

transformInPlace(transform: Transform): void Apply a transform in place.
tryNormalizeInPlaceWithAreaWeight(a: number): boolean If parameter `a` is clearly nonzero and the direction vector can be normalized,
* save the parameter `a` as the optional `a` member of the ray.

trySetDirectionMagnitudeInPlace(magnitude: number = 1): boolean try to scale the direction vector to a given magnitude.
closestApproachRay3dRay3d(rayA: Ray3d, rayB: Ray3d): Static Determine if two rays intersect, are fully overlapped, parallel but no coincident, or skew
Return a CurveLocationDetailPair which
contains fraction and point on each ray.

create(origin: Point3d, direction: Vector3d, result?: Ray3d): Static Create a ray from origin and direction.
createCapture(origin: Point3d, direction: Vector3d): Static Capture origin and direction in a new Ray3d.
createPointVectorNumber(origin: Point3d, direction: Vector3d, a: number, result?: Ray3d): Static Create from (clones of) origin, direction, and numeric weight.
createStartEnd(origin: Point3d, target: Point3d, result?: Ray3d): Static Create from origin and target.
createWeightedDerivative(weightedPoint: Float64Array, weightedDerivative: Float64Array, result?: Ray3d): Ray3d | undefined Static Given a homogeneous point and its derivative components, construct a Ray3d with cartesian coordinates and derivatives.
createXAxis(): Static Create a ray on the x axis.
createXYZUVW(originX: number, originY: number, originZ: number, directionX: number, directionY: number, directionZ: number, result?: Ray3d): Static Create from coordinates of the origin and direction.
createYAxis(): Static Create a ray on the y axis.
createZAxis(): Static Create a ray on the z axis.
createZero(result?: Ray3d): Static Create a ray with all zeros.
fromJSON(json?: any): Static Create a new ray from json object.

Properties

Name Type Description
a undefined | number Numeric annotation.
direction Vector3d The ray direction.
origin Point3d The ray origin

Defined in

Last Updated: 20 September, 2019