/*!
 * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
 */
import { Vector3 } from "@vertexvis/geometry";
/**
 * A `StandardView` represents common view orientations for a camera.
 */
export class StandardView {
    constructor(
    /**
     * The position vector of the standard view.
     */
    position, 
    /**
     * The up vector of the standard view.
     */
    up) {
        this.position = position;
        this.up = up;
    }
    /**
     * Returns a new standard view where the position and up vectors are
     * transformed with the given matrix.
     *
     * @param matrix A matrix.
     * @returns A new standard view.
     */
    transformMatrix(matrix) {
        const newPosition = Vector3.transformMatrix(this.position, matrix);
        const newUp = Vector3.transformMatrix(this.up, matrix);
        return new StandardView(newPosition, newUp);
    }
}
/**
 * A standard view that positions the camera facing the front of the scene.
 */
StandardView.FRONT = new StandardView(Vector3.back(), Vector3.up());
/**
 * A standard view that positions the camera facing the right of the scene.
 */
StandardView.RIGHT = new StandardView(Vector3.right(), Vector3.up());
/**
 * A standard view that positions the camera facing the left of the scene.
 */
StandardView.LEFT = new StandardView(Vector3.left(), Vector3.up());
/**
 * A standard view that positions the camera facing the back of the scene.
 */
StandardView.BACK = new StandardView(Vector3.forward(), Vector3.up());
/**
 * A standard view that positions the camera facing the top of the scene.
 */
StandardView.TOP = new StandardView(Vector3.up(), Vector3.forward());
/**
 * A standard view that positions the camera facing the bottom of the scene.
 */
StandardView.BOTTOM = new StandardView(Vector3.down(), Vector3.back());
/**
 * A standard view that positions the camera facing the top-front-right of the
 * scene.
 */
StandardView.TOP_FRONT_RIGHT = new StandardView(Vector3.add(Vector3.back(), Vector3.up(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-front-left of the
 * scene.
 */
StandardView.TOP_FRONT_LEFT = new StandardView(Vector3.add(Vector3.back(), Vector3.up(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-front-right of
 * the scene.
 */
StandardView.BOTTOM_FRONT_RIGHT = new StandardView(Vector3.add(Vector3.back(), Vector3.down(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-front-left of
 * the scene.
 */
StandardView.BOTTOM_FRONT_LEFT = new StandardView(Vector3.add(Vector3.back(), Vector3.down(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-back-left of the
 * scene.
 */
StandardView.TOP_BACK_LEFT = new StandardView(Vector3.add(Vector3.forward(), Vector3.up(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-back-right of the
 * scene.
 */
StandardView.TOP_BACK_RIGHT = new StandardView(Vector3.add(Vector3.forward(), Vector3.up(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-back-left of
 * the scene.
 */
StandardView.BOTTOM_BACK_LEFT = new StandardView(Vector3.add(Vector3.forward(), Vector3.down(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-back-right of
 * the scene.
 */
StandardView.BOTTOM_BACK_RIGHT = new StandardView(Vector3.add(Vector3.forward(), Vector3.down(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-front of the
 * scene.
 */
StandardView.TOP_FRONT = new StandardView(Vector3.add(Vector3.back(), Vector3.up()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-front of the
 * scene.
 */
StandardView.BOTTOM_FRONT = new StandardView(Vector3.add(Vector3.back(), Vector3.down()), Vector3.up());
/**
 * A standard view that positions the camera facing the front-right of the
 * scene.
 */
StandardView.FRONT_RIGHT = new StandardView(Vector3.add(Vector3.back(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the front-left of the
 * scene.
 */
StandardView.FRONT_LEFT = new StandardView(Vector3.add(Vector3.back(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-back of the scene.
 */
StandardView.TOP_BACK = new StandardView(Vector3.add(Vector3.forward(), Vector3.up()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-back of the
 * scene.
 */
StandardView.BOTTOM_BACK = new StandardView(Vector3.add(Vector3.forward(), Vector3.down()), Vector3.up());
/**
 * A standard view that positions the camera facing the back-left of the
 * scene.
 */
StandardView.BACK_LEFT = new StandardView(Vector3.add(Vector3.forward(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the back-right of the
 * scene.
 */
StandardView.BACK_RIGHT = new StandardView(Vector3.add(Vector3.forward(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-left of the scene.
 */
StandardView.TOP_LEFT = new StandardView(Vector3.add(Vector3.up(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the top-right of the
 * scene.
 */
StandardView.TOP_RIGHT = new StandardView(Vector3.add(Vector3.up(), Vector3.left()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-left of the
 * scene.
 */
StandardView.BOTTOM_LEFT = new StandardView(Vector3.add(Vector3.down(), Vector3.right()), Vector3.up());
/**
 * A standard view that positions the camera facing the bottom-right of the
 * scene.
 */
StandardView.BOTTOM_RIGHT = new StandardView(Vector3.add(Vector3.down(), Vector3.left()), Vector3.up());
//# sourceMappingURL=standardView.js.map
