ngx-acuw
Version:
Angular components using WEBGL (threejs)
61 lines (60 loc) • 1.85 kB
TypeScript
import { Observable } from 'rxjs';
export declare class ObjectControls {
private isUserInteracting;
private restoringAnimationOngoing;
private restoringOriginPosTimeout;
private startDraggingPosition;
private rendererDom;
private touchArea;
private obj;
private userInteracted;
private userInteractedSubject;
rotationSpeed: number;
verticalRotation: boolean;
horizontalRotation: boolean;
autoRotationY: boolean;
autoRotationX: boolean;
autoRotationZ: boolean;
restoreOriginPosition: boolean;
autoRotationSpeed: number;
userInteracted$: Observable<boolean>;
controlsEnabled: boolean;
constructor(rendererDom: HTMLElement, object: THREE.Mesh | THREE.Group, touchArea?: HTMLElement);
/**
* Method, which needs to be called, in case autorotation is used
*/
update(): void;
/**
* Removes the event listners
*/
removeEventlisteners(): void;
resetUserInteractionFlag(): void;
/**
* Adds the event listeners
*/
private addEventlisteners;
/**
* Reset the mouse position to x=0 and y=0
*/
private resetMousePosition;
/****************** MOUSE interaction functions - desktop *****/
/**
* Prepares everything, when the mouse is clicked
* @param e mouse event
*/
private mouseDown;
/**
* Calculates the x and y rotation of the object depending on the mouse movement
* @param e MouseEvent
*/
private mouseMove;
private mouseUp;
/****************** TOUCH interaction functions - mobile *****/
private onTouchStart;
private onTouchMove;
private onTouchEnd;
/**
* Rotates the object to the position 0,0,0 after a some timeout
*/
private restoreOriginalPosition;
}