@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
228 lines (227 loc) • 8.22 kB
TypeScript
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 {};