@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
49 lines (48 loc) • 3.22 kB
TypeScript
import { CoreGroup } from './../../../core/geometry/Group';
import { BaseParamType } from '../_Base';
import { ExpressionManager } from '../../expressions/ExpressionManager';
import type { CorePoint } from '../../../core/geometry/entities/point/CorePoint';
import type { CoreVertex } from '../../../core/geometry/entities/vertex/CoreVertex';
import type { CorePrimitive } from '../../../core/geometry/entities/primitive/CorePrimitive';
import { CoreEntity } from '../../../core/geometry/CoreEntity';
import { ParamType } from '../../poly/ParamType';
import { ParamValuesTypeMap } from '../types/ParamValuesTypeMap';
import { BaseCoreObject } from '../../../core/geometry/entities/object/BaseCoreObject';
import { MethodDependency } from '../../expressions/MethodDependency';
import { CoreGraphNodeId } from '../../../core/graph/CoreGraph';
import { CoreObjectType } from '../../../core/geometry/ObjectContent';
type EntityCallback<T extends ParamType> = (entity: CoreEntity, value: ParamValuesTypeMap[T] | any) => void;
type PointEntityCallback<T extends ParamType> = (entity: CorePoint<CoreObjectType>, value: ParamValuesTypeMap[T] | any) => void;
type ObjectEntityCallback<T extends ParamType> = (entity: BaseCoreObject<CoreObjectType>, value: ParamValuesTypeMap[T] | any) => void;
type CoreGroupEntityCallback<T extends ParamType> = (entity: CoreGroup, value: ParamValuesTypeMap[T] | any) => void;
export declare class ExpressionController<T extends ParamType> {
protected param: BaseParamType;
protected _expression: string | undefined;
protected _entities: CoreEntity[] | undefined;
protected _entityCallback: EntityCallback<T> | undefined;
protected _manager: ExpressionManager | undefined;
protected _methodDependenciesByGraphNodeId: Map<CoreGraphNodeId, MethodDependency> | undefined;
constructor(param: BaseParamType);
dispose(): void;
private _resetMethodDependencies;
registerMethodDependency(methodDependency: MethodDependency): void;
active(): boolean;
expression(): string | undefined;
isErrored(): boolean;
errorMessage(): string | null | undefined;
entitiesDependent(): boolean;
setExpression(expression: string | undefined, setDirty?: boolean): void;
updateFromMethodDependencyNameChange(): void;
computeExpression(): Promise<any> | undefined;
computeExpressionForEntities(entities: CoreEntity[], callback: EntityCallback<T>): Promise<void>;
computeExpressionForPoints(entities: CorePoint<CoreObjectType>[], callback: PointEntityCallback<T>): Promise<void>;
computeExpressionForVertices(entities: CoreVertex<CoreObjectType>[], callback: PointEntityCallback<T>): Promise<void>;
computeExpressionForPrimitives(entities: CorePrimitive<CoreObjectType>[], callback: PointEntityCallback<T>): Promise<void>;
computeExpressionForObjects<OT extends CoreObjectType>(entities: BaseCoreObject<OT>[], callback: ObjectEntityCallback<T>): Promise<void>;
computeExpressionForCoreGroup(entity: CoreGroup, callback: CoreGroupEntityCallback<T>): Promise<void>;
entities(): CoreEntity[] | undefined;
entityCallback(): EntityCallback<T> | undefined;
private _setEntities;
private _resetEntities;
}
export {};