From 61e09c78f388c2bc15d74b309b40fc558d56a660 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Thu, 8 Jul 2021 18:27:12 +0200 Subject: [PATCH] Add default value to segment count. --- source/import/importero3dv.js | 7 ++++--- source/model/generator.js | 10 +++++----- test/testfiles/o3dv/cylinder.o3dv | 3 +-- test/testfiles/o3dv/cylinder_segments.o3dv | 12 ++++++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 test/testfiles/o3dv/cylinder_segments.o3dv diff --git a/source/import/importero3dv.js b/source/import/importero3dv.js index 67c8b87..2643b66 100644 --- a/source/import/importero3dv.js +++ b/source/import/importero3dv.js @@ -100,11 +100,12 @@ OV.ImporterO3dv = class extends OV.ImporterBase const mesh = OV.GenerateCuboid (genParams, parameters.size_x, parameters.size_y, parameters.size_z); this.model.AddMesh (mesh); } else if (meshContent.type === 'cylinder') { - if (parameters.radius === undefined || parameters.height === undefined || parameters.segments === undefined) { + if (parameters.radius === undefined || parameters.height === undefined) { return; } - let isSmooth = OV.ValueOrDefault (parameters.smooth, true); - const mesh = OV.GenerateCylinder (genParams, parameters.radius, parameters.height, parameters.segments, isSmooth); + let segments = OV.ValueOrDefault (parameters.segments, 25); + let smooth = OV.ValueOrDefault (parameters.smooth, true); + const mesh = OV.GenerateCylinder (genParams, parameters.radius, parameters.height, segments, smooth); this.model.AddMesh (mesh); } } diff --git a/source/model/generator.js b/source/model/generator.js index 8b695fa..b9cb850 100644 --- a/source/model/generator.js +++ b/source/model/generator.js @@ -115,7 +115,7 @@ OV.GeneratorHelper = class this.generator = generator; } - GenerateExtrude (vertices, height, isSmooth) + GenerateExtrude (vertices, height, smooth) { let topPolygon = []; let bottomPolygon = []; @@ -124,10 +124,10 @@ OV.GeneratorHelper = class bottomPolygon.push (this.generator.AddVertex (vertex.x, vertex.y, 0.0)); topPolygon.push (this.generator.AddVertex (vertex.x, vertex.y, height)); } - if (isSmooth) { + if (smooth) { this.generator.SetCurve (1); } - this.GenerateSurfaceBetweenPolygons (bottomPolygon, topPolygon, isSmooth); + this.GenerateSurfaceBetweenPolygons (bottomPolygon, topPolygon, smooth); this.generator.ResetCurve (); this.generator.AddConvexPolygonInverted (bottomPolygon); @@ -167,7 +167,7 @@ OV.GenerateCuboid = function (genParams, xSize, ySize, zSize) return generator.GetMesh (); }; -OV.GenerateCylinder = function (genParams, radius, height, segments, isSmooth) +OV.GenerateCylinder = function (genParams, radius, height, segments, smooth) { function GetCylindricalCoord (radius, angle) { @@ -185,6 +185,6 @@ OV.GenerateCylinder = function (genParams, radius, height, segments, isSmooth) baseVertices.push (cylindrical); } let helper = new OV.GeneratorHelper (generator); - helper.GenerateExtrude (baseVertices, height, isSmooth); + helper.GenerateExtrude (baseVertices, height, smooth); return generator.GetMesh (); }; diff --git a/test/testfiles/o3dv/cylinder.o3dv b/test/testfiles/o3dv/cylinder.o3dv index 690111c..6177cd1 100644 --- a/test/testfiles/o3dv/cylinder.o3dv +++ b/test/testfiles/o3dv/cylinder.o3dv @@ -4,8 +4,7 @@ "type" : "cylinder", "parameters" : { "radius" : 0.5, - "height" : 1.0, - "segments" : 20 + "height" : 1.0 } } ] diff --git a/test/testfiles/o3dv/cylinder_segments.o3dv b/test/testfiles/o3dv/cylinder_segments.o3dv new file mode 100644 index 0000000..57c70a2 --- /dev/null +++ b/test/testfiles/o3dv/cylinder_segments.o3dv @@ -0,0 +1,12 @@ +{ + "meshes" : [ + { + "type" : "cylinder", + "parameters" : { + "radius" : 0.5, + "height" : 1.0, + "segments" : 50 + } + } + ] +}