o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1391683276.803883:@value"A{I"
class:ETI"ProcessedAsset;�FI"logical_path;�TI"$Scene/SensorVolumeCollection.js;�FI"
pathname;�TI"]/Users/bogumil/www/engines/cesium/app/assets/javascripts/Scene/SensorVolumeCollection.js;�FI"content_type;�TI"application/javascript;�TI"
mtime;�TI"2014-02-06T11:40:47+01:00;�TI"length;�Ti�I"digest;�TI"%7a0b54b8051e5b831b3fd641f4859d33;�FI"source;�TI"�/*global define*/

define(['Core/defined', 'Core/destroyObject', 'Core/DeveloperError', 'Scene/CustomSensorVolume', 'Scene/RectangularPyramidSensorVolume', 'Scene/SceneMode'], function(
        defined,
        destroyObject,
        DeveloperError,
        CustomSensorVolume,
        RectangularPyramidSensorVolume,
        SceneMode) {
    "use strict";

    /**
     * DOC_TBA
     *
     * @alias SensorVolumeCollection
     * @constructor
     *
     * @demo <a href="http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Sensors.html">Cesium Sandcastle Sensors Demo</a>
     */
    var SensorVolumeCollection = function() {
        this._sensors = [];
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#addCustom
     * @see SensorVolumeCollection#addComplexConic
     */
    SensorVolumeCollection.prototype.addRectangularPyramid = function(options) {
        var sensor = new RectangularPyramidSensorVolume(options);
        this._sensors.push(sensor);
        return sensor;
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#addRectangularPyramid
     * @see SensorVolumeCollection#addComplexConic
     */
    SensorVolumeCollection.prototype.addCustom = function(options) {
        var sensor = new CustomSensorVolume(options);
        this._sensors.push(sensor);
        return sensor;
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#removeAll
     */
    SensorVolumeCollection.prototype.remove = function(sensor) {
        if (sensor) {
            var sensors = this._sensors;
            var i = sensors.indexOf(sensor);
            if (i !== -1) {
                sensors[i].destroy();
                sensors.splice(i, 1);
                return true;
            }
        }

        return false;
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#remove
     */
    SensorVolumeCollection.prototype.removeAll = function() {
        var sensors = this._sensors;
        var length = sensors.length;
        for ( var i = 0; i < length; ++i) {
            sensors[i].destroy();
        }

        this._sensors = [];
    };

    /**
     * DOC_TBA
     * @memberof SensorVolumeCollection
     */
    SensorVolumeCollection.prototype.contains = function(sensor) {
        if (sensor) {
            return (this._sensors.indexOf(sensor) !== -1);
        }

        return false;
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#getLength
     */
    SensorVolumeCollection.prototype.get = function(index) {
        //>>includeStart('debug', pragmas.debug);
        if (!defined(index)) {
            throw new DeveloperError('index is required.');
        }
        //>>includeEnd('debug');

        return this._sensors[index];
    };

    /**
     * DOC_TBA
     *
     * @memberof SensorVolumeCollection
     *
     * @see SensorVolumeCollection#get
     */
    SensorVolumeCollection.prototype.getLength = function() {
        return this._sensors.length;
    };

    /**
     * @private
     */
    SensorVolumeCollection.prototype.update = function(context, frameState, commandList) {
        var mode = frameState.mode;
        if (mode !== SceneMode.SCENE3D) {
            return;
        }

        var sensors = this._sensors;
        var length = sensors.length;
        for (var i = 0; i < length; ++i) {
            sensors[i].update(context, frameState, commandList);
        }
    };

    /**
     * DOC_TBA
     * @memberof SensorVolumeCollection
     */
    SensorVolumeCollection.prototype.isDestroyed = function() {
        return false;
    };

    /**
     * DOC_TBA
     * @memberof SensorVolumeCollection
     */
    SensorVolumeCollection.prototype.destroy = function() {
        this.removeAll();
        return destroyObject(this);
    };

    return SensorVolumeCollection;
});
;�TI"dependency_digest;�TI"%d20dc1f01b422b6bd2db6ededb79eba4;�FI"required_paths;�T[I"]/Users/bogumil/www/engines/cesium/app/assets/javascripts/Scene/SensorVolumeCollection.js;�FI"dependency_paths;�T[{I"	path;�TI"]/Users/bogumil/www/engines/cesium/app/assets/javascripts/Scene/SensorVolumeCollection.js;�FI"
mtime;�TI"2014-02-06T11:40:47+01:00;�TI"digest;�TI"%6c3ce24910b6f2dc91705fdb625aa6c4;�FI"
_version;�TI"%6776f581a4329e299531e1d52aa59832;�F