Sha256: f26e4df469028f2d0a3fc77fe8a96791582c0beb404a170083b2f621c4b7a02a

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

uniform vec4 u_intersectionColor;
uniform float u_intersectionWidth;

bool inSensorShadow(vec3 coneVertexWC, czm_ellipsoid ellipsoidEC, vec3 pointWC)
{
    // Diagonal matrix from the unscaled ellipsoid space to the scaled space.    
    vec3 D = ellipsoidEC.inverseRadii;

    // Sensor vertex in the scaled ellipsoid space
    vec3 q = D * coneVertexWC;
    float qMagnitudeSquared = dot(q, q);
    float test = qMagnitudeSquared - 1.0;
    
    // Sensor vertex to fragment vector in the ellipsoid's scaled space
    vec3 temp = D * pointWC - q;
    float d = dot(temp, q);
    
    // Behind silhouette plane and inside silhouette cone
    return (d < -test) && (d / length(temp) < -sqrt(test));
}

///////////////////////////////////////////////////////////////////////////////

vec4 getIntersectionColor()
{
    return u_intersectionColor;
}

float getIntersectionWidth()
{
    return u_intersectionWidth;
}

vec2 sensor2dTextureCoordinates(float sensorRadius, vec3 pointMC)
{
    // (s, t) both in the range [0, 1]
    float t = pointMC.z / sensorRadius;
    float s = 1.0 + (atan(pointMC.y, pointMC.x) / czm_twoPi);
    s = s - floor(s);
    
    return vec2(s, t);
}

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cesium-0.25.0 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.24.1 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.24.0 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.23.0 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.22.0 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.21.1 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.21 app/assets/javascripts/Shaders/SensorVolume.glsl
cesium-0.20.0 app/assets/javascripts/Shaders/SensorVolume.glsl