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

define(['Core/defaultValue', 'Core/defined', 'Core/DeveloperError', 'Core/Intersect'], function(
        defaultValue,
        defined,
        DeveloperError,
        Intersect) {
    "use strict";

    /**
     * The culling volume defined by planes.
     *
     * @alias OrthographicFrustum
     * @constructor
     *
     * @param Array planes An array of clipping planes.
     */
    var CullingVolume = function(planes) {
        /**
         * Each plane is represented by a Cartesian4 object, where the x, y, and z components
         * define the unit vector normal to the plane, and the w component is the distance of the
         * plane from the origin.
         * @type {Array}
         * @default []
         */
        this.planes = defaultValue(planes, []);
    };

    /**
     * Determines whether a bounding volume intersects the culling volume.
     * @memberof CullingVolume
     *
     * @param {Object} boundingVolume The bounding volume whose intersection with the culling volume is to be tested.
     * @returns {Intersect}  Intersect.OUTSIDE, Intersect.INTERSECTING, or Intersect.INSIDE.
     *
     * @exception {DeveloperError} boundingVolume is required.
     */
    CullingVolume.prototype.getVisibility = function(boundingVolume) {
        //>>includeStart('debug', pragmas.debug);
        if (!defined(boundingVolume)) {
            throw new DeveloperError('boundingVolume is required.');
        }
        //>>includeEnd('debug');

        var planes = this.planes;
        var intersecting = false;
        for (var k = 0, len = planes.length; k < len; ++k) {
            var result = boundingVolume.intersect(planes[k]);
            if (result === Intersect.OUTSIDE) {
                return Intersect.OUTSIDE;
            } else if (result === Intersect.INTERSECTING) {
                intersecting = true;
            }
        }

        return intersecting ? Intersect.INTERSECTING : Intersect.INSIDE;
    };

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