UNPKG

@g.frame/components.sliders

Version:

Slider component module for g.frame framework

68 lines (67 loc) 1.96 kB
import { Color, Object3D } from 'three'; import { ButtonComponent } from '@g.frame/components.buttons'; import { ViewerModule } from '@g.frame/core'; import { ActionController } from '@g.frame/common.action_controller'; export declare enum CircleSliderComponentSlidingMode { normal = "normal", onlyClockwise = "onlyClockwise", onlyAntiClockwise = "onlyAntiClockwise" } export interface ICircleSliderComponentOptions { diameter: number; picker: ButtonComponent; mode?: CircleSliderComponentSlidingMode; magnetOnSides?: number; spaceBetweenObjects?: number; filledPart: { width: number; border?: number; borderColor?: Color; mainColor?: Color; arc?: number; }; unfilledPart: { width: number; border?: number; borderColor?: Color; mainColor?: Color; arc?: number; }; } export declare class CircleSliderComponent extends ViewerModule { private options; private actionController; private mainContainer; private visualGroup; private dragGroup; private slider; private slideActive; private background; private filledPart; private minAngle; private maxAngle; private debugMode; private debugText; constructor(options: ICircleSliderComponentOptions, actionController: ActionController); private _value; get value(): number; set value(value: number); init(): void; updateDebugInfo(angle?: number): void; createBackground(): void; createFilledPart(): void; updateFilledPart(): void; createDrag(): void; /** * * @param newAngle number New angle in radians */ moveEvent(newAngle: number): void; dispose(): void; disposeObject(object?: Object3D | ViewerModule, disposeParams?: any): void; private angleToPoint; private pointToAngle; private magnetize; private angleToValue; private valueToAngle; }