From 296905088089dc22a6e91127832ee4ca7a1d585f Mon Sep 17 00:00:00 2001 From: kovacsv Date: Mon, 3 Jan 2022 18:46:16 +0100 Subject: [PATCH] Move mesh clone function to the mesh class. --- source/export/exportermodel.js | 2 +- source/model/mesh.js | 34 ++++++++++++++++++++++++++++++++++ source/model/meshinstance.js | 2 +- source/model/meshutils.js | 34 ---------------------------------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/source/export/exportermodel.js b/source/export/exportermodel.js index 18e466e..d69de15 100644 --- a/source/export/exportermodel.js +++ b/source/export/exportermodel.js @@ -74,7 +74,7 @@ OV.ExporterModel = class } let mesh = meshInstance.GetMesh (); - let transformed = OV.CloneMesh (mesh); + let transformed = mesh.Clone (); if (!transformation.IsIdentity ()) { OV.TransformMesh (transformed, transformation); } diff --git a/source/model/mesh.js b/source/model/mesh.js index 5b54f44..739a14c 100644 --- a/source/model/mesh.js +++ b/source/model/mesh.js @@ -133,4 +133,38 @@ OV.Mesh = class extends OV.ModelObject3D onTriangleVertices (v0, v1, v2); } } + + Clone () + { + let cloned = new OV.Mesh (); + + cloned.SetName (this.GetName ()); + + for (let i = 0; i < this.VertexCount (); i++) { + let vertex = this.GetVertex (i); + cloned.AddVertex (vertex.Clone ()); + } + + for (let i = 0; i < this.VertexColorCount (); i++) { + let color = this.GetVertexColor (i); + cloned.AddVertexColor (color.Clone ()); + } + + for (let i = 0; i < this.NormalCount (); i++) { + let normal = this.GetNormal (i); + cloned.AddNormal (normal.Clone ()); + } + + for (let i = 0; i < this.TextureUVCount (); i++) { + let uv = this.GetTextureUV (i); + cloned.AddTextureUV (uv.Clone ()); + } + + for (let i = 0; i < this.TriangleCount (); i++) { + let triangle = this.GetTriangle (i); + cloned.AddTriangle (triangle.Clone ()); + } + + return cloned; + } }; diff --git a/source/model/meshinstance.js b/source/model/meshinstance.js index a7a205c..ee913a7 100644 --- a/source/model/meshinstance.js +++ b/source/model/meshinstance.js @@ -113,7 +113,7 @@ OV.MeshInstance = class extends OV.ModelObject3D GetTransformedMesh () { let transformation = this.node.GetWorldTransformation (); - let transformed = OV.CloneMesh (this.mesh); + let transformed = this.mesh.Clone (); OV.TransformMesh (transformed, transformation); return transformed; } diff --git a/source/model/meshutils.js b/source/model/meshutils.js index e6c9f7d..7e51656 100644 --- a/source/model/meshutils.js +++ b/source/model/meshutils.js @@ -58,37 +58,3 @@ OV.FlipMeshTrianglesOrientation = function (mesh) triangle.v2 = tmp; } }; - -OV.CloneMesh = function (mesh) -{ - let cloned = new OV.Mesh (); - - cloned.SetName (mesh.GetName ()); - - for (let i = 0; i < mesh.VertexCount (); i++) { - let vertex = mesh.GetVertex (i); - cloned.AddVertex (vertex.Clone ()); - } - - for (let i = 0; i < mesh.VertexColorCount (); i++) { - let color = mesh.GetVertexColor (i); - cloned.AddVertexColor (color.Clone ()); - } - - for (let i = 0; i < mesh.NormalCount (); i++) { - let normal = mesh.GetNormal (i); - cloned.AddNormal (normal.Clone ()); - } - - for (let i = 0; i < mesh.TextureUVCount (); i++) { - let uv = mesh.GetTextureUV (i); - cloned.AddTextureUV (uv.Clone ()); - } - - for (let i = 0; i < mesh.TriangleCount (); i++) { - let triangle = mesh.GetTriangle (i); - cloned.AddTriangle (triangle.Clone ()); - } - - return cloned; -};