star-3dut

Generate meshes of simple geometric shapes
git clone git://git.meso-star.fr/star-3dut.git
Log | Files | Refs | README | LICENSE

commit 8142de9329ec00ef8881f5fcd9a2e54ad7f60519
parent fe12da245401d7d14622f64f81fdeb72252ddbe2
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 11 Apr 2017 17:12:45 +0200

Change the min nb of slices from 2 to 3 (circles must be at list triangles).

Diffstat:
Msrc/s3dut.h | 4++--
Msrc/s3dut_cylinder.c | 4++--
Msrc/s3dut_sphere.c | 4++--
Msrc/test_s3dut_cylinder.c | 42+++++++++++++++++++++---------------------
Msrc/test_s3dut_sphere.c | 24++++++++++++------------
5 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/src/s3dut.h b/src/s3dut.h @@ -69,7 +69,7 @@ S3DUT_API res_T s3dut_create_sphere (struct mem_allocator* allocator, /* May be NULL <=> use default allocator */ const double radius, /* In ]0, INF) */ - const unsigned nslices, /* # subdivisions around Z axis in [2, INF) */ + const unsigned nslices, /* # subdivisions around Z axis in [3, INF) */ const unsigned nstacks, /* # subdivisions along Z axis in [2, INF) */ struct s3dut_mesh** sphere); @@ -82,7 +82,7 @@ s3dut_create_cylinder (struct mem_allocator* allocator, /* May be NULL <=> use default allocator */ const double radius, /* In ]0, INF) */ const double height, /* In ]0, INF) */ - const unsigned nslices, /* # subdivisions around Z axis in [2, INF) */ + const unsigned nslices, /* # subdivisions around Z axis in [3, INF) */ const unsigned nstacks, /* # subdivision along Z axis in [1, INF) */ struct s3dut_mesh** cylinder); diff --git a/src/s3dut_cylinder.c b/src/s3dut_cylinder.c @@ -31,7 +31,7 @@ setup_cylinder_coords double step_z; size_t itheta, istack; size_t i = 0; - ASSERT(coords && radius > 0 && height > 0 && nslices >= 2 && nstacks >= 1); + ASSERT(coords && radius > 0 && height > 0 && nslices >= 3 && nstacks >= 1); /* Contour vertices */ step_theta = 2*PI / (double)nslices; @@ -125,7 +125,7 @@ s3dut_create_cylinder size_t ntris; res_T res = RES_OK; - if(radius <= 0 || height <= 0 || nslices < 2 || nstacks < 1 || !mesh) { + if(radius <= 0 || height <= 0 || nslices < 3 || nstacks < 1 || !mesh) { res = RES_BAD_ARG; goto error; } diff --git a/src/s3dut_sphere.c b/src/s3dut_sphere.c @@ -36,7 +36,7 @@ setup_sphere_coords size_t iphi; size_t i; res_T res = RES_OK; - ASSERT(coords && radius > 0 && nslices >= 2 && nstacks >= 2); + ASSERT(coords && radius > 0 && nslices >= 3 && nstacks >= 2); darray_double_init(allocator, &sincos_theta); darray_double_init(allocator, &sincos_phi); @@ -149,7 +149,7 @@ s3dut_create_sphere size_t ntris; res_T res = RES_OK; - if(radius <= 0 || nslices < 2 || nstacks < 2 || !mesh) { + if(radius <= 0 || nslices < 3 || nstacks < 2 || !mesh) { res = RES_BAD_ARG; goto error; } diff --git a/src/test_s3dut_cylinder.c b/src/test_s3dut_cylinder.c @@ -30,44 +30,44 @@ main(int argc, char** argv) CHECK(s3dut_create_cylinder(NULL, 1, 0, 0, 0, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 1, 0, 0, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 1, 0, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 0, 2, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 0, 2, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 1, 2, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 1, 2, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 0, 3, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 0, 3, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 1, 3, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 1, 3, 0, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 0, 0, 1, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 0, 0, 1, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 1, 0, 1, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 1, 0, 1, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 0, 2, 1, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 0, 2, 1, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 1, 2, 1, NULL), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 1, 2, 1, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 0, 3, 1, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 0, 3, 1, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 1, 3, 1, NULL), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 1, 3, 1, NULL), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 0, 0, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 0, 0, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 1, 0, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 1, 0, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 0, 2, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 0, 2, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 1, 2, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 1, 2, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 0, 3, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 0, 3, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 1, 3, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 1, 3, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 0, 0, 1, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 0, 0, 1, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 0, 1, 0, 1, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(NULL, 1, 1, 0, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 0, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 0, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 0, 1, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(NULL, 1, 1, 2, 1, &msh), RES_OK); + CHECK(s3dut_create_cylinder(NULL, 0, 0, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 0, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 0, 1, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(NULL, 1, 1, 3, 1, &msh), RES_OK); CHECK(s3dut_mesh_ref_put(msh), RES_OK); - CHECK(s3dut_create_cylinder(&allocator, 1, 1, 2, 1, &msh), RES_OK); + CHECK(s3dut_create_cylinder(&allocator, 1, 1, 3, 1, &msh), RES_OK); CHECK(s3dut_mesh_ref_put(msh), RES_OK); - CHECK(s3dut_create_cylinder(&allocator,-1, 1, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(&allocator, 1,-1, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(&allocator,-1, 1, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_cylinder(&allocator, 1,-1, 1, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(&allocator,-1, 1, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(&allocator, 1,-1, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(&allocator, 1, 1, 2, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_cylinder(&allocator, 1, 1, 3, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_cylinder(&allocator, 1, 2, 16, 4, &msh), RES_OK); CHECK(s3dut_mesh_get_data(msh, &data), RES_OK); diff --git a/src/test_s3dut_sphere.c b/src/test_s3dut_sphere.c @@ -28,20 +28,20 @@ main(int argc, char** argv) CHECK(s3dut_create_sphere(NULL, 0, 0, 0, NULL), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 1, 0, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 0, 2, 0, NULL), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 1, 2, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 0, 3, 0, NULL), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 1, 3, 0, NULL), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 0, 0, 2, NULL), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 1, 0, 2, NULL), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 0, 2, 2, NULL), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 1, 2, 2, NULL), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 0, 3, 2, NULL), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 1, 3, 2, NULL), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 0, 0, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 1, 0, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 0, 2, 0, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 1, 2, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 0, 3, 0, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 1, 3, 0, &msh), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 0, 0, 2, &msh), RES_BAD_ARG); CHECK(s3dut_create_sphere(NULL, 1, 0, 2, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 0, 2, 2, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(NULL, 1, 2, 2, &msh), RES_OK); + CHECK(s3dut_create_sphere(NULL, 0, 3, 2, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(NULL, 1, 3, 2, &msh), RES_OK); CHECK(s3dut_mesh_ref_get(NULL), RES_BAD_ARG); CHECK(s3dut_mesh_ref_get(msh), RES_OK); @@ -49,12 +49,12 @@ main(int argc, char** argv) CHECK(s3dut_mesh_ref_put(msh), RES_OK); CHECK(s3dut_mesh_ref_put(msh), RES_OK); - CHECK(s3dut_create_sphere(&allocator, 1, 2, 2, &msh), RES_OK); + CHECK(s3dut_create_sphere(&allocator, 1, 3, 2, &msh), RES_OK); CHECK(s3dut_mesh_ref_put(msh), RES_OK); - CHECK(s3dut_create_sphere(&allocator, 1, 1, 2, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(&allocator, 1, 2, 1, &msh), RES_BAD_ARG); - CHECK(s3dut_create_sphere(&allocator,-1, 2, 2, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(&allocator, 1, 2, 2, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(&allocator, 1, 3, 1, &msh), RES_BAD_ARG); + CHECK(s3dut_create_sphere(&allocator,-1, 3, 2, &msh), RES_BAD_ARG); CHECK(s3dut_create_sphere(&allocator, 1, 32, 16, &msh), RES_OK); CHECK(s3dut_mesh_get_data(NULL, NULL), RES_BAD_ARG);