Ellipsoid Class
A complete unit sphere mapped by an arbitrary Transform.
- The (unit) sphere parameterization with respect to longitude
thetaand latitudephiisu = cos(theta) * cos (phi)v = sin(theta) * cos(phi)w = sin(phi)
- The sphere (u,v,w) multiply the x,y,z columns of the Ellipsoid transform.
- Compare to Sphere, which has the same parameterization, but is a SolidPrimitive with latitude sweep.
Implements
Methods
| Name | Description | |
|---|---|---|
| anglePairToGreatArc(angleA: LongitudeLatitudeNumber, angleB: LongitudeLatitudeNumber, result?: Arc3d): undefined | Arc3d | See radiansPairToGreatArc, which does this computation with positions from angleA and angleB directly as radians |
|
| announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean | Announce "in" portions of a line segment. | |
| announceClippedSegmentIntervals(f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: AnnounceNumberNumber): boolean | Announce "in" portions of a line segment. | |
| clone(): Ellipsoid | return a clone with same coordinates | |
| cloneTransformed(transform: Transform): undefined | Ellipsoid | return a cloned and transformed ellipsoid. | |
| constantLatitudeArc(longitudeSweep: AngleSweep, latitude: Angle, result?: Arc3d): undefined | Arc3d | Return an arc (circular or elliptical) at constant longitude | |
| constantLongitudeArc(longitude: Angle, latitudeSweep: AngleSweep, result?: Arc3d): undefined | Arc3d | Return an arc (circular or elliptical) at constant longitude | |
| createPlaneSection(plane: Plane3dByOriginAndUnitNormal): undefined | Arc3d | Construct an arc for the section cut of a plane with the ellipsoid. | |
| createSectionArcPointPointVectorInPlane(pointAnglesA: LongitudeLatitudeNumber, pointAnglesB: LongitudeLatitudeNumber, inPlaneVector: Vector3d, result?: Arc3d): undefined | Arc3d | Construct an arc which | |
| intersectRay(ray: Ray3d, rayFractions: number[], xyz: Point3d[], thetaPhiRadians: LongitudeLatitudeNumber[]): number | Compute intersections with a ray. | |
| isAlmostEqual(other: Ellipsoid): boolean | test equality of the 4 points | |
| isPointOnOrInside(point: Point3d): boolean | Implementation of isPointOnOrInside. | |
| localToWorld(localPoint: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | * Convert a point within the underlying mapped sphere space to world coordinates. | |
| otherEllipsoidAnglesToThisEllipsoidAngles(otherEllipsoid: Ellipsoid, otherAngles: LongitudeLatitudeNumber, result?: LongitudeLatitudeNumber): undefined | LongitudeLatitudeNumber | * Evaluate the surface normal on other ellipsoid at given angles |
|
| patchRangeStartEndRadians(theta0Radians: number, theta1Radians: number, phi0Radians: number, phi1Radians: number, result?: Range3d): Range3d | Return the range of a uv-aligned patch of the sphere. | |
| projectPointToSurface(spacePoint: Point3d): undefined | LongitudeLatitudeNumber | Find the closest point of the (patch of the) ellipsoid. | |
| radiansPairToEquatorialEllipsoid(thetaARadians: number, phiARadians: number, thetaBRadians: number, phiBRadians: number, result?: Ellipsoid): undefined | Ellipsoid | * For a given pair of points on an ellipsoid, construct another ellipsoid | |
| radiansPairToGreatArc(thetaARadians: number, phiARadians: number, thetaBRadians: number, phiBRadians: number, result?: Arc3d): undefined | Arc3d | * For a given pair of points on an ellipsoid, construct an arc (possibly elliptical) which | |
| radiansToFrenetFrame(thetaRadians: number, phiRadians: number, result?: Transform): undefined | Transform | Evaluate a point and rigid local coordinate frame the ellipsoid at angles give in radians. | |
| radiansToPoint(thetaRadians: number, phiRadians: number, result?: Point3d): Point3d | Evaluate a point on the ellipsoid at angles give in radians. | |
| radiansToPointAnd2Derivatives(thetaRadians: number, phiRadians: number, point: Point3d, d1Theta: Vector3d, d1Phi: Vector3d, d2ThetaTheta: Vector3d, d2PhiPhi: Vector3d, d2ThetaPhi: Vector3d): void | Evaluate a point and derivatives wrt to theta, phi, thetaTheta, phiPhi, and thetaPhi. | |
| radiansToPointAndDerivatives(thetaRadians: number, phiRadians: number, applyCosPhiFactor: boolean = true, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors | Evaluate a point and derivatives with respect to angle on the ellipsoid at angles give in radians. | |
| radiansToUnitNormalRay(thetaRadians: number, phiRadians: number, result?: Ray3d): undefined | Ray3d | Evaluate a point and unit normal at given angles. | |
| sectionArcWithIntermediateNormal(angleA: LongitudeLatitudeNumber, intermediateNormalFraction: number, angleB: LongitudeLatitudeNumber): Arc3d | * create a section arc with and end at positions A and B, and in plane with the normal at a fractional | |
| silhouetteArc(eyePoint: Point4d): undefined | Arc3d | Find the silhouette of the ellipsoid as viewed from a homogeneous eyepoint. | |
| surfaceNormalToAngles(normal: Vector3d, result?: LongitudeLatitudeNumber): LongitudeLatitudeNumber | Find the (unique) extreme point for a given true surface perpendicular vector (outward) | |
| tryTransformInPlace(transform: Transform): boolean | Apply the transform to each point | |
| worldToLocal(worldPoint: Readonly<WritableXYAndZ>, result?: Point3d): undefined | Point3d | * Convert a world point to point within the underlying mapped sphere space. | |
| create(matrixOrTransform?: Transform | Matrix3d): Ellipsoid Static | Create with a clone (not capture) with given transform. | |
| createCenterMatrixRadii(center: Point3d, axes: Matrix3d, radiusX: number, radiusY: number, radiusZ: number): Ellipsoid Static | Create a transform with given center and directions, applying the radii as multipliers for the respective columns of the axes. | |
| radiansToUnitNormalRay(ellipsoid: Ellipsoid, thetaRadians: number, phiRadians: number, result?: Ray3d): undefined | Ray3d Static | * if ellipsoid is given, return its surface point and unit normal as a Ray3d. |
Properties
| Name | Type | Description | |
|---|---|---|---|
| transformRef Accessor ReadOnly | Transform | Return a (REFERENCE TO) the transform from world space to the mapped sphere space. |
Defined in
- geometry3d/Ellipsoid.ts Line 150
Last Updated: 24 October, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.