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:
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);