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.33/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{resizeHandleCornerWidth as i,resizeHandleEdgeWidth as s,displayFocusMultiplier as n,resizeHandleCornerInputRadius as a,resizeHandleEdgeInputRadius 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,a){const l=c(a),m=l?i:s,f=m*n,d=s,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:l,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:i}){const s=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,s),h.Unfocused|m),new u(j(t,s),h.Focused|m),new u(j(i,s),f)],collisionType:{type:"line",paths:[s]},radius:e?a:l,state:m}}export{v as ResizeManipulator};