123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- attribute vec3 position3DHigh;
- attribute vec3 position3DLow;
- attribute vec3 position2DHigh;
- attribute vec3 position2DLow;
- attribute vec3 prevPosition3DHigh;
- attribute vec3 prevPosition3DLow;
- attribute vec3 prevPosition2DHigh;
- attribute vec3 prevPosition2DLow;
- attribute vec3 nextPosition3DHigh;
- attribute vec3 nextPosition3DLow;
- attribute vec3 nextPosition2DHigh;
- attribute vec3 nextPosition2DLow;
- attribute vec4 texCoordExpandWidthAndShow;
- attribute vec4 pickColor;
- varying vec2 v_st;
- varying float v_width;
- varying vec4 czm_pickColor;
- void main()
- {
- float texCoord = texCoordExpandWidthAndShow.x;
- float expandDir = texCoordExpandWidthAndShow.y;
- float width = abs(texCoordExpandWidthAndShow.z) + 0.5;
- bool usePrev = texCoordExpandWidthAndShow.z < 0.0;
- float show = texCoordExpandWidthAndShow.w;
-
- vec4 p, prev, next;
- if (czm_morphTime == 1.0)
- {
- p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz);
- prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz);
- next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz);
- }
- else if (czm_morphTime == 0.0)
- {
- p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);
- prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy);
- next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy);
- }
- else
- {
- p = czm_columbusViewMorph(
- czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy),
- czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz),
- czm_morphTime);
- prev = czm_columbusViewMorph(
- czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy),
- czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz),
- czm_morphTime);
- next = czm_columbusViewMorph(
- czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy),
- czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz),
- czm_morphTime);
- }
-
- vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev);
- gl_Position = czm_viewportOrthographic * positionWC * show;
-
- v_st = vec2(texCoord, clamp(expandDir, 0.0, 1.0));
- v_width = width;
- czm_pickColor = pickColor;
- }
|