Move mesh clone function to the mesh class.

This commit is contained in:
kovacsv 2022-01-03 18:46:16 +01:00
parent 6f8893befc
commit 2969050880
4 changed files with 36 additions and 36 deletions

View File

@ -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);
}

View File

@ -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;
}
};

View File

@ -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;
}

View File

@ -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;
};