UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 2.54 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as t}from"../../chunks/tslib.es6.js";import o from"../../core/JSONSupport.js";import{clone as r}from"../../core/lang.js";import e from"../../core/Logger.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import{cast as n}from"../../core/accessorSupport/decorators/cast.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import{castArray as i,writeTypedArray as l}from"./meshProperties.js";var g;let p=g=class extends o{constructor(t){super(t),this.color=null,this.position=new Float64Array(0),this.uv=null,this.normal=null,this.tangent=null}castColor(t){return i(t,Uint8Array,[Uint8ClampedArray],{loggerTag:".color=",stride:4},e.getLogger(this))}castPosition(t){t&&t instanceof Float32Array&&e.getLogger(this).warn(".position=","Setting position attribute from a Float32Array may cause precision problems. Consider storing data in a Float64Array or a regular number array");return i(t,Float64Array,[Float32Array],{loggerTag:".position=",stride:3},e.getLogger(this))}castUv(t){return i(t,Float32Array,[Float64Array],{loggerTag:".uv=",stride:2},e.getLogger(this))}castNormal(t){return i(t,Float32Array,[Float64Array],{loggerTag:".normal=",stride:3},e.getLogger(this))}castTangent(t){return i(t,Float32Array,[Float64Array],{loggerTag:".tangent=",stride:4},e.getLogger(this))}clone(){const t={position:r(this.position),uv:r(this.uv),normal:r(this.normal),tangent:r(this.tangent),color:r(this.color)};return new g(t)}clonePositional(){const t={position:r(this.position),normal:r(this.normal),tangent:r(this.tangent),uv:this.uv,color:this.color};return new g(t)}get usedMemory(){return this.position.byteLength+(this.uv?.byteLength??0)+(this.normal?.byteLength??0)+(this.tangent?.byteLength??0)+(this.color?.byteLength??0)}};t([s({json:{write:l}})],p.prototype,"color",void 0),t([n("color")],p.prototype,"castColor",null),t([s({nonNullable:!0,json:{write:l}})],p.prototype,"position",void 0),t([n("position")],p.prototype,"castPosition",null),t([s({json:{write:l}})],p.prototype,"uv",void 0),t([n("uv")],p.prototype,"castUv",null),t([s({json:{write:l}})],p.prototype,"normal",void 0),t([n("normal")],p.prototype,"castNormal",null),t([s({json:{write:l}})],p.prototype,"tangent",void 0),t([n("tangent")],p.prototype,"castTangent",null),p=g=t([a("esri.geometry.support.MeshVertexAttributes")],p);export{p as MeshVertexAttributes};