@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.65 kB
JavaScript
import{isSome as e,unwrap as t}from"../../../../core/maybe.js";import{f as r}from"../../../../chunks/mat4.js";import{c as a}from"../../../../chunks/mat4f64.js";import{f as s,c as i}from"../../../../chunks/vec4f32.js";import{Object3DVisualElement as l}from"./Object3DVisualElement.js";import{lineStripsToParameters as m,createGeometry as h}from"../../support/engineContent/line.js";import{RenderOccludedFlag as o}from"../../webgl-engine/lib/Material.js";import{LineMarkerMaterial as n}from"../../webgl-engine/materials/LineMarkerMaterial.js";class c extends l{constructor(t,r){super(t),this._hasExternalMaterial=!1,this._renderOccluded=o.OccludeAndTransparent,this._width=1,this._color=s(1,0,1,1),this._placement="end",this._textureId=null,this._material=r,this._hasExternalMaterial=e(r),this.applyProps(t)}setGeometryFromSegment(e,t){const a=e.endRenderSpace;this.transform=r(d,a),this._normal=t;const{points:s}=e.createRenderGeometry(a,this.view.renderCoordsHelper);this.geometry=[s]}get renderOccluded(){return e(this._material)?this._material.parameters.renderOccluded:this._renderOccluded}set renderOccluded(t){this._renderOccluded=t,e(this._material)&&this._material.setParameters({renderOccluded:t})}get geometry(){return this._geometry}set geometry(e){this._geometry=e,this.recreateGeometry()}get normal(){return this._normal}set normal(e){this._normal=e,this.recreateGeometry()}get width(){return e(this._material)?this._material.parameters.width:this._width}set width(t){this._width=t,e(this._material)&&this._material.setParameters({width:t})}get color(){return e(this._material)?this._material.parameters.color:this._color}set color(t){this._color=i(t),e(this._material)&&this._material.setParameters({color:this._color})}get placement(){return e(this._material)?this._material.parameters.placement:this._placement}set placement(t){this._placement=t,e(this._material)&&this._material.setParameters({placement:this._placement})}get textureId(){return e(this._material)?this._material.parameters.textureId:this._textureId}set textureId(t){this._textureId=t,e(this._material)&&this._material.setParameters({textureId:t})}createExternalResources(){this._hasExternalMaterial||(this._material=new n({width:this._width,color:this._color,placement:this._placement,renderOccluded:this._renderOccluded,textureId:this._textureId}))}destroyExternalResources(){this._hasExternalMaterial||(this._material=null)}createGeometries(e){for(const r of m(this.geometry,this.normal)){const a=h(t(this._material),r);e.addGeometry(a)}}forEachExternalMaterial(e){this._hasExternalMaterial||e(t(this._material))}}const d=a();export{c as MarkerVisualElement};