{"ast":null,"code":"import { NodeGeometryContextualSources } from \"./Enums/nodeGeometryContextualSources.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../Maths/math.vector.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"./Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Class used to store node based geometry build state\n */\nexport class NodeGeometryBuildState {\n constructor() {\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._positionMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._transformMatrix = new Matrix();\n this._tempVector3 = new Vector3();\n /** Gets or sets the list of non connected mandatory inputs */\n this.notConnectedNonOptionalInputs = [];\n /** Gets or sets the list of non contextual inputs having no contextudal data */\n this.noContextualData = [];\n /** Gets or sets the vertex data */\n this.vertexData = null;\n this._geometryContext = null;\n this._executionContext = null;\n this._instancingContext = null;\n this._geometryContextStack = [];\n this._executionContextStack = [];\n this._instancingContextStack = [];\n }\n /** Gets or sets the geometry context */\n get geometryContext() {\n return this._geometryContext;\n }\n /** Gets or sets the execution context */\n get executionContext() {\n return this._executionContext;\n }\n /** Gets or sets the instancing context */\n get instancingContext() {\n return this._instancingContext;\n }\n /**\n * Push the new active geometry context\n * @param geometryContext defines the geometry context\n */\n pushGeometryContext(geometryContext) {\n this._geometryContext = geometryContext;\n this._geometryContextStack.push(this._geometryContext);\n }\n /**\n * Push the new active execution context\n * @param executionContext defines the execution context\n */\n pushExecutionContext(executionContext) {\n this._executionContext = executionContext;\n this._executionContextStack.push(this._executionContext);\n }\n /**\n * Push the new active instancing context\n * @param instancingContext defines the instancing context\n */\n pushInstancingContext(instancingContext) {\n this._instancingContext = instancingContext;\n this._instancingContextStack.push(this._instancingContext);\n }\n /**\n * Remove current geometry context and restore the previous one\n */\n restoreGeometryContext() {\n this._geometryContextStack.pop();\n this._geometryContext = this._geometryContextStack.length > 0 ? this._geometryContextStack[this._geometryContextStack.length - 1] : null;\n }\n /**\n * Remove current execution context and restore the previous one\n */\n restoreExecutionContext() {\n this._executionContextStack.pop();\n this._executionContext = this._executionContextStack.length > 0 ? this._executionContextStack[this._executionContextStack.length - 1] : null;\n }\n /**\n * Remove current isntancing context and restore the previous one\n */\n restoreInstancingContext() {\n this._instancingContextStack.pop();\n this._instancingContext = this._instancingContextStack.length > 0 ? this._instancingContextStack[this._instancingContextStack.length - 1] : null;\n }\n /**\n * Gets the value associated with a contextual source\n * @param source Source of the contextual value\n * @param skipWarning Do not store the warning for reporting if true\n * @returns the value associated with the source\n */\n getContextualValue(source, skipWarning = false) {\n if (!this.executionContext) {\n if (!skipWarning) {\n this.noContextualData.push(source);\n }\n return null;\n }\n const index = this.executionContext.getExecutionIndex();\n switch (source) {\n case NodeGeometryContextualSources.Positions:\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.positions) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.positions, index * 3);\n case NodeGeometryContextualSources.Normals:\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.normals) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.normals, index * 3);\n case NodeGeometryContextualSources.Colors:\n if (!this.geometryContext || !this.geometryContext.colors) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.colors, index * 4);\n case NodeGeometryContextualSources.Tangents:\n if (!this.geometryContext || !this.geometryContext.tangents) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.tangents, index * 4);\n case NodeGeometryContextualSources.UV:\n if (this.executionContext.getOverrideUVs1ContextualValue) {\n return this.executionContext.getOverrideUVs1ContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.uvs) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs, index * 2);\n case NodeGeometryContextualSources.UV2:\n if (!this.geometryContext || !this.geometryContext.uvs2) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs2, index * 2);\n case NodeGeometryContextualSources.UV3:\n if (!this.geometryContext || !this.geometryContext.uvs3) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs3, index * 2);\n case NodeGeometryContextualSources.UV4:\n if (!this.geometryContext || !this.geometryContext.uvs4) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs4, index * 2);\n case NodeGeometryContextualSources.UV5:\n if (!this.geometryContext || !this.geometryContext.uvs5) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs5, index * 2);\n case NodeGeometryContextualSources.UV6:\n if (!this.geometryContext || !this.geometryContext.uvs6) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs6, index * 2);\n case NodeGeometryContextualSources.VertexID:\n return index;\n case NodeGeometryContextualSources.FaceID:\n return this.executionContext.getExecutionFaceIndex();\n case NodeGeometryContextualSources.LoopID:\n return this.executionContext.getExecutionLoopIndex();\n case NodeGeometryContextualSources.InstanceID:\n return this.instancingContext ? this.instancingContext.getInstanceIndex() : 0;\n case NodeGeometryContextualSources.GeometryID:\n return !this.geometryContext ? 0 : this.geometryContext.uniqueId;\n case NodeGeometryContextualSources.CollectionID:\n {\n if (!this.geometryContext || !this.geometryContext.metadata) {\n return 0;\n }\n return this.geometryContext.metadata.collectionId || 0;\n }\n case NodeGeometryContextualSources.LatticeID:\n {\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n return Vector3.Zero();\n }\n case NodeGeometryContextualSources.LatticeControl:\n {\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n return Vector3.Zero();\n }\n }\n return null;\n }\n /**\n * Adapt a value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @returns the adapted value\n */\n adapt(source, targetType) {\n const value = source.getConnectedValue(this) || 0;\n if (source.type === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Adapt an input value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @param defaultValue defines the default value to use if not connected\n * @returns the adapted value\n */\n adaptInput(source, targetType, defaultValue) {\n var _source$_connectedPoi;\n if (!source.isConnected) {\n return source.value || defaultValue;\n }\n const value = source.getConnectedValue(this);\n if (((_source$_connectedPoi = source._connectedPoint) === null || _source$_connectedPoi === void 0 ? void 0 : _source$_connectedPoi.type) === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n */\n emitErrors() {\n let errorMessage = \"\";\n for (const notConnectedInput of this.notConnectedNonOptionalInputs) {\n errorMessage += `input ${notConnectedInput.name} from block ${notConnectedInput.ownerBlock.name}[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\n`;\n }\n for (const source of this.noContextualData) {\n errorMessage += `Contextual input ${NodeGeometryContextualSources[source]} has no context to pull data from (must be connected to a setXXX block or a instantiateXXX block).\\n`;\n }\n if (errorMessage) {\n // eslint-disable-next-line no-throw-literal\n throw \"Build of NodeGeometry failed:\\n\" + errorMessage;\n }\n }\n /** @internal */\n _instantiate(clone, currentPosition, rotation, scaling, additionalVertexData) {\n // Transform\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n this._scalingMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._scalingRotationMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithMatrix(clone, transform, additionalVertexData) {\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithPositionAndMatrix(clone, currentPosition, transform, additionalVertexData) {\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n transform.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n}","map":{"version":3,"names":["NodeGeometryContextualSources","Matrix","Vector2","Vector3","Vector4","NodeGeometryBlockConnectionPointTypes","NodeGeometryBuildState","constructor","_rotationMatrix","_scalingMatrix","_positionMatrix","_scalingRotationMatrix","_transformMatrix","_tempVector3","notConnectedNonOptionalInputs","noContextualData","vertexData","_geometryContext","_executionContext","_instancingContext","_geometryContextStack","_executionContextStack","_instancingContextStack","geometryContext","executionContext","instancingContext","pushGeometryContext","push","pushExecutionContext","pushInstancingContext","restoreGeometryContext","pop","length","restoreExecutionContext","restoreInstancingContext","getContextualValue","source","skipWarning","index","getExecutionIndex","Positions","getOverridePositionsContextualValue","positions","Zero","FromArray","Normals","getOverrideNormalsContextualValue","normals","Colors","colors","Tangents","tangents","UV","getOverrideUVs1ContextualValue","uvs","UV2","uvs2","UV3","uvs3","UV4","uvs4","UV5","uvs5","UV6","uvs6","VertexID","FaceID","getExecutionFaceIndex","LoopID","getExecutionLoopIndex","InstanceID","getInstanceIndex","GeometryID","uniqueId","CollectionID","metadata","collectionId","LatticeID","LatticeControl","adapt","targetType","value","getConnectedValue","type","adaptInput","defaultValue","_source$_connectedPoi","isConnected","_connectedPoint","emitErrors","errorMessage","notConnectedInput","name","ownerBlock","getClassName","_instantiate","clone","currentPosition","rotation","scaling","additionalVertexData","ScalingToRef","x","y","z","RotationYawPitchRollToRef","TranslationToRef","multiplyToRef","clonePositionIndex","fromArray","TransformCoordinatesToRef","toArray","TransformNormalToRef","_instantiateWithMatrix","transform","_instantiateWithPositionAndMatrix"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/nodeGeometryBuildState.js"],"sourcesContent":["import { NodeGeometryContextualSources } from \"./Enums/nodeGeometryContextualSources.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../Maths/math.vector.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"./Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Class used to store node based geometry build state\n */\nexport class NodeGeometryBuildState {\n constructor() {\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._positionMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._transformMatrix = new Matrix();\n this._tempVector3 = new Vector3();\n /** Gets or sets the list of non connected mandatory inputs */\n this.notConnectedNonOptionalInputs = [];\n /** Gets or sets the list of non contextual inputs having no contextudal data */\n this.noContextualData = [];\n /** Gets or sets the vertex data */\n this.vertexData = null;\n this._geometryContext = null;\n this._executionContext = null;\n this._instancingContext = null;\n this._geometryContextStack = [];\n this._executionContextStack = [];\n this._instancingContextStack = [];\n }\n /** Gets or sets the geometry context */\n get geometryContext() {\n return this._geometryContext;\n }\n /** Gets or sets the execution context */\n get executionContext() {\n return this._executionContext;\n }\n /** Gets or sets the instancing context */\n get instancingContext() {\n return this._instancingContext;\n }\n /**\n * Push the new active geometry context\n * @param geometryContext defines the geometry context\n */\n pushGeometryContext(geometryContext) {\n this._geometryContext = geometryContext;\n this._geometryContextStack.push(this._geometryContext);\n }\n /**\n * Push the new active execution context\n * @param executionContext defines the execution context\n */\n pushExecutionContext(executionContext) {\n this._executionContext = executionContext;\n this._executionContextStack.push(this._executionContext);\n }\n /**\n * Push the new active instancing context\n * @param instancingContext defines the instancing context\n */\n pushInstancingContext(instancingContext) {\n this._instancingContext = instancingContext;\n this._instancingContextStack.push(this._instancingContext);\n }\n /**\n * Remove current geometry context and restore the previous one\n */\n restoreGeometryContext() {\n this._geometryContextStack.pop();\n this._geometryContext = this._geometryContextStack.length > 0 ? this._geometryContextStack[this._geometryContextStack.length - 1] : null;\n }\n /**\n * Remove current execution context and restore the previous one\n */\n restoreExecutionContext() {\n this._executionContextStack.pop();\n this._executionContext = this._executionContextStack.length > 0 ? this._executionContextStack[this._executionContextStack.length - 1] : null;\n }\n /**\n * Remove current isntancing context and restore the previous one\n */\n restoreInstancingContext() {\n this._instancingContextStack.pop();\n this._instancingContext = this._instancingContextStack.length > 0 ? this._instancingContextStack[this._instancingContextStack.length - 1] : null;\n }\n /**\n * Gets the value associated with a contextual source\n * @param source Source of the contextual value\n * @param skipWarning Do not store the warning for reporting if true\n * @returns the value associated with the source\n */\n getContextualValue(source, skipWarning = false) {\n if (!this.executionContext) {\n if (!skipWarning) {\n this.noContextualData.push(source);\n }\n return null;\n }\n const index = this.executionContext.getExecutionIndex();\n switch (source) {\n case NodeGeometryContextualSources.Positions:\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.positions) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.positions, index * 3);\n case NodeGeometryContextualSources.Normals:\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.normals) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.normals, index * 3);\n case NodeGeometryContextualSources.Colors:\n if (!this.geometryContext || !this.geometryContext.colors) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.colors, index * 4);\n case NodeGeometryContextualSources.Tangents:\n if (!this.geometryContext || !this.geometryContext.tangents) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.tangents, index * 4);\n case NodeGeometryContextualSources.UV:\n if (this.executionContext.getOverrideUVs1ContextualValue) {\n return this.executionContext.getOverrideUVs1ContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.uvs) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs, index * 2);\n case NodeGeometryContextualSources.UV2:\n if (!this.geometryContext || !this.geometryContext.uvs2) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs2, index * 2);\n case NodeGeometryContextualSources.UV3:\n if (!this.geometryContext || !this.geometryContext.uvs3) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs3, index * 2);\n case NodeGeometryContextualSources.UV4:\n if (!this.geometryContext || !this.geometryContext.uvs4) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs4, index * 2);\n case NodeGeometryContextualSources.UV5:\n if (!this.geometryContext || !this.geometryContext.uvs5) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs5, index * 2);\n case NodeGeometryContextualSources.UV6:\n if (!this.geometryContext || !this.geometryContext.uvs6) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs6, index * 2);\n case NodeGeometryContextualSources.VertexID:\n return index;\n case NodeGeometryContextualSources.FaceID:\n return this.executionContext.getExecutionFaceIndex();\n case NodeGeometryContextualSources.LoopID:\n return this.executionContext.getExecutionLoopIndex();\n case NodeGeometryContextualSources.InstanceID:\n return this.instancingContext ? this.instancingContext.getInstanceIndex() : 0;\n case NodeGeometryContextualSources.GeometryID:\n return !this.geometryContext ? 0 : this.geometryContext.uniqueId;\n case NodeGeometryContextualSources.CollectionID: {\n if (!this.geometryContext || !this.geometryContext.metadata) {\n return 0;\n }\n return this.geometryContext.metadata.collectionId || 0;\n }\n case NodeGeometryContextualSources.LatticeID: {\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n return Vector3.Zero();\n }\n case NodeGeometryContextualSources.LatticeControl: {\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n return Vector3.Zero();\n }\n }\n return null;\n }\n /**\n * Adapt a value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @returns the adapted value\n */\n adapt(source, targetType) {\n const value = source.getConnectedValue(this) || 0;\n if (source.type === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Adapt an input value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @param defaultValue defines the default value to use if not connected\n * @returns the adapted value\n */\n adaptInput(source, targetType, defaultValue) {\n if (!source.isConnected) {\n return source.value || defaultValue;\n }\n const value = source.getConnectedValue(this);\n if (source._connectedPoint?.type === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n */\n emitErrors() {\n let errorMessage = \"\";\n for (const notConnectedInput of this.notConnectedNonOptionalInputs) {\n errorMessage += `input ${notConnectedInput.name} from block ${notConnectedInput.ownerBlock.name}[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\n`;\n }\n for (const source of this.noContextualData) {\n errorMessage += `Contextual input ${NodeGeometryContextualSources[source]} has no context to pull data from (must be connected to a setXXX block or a instantiateXXX block).\\n`;\n }\n if (errorMessage) {\n // eslint-disable-next-line no-throw-literal\n throw \"Build of NodeGeometry failed:\\n\" + errorMessage;\n }\n }\n /** @internal */\n _instantiate(clone, currentPosition, rotation, scaling, additionalVertexData) {\n // Transform\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n this._scalingMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._scalingRotationMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithMatrix(clone, transform, additionalVertexData) {\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithPositionAndMatrix(clone, currentPosition, transform, additionalVertexData) {\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n transform.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}