Ray3d Class

A Ray3d contains

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



Name Description
clone(result?: Ray3d): Ray3d Clone the ray.  
cloneTransformed(transform: Transform): Ray3d 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): Point3d fraction 0 is the ray origin.  
getDirectionRef(): Vector3d Return a reference to the ray's direction vector.  
getOriginRef(): Point3d 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): Range1d * Find intersection of the ray with a Range3d.  
isAlmostEqual(other: Ray3d): boolean Test for nearly equal rays.  
perpendicularPartOfVectorToTarget(targetPoint: XYAndZ, result?: Vector3d): 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): 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): CurveLocationDetailPair 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): Ray3d Static Create a ray from origin and direction.  
createCapture(origin: Point3d, direction: Vector3d): Ray3d Static Capture origin and direction in a new Ray3d.  
createPointVectorNumber(origin: Point3d, direction: Vector3d, a: number, result?: Ray3d): Ray3d Static Create from (clones of) origin, direction, and numeric weight.  
createStartEnd(origin: Point3d, target: Point3d, result?: Ray3d): 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(): Ray3d Static Create a ray on the x axis.  
createXYZUVW(originX: number, originY: number, originZ: number, directionX: number, directionY: number, directionZ: number, result?: Ray3d): Ray3d Static Create from coordinates of the origin and direction.  
createYAxis(): Ray3d Static Create a ray on the y axis.  
createZAxis(): Ray3d Static Create a ray on the z axis.  
createZero(result?: Ray3d): Ray3d Static Create a ray with all zeros.  
fromJSON(json?: any): Ray3d Static Create a new ray from json object.  


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