UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

114 lines (113 loc) 4.39 kB
import type { Ref } from '@vue/reactivity'; import { Intersection, Material, Object3D } from 'three'; import { ConvertToStrings } from '../../../../../types/GlobalTypes'; import { MouseButton, MouseButtons } from '../../../../../core/MouseButton'; export interface PriorityOptions { blockObjectsBehind: boolean; skipIfObjectsInFront: boolean; } export interface CPUOptions { traverseChildren: boolean; pointsThreshold: number; lineThreshold: number; intersectionRef: Ref<Intersection | null>; } export interface GPUOptions { worldPosMaterial: Material | null; distanceRef: Ref<number>; } export interface ObjectOptions { priority: PriorityOptions; cpu?: CPUOptions; gpu?: GPUOptions; } export interface EmptyOptions { } export declare function hasCPUOptions(optionsList: ObjectOptions[]): boolean; export declare function hasGPUOptions(optionsList: ObjectOptions[]): boolean; export declare function GPUOptionsDepthBufferRequired(optionsList: ObjectOptions[]): boolean; export declare function CPUOptionsEqual(optionsList: ObjectOptions[]): boolean; export declare function CPUOptionsMax(optionsList: ObjectOptions[], target: CPUOptions): CPUOptions; export declare enum Status { REQUIRED = 0, OPTIONAL = 1, FORBIDDEN = 2 } export declare const STATUS_OPTIONS: Status[]; export declare const STATUS_OPTION_LABEL: string[]; export declare const DEFAULT_STATUS_OPTION: number; export declare const STATUS_MENU_OPTIONS: { menu: { entries: { value: Status; name: string; }[]; }; }; export interface ButtonOptions { left: boolean; middle: boolean; right: boolean; } export interface ButtonsOptions { left: Status; middle: Status; right: Status; } export interface ModifierOptions { ctrl: Status; shift: Status; alt: Status; } export interface ButtonAndModifierOptions { button: ButtonOptions; modifier: ModifierOptions; } export interface ButtonsAndModifierOptions { button: ButtonsOptions; modifier: ModifierOptions; } export interface OnlyModifierOptions { modifier: ModifierOptions; } export interface ButtonAndModifierOptionsAsString { button: ConvertToStrings<ButtonOptions>; modifier: ConvertToStrings<ModifierOptions>; } export interface ButtonsAndModifierOptionsAsString { button: ConvertToStrings<ButtonsOptions>; modifier: ConvertToStrings<ModifierOptions>; } export interface ModifierOptionsAsString { modifier: ConvertToStrings<ModifierOptions>; } interface PropertyWithButtonConfig { config: ButtonAndModifierOptions; } interface PropertyWithButtonsConfig { config: ButtonsAndModifierOptions; } interface PropertyWithModifierConfig { config: OnlyModifierOptions; } export interface ButtonConfig { button: MouseButton; ctrl: boolean; shift: boolean; alt: boolean; } export interface ButtonsConfig { buttons: MouseButtons; ctrl: boolean; shift: boolean; alt: boolean; } export declare function propertyMatchesModifiersConfig(propertyConfig: OnlyModifierOptions, buttonsConfig: ButtonsConfig | ButtonConfig): boolean; export declare function propertyMatchesButtonConfig(propertyConfig: ButtonAndModifierOptions, buttonConfig: ButtonConfig): boolean; export declare function propertyMatchesButtonsConfig(propertyConfig: ButtonsAndModifierOptions, buttonsConfig: ButtonsConfig): boolean; export declare function buttonConfigFromEvent(event: Readonly<PointerEvent | MouseEvent | TouchEvent>, target: ButtonConfig): void; export declare function buttonsConfigFromEvent(event: Readonly<PointerEvent | MouseEvent | TouchEvent>, target: ButtonsConfig): void; export declare function filterObjectsWithMatchButtonConfig(event: Readonly<PointerEvent | MouseEvent | TouchEvent>, objects: Object3D[], propertiesListByObject: Map<Object3D, PropertyWithButtonConfig[]>, target: Object3D[]): void; export declare function filterObjectsWithMatchButtonsConfig(event: Readonly<PointerEvent | MouseEvent | TouchEvent>, objects: Object3D[], propertiesListByObject: Map<Object3D, PropertyWithButtonsConfig[]>, target: Object3D[]): void; export declare function filterObjectsWithMatchModifiersConfig(event: Readonly<PointerEvent | MouseEvent | TouchEvent>, objects: Object3D[], propertiesListByObject: Map<Object3D, PropertyWithModifierConfig[]>, target: Object3D[]): void; export {};