UNPKG

vue-cesium

Version:
1 lines 12.6 kB
{"version":3,"file":"PolygonPrimitive.mjs","sources":["../../../../../packages/shared/src/PolygonPrimitive.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-11-19 14:20:47\n * @LastEditTime: 2022-08-25 20:10:03\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\shared\\src\\PolygonPrimitive.ts\n */\n\nclass PolygonPrimitive {\n show: boolean\n _id: any\n _positions: Array<Cesium.Cartesian3>\n _boundingSphere: Cesium.BoundingSphere\n _primitive: Cesium.Primitive | Cesium.GroundPrimitive | undefined\n _update: boolean\n _ellipsoid: Cesium.Ellipsoid\n _clampToGround: boolean\n _classificationType: number\n _arcType: number\n _allowPicking: boolean\n _asynchronous: boolean\n _polygonHierarchy: Cesium.PolygonHierarchy\n _appearance: Cesium.Appearance\n _depthFailAppearance: Cesium.Appearance\n\n constructor(options) {\n const { defined, defaultValue, createGuid, BoundingSphere, Ellipsoid, ClassificationType, ArcType } = Cesium\n options = defaultValue(options, {})\n this.show = defaultValue(options.show, true)\n this._id = defined(options.id) ? options.id : createGuid()\n this._ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84)\n this._appearance = defaultValue(options.appearance, new Cesium.MaterialAppearance())\n this._depthFailAppearance = options.depthFailAppearance\n this._positions = defaultValue(options.positions, [])\n this._polygonHierarchy = options.polygonHierarchy\n this._clampToGround = defaultValue(options.clampToGround, false)\n this._classificationType = defaultValue(options.classificationType, ClassificationType.BOTH)\n this._arcType = defaultValue(options.arcType, ArcType.RHUMB)\n this._allowPicking = defaultValue(options.allowPicking, true)\n this._asynchronous = defaultValue(options.asynchronous, false)\n this._boundingSphere = new BoundingSphere()\n this._primitive = void 0\n this._update = true\n }\n\n get positions() {\n return this._positions\n }\n set positions(val) {\n this._positions = val\n this._update = true\n }\n\n get polygonHierarchy() {\n return this._polygonHierarchy\n }\n set polygonHierarchy(val) {\n this._polygonHierarchy = val\n this._update = true\n }\n\n get appearance() {\n return this._appearance\n }\n set appearance(val) {\n this._appearance = val\n if (this._primitive !== undefined) {\n this._primitive.appearance = val\n }\n }\n\n get depthFailAppearance() {\n return this._depthFailAppearance\n }\n set depthFailAppearance(val) {\n this._depthFailAppearance = val\n if (this._primitive !== undefined && this._primitive instanceof Cesium.Primitive) {\n this._primitive.depthFailAppearance = val\n }\n }\n\n get id() {\n return this._id\n }\n set id(id) {\n this._id = id\n }\n\n get boundingVolume() {\n return this._boundingSphere\n }\n\n get ellipsoid() {\n return this._ellipsoid\n }\n\n get clampToGround() {\n return this._clampToGround\n }\n set clampToGround(val) {\n this._clampToGround = val\n }\n\n get classificationType() {\n return this._classificationType\n }\n set classificationType(e) {\n this._classificationType = e\n this._update = true\n }\n\n get allowPicking() {\n return this._allowPicking\n }\n set allowPicking(val) {\n this._allowPicking = val\n }\n\n get asynchronous() {\n return this._asynchronous\n }\n set asynchronous(val) {\n this._asynchronous = val\n }\n\n async update(frameState) {\n if (this.show) {\n const positions = this._polygonHierarchy ? this._polygonHierarchy.positions : this._positions\n if (positions.length < 3) {\n this._primitive && this._primitive.destroy()\n this._primitive = undefined\n } else {\n if (this._update) {\n this._update = false\n\n let promise\n if (this._clampToGround) {\n promise = this._createGroundPolygon()\n } else {\n promise = this._createPolygon()\n }\n promise.then(primitive => {\n this._primitive && this._primitive.destroy()\n this._primitive = undefined\n this._primitive = primitive\n ;(this._primitive as any)._vcParent = this\n this._boundingSphere = Cesium.BoundingSphere.fromPoints(positions, this._boundingSphere)\n })\n }\n this._primitive && (this._primitive as any).update(frameState)\n }\n }\n }\n\n async _createPolygon() {\n const { Primitive, GeometryInstance, CoplanarPolygonGeometry, Cartesian3 } = Cesium\n return new Primitive({\n geometryInstances: new GeometryInstance({\n geometry: this._polygonHierarchy\n ? new CoplanarPolygonGeometry({\n polygonHierarchy: this._polygonHierarchy,\n ellipsoid: this._ellipsoid\n })\n : CoplanarPolygonGeometry.fromPositions({\n positions: this._positions.map(function (e) {\n return Cartesian3.clone(e)\n }),\n ellipsoid: this._ellipsoid\n }),\n id: this._id\n }),\n appearance: this._appearance,\n depthFailAppearance: this._depthFailAppearance,\n allowPicking: this._allowPicking,\n asynchronous: this._asynchronous\n })\n }\n\n async _createGroundPolygon() {\n const { GroundPrimitive, GeometryInstance, PolygonGeometry, Cartesian3 } = Cesium\n await Cesium.GroundPrimitive.initializeTerrainHeights()\n return new GroundPrimitive({\n geometryInstances: new GeometryInstance({\n geometry: this._polygonHierarchy\n ? new PolygonGeometry({\n polygonHierarchy: this._polygonHierarchy,\n ellipsoid: this._ellipsoid,\n arcType: this._arcType\n })\n : PolygonGeometry.fromPositions({\n positions: this._positions.map(function (e) {\n return Cartesian3.clone(e)\n }),\n ellipsoid: this._ellipsoid,\n arcType: this._arcType\n }),\n id: this._id\n }),\n appearance: this._appearance,\n allowPicking: this._allowPicking,\n asynchronous: this._asynchronous,\n classificationType: this._classificationType\n })\n }\n\n isDestroyed() {\n return false\n }\n\n destroy() {\n this._primitive && this._primitive.destroy()\n this._primitive = undefined\n return Cesium.destroyObject(this)\n }\n}\n\nexport default PolygonPrimitive\n"],"names":[],"mappings":"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"}