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): undefined | SmoothTransformBetweenFrusta 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
- geometry3d/FrustumAnimation.ts Line 38
Last Updated: 20 June, 2023