/** * Options of the `camera` component accepted by {@link CameraComponentSystem} that differ from the * properties of {@link CameraComponent}. Each replaces the same-named property of the options that * {@link Entity#addComponent} derives from the component class; see * {@link ComponentOptionsOverrides}. */ export type CameraComponentOptionsOverrides = { /** * - Same as * {@link CameraComponent#calculateProjection}. */ calculateProjection?: CalculateMatrixCallback; /** * - Same as * {@link CameraComponent#calculateTransform}. */ calculateTransform?: CalculateMatrixCallback; /** * - Same as {@link CameraComponent#clearColor}, also * accepting an `[r, g, b, a]` array. */ clearColor?: Color | number[]; /** * - Same as * {@link CameraComponent#projectionOffset}, also accepting an `[x, y]` array. */ projectionOffset?: Vec2 | number[]; /** * - Same as {@link CameraComponent#rect}, also accepting an `[x, * y, w, h]` array. */ rect?: Vec4 | number[]; /** * - Same as {@link CameraComponent#scissorRect}, also * accepting an `[x, y, w, h]` array. */ scissorRect?: Vec4 | number[]; }; /** * Used to add and remove {@link CameraComponent}s from Entities. It also holds an array of all * active cameras. * * @category Graphics */ export class CameraComponentSystem extends ComponentSystem { /** * Holds all the active camera components. * * @type {CameraComponent[]} */ cameras: CameraComponent[]; id: string; ComponentType: typeof CameraComponent; initializeComponentData(component: any, data: any): void; cloneComponent(entity: any, clone: any): import("../component.js").Component; onBeforeRemove(entity: any, component: any): void; onAppPrerender(): void; addCamera(camera: any): void; removeCamera(camera: any): void; } import type { CalculateMatrixCallback } from './component.js'; import { Color } from '../../../core/math/color.js'; import { Vec2 } from '../../../core/math/vec2.js'; import { Vec4 } from '../../../core/math/vec4.js'; import { ComponentSystem } from '../system.js'; import { CameraComponent } from './component.js';