@lijuhong1981/cesium.utils 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +62 -2
  2. package/package.json +45 -4
  3. package/src/additions/Geographic.js +603 -0
  4. package/src/additions/GeographicTransform.js +291 -0
  5. package/src/additions/GeometryInstanceAttributes.js +164 -0
  6. package/src/additions/ModelMatrixTransforms.js +822 -0
  7. package/src/additions/PropertyChangedListener.js +72 -0
  8. package/src/additions/PropertyType.js +30 -0
  9. package/src/additions/StTransforms.js +266 -0
  10. package/src/additions/TranslationRotationScaleTransform.js +809 -0
  11. package/src/additions/index.js +8 -0
  12. package/src/index.js +4 -0
  13. package/src/parses/index.js +46 -0
  14. package/src/parses/parseAltitude.js +32 -0
  15. package/src/parses/parseArcType.js +26 -0
  16. package/src/parses/parseAttitudeToHeadingPitchRoll.js +26 -0
  17. package/src/parses/parseAttitudeToMatrix3.js +17 -0
  18. package/src/parses/parseAttitudeToQuaternion.js +21 -0
  19. package/src/parses/parseCartographicToCartesian.js +21 -0
  20. package/src/parses/parseCartographicsToPositions.js +20 -0
  21. package/src/parses/parseClassificationType.js +24 -0
  22. package/src/parses/parseClockRange.js +26 -0
  23. package/src/parses/parseColorBlendMode.js +26 -0
  24. package/src/parses/parseCornerType.js +24 -0
  25. package/src/parses/parseCullFace.js +28 -0
  26. package/src/parses/parseEulerToHeadingPitchRoll.js +21 -0
  27. package/src/parses/parseEulerToQuaternion.js +18 -0
  28. package/src/parses/parseGeographicToCartesian.js +21 -0
  29. package/src/parses/parseGeographicsToPositions.js +20 -0
  30. package/src/parses/parseHeading.js +28 -0
  31. package/src/parses/parseHeightReference.js +24 -0
  32. package/src/parses/parseHorizontalOrigin.js +26 -0
  33. package/src/parses/parseLabelStyle.js +26 -0
  34. package/src/parses/parseLatitude.js +28 -0
  35. package/src/parses/parseLongitude.js +28 -0
  36. package/src/parses/parsePitch.js +26 -0
  37. package/src/parses/parseRoll.js +26 -0
  38. package/src/parses/parseRotationToHeadingPitchRoll.js +40 -0
  39. package/src/parses/parseRotationToMatrix3.js +25 -0
  40. package/src/parses/parseRotationToQuaternion.js +27 -0
  41. package/src/parses/parseShadowMode.js +26 -0
  42. package/src/parses/parseToBoundingRectangle.js +33 -0
  43. package/src/parses/parseToCartesian2.js +35 -0
  44. package/src/parses/parseToCartesian3.js +37 -0
  45. package/src/parses/parseToCartesian3Array.js +21 -0
  46. package/src/parses/parseToCartesian4.js +39 -0
  47. package/src/parses/parseToCartographic.js +31 -0
  48. package/src/parses/parseToColor.js +33 -0
  49. package/src/parses/parseToDistanceDisplayCondition.js +41 -0
  50. package/src/parses/parseToGeographic.js +31 -0
  51. package/src/parses/parseToHeadingPitchRange.js +45 -0
  52. package/src/parses/parseToJulianDate.js +23 -0
  53. package/src/parses/parseToNearFarScalar.js +33 -0
  54. package/src/parses/parseToPlane.js +37 -0
  55. package/src/parses/parseToPolygonHierarchy.js +48 -0
  56. package/src/parses/parseToRange.js +26 -0
  57. package/src/parses/parseToRectangle.js +32 -0
  58. package/src/parses/parseToTimeInterval.js +45 -0
  59. package/src/parses/parseVerticalOrigin.js +28 -0
  60. package/src/revisions/BoundingSphere.revise.js +107 -0
  61. package/src/revisions/Camera.revise.js +366 -0
  62. package/src/revisions/Cartesian.revise.js +313 -0
  63. package/src/revisions/Cartographic.revise.js +443 -0
  64. package/src/revisions/Check.revise.js +164 -0
  65. package/src/revisions/Color.revise.js +271 -0
  66. package/src/revisions/DistanceDisplayCondition.revise.js +37 -0
  67. package/src/revisions/Ellipsoid.revise.js +64 -0
  68. package/src/revisions/Geometry.revise.js +79 -0
  69. package/src/revisions/Globe.revise.js +92 -0
  70. package/src/revisions/HeadingPitchRoll.revise.js +328 -0
  71. package/src/revisions/JulianDate.revise.js +28 -0
  72. package/src/revisions/Material.revise.js +308 -0
  73. package/src/revisions/Math.revise.js +98 -0
  74. package/src/revisions/Matrix.revise.js +578 -0
  75. package/src/revisions/POI.revise.js +178 -0
  76. package/src/revisions/Plane.revise.js +43 -0
  77. package/src/revisions/PolylinePipeline.revise.js +54 -0
  78. package/src/revisions/PostProcessStageLibrary.revise.js +1143 -0
  79. package/src/revisions/Primitive.revise.js +83 -0
  80. package/src/revisions/Property.revise.js +37 -0
  81. package/src/revisions/Quaternion.revise.js +66 -0
  82. package/src/revisions/Rectangle.revise.js +570 -0
  83. package/src/revisions/SceneTransforms.revise.js +82 -0
  84. package/src/revisions/Spherical.revise.js +35 -0
  85. package/src/revisions/index.js +25 -0
  86. package/src/utils/Scratch.js +165 -0
  87. package/src/utils/computeCirclePositions.js +48 -0
  88. package/src/utils/computeCircleRadius.js +19 -0
  89. package/src/utils/computeModelMatrix.js +109 -0
  90. package/src/utils/computeStTransform.js +57 -0
  91. package/src/utils/createGeometry.js +114 -0
  92. package/src/utils/createPointCloudGeometry.js +79 -0
  93. package/src/utils/getGeometryInstanceAttributes.js +43 -0
  94. package/src/utils/getPositionFromTarget.js +29 -0
  95. package/src/utils/getRenderState.js +35 -0
  96. package/src/utils/index.js +13 -0
  97. package/src/utils/isColorMaterial.js +13 -0
  98. package/src/utils/isTranslucent.js +13 -0
  99. package/src/utils/resolveModelMatrixByFixedFrame.js +30 -0
@@ -0,0 +1,29 @@
1
+ import { Check, defined } from "cesium";
2
+ import parseToCartesian3 from "../parses/parseToCartesian3.js";
3
+
4
+ /**
5
+ * 获取目标对象在指定时刻的世界坐标位置。
6
+ * 目标本身可直接是位置,也可通过其 position 属性获取;若为 Property 则按时刻求值。
7
+ * @param {object|Cartesian3} target 目标对象或位置
8
+ * @param {JulianDate} time 查询时刻
9
+ * @param {Cartesian3} result 用于存储结果的对象
10
+ * @returns {Cartesian3} 获取到的世界坐标位置
11
+ */
12
+ function getPositionFromTarget(target, time, result) {
13
+ Check.defined('target', target);
14
+ let position;
15
+ if (defined(target.position))
16
+ position = target.position;
17
+ else
18
+ position = target;
19
+
20
+ if (typeof position.getValue === 'function')
21
+ position = position.getValue(time, result);
22
+ else
23
+ position = parseToCartesian3(position, result, false);
24
+
25
+ return position;
26
+ };
27
+
28
+ export default getPositionFromTarget;
29
+ export { getPositionFromTarget };
@@ -0,0 +1,35 @@
1
+ import { Check, CullFace, defined } from "cesium";
2
+
3
+ /**
4
+ * 根据选项构建 Cesium 渲染状态对象(RenderState)。
5
+ * @param {object} options 参数对象
6
+ * @param {boolean} [options.depthTest] 是否启用深度测试
7
+ * @param {CullFace} [options.cullFace] 背面剔除模式
8
+ * @param {object} [result={}] 用于存储结果的渲染状态对象
9
+ * @returns {object} 构建的渲染状态对象
10
+ */
11
+ function getRenderState(options, result = {}) {
12
+ Check.defined('options', options);
13
+
14
+ if (defined(options.depthTest)) {
15
+ result.depthTest = {
16
+ enabled: options.depthTest,
17
+ };
18
+ }
19
+ if (defined(options.cullFace)) {
20
+ if (options.cullFace !== CullFace.NONE)
21
+ result.cull = {
22
+ enabled: true,
23
+ face: options.cullFace,
24
+ };
25
+ else {
26
+ result.cull = {
27
+ enabled: false,
28
+ };
29
+ }
30
+ }
31
+ return result;
32
+ };
33
+
34
+ export default getRenderState;
35
+ export { getRenderState };
@@ -0,0 +1,13 @@
1
+ export * from "./Scratch.js";
2
+ export * from "./computeCirclePositions.js";
3
+ export * from "./computeCircleRadius.js";
4
+ export * from "./computeModelMatrix.js";
5
+ export * from "./computeStTransform.js";
6
+ export * from "./createGeometry.js";
7
+ export * from "./createPointCloudGeometry.js";
8
+ export * from "./getGeometryInstanceAttributes.js";
9
+ export * from "./getPositionFromTarget.js";
10
+ export * from "./getRenderState.js";
11
+ export * from "./isColorMaterial.js";
12
+ export * from "./isTranslucent.js";
13
+ export * from "./resolveModelMatrixByFixedFrame.js";
@@ -0,0 +1,13 @@
1
+ import { defined, Material } from "cesium";
2
+
3
+ /**
4
+ * 判断材质是否为颜色材质(未定义或类型为 Material.ColorType)。
5
+ * @param {Material} material 待判断的材质
6
+ * @returns {boolean} 是否为颜色材质
7
+ */
8
+ function isColorMaterial(material) {
9
+ return !defined(material) || material.type === Material.ColorType;
10
+ };
11
+
12
+ export default isColorMaterial;
13
+ export { isColorMaterial };
@@ -0,0 +1,13 @@
1
+ import { defined } from "cesium";
2
+
3
+ /**
4
+ * 判断颜色是否为半透明(存在且 alpha 小于 1)。
5
+ * @param {Color} color 待判断的颜色
6
+ * @returns {boolean} 是否半透明
7
+ */
8
+ function isTranslucent(color) {
9
+ return defined(color) && (typeof color.alpha === 'number') && color.alpha < 1.0;
10
+ };
11
+
12
+ export default isTranslucent;
13
+ export { isTranslucent };
@@ -0,0 +1,30 @@
1
+ import { Cartesian3, Check, HeadingPitchRoll, Matrix4, Transforms } from "cesium";
2
+
3
+ /**
4
+ * 将世界坐标下的模型矩阵分解为固定参考系下的位置、缩放与航向俯仰翻滚。
5
+ * @param {Matrix4} modelMatrix 待分解的模型矩阵
6
+ * @param {Ellipsoid} ellipsoid 参考椭球体
7
+ * @param {Matrix4} fixedFrameTransform 固定参考系到世界坐标的变换矩阵
8
+ * @param {object} [result={}] 用于存储结果的对象
9
+ * @returns {object} 含 position(Cartesian3)、scale(Cartesian3)、rotation(HeadingPitchRoll)的结果对象
10
+ */
11
+ function resolveModelMatrixByFixedFrame(modelMatrix, ellipsoid, fixedFrameTransform, result = {}) {
12
+ Check.instanceOf('modelMatrix', modelMatrix, Matrix4);
13
+
14
+ if (!result.position)
15
+ result.position = new Cartesian3();
16
+ result.position = Matrix4.getTranslation(modelMatrix, result.position);
17
+
18
+ if (!result.scale)
19
+ result.scale = new Cartesian3();
20
+ result.scale = Matrix4.getScale(modelMatrix, result.scale);
21
+
22
+ if (!result.rotation)
23
+ result.rotation = new HeadingPitchRoll();
24
+ result.rotation = Transforms.fixedFrameToHeadingPitchRoll(modelMatrix, ellipsoid, fixedFrameTransform, result.rotation);
25
+
26
+ return result;
27
+ };
28
+
29
+ export default resolveModelMatrixByFixedFrame;
30
+ export { resolveModelMatrixByFixedFrame };