UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 2 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import e from"../../../../Color.js";import{watch as r,initial as t}from"../../../../core/reactiveUtils.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{resizeHandleCornerInputRadius as i,resizeHandleEdgeInputRadius as s,resizeHandleCornerWidth as n,resizeHandleEdgeWidth as a,displayFocusMultiplier as l}from"./sliceToolConfig.js";import{isDiagonalResizeHandle as c,resizeNormal as m,resizeOutlineOnly as f}from"./sliceToolUtils.js";import{Manipulator3D as d}from"../../interactive/Manipulator3D.js";import{worldScaledManipulatorSettings as p}from"../../interactive/manipulatorUtils.js";import{RenderObject as u}from"../../interactive/RenderObject.js";import{createPolylineGeometry as j}from"../../webgl-engine/lib/GeometryUtil.js";import{RenderOccludedFlag as w}from"../../webgl-engine/lib/Material.js";import{RibbonLineMaterial as b}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{ManipulatorStateFlags as h}from"../../../interactive/interfaces.js";class v extends d{constructor(o,i){const s=c(i),m=s?n:a,f=m*l,d=a,u={renderOccluded:w.OccludeAndTransparent,isDecoration:!0},j=new b({...u,width:m}),h=new b({...u,width:f}),v=new b({...u,width:d});super({view:o,...p,...M({isCorner:s,unfocusedMaterial:j,focusedMaterial:h,outlineMaterial:v})}),this._themeHandle=r((()=>o.effectiveTheme.accentColor),(r=>{const t=e.toUnitRGBA(r);j.setParameters({color:t}),h.setParameters({color:t}),v.setParameters({color:t})}),t)}destroy(){this._themeHandle.remove(),super.destroy()}}function M({isCorner:e,unfocusedMaterial:r,focusedMaterial:t,outlineMaterial:n}){const a=e?[o(1,0,0),o(0,0,0),o(0,1,0)]:[o(1,0,0),o(-1,0,0)];return{renderObjects:[new u(j(r,a),h.Unfocused|m),new u(j(t,a),h.Focused|m),new u(j(n,a),f)],collisionType:{type:"line",paths:[a]},radius:e?i:s,state:m}}export{v as ResizeManipulator};