@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.59 kB
JavaScript
import{isSome as e}from"../../../../core/maybe.js";import{c as r}from"../../../../chunks/vec3f64.js";import{projectPointToVector as t}from"../../../../geometry/projection.js";import{containsPoint as o}from"../../../../geometry/support/aaBoundingBox.js";import{getPointOnPath as n,getPathLength as i}from"../../../../geometry/support/coordsUtils.js";import{makeDehydratedPoint as s}from"../../../../layers/graphics/dehydratedFeatures.js";import{applyElevationAlignmentForHUD as a}from"./elevationAlignmentUtils.js";import{computeCentroid as l}from"./graphicUtils.js";import{Object3D as c}from"../../webgl-engine/lib/Object3D.js";function p(r,n,i,s,l,p){const m=r.clippingExtent;if(t(n,d,r.elevationProvider.spatialReference),e(m)&&!o(m,d))return null;t(n,d,r.renderCoordsHelper.spatialReference);const u=r.localOriginFactory.getOrigin(d),f=new c({castShadow:!1,metadata:{layerUid:r.layer.uid,graphicUid:l,usesVerticalDistanceToGround:!0}});i.shaderTransformer=p,i.localOrigin=u,f.addGeometry(i);return{object:f,sampledElevation:a(f,n,r.elevationProvider,r.renderCoordsHelper,s)}}function m(r,o,n){const i=r.elevationContext,a=n.spatialReference;t(o,d,a),i.centerPointInElevationSR=s(d[0],d[1],o.hasZ?d[2]:0,e(a)?a:null)}function u(e){switch(e.type){case"point":return e;case"polygon":case"extent":return l(e);case"polyline":{const r=e.paths[0];if(!r||0===r.length)return null;const t=n(r,i(r)/2);return s(t[0],t[1],t[2],e.spatialReference)}case"mesh":return e.origin}return null}const d=r();export{p as createStageObject,m as extendPointGraphicElevationContext,u as placePointOnGeometry};