All files / src/elements/point PlaneSlider.ts

97.01% Statements 65/67
66.66% Branches 4/6
100% Functions 4/4
97.01% Lines 65/67

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 681x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4030x 4030x 4030x 4030x 4030x 4030x 4030x 4030x 1x 1x 8947x 8947x 1x 1x 10x 10x 10x 10x 10x 1x 1x 1205x 1205x 1205x 1205x 1205x 1205x 1205x     1205x 1205x 1205x 1x 1x 1x 1x  
/*----------------------------------------------------------------------+
|    Title:	PlaneSlider.ts                                              |
|    A port of the software Geometry Applet by                          |
|    Author:    David E. Joyce                                          |
|        Department of Mathematics and Computer Science                 |
|        Clark University                                               |
|        Worcester, MA 01610-1477                                       |
|        U.S.A.                                                         |
|                                                                       |
|        http://aleph0.clarku.edu/~djoyce/home.html                     |
|        djoyce@clarku.edu                                              |
|                                                                       |
|    Date:    February, 1996.   Version 2.0.0 May, 1997.                |
|    TypeScript Port: 2019, Nelson Brown, brownnrl@gmail.com            |
|                           https://www.nelsonbrown.net/                |
+----------------------------------------------------------------------*/
import {PointElement} from "./PointElement";
import {PlaneElement} from "../plane/PlaneElement";
 
export class PlaneSlider extends PointElement {
 
    // this point can be dragged anywhere on the ambient plane AP
 
    protected _initx : number;
    protected _inity : number;
    protected _initz : number;
 
    protected _newP : PointElement = new PointElement();
 
    constructor(Qval : PlaneElement, xVal : number, yVal : number, zVal : number) {
        super();
        this.dimension = 0;
        this.draggable = true;
        this._AP = Qval;
        this._x = this._initx = xVal;
        this._y = this._inity = yVal;
        this._z = this._initz = zVal;
    }
 
    public update() : void {
        this.toPlane(this._AP);
    }
 
    public reset() : void {
        this._x = this._initx;
        this._y = this._inity;
        this._z = this._initz;
        this.toPlane(this._AP);
    }
 
    public drag(tox : number, toy : number) : boolean {
        this._x = tox;
        this._y = toy;
        if (!this.defined()) { this._z = this._initz; }
        this._newP.to(this).uptoPlane(this._AP);
        if(this._newP.defined()) {
            this.to(this._newP);
        } else {
            this.toPlane(this._AP);
        }
 
        return true;
    }
 
 
 
}