casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 13 kB
Source Map (JSON)
{"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: string\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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"}