import { vertexvis } from '@vertexvis/frame-streaming-protos'; import { UUID } from '@vertexvis/utils'; import { ColorMaterial } from './colorMaterial'; export type RepresentationId = UUID.UUID | 'empty' | 'entire-part'; interface ShowItemOperation { type: 'show'; } interface HideItemOperation { type: 'hide'; } interface SelectItemOperation { type: 'select'; } interface DeselectItemOperation { type: 'deselect'; } interface ClearItemOperation { type: 'clear-override'; } export interface ChangeMaterialOperation { type: 'change-material'; material: ColorMaterial; } export interface TransformOperation { type: 'change-transform'; transform: vertexvis.protobuf.core.IMatrix4x4f; } export interface ClearTransformOperation { type: 'clear-transform'; cascade?: boolean; } export interface ChangePhantomOperation { type: 'change-phantom'; phantomState?: boolean; } interface ClearPhantomOperation { type: 'clear-phantom'; } export interface ChangeEndItemOperation { type: 'change-end-item'; endItemState?: boolean; } interface ClearEndItemOperation { type: 'clear-end-item'; } interface ViewRenditionById { type: 'view-rendition-by-id'; id: UUID.UUID; } interface ViewRenditionBySuppliedId { type: 'view-rendition-by-supplied-id'; suppliedId: string; } interface ViewDefaultRendition { type: 'view-default-rendition'; } interface ClearRendition { type: 'clear-rendition'; } interface ViewRepresentation { type: 'view-representation'; id: RepresentationId; } interface ClearRepresentation { type: 'clear-representation'; } export type ItemOperation = ShowItemOperation | HideItemOperation | SelectItemOperation | DeselectItemOperation | ChangeMaterialOperation | ClearItemOperation | TransformOperation | ClearTransformOperation | ChangePhantomOperation | ClearPhantomOperation | ChangeEndItemOperation | ClearEndItemOperation | ViewRenditionById | ViewRenditionBySuppliedId | ViewDefaultRendition | ClearRendition | ViewRepresentation | ClearRepresentation; export interface SceneItemOperations { materialOverride(color: ColorMaterial): T; show(): T; hide(): T; select(color: ColorMaterial): T; deselect(): T; clearMaterialOverrides(): T; clearTransforms(): T; setPhantom(phantomState?: boolean): T; clearPhantom(): T; setEndItem(endItemState?: boolean): T; clearEndItem(): T; viewRenditionById(id: UUID.UUID): T; viewRenditionBySuppliedId(id: string): T; viewDefaultRendition(): T; clearRendition(): T; viewRepresentation(id: RepresentationId): T; clearRepresentation(): T; } /** * A class to handle the building of operations on scene items for a scene. */ export declare class ItemOperationBuilder implements SceneItemOperations { private operations; constructor(operations?: ItemOperation[]); /** * Constructs the scene operations and returns a definition describing each * operation. */ build(): ItemOperation[]; materialOverride(material: ColorMaterial): ItemOperationBuilder; show(): ItemOperationBuilder; hide(): ItemOperationBuilder; select(): ItemOperationBuilder; deselect(): ItemOperationBuilder; clearMaterialOverrides(): ItemOperationBuilder; transform(matrix: vertexvis.protobuf.core.IMatrix4x4f): ItemOperationBuilder; clearTransforms(cascade?: boolean): ItemOperationBuilder; setPhantom(phantomState?: boolean): ItemOperationBuilder; clearPhantom(): ItemOperationBuilder; setEndItem(endItemState?: boolean): ItemOperationBuilder; clearEndItem(): ItemOperationBuilder; viewRenditionById(id: UUID.UUID): ItemOperationBuilder; viewRenditionBySuppliedId(suppliedId: string): ItemOperationBuilder; viewDefaultRendition(): ItemOperationBuilder; clearRendition(): ItemOperationBuilder; viewRepresentation(id: RepresentationId): ItemOperationBuilder; clearRepresentation(): ItemOperationBuilder; } export type PmiAnnotationOperation = ShowItemOperation | HideItemOperation | SelectItemOperation | DeselectItemOperation; export interface PmiAnnotationOperations { show(): T; hide(): T; select(color: ColorMaterial): T; deselect(): T; } /** * A class to handle the building of operations on PMI annotations for a scene. */ export declare class PmiAnnotationOperationBuilder implements PmiAnnotationOperations { private operations; constructor(operations?: PmiAnnotationOperation[]); /** * Constructs the scene PMI annotation operations and returns a definition describing each * operation. */ build(): PmiAnnotationOperation[]; show(): PmiAnnotationOperationBuilder; hide(): PmiAnnotationOperationBuilder; select(): PmiAnnotationOperationBuilder; deselect(): PmiAnnotationOperationBuilder; } export {};