API Reference > geometry-core > Solid > SmoothTransformBetweenFrusta SmoothTransformBetweenFrusta Class context for constructing smooth motion a startFrustum and endFrustum. The externally interesting calls are Create a context to shift corner0 to corner1, with the(NPC coordinate) point(fractionU, fractionV, fractionW) moving along its connecting segment, all other points rotating smoothly from the start orientation to end orientation: const context = SmoothTransformBetweenFrusta (cornerA, cornerB) Get any intermediate 8 corners(at fraction) with context.fractionToWorldCorners(fraction) Frustum corners are ordered by "x varies fastest, then y, then z", hence (xyz) order on nondimensional space is (left lower rear) (000) (right lower rear) (100) (left upper rear) (010) (right upper rear) (100) (left lower front) (001) (right lower front) (101) (left upper front) (011) (right upper front) (101) which uses names (left,right) for horizontal (x) (bottom, top) for vertical (y) (rear, front) for back and front planes (z) Methods Name Description fractionToWorldCorners(fraction: number, result?: Point3d[]): Point3d[] After initialization, call this for various intermediate fractions. interpolateLocalCorners(fraction: number, result?: Point3d[]): Point3d[] interpolate local corner coordinates at fractional move from m_localFrustum0 to m_localFrustum1 create(cornerA: Point3d[], cornerB: Point3d[], preferSimpleRotation: boolean = true): SmoothTransformBetweenFrusta | undefined Static Set up rotation data for smooth transition from 8 point frusta cornerA and cornerB Properties Name Type Description localToWorldA Accessor ReadOnly Transform (property accessor) rigid frame at start of motion localToWorldB Accessor ReadOnly Transform (property accessor) rigid frame at end of motion Defined in core/geometry/src/geometry3d/FrustumAnimation.ts Line 38 Last Updated: 13 June, 2024