//
//  getHUDLookAtPositionTest.js
//  examples/controllers
//
//  Created by Brad Hefta-Gaub on 2015/12/15
//  Copyright 2015 High Fidelity, Inc.
//
//  Distributed under the Apache License, Version 2.0.
//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//


// This script demonstrates the testing of the HMD.getHUDLookAtPosition--() functions.
// If these functions are working correctly, we'd expect to see a 3D cube and a 2D square
// follow around the center of the HMD view.

var cubePosition = { x: 0, y: 0, z: 0 };
var cubeSize = 0.03;
var cube = Overlays.addOverlay("cube", {
                    position: cubePosition,
                    size: cubeSize,
                    color: { red: 0, green: 255, blue: 0},
                    alpha: 1,
                    solid: false
                });

var SQUARE_SIZE = 20;

var square = Overlays.addOverlay("rectangle", {
                    x: 0,
                    y: 0,
                    width: SQUARE_SIZE,
                    height: SQUARE_SIZE,
                    color: { red: 0, green: 255, blue: 0},
                    backgroundColor: { red: 0, green: 255, blue: 0},
                    alpha: 1
                });


Script.update.connect(function(deltaTime) {
    if (!HMD.active) {
        return;
    }
    var lookAt3D = HMD.getHUDLookAtPosition3D();
    Overlays.editOverlay(cube, { position: lookAt3D });

    var lookAt2D = HMD.getHUDLookAtPosition2D();
    Overlays.editOverlay(square, { x: lookAt2D.x - (SQUARE_SIZE/2), y: lookAt2D.y  - (SQUARE_SIZE/2)});
});

Script.scriptEnding.connect(function(){
    Overlays.deleteOverlay(cube);
    Overlays.deleteOverlay(square);
});