import { CullMode, CullModeOption, FrontFace, FrontFaceOption } from './../enums'; /** * Options to be converted into {@link ICullState} via {@link CullState.convert} * * @public */ export interface CullStateOptions { frontFace?: FrontFaceOption; cullMode?: CullModeOption; enable?: boolean; } /** * An object with all cull state parameters * * @public */ export interface ICullState { frontFace: FrontFace; cullMode: CullMode; enable: boolean; } /** * An object with all cull state parameters * * @public */ export declare type CullStateParams = Partial; /** * @public */ export declare class CullState implements CullStateParams { protected $frontFace: number; protected $cullMode: number; protected $enable: boolean; protected $hasChanged: boolean; protected $changes: CullStateParams; get isDirty(): boolean; /** * Enables or disables the culling */ get enable(): boolean; set enable(value: boolean); /** * Gets the readable name of the front face */ get frontFaceName(): string; /** * Gets and sets the front face */ get frontFace(): number; set frontFace(value: number); /** * Gets the readable name of the cull mode */ get cullModeName(): string; /** * Gets and sets the cull mode */ get cullMode(): number; set cullMode(value: number); /** * Assigns multiple parameters to the current state */ assign(state: CullStateParams): this; /** * Uploads all changes to the GPU * * @param state - State changes to be assigned before committing */ commit(state?: CullStateParams): this; /** * Creates a copy of this state state */ copy(): ICullState; /** * Creates a copy of this state and writes it into the target object * * @param target - Where the state should be written to */ copy(target: T): T & ICullState; protected commitChanges(changes: Partial): void; protected clearChanges(): void; /** * Converts a state name or options into {@link ICullState} * * @param state - The state name or state options to convert */ static convert(state: string | CullStateOptions): CullStateParams; /** * A default state with culling disabled */ static Default: Readonly; /** * A state with culling disabled */ static CullNone: Readonly; /** * A state with culling clock wise faces enabled */ static CullClockWise: Readonly; /** * A state with culling counter clock wise faces enabled */ static CullCounterClockWise: Readonly; } //# sourceMappingURL=CullState.d.ts.map