PolylineVS.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "attribute vec3 position3DHigh;\n\
  3. attribute vec3 position3DLow;\n\
  4. attribute vec3 position2DHigh;\n\
  5. attribute vec3 position2DLow;\n\
  6. attribute vec3 prevPosition3DHigh;\n\
  7. attribute vec3 prevPosition3DLow;\n\
  8. attribute vec3 prevPosition2DHigh;\n\
  9. attribute vec3 prevPosition2DLow;\n\
  10. attribute vec3 nextPosition3DHigh;\n\
  11. attribute vec3 nextPosition3DLow;\n\
  12. attribute vec3 nextPosition2DHigh;\n\
  13. attribute vec3 nextPosition2DLow;\n\
  14. attribute vec4 texCoordExpandAndBatchIndex;\n\
  15. varying vec2 v_st;\n\
  16. varying float v_width;\n\
  17. varying vec4 v_pickColor;\n\
  18. varying float v_polylineAngle;\n\
  19. void main()\n\
  20. {\n\
  21. float texCoord = texCoordExpandAndBatchIndex.x;\n\
  22. float expandDir = texCoordExpandAndBatchIndex.y;\n\
  23. bool usePrev = texCoordExpandAndBatchIndex.z < 0.0;\n\
  24. float batchTableIndex = texCoordExpandAndBatchIndex.w;\n\
  25. vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex);\n\
  26. float width = widthAndShow.x + 0.5;\n\
  27. float show = widthAndShow.y;\n\
  28. if (width < 1.0)\n\
  29. {\n\
  30. show = 0.0;\n\
  31. }\n\
  32. vec4 pickColor = batchTable_getPickColor(batchTableIndex);\n\
  33. vec4 p, prev, next;\n\
  34. if (czm_morphTime == 1.0)\n\
  35. {\n\
  36. p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz);\n\
  37. prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz);\n\
  38. next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz);\n\
  39. }\n\
  40. else if (czm_morphTime == 0.0)\n\
  41. {\n\
  42. p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);\n\
  43. prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy);\n\
  44. next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy);\n\
  45. }\n\
  46. else\n\
  47. {\n\
  48. p = czm_columbusViewMorph(\n\
  49. czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy),\n\
  50. czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz),\n\
  51. czm_morphTime);\n\
  52. prev = czm_columbusViewMorph(\n\
  53. czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy),\n\
  54. czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz),\n\
  55. czm_morphTime);\n\
  56. next = czm_columbusViewMorph(\n\
  57. czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy),\n\
  58. czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz),\n\
  59. czm_morphTime);\n\
  60. }\n\
  61. #ifdef DISTANCE_DISPLAY_CONDITION\n\
  62. vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex);\n\
  63. vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex);\n\
  64. vec3 centerLow = centerLowAndRadius.xyz;\n\
  65. float radius = centerLowAndRadius.w;\n\
  66. vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex);\n\
  67. float lengthSq;\n\
  68. if (czm_sceneMode == czm_sceneMode2D)\n\
  69. {\n\
  70. lengthSq = czm_eyeHeight2D.y;\n\
  71. }\n\
  72. else\n\
  73. {\n\
  74. vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz);\n\
  75. lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius);\n\
  76. }\n\
  77. float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;\n\
  78. float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;\n\
  79. if (lengthSq < nearSq || lengthSq > farSq)\n\
  80. {\n\
  81. show = 0.0;\n\
  82. }\n\
  83. #endif\n\
  84. vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, v_polylineAngle);\n\
  85. gl_Position = czm_viewportOrthographic * positionWC * show;\n\
  86. v_st = vec2(texCoord, clamp(expandDir, 0.0, 1.0));\n\
  87. v_width = width;\n\
  88. v_pickColor = pickColor;\n\
  89. #ifdef LOG_DEPTH\n\
  90. czm_vertexLogDepth(czm_modelViewProjectionRelativeToEye * p);\n\
  91. #endif\n\
  92. }\n\
  93. ";