@g.frame/components.sliders
Version:
Slider component module for g.frame framework
68 lines (67 loc) • 1.96 kB
TypeScript
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;
}