UNPKG

@polygonjs/polygonjs

Version:

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

228 lines (227 loc) 8.22 kB
import { BaseParamType } from '../_Base'; import { BaseNodeType } from '../../nodes/_Base'; import { ParamType } from '../../poly/ParamType'; import { NodeContext } from '../../poly/NodeContext'; import { ColorConversion } from '../../../core/Color'; import { Boolean2, Number2, PolyDictionary } from '../../../types/GlobalTypes'; export declare const PARAM_OPTION_NAMES: { CALLBACK_OPTION: string; }; export interface GenericParamOptionsMenuEntry<T> { name: string; value: T; } export type StringParamOptionsMenuEntry = GenericParamOptionsMenuEntry<string>; export type NumericParamOptionsMenuEntry = GenericParamOptionsMenuEntry<number>; export interface MenuNumericParamOptions { menu?: { entries: NumericParamOptionsMenuEntry[]; }; } export interface MenuStringParamOptions { menuString?: { entries: StringParamOptionsMenuEntry[]; }; } export declare enum StringParamLanguage { CSS = "css", GLSL = "glsl", HTML = "html", TYPESCRIPT = "typescript", JSON = "json" } export declare enum FileType { AUDIO = "audio", TEXTURE_IMAGE = "texture_image", TEXTURE_VIDEO = "texture_video", GEOMETRY = "geometry", FONT = "font", SVG = "svg", JSON = "json" } export type VisibleIfParamOptions = PolyDictionary<number | boolean | string>; export interface BaseParamOptions { cook?: boolean; spare?: boolean; hidden?: boolean; field?: boolean; visibleIf?: VisibleIfParamOptions | VisibleIfParamOptions[]; separatorBefore?: boolean; separatorAfter?: boolean; joinToPreviousParam?: boolean; editable?: boolean; } interface ExpressionParamOptions { expression?: { forEntities?: boolean; }; } interface NumberParamOptions extends BaseParamOptions { range?: Number2; rangeLocked?: Boolean2; step?: number; } interface FileParamOptions { fileBrowse?: { extensions: string[]; }; } interface ComputeOnDirtyParamOptions { computeOnDirty?: boolean; } interface CallbackParamOptions { callback?: (node: BaseNodeType, param: BaseParamType) => any; callbackString?: string; } interface LabelParamOptions { label?: string; } interface LabelVisibilityParamOptions { hideLabel?: boolean; } interface ColorConversionOptions { conversion?: ColorConversion; } export interface BooleanParamOptions extends BaseParamOptions, ComputeOnDirtyParamOptions, MenuNumericParamOptions, ExpressionParamOptions, CallbackParamOptions, LabelParamOptions { } export interface ButtonParamOptions extends BaseParamOptions, CallbackParamOptions, LabelParamOptions { } export interface ColorParamOptions extends BaseParamOptions, LabelParamOptions, ColorConversionOptions, ExpressionParamOptions, CallbackParamOptions, ComputeOnDirtyParamOptions { } export interface FloatParamOptions extends NumberParamOptions, MenuNumericParamOptions, ComputeOnDirtyParamOptions, ExpressionParamOptions, CallbackParamOptions { } export interface FolderParamOptions extends BaseParamOptions { level?: number; } interface ObjectMask { inputIndex?: number; fromInputOnly?: boolean; } type ObjectMaskOptions = ObjectMask | boolean; export interface IntegerParamOptions extends NumberParamOptions, MenuNumericParamOptions, ComputeOnDirtyParamOptions, ExpressionParamOptions, CallbackParamOptions { } export interface NodePathParamOptions extends BaseParamOptions, FileParamOptions, ComputeOnDirtyParamOptions, CallbackParamOptions { nodeSelection?: { context?: NodeContext; types?: Readonly<string[]>; }; dependentOnFoundNode?: boolean; } export interface ParamPathParamOptions extends BaseParamOptions, FileParamOptions, ComputeOnDirtyParamOptions, CallbackParamOptions { dependentOnFoundParam?: boolean; paramSelection?: ParamType | boolean; } export interface RampParamOptions extends BaseParamOptions, LabelVisibilityParamOptions { } export interface SeparatorParamOptions extends BaseParamOptions { } export interface StringParamOptions extends BaseParamOptions, MenuStringParamOptions, FileParamOptions, CallbackParamOptions, ExpressionParamOptions, LabelVisibilityParamOptions { multiline?: boolean; language?: StringParamLanguage; objectMask?: ObjectMaskOptions; } interface VectorParamOptions extends BaseParamOptions, LabelParamOptions, ExpressionParamOptions, CallbackParamOptions, ComputeOnDirtyParamOptions { } export interface Vector2ParamOptions extends VectorParamOptions { } export interface Vector3ParamOptions extends VectorParamOptions { } interface QuaternionOptions { asQuaternion?: boolean; } export interface Vector4ParamOptions extends VectorParamOptions, QuaternionOptions { } export interface ParamOptions extends NumberParamOptions, ColorConversionOptions, ComputeOnDirtyParamOptions, FolderParamOptions, ExpressionParamOptions, ButtonParamOptions, FileParamOptions, MenuNumericParamOptions, StringParamOptions, NodePathParamOptions, ParamPathParamOptions, LabelVisibilityParamOptions, QuaternionOptions { texture?: { env?: boolean; }; } export declare class OptionsController { private _param; private _programaticVisibleState; private _options; private _default_options; constructor(_param: BaseParamType); dispose(): void; set(options: ParamOptions): void; copy(options_controller: OptionsController): void; setOption<K extends keyof ParamOptions>(optionName: K, value: ParamOptions[K]): void; private _validateOption; private postSetOptions; param(): BaseParamType; node(): BaseNodeType; default(): ParamOptions; current(): ParamOptions; hasOptionsOverridden(): boolean; overriddenOptions(): ParamOptions; overriddenOptionNames(): Array<keyof ParamOptions>; computeOnDirty(): boolean; private _computeOnDirtyCallbackAdded; private _handleComputeOnDirty; private _computeParam; hasCallback(): boolean; private _callbackAllowed; allowCallback(): void; executeCallback(): Promise<void>; private getCallback; private createCallbackFromString; colorConversion(): ColorConversion; makesNodeDirtyWhenDirty(): boolean; fileBrowseOption(): { extensions: string[]; } | undefined; fileBrowseAllowed(): boolean; fileBrowseExtensions(): string[] | null; separatorBefore(): boolean | undefined; separatorAfter(): boolean | undefined; joinToPreviousParam(): boolean | undefined; setEditableState(state: boolean): void; editable(): boolean; isExpressionForEntities(): boolean; level(): number; hasMenu(): boolean; private menuOptions; private menuStringOptions; menuEntries(): Array<NumericParamOptionsMenuEntry | StringParamOptionsMenuEntry>; ensureValueInMenuEntries(value: number): number; isMultiline(): boolean; language(): StringParamLanguage | undefined; isCode(): boolean; nodeSelectionOptions(): { context?: NodeContext | undefined; types?: readonly string[] | undefined; } | undefined; nodeSelectionContext(): NodeContext | undefined; nodeSelectionTypes(): readonly string[] | undefined; displayObjectMaskSelection(): boolean; objectMaskInputIndex(): number; objectMaskFromInputOnly(): boolean; dependentOnFoundNode(): boolean | undefined; dependentOnFoundParam(): boolean | undefined; isSelectingParam(): boolean; range(): Number2; step(): number | undefined; asQuaternion(): boolean; rangeLocked(): Boolean2; ensureInRange(value: number): number; isSpare(): boolean; textureOptions(): { env?: boolean | undefined; } | undefined; textureAsEnv(): boolean; isHidden(): boolean; isVisible(): boolean; setVisibleState(state: boolean): void; label(): string | undefined; isLabelHidden(): boolean; isFieldHidden(): boolean; uiDataDependsOnOtherParams(): boolean; visibilityPredecessors(): BaseParamType[]; private _updateVisibilityAndRemoveDirtyBound; private _visibility_graph_node; private _ui_data_dependency_set; setUiDataDependency(): void; private updateVisibilityAndRemoveDirty; updateVisibility(): Promise<void>; } export {};