star-3dut

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

commit 8e0e7a2e804349d87ab4ff06e64e8923a75eaa36
parent 6dd7610f99ef6fe1bd0e57097266202f3da83ba9
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 13 Oct 2017 11:41:37 +0200

Test the s3dut_create_thick_truncated_super_shape function

Diffstat:
Mcmake/CMakeLists.txt | 3++-
Asrc/test_s3dut_thick_truncated_super_shape.c | 185+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 187 insertions(+), 1 deletion(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -60,7 +60,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) set(MATH_LIB m) endif() -add_library(s3dut SHARED +add_library(s3dut SHARED ${S3DUT_FILES_SRC} ${S3DUT_FILES_INC} ${S3DUT_FILES_INC_API}) set_target_properties(s3dut PROPERTIES DEFINE_SYMBOL S3DUT_SHARED_BUILD @@ -88,6 +88,7 @@ if(NOT NO_TEST) new_test(test_s3dut_hemisphere) new_test(test_s3dut_sphere) new_test(test_s3dut_super_shape) + new_test(test_s3dut_thick_truncated_super_shape) new_test(test_s3dut_thick_truncated_sphere) new_test(test_s3dut_truncated_sphere) diff --git a/src/test_s3dut_thick_truncated_super_shape.c b/src/test_s3dut_thick_truncated_super_shape.c @@ -0,0 +1,185 @@ +/* Copyright (C) |Meso|Star> 2016-2017 (contact@meso-star.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "s3dut.h" +#include "test_s3dut_utils.h" + +int +main(int argc, char** argv) +{ + struct mem_allocator allocator; + struct s3dut_mesh* msh; + struct s3dut_mesh_data data; + struct s3dut_super_formula f0, f1; + double z_range[2]; + (void)argc, (void)argv; + + CHECK(mem_init_proxy_allocator(&allocator, &mem_default_allocator), RES_OK); + + f0.A = 1; f0.B = 1; f0.M = 5; f0.N0 = 1; f0.N1 = 1; f0.N2 = 2; + f1.A = 1; f1.B = 1; f1.M = 5; f1.N0 = 1; f1.N1 = 1; f1.N2 = 3; + + #define CREATE s3dut_create_thick_truncated_super_shape + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 0, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 2, NULL, 0, NULL), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 0, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 0, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, -1, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 0, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, NULL, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, NULL, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, NULL, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_BAD_ARG); + CHECK(CREATE(NULL, &f0, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_OK); + CHECK(s3dut_mesh_ref_put(msh), RES_OK); + + CHECK(CREATE(&allocator, &f0, &f1, 1, 0, 3, 2, NULL, 0, &msh), RES_OK); + CHECK(s3dut_mesh_ref_put(msh), RES_OK); + + z_range[0] = -0.1, z_range[1] = 0.5; + CHECK(CREATE(&allocator, &f0, &f1, 1, 0.3, 32, 16, z_range, S3DUT_CAP_NEG_Z, + &msh), RES_OK); + + CHECK(s3dut_mesh_get_data(msh, &data), RES_OK); + NCHECK(data.positions, NULL); + NCHECK(data.indices, NULL); + + dump_mesh_data(stdout, &data); + + CHECK(s3dut_mesh_ref_put(msh), RES_OK); + + check_memory_allocator(&allocator); + mem_shutdown_proxy_allocator(&allocator); + CHECK(mem_allocated_size(), 0); + return 0; +} +