commit 8e1bb60c82bd3ef91ba6250f94d67770149277af
parent 48f01e731ec88835935c3e250fb5ca8da91015bb
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Fri, 13 Jun 2025 15:27:49 +0200
Remove arg 'name' from most geometry creation API calls
As it can be done using scad_geometry_rename, it was not necessary to
add an optional arg to these API calls.
Only names used as a base name when creating a list of geometries have
been kept (scad_geometry_explode, ...).
Diffstat:
8 files changed, 239 insertions(+), 284 deletions(-)
diff --git a/src/scad.h b/src/scad.h
@@ -214,7 +214,6 @@ scad_scene_mesh
/*******************************************************************************
* Geometry API - A geometry is a primitive, a group of primitives, or the
* result of an operation on geometries.
- * If provided, names must be unique.
******************************************************************************/
/* Ref counting of geometries: get a new reference to goemetry `geom'. */
@@ -249,7 +248,7 @@ scad_geometry_get_custom_data
(struct scad_geometry* geom,
void** data);
-/* Get a pointer to `geom's name.
+/* Get a pointer to `geom's name, NULL if unnamed.
* Note that this reference is only valid during the lifetime of `geom' (don't
* use name after deleting `geom'). */
SCAD_API res_T
@@ -301,67 +300,55 @@ scad_geometry_get_bounding_box
double max[3]);
/* Add a rectangle to the scene, defined by a point `xyz' and
- * `dxdy' the extents along the x-, y-axes.
- * If provided, `name' must be unique. */
+ * `dxdy' the extents along the x-, y-axes. */
SCAD_API res_T
scad_add_rectangle
- (const char* name, /* Can be NULL */
- const double xyz[3],
+ (const double xyz[3],
const double dxdy[2],
struct scad_geometry** rectangle);
/* Add a disk in (xy) plane to the scene, defined by a the center `xyz' and
- * `radius'.
- * If provided, `name' must be unique. */
+ * `radius'. */
SCAD_API res_T
scad_add_disk
- (const char* name, /* Can be NULL */
- const double xyz[3],
+ (const double xyz[3],
const double radius,
struct scad_geometry** disk);
/* Add a polygon in the (xy) plane to the scene.
* The `polygon' has `count' vertice and is at elevation `z', the vertice are
- * defined by calls to user-provided function `get_position'.
- * If provided, `name' must be unique. */
+ * defined by calls to user-provided function `get_position'. */
SCAD_API res_T
scad_add_polygon
- (const char* name, /* Can be NULL */
- void (*get_position)(const size_t ivert, double pos[2], void* data),
+ (void (*get_position)(const size_t ivert, double pos[2], void* data),
void* data, /* Custom data; can be NULL if get_position don't use it */
const double z,
const size_t count,
struct scad_geometry** polygon);
/* Add a parallelepipedic `box' to the scene, defined by a point `xyz' and
- * `dxdydz' the extents along the x-, y- and z-axes.
- * If provided, `name' must be unique. */
+ * `dxdydz' the extents along the x-, y- and z-axes. */
SCAD_API res_T
scad_add_box
- (const char* name, /* Can be NULL */
- const double xyz[3],
+ (const double xyz[3],
const double dxdydz[3],
struct scad_geometry** box);
/* Add a `cylinder' to the scene, defined by the center `xyz' of its first
* circular face, the vector `axis' defining its axis and its radius `rad'. The
- * `angle' argument defines the angular opening (from 0 to 2*PI).
- * If provided, `name' must be unique. */
+ * `angle' argument defines the angular opening (from 0 to 2*PI). */
SCAD_API res_T
scad_add_cylinder
- (const char* name, /* Can be NULL */
- const double xyz[3],
+ (const double xyz[3],
const double axis[3],
const double radius,
const double angle,
struct scad_geometry** cylinder);
-/* Add a `sphere' of center `xyz' and radius `rad' to the scene.
- * If provided, `name' must be unique. */
+/* Add a `sphere' of center `xyz' and radius `rad' to the scene. */
SCAD_API res_T
scad_add_sphere
- (const char* name, /* Can be NULL */
- const double xyz[3],
+ (const double xyz[3],
const double radius,
struct scad_geometry** sphere);
@@ -386,46 +373,38 @@ scad_geometry_is_included
int* included);
/* Create a new geometry `out_geometry' made from all the entities from
- * `geometries'.
- * If provided, `name' must be unique. */
+ * `geometries'. */
SCAD_API res_T
scad_geometries_collect
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** out_geometry);
/* Compute the boolean union (the fusion) of the geometries in `geometries' and
- * `tools'.
- * If provided, `name' must be unique. */
+ * `tools'. */
SCAD_API res_T
scad_geometries_fuse
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
struct scad_geometry** out_geometry);
/* Compute the boolean difference between the geometries in `geometries' and
- * `tools'.
- * If provided, `name' must be unique. */
+ * `tools'. */
SCAD_API res_T
scad_geometries_cut
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
struct scad_geometry** out_geometry);
/* Compute the boolean intersection (the common parts) of the geometries
- * in `geometries' and `tools'.
- * If provided, `name' must be unique. */
+ * in `geometries' and `tools'. */
SCAD_API res_T
scad_geometries_intersect
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
@@ -482,12 +461,11 @@ scad_geometries_boundary
struct scad_geometry*** out_boundaries,
size_t *out_count);
-/* Copy the geometry `geom'.
- * If provided, `name' must be unique. */
+/* Copy the geometry `geom', except for its name.
+ * The new geometry remains unnamed. */
SCAD_API res_T
scad_geometry_copy
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
struct scad_geometry** out_copy);
/* Change the visibility of the geometry `geom'.
@@ -501,58 +479,49 @@ scad_geometry_set_visibility
int recursive);
/* Rename geometry `geom'.
- * If provided, `name' must be unique. */
+ * If not NULL, names must be unique. */
SCAD_API res_T
scad_geometry_rename
(struct scad_geometry* geom,
const char* name); /* Can be NULL */
/* Scale the geometry `geom' by factors `scale' along the three coordinate axes;
- * Use `center', as the center of the homothetic transformation.
- * If provided, `name' must be unique. */
+ * Use `center', as the center of the homothetic transformation. */
SCAD_API res_T
scad_geometry_dilate
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double center[3],
const double scale[3],
struct scad_geometry** out_geometry);
-/* Translate the geometry `geom' along (`dx', `dy', `dz').
- * If provided, `name' must be unique. */
+/* Translate the geometry `geom' along (`dx', `dy', `dz'). */
SCAD_API res_T
scad_geometry_translate
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double dxdydz[3],
struct scad_geometry** out_geometry);
/* Rotate the geometry `geom' by `angle' radians around the axis of revolution
- * defined by the point `pt' and the direction `dir'.
- * If provided, `name' must be unique. */
+ * defined by the point `pt' and the direction `dir'. */
SCAD_API res_T
scad_geometry_rotate
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double pt[3],
const double dir[3],
const double angle,
struct scad_geometry** out_geometry);
-/* Extrude the geometry `geom' using a translation along (`dx', `dy', `dz').
- * If provided, `name' must be unique. */
+/* Extrude the geometry `geom' using a translation along (`dx', `dy', `dz'). */
SCAD_API res_T
scad_geometry_extrude
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double dxdydz[3],
struct scad_geometry** out_geometry);
/* Return a list of geometries which form the geometry `geom'.
* The output geometries are named <base>_<rank>, where <base> is either
- * prefix_name (first choice) or geom's name, and <rank> * counting from 0.
- * If neither `prefix_name' nor `geom's name are defined, the geometries are
- * created unnamed.
+ * prefix_name (first choice) or geom's name, <rank> counting from 0. Otherwise
+ * they remain unnamed.
* Whatever the names, if defined they must be unique.
* The result `out_geometries' being allocated using the allocator provided when
* initializing star-cad, it should be freed accordingly. */
@@ -616,8 +585,7 @@ scad_geometries_clear_mesh
* returned as a new geometry in `out_geometry'. */
SCAD_API res_T
scad_geometry_normal
- (const char* name, /* Can be NULL */
- struct scad_geometry* geom,
+ (struct scad_geometry* geom,
double p[3],
double N[3],
struct scad_geometry** out_geometry);
@@ -665,8 +633,8 @@ scad_stl_export_partial
const int binary);
/* Export the geometry `geom' in as many files than its count.
- * The files are named <base>_<rank>.stl, where <base> is either filename or
- * geom's name, and <rank> counting from 0. */
+ * The files are named <base>_<rank>.stl, where <base> is either filename (first
+ * choice) or geom's name, <rank> counting from 0. */
SCAD_API res_T
scad_stl_export_split
(struct scad_geometry* geom,
diff --git a/src/scad_geometry.c b/src/scad_geometry.c
@@ -55,42 +55,35 @@ struct coord_pair {
static res_T
geom_set_name
(struct scad_geometry* geom,
- const char* name)
+ const struct str* name)
{
struct scad_device* dev = get_device();
- struct mem_allocator* allocator = dev->allocator;
- struct str str_name;
- int name_initialized = 0;
int same_name;
res_T res = RES_OK;
ASSERT(geom);
- if(name) {
- if(strlen(name) == 0) {
+ if(!str_is_empty(name)) {
+ if(str_len(name) == 0) {
res = RES_BAD_ARG;
log_error(get_device(), "Geometry name \"\" is invalid.\n");
goto error;
}
- str_init(allocator, &str_name);
- name_initialized = 1;
- ERR(str_set(&str_name, name));
- if(htable_names_find(&dev->geometry_names, &str_name)) {
+ if(htable_names_find(&dev->geometry_names, name)) {
/* if defined, names must be unique */
res = RES_BAD_ARG;
log_error(get_device(), "Geometry name '%s' is allready in use.\n",
- name);
+ str_cget(name));
goto error;
}
}
- same_name = (!name && str_is_empty(&geom->name))
- || (name && 0 == strcmp(name, str_cget(&geom->name)));
+ same_name = (0 == str_cmp(name, &geom->name));
if(!same_name) {
size_t n = htable_names_erase(&dev->geometry_names, &geom->name);
ASSERT((n == 1) == !str_is_empty(&geom->name)); (void)n;
- ERR(str_set(&geom->name, name));
+ ERR(str_copy(&geom->name, name));
}
if(name) {
ERR(htable_names_set(&dev->geometry_names, &geom->name, &geom));
@@ -99,7 +92,6 @@ geom_set_name
}
exit:
- if(name_initialized) str_release(&str_name);
return res;
error:
goto exit;
@@ -107,8 +99,7 @@ error:
static int
mixed_dim_err_msg
- (const char* name, /* Can be NULL */
- const char* op,
+ (const char* op,
struct scad_geometry** geometries,
const size_t geometries_count,
int* dim)
@@ -122,8 +113,7 @@ mixed_dim_err_msg
if(*dim == INT_MAX) *dim = d;
else if (*dim != d) {
log_error(dev,
- "Dimension mismatch in %s operation creating '%s' geometry.\n",
- op, (name ? name : "unnamed"));
+ "Dimension mismatch in %s operation creating geometry.\n", op);
return 1;
}
}
@@ -133,8 +123,7 @@ mixed_dim_err_msg
static res_T
geometry_create
- (const char* name,
- struct scad_geometry** out_geometry)
+ (struct scad_geometry** out_geometry)
{
res_T res = RES_OK;
struct scad_geometry* geom = NULL;
@@ -153,7 +142,6 @@ geometry_create
ref_init(&geom->ref);
str_init(allocator, &geom->name);
ERR(htable_geometries_set(&dev->allgeom, &geom, &one));
- ERR(geom_set_name(geom, name));
dev->need_synchro = 1;
if(dev->options.Misc.LogRefCounting & SCAD_LOG_GEOMETRY) {
@@ -859,8 +847,7 @@ error:
res_T
scad_add_rectangle
- (const char* name,
- const double xyz[3],
+ (const double xyz[3],
const double dxdy[2],
struct scad_geometry** out_geometry)
{
@@ -881,7 +868,7 @@ scad_add_rectangle
gmsh_ID = gmshModelOccAddRectangle(SPLIT3(xyz), SPLIT2(dxdy), -1, 0, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags
= MEM_ALLOC(allocator, geom->gmsh_dimTags_n * sizeof(*geom->gmsh_dimTags));
@@ -907,8 +894,7 @@ error:
res_T
scad_add_disk
- (const char* name,
- const double xyz[3],
+ (const double xyz[3],
const double radius,
struct scad_geometry** out_geometry)
{
@@ -930,7 +916,7 @@ scad_add_disk
NULL, 0, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags
= MEM_ALLOC(allocator, geom->gmsh_dimTags_n * sizeof(*geom->gmsh_dimTags));
@@ -956,8 +942,7 @@ error:
res_T
scad_add_polygon
- (const char* name,
- void (*get_position)(const size_t ivert, double pos[2], void* data),
+ (void (*get_position)(const size_t ivert, double pos[2], void* data),
void* data,
const double z,
const size_t count,
@@ -1007,7 +992,7 @@ scad_add_polygon
gmsh_ID = gmshModelOccAddPlaneSurface(&loop, 1, -1, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*geom->gmsh_dimTags));
if(!geom->gmsh_dimTags) {
@@ -1036,8 +1021,7 @@ error:
res_T
scad_add_box
- (const char* name,
- const double xyz[3],
+ (const double xyz[3],
const double dxdydz[3],
struct scad_geometry** out_geometry)
{
@@ -1058,7 +1042,7 @@ scad_add_box
gmsh_ID = gmshModelOccAddBox(SPLIT3(xyz), SPLIT3(dxdydz), -1, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*geom->gmsh_dimTags));
if(!geom->gmsh_dimTags) {
@@ -1083,8 +1067,7 @@ error:
res_T
scad_add_cylinder
- (const char* name,
- const double xyz[3],
+ (const double xyz[3],
const double axis[3],
const double radius,
const double angle,
@@ -1108,7 +1091,7 @@ scad_add_cylinder
angle, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*geom->gmsh_dimTags));
if(!geom->gmsh_dimTags) {
@@ -1133,8 +1116,7 @@ error:
int
scad_add_sphere
- (const char* name,
- const double xyz[3],
+ (const double xyz[3],
const double radius,
struct scad_geometry** out_geometry)
{
@@ -1156,7 +1138,7 @@ scad_add_sphere
gmshModelOccAddSphere(SPLIT3(xyz), radius, -1, -PI/2, PI/2, 2*PI, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = 2;
geom->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*geom->gmsh_dimTags));
if(!geom->gmsh_dimTags) {
@@ -1319,8 +1301,7 @@ error:
res_T
scad_geometries_fuse
- (const char* name,
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
@@ -1355,7 +1336,7 @@ scad_geometries_fuse
&mapnn, -1, 0, 0, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = tagoutn;
geom->gmsh_dimTags = MEM_ALLOC(allocator, tagoutn * sizeof(*tagout));
if(!geom->gmsh_dimTags) {
@@ -1387,8 +1368,7 @@ error:
res_T
scad_geometries_collect
- (const char* name,
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** out_geometry)
{
@@ -1406,7 +1386,7 @@ scad_geometries_collect
ERR(gather_tags(geometries, geometries_count, &data, &sz));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = sz;
geom->gmsh_dimTags = data;
@@ -1425,8 +1405,7 @@ error:
res_T
scad_geometries_cut
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
@@ -1461,7 +1440,7 @@ scad_geometries_cut
&mapnn, -1, 0, 0, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = tagoutn;
geom->gmsh_dimTags = MEM_ALLOC(allocator, tagoutn * sizeof(*tagout));
if(!geom->gmsh_dimTags) {
@@ -1485,8 +1464,8 @@ exit:
error:
if(ierr) {
int dim = INT_MAX;
- if(!mixed_dim_err_msg(name, "cut", geometries, geometries_count, &dim))
- mixed_dim_err_msg(name, "cut", tools, tools_count, &dim);
+ if(!mixed_dim_err_msg("cut", geometries, geometries_count, &dim))
+ mixed_dim_err_msg("cut", tools, tools_count, &dim);
if(geom) {
SCAD(geometry_ref_put(geom));
geom = NULL;
@@ -1498,8 +1477,7 @@ error:
res_T
scad_geometries_intersect
- (const char* name, /* Can be NULL */
- struct scad_geometry** geometries,
+ (struct scad_geometry** geometries,
const size_t geometries_count,
struct scad_geometry** tools,
const size_t tools_count,
@@ -1534,7 +1512,7 @@ scad_geometries_intersect
&mapnn, -1, 0, 0, &ierr);
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, &geom));
+ ERR(geometry_create(&geom));
geom->gmsh_dimTags_n = tagoutn;
if (tagoutn == 0){
geom->gmsh_dimTags = NULL;
@@ -1669,12 +1647,11 @@ scad_geometries_common_boundaries
int tag = tagout[i+1];
struct tag_desc* desc;
ASSERT(dim == 2);
+ ERR(geometry_create(out_geom+n));
if(prefix_name) {
ERR(str_set(&name, prefix_name));
ERR(str_append_printf(&name,"_%lu", (unsigned long)i));
- ERR(geometry_create(str_cget(&name), out_geom+n));
- } else {
- ERR(geometry_create(NULL, out_geom+n));
+ ERR(geom_set_name(out_geom[n], &name));
}
out_geom[n]->gmsh_dimTags_n = 2;
out_geom[n]->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*tagout));
@@ -1714,8 +1691,8 @@ exit:
error:
if(ierr) {
int dim = INT_MAX;
- if(!mixed_dim_err_msg(prefix_name, "common boundary", geometries, geometries_count, &dim))
- mixed_dim_err_msg(prefix_name, "common boundary", tools, tools_count, &dim);
+ if(!mixed_dim_err_msg("common boundary", geometries, geometries_count, &dim))
+ mixed_dim_err_msg("common boundary", tools, tools_count, &dim);
}
if(out_geom) {
for(i = 0; i < c; i++) {
@@ -1731,8 +1708,7 @@ error:
res_T
scad_geometry_rotate
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double pt[3],
const double axis[3],
const double angle,
@@ -1749,7 +1725,7 @@ scad_geometry_rotate
ERR(check_device(FUNC_NAME));
- ERR(scad_geometry_copy(name, geom, &out));
+ ERR(scad_geometry_copy(geom, &out));
gmshModelOccRotate(out->gmsh_dimTags, out->gmsh_dimTags_n, SPLIT3(pt),
SPLIT3(axis), angle, &ierr);
@@ -1767,8 +1743,7 @@ error:
res_T
scad_geometry_extrude
- (const char* name,
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double dxdydz[3],
struct scad_geometry** out_geometry)
{
@@ -1830,7 +1805,7 @@ scad_geometry_extrude
}
}
- ERR(geometry_create(name, &extrude_geom));
+ ERR(geometry_create(&extrude_geom));
extrude_geom->gmsh_dimTags_n = extrude_sz;
extrude_geom->gmsh_dimTags = extrude_data;
@@ -1895,7 +1870,7 @@ scad_geometry_explode
{
res_T res = RES_OK;
int* data = NULL;
- size_t i, sz = 0;
+ size_t i, n, sz = 0;
struct scad_geometry** geom_array = NULL;
struct str name;
int name_initialized = 0;
@@ -1927,25 +1902,26 @@ scad_geometry_explode
name_initialized = 1;
}
- for(i = 0; i < sz/2; ++i) {
+ for(i = 0, n = 0; i < sz; i += 2, n++) {
+ const int dim = data[i];
+ const int tag = data[i+1];
+ ERR(geometry_create(geom_array+n));
if(base_name) {
ERR(str_set(&name, base_name));
- ERR(str_append_printf(&name,"_%lu", (unsigned long)i));
- ERR(geometry_create(str_cget(&name), geom_array+i));
- } else {
- ERR(geometry_create(NULL, geom_array+i));
+ ERR(str_append_printf(&name,"_%lu", (unsigned long)n));
+ ERR(geom_set_name(geom_array[n], &name));
}
- geom_array[i]->gmsh_dimTags_n = 2;
- geom_array[i]->gmsh_dimTags
- = MEM_ALLOC(allocator, 2 * sizeof(*geom_array[i]->gmsh_dimTags));
- if(!geom_array[i]->gmsh_dimTags) {
+ geom_array[n]->gmsh_dimTags_n = 2;
+ geom_array[n]->gmsh_dimTags
+ = MEM_ALLOC(allocator, 2 * sizeof(*geom_array[0]->gmsh_dimTags));
+ if(!geom_array[n]->gmsh_dimTags) {
res = RES_MEM_ERR;
goto error;
}
- geom_array[i]->gmsh_dimTags[0] = data[2*i];
- geom_array[i]->gmsh_dimTags[1] = data[2*i+1];
+ geom_array[n]->gmsh_dimTags[0] = dim;
+ geom_array[n]->gmsh_dimTags[1] = tag;
- ERR(device_register_tags(geom_array[i]));
+ ERR(device_register_tags(geom_array[n]));
}
exit:
@@ -1955,8 +1931,8 @@ exit:
return res;
error:
if(geom_array) {
- for(i = 0; i < sz/2; i++) {
- if(geom_array[i]) SCAD(geometry_ref_put(geom_array[i]));
+ for(i = 0, n = 0; i < sz; i += 2, n++) {
+ if(geom_array[n]) SCAD(geometry_ref_put(geom_array[n]));
}
MEM_RM(allocator, geom_array);
geom_array = NULL;
@@ -1967,8 +1943,7 @@ error:
res_T
scad_geometry_copy
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
struct scad_geometry** out_geometry)
{
res_T res = RES_OK;
@@ -1994,7 +1969,7 @@ scad_geometry_copy
get_device()->need_synchro = 1;
ERR(gmsh_err_to_res_T(ierr));
- ERR(geometry_create(name, ©));
+ ERR(geometry_create(©));
copy->gmsh_dimTags_n = tagoutn;
copy->gmsh_dimTags = MEM_ALLOC(allocator, tagoutn * sizeof(*tagout));
if(!copy->gmsh_dimTags) {
@@ -2024,6 +1999,9 @@ scad_geometry_rename
const char* name) /* Can be NULL */
{
res_T res = RES_OK;
+ struct str tmp;
+ int initialized = 0;
+ struct mem_allocator* allocator = NULL;
if(!geom) {
res = RES_BAD_ARG;
@@ -2032,9 +2010,17 @@ scad_geometry_rename
ERR(check_device(FUNC_NAME));
- ERR(geom_set_name(geom, name));
+ if(name) {
+ str_init(allocator, &tmp);
+ initialized = 1;
+ ERR(str_set(&tmp, name));
+ ERR(geom_set_name(geom, &tmp));
+ } else {
+ str_clear(&geom->name);
+ }
exit:
+ if(initialized) str_release(&tmp);
return res;
error:
goto exit;
@@ -2042,8 +2028,7 @@ error:
res_T
scad_geometry_translate
- (const char* name, /* Can be NULL */
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double dxdydz[3],
struct scad_geometry** out_geometry)
{
@@ -2058,7 +2043,7 @@ scad_geometry_translate
ERR(check_device(FUNC_NAME));
- ERR(scad_geometry_copy(name, geom, &out));
+ ERR(scad_geometry_copy(geom, &out));
gmshModelOccTranslate(out->gmsh_dimTags, out->gmsh_dimTags_n, SPLIT3(dxdydz),
&ierr);
@@ -2313,7 +2298,7 @@ scad_geometries_partition
ASSERT(c == 2*n);
/* Create geometry */
- ERR(geometry_create(NULL, geoms+i));
+ ERR(geometry_create(geoms+i));
geoms[i]->gmsh_dimTags_n = c;
geoms[i]->gmsh_dimTags = dt;
ERR(device_register_tags(geoms[i]));
@@ -2556,12 +2541,11 @@ scad_geometries_boundary
int tag = tagout[i+1];
struct tag_desc* desc = NULL;
ASSERT(dim == 2);
+ ERR(geometry_create(out_geom+n));
if(prefix_name) {
ERR(str_set(&name, prefix_name));
ERR(str_append_printf(&name,"_%lu", (unsigned long)i));
- ERR(geometry_create(str_cget(&name), out_geom+n));
- } else {
- ERR(geometry_create(NULL, out_geom+n));
+ ERR(geom_set_name(out_geom[n], &name));
}
out_geom[n]->gmsh_dimTags_n = 2;
out_geom[n]->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*tagout));
@@ -2646,12 +2630,11 @@ scad_step_import
str_init(allocator, &strname);
name_initialized = 1;
for(i=0; i<ga_sz; ++i) {
+ ERR(geometry_create(geom_array+i));
if (prefix_name) {
ERR(str_set(&strname, prefix_name));
ERR(str_append_printf(&strname,"_%lu", (unsigned long)i));
- ERR(geometry_create(str_cget(&strname), geom_array+i));
- } else {
- ERR(geometry_create(NULL, geom_array+i));
+ ERR(geom_set_name(geom_array[i], &strname));
}
geom_array[i]->gmsh_dimTags_n = 2;
@@ -2688,8 +2671,7 @@ error:
res_T
scad_geometry_normal
- (const char* name, /* Can be NULL */
- struct scad_geometry* geom,
+ (struct scad_geometry* geom,
double p[3],
double N[3],
struct scad_geometry** out_geometry)
@@ -2743,7 +2725,7 @@ scad_geometry_normal
ERR(gmsh_err_to_res_T(ierr));
ASSERT(normals_n == 3);
- ERR(geometry_create(name, &out));
+ ERR(geometry_create(&out));
out->gmsh_dimTags = MEM_ALLOC(allocator, 2 * sizeof(*out->gmsh_dimTags));
if(!out->gmsh_dimTags) {
res = RES_MEM_ERR;
@@ -2805,8 +2787,7 @@ error:
res_T
scad_geometry_dilate
- (const char* name,
- const struct scad_geometry* geom,
+ (const struct scad_geometry* geom,
const double center[3],
const double scale[3],
struct scad_geometry** out_geometry)
@@ -2822,7 +2803,7 @@ scad_geometry_dilate
ERR(check_device(FUNC_NAME));
- ERR(scad_geometry_copy(name, geom, &out));
+ ERR(scad_geometry_copy(geom, &out));
gmshModelOccDilate(out->gmsh_dimTags, out->gmsh_dimTags_n, SPLIT3(center),
SPLIT3(scale), &ierr);
diff --git a/src/test_api.c b/src/test_api.c
@@ -67,12 +67,12 @@ main(int argc, char* argv[])
BAD(scad_set_options(NULL));
BAD(scad_synchronize());
BAD(scad_scene_clear());
- BAD(scad_add_rectangle(NULL, p1, d1, &geom));
- BAD(scad_add_disk(NULL, p1, 1, &geom));
- BAD(scad_add_polygon(NULL, get_position, coord, 0, 3, &geom));
- BAD(scad_add_box(NULL, p1, d1, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 2, 1, &geom));
- BAD(scad_add_sphere(NULL, p1, 1, &geom));
+ BAD(scad_add_rectangle(p1, d1, &geom));
+ BAD(scad_add_disk(p1, 1, &geom));
+ BAD(scad_add_polygon(get_position, coord, 0, 3, &geom));
+ BAD(scad_add_box(p1, d1, &geom));
+ BAD(scad_add_cylinder(p1, d1, 2, 1, &geom));
+ BAD(scad_add_sphere(p1, 1, &geom));
BAD(scad_step_import("test.step", NULL, &geom_array, &c));
BAD(scad_scene_mesh());
BAD(scad_run_ui());
@@ -86,12 +86,12 @@ main(int argc, char* argv[])
BAD(scad_set_options(NULL));
BAD(scad_synchronize());
BAD(scad_scene_clear());
- BAD(scad_add_rectangle(NULL, p1, d1, &geom));
- BAD(scad_add_disk(NULL, p1, 1, &geom));
- BAD(scad_add_polygon(NULL, get_position, coord, 0, 3, &geom));
- BAD(scad_add_box(NULL, p1, d1, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 2, 1, &geom));
- BAD(scad_add_sphere(NULL, p1, 1, &geom));
+ BAD(scad_add_rectangle(p1, d1, &geom));
+ BAD(scad_add_disk(p1, 1, &geom));
+ BAD(scad_add_polygon(get_position, coord, 0, 3, &geom));
+ BAD(scad_add_box(p1, d1, &geom));
+ BAD(scad_add_cylinder(p1, d1, 2, 1, &geom));
+ BAD(scad_add_sphere(p1, 1, &geom));
BAD(scad_step_import("test.step", NULL, &geom_array, &c));
BAD(scad_scene_mesh());
BAD(scad_run_ui());
@@ -105,12 +105,12 @@ main(int argc, char* argv[])
OK(scad_set_options(NULL));
OK(scad_set_options(&options));
- OK(scad_add_sphere("sphere 1", p1, .1, &geom1));
- OK(scad_add_sphere(NULL, p2, .2, &geom2));
+ OK(scad_add_sphere(p1, .1, &geom1));
+ OK(scad_add_sphere(p2, .2, &geom2));
geoms[0] = geom1;
geoms[1] = geom2;
- OK(scad_add_sphere(NULL, p1, .1, &geom));
+ OK(scad_add_sphere(p1, .1, &geom));
BAD(scad_geometry_ref_get(NULL));
OK(scad_geometry_ref_get(geom));
BAD(scad_geometry_ref_put(NULL));
@@ -121,68 +121,67 @@ main(int argc, char* argv[])
BAD(scad_geometry_get_count(geom1, NULL));
OK(scad_geometry_get_count(geom1, &c));
- BAD(scad_add_rectangle(NULL, NULL, d1, &geom));
- BAD(scad_add_rectangle(NULL, p1, NULL, &geom));
- BAD(scad_add_rectangle(NULL, p1, d1, NULL));
- BAD(scad_add_rectangle("sphere 1", p1, d1, &geom)); /* Name already used */
- OK(scad_add_rectangle(NULL, p1, d1, &geom));
+ BAD(scad_add_rectangle(NULL, d1, &geom));
+ BAD(scad_add_rectangle(p1, NULL, &geom));
+ BAD(scad_add_rectangle(p1, d1, NULL));
+ OK(scad_add_rectangle(p1, d1, &geom));
OK(scad_geometry_ref_put(geom));
- BAD(scad_add_disk(NULL, NULL, 1, &geom));
- BAD(scad_add_disk(NULL, p1, 0, &geom));
- BAD(scad_add_disk(NULL, p1, 1, NULL));
- OK(scad_add_disk(NULL, p1, 1, &geom));
+ BAD(scad_add_disk(NULL, 1, &geom));
+ BAD(scad_add_disk(p1, 0, &geom));
+ BAD(scad_add_disk(p1, 1, NULL));
+ OK(scad_add_disk(p1, 1, &geom));
OK(scad_geometry_ref_put(geom));
- BAD(scad_add_polygon(NULL, NULL, coord, 0, 3, &poly));
- BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &poly));
- BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &poly));
- BAD(scad_add_polygon(NULL, get_position, coord, 0, 3, NULL));
- OK(scad_add_polygon(NULL, get_position, coord, 0, 3, &poly));
+ BAD(scad_add_polygon(NULL, coord, 0, 3, &poly));
+ BAD(scad_add_polygon(get_position, coord, 0, 2, &poly));
+ BAD(scad_add_polygon(get_position, coord, 0, 2, &poly));
+ BAD(scad_add_polygon(get_position, coord, 0, 3, NULL));
+ OK(scad_add_polygon(get_position, coord, 0, 3, &poly));
- BAD(scad_add_box(NULL, NULL, d1, &geom));
- BAD(scad_add_box(NULL, p1, NULL, &geom));
- BAD(scad_add_box(NULL, p1, d1, NULL));
- OK(scad_add_box(NULL, p1, d1, &geom));
+ BAD(scad_add_box(NULL, d1, &geom));
+ BAD(scad_add_box(p1, NULL, &geom));
+ BAD(scad_add_box(p1, d1, NULL));
+ OK(scad_add_box(p1, d1, &geom));
OK(scad_geometry_ref_put(geom));
- BAD(scad_add_cylinder(NULL, NULL, d1, 2, 1, &geom));
- BAD(scad_add_cylinder(NULL, p1, NULL, 2, 1, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 0, 1, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 2, -1, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 2, 3*PI, &geom));
- BAD(scad_add_cylinder(NULL, p1, d1, 2, 1, NULL));
- OK(scad_add_cylinder(NULL, p1, d1, 2, 1, &geom));
+ BAD(scad_add_cylinder(NULL, d1, 2, 1, &geom));
+ BAD(scad_add_cylinder(p1, NULL, 2, 1, &geom));
+ BAD(scad_add_cylinder(p1, d1, 0, 1, &geom));
+ BAD(scad_add_cylinder(p1, d1, 2, -1, &geom));
+ BAD(scad_add_cylinder(p1, d1, 2, 3*PI, &geom));
+ BAD(scad_add_cylinder(p1, d1, 2, 1, NULL));
+ OK(scad_add_cylinder(p1, d1, 2, 1, &geom));
OK(scad_geometry_ref_put(geom));
- BAD(scad_add_sphere(NULL, NULL, 1, &geom));
- BAD(scad_add_sphere(NULL, p1, 0, &geom));
- BAD(scad_add_sphere(NULL, p1, 1, NULL));
- OK(scad_add_sphere(NULL, p1, 1, &geom));
+ BAD(scad_add_sphere(NULL, 1, &geom));
+ BAD(scad_add_sphere(p1, 0, &geom));
+ BAD(scad_add_sphere(p1, 1, NULL));
+ OK(scad_add_sphere(p1, 1, &geom));
OK(scad_geometry_ref_put(geom));
/* BAD(scad_geometries_fuse(NULL, NULL, 0, geoms, 2, &geom)); */
- BAD(scad_geometries_fuse(NULL, geoms, 2, NULL, 0, &geom));
- BAD(scad_geometries_fuse(NULL, NULL, 1, &geom2, 1, &geom));
- BAD(scad_geometries_fuse(NULL, &geom1, 1, NULL, 1, &geom));
- BAD(scad_geometries_fuse(NULL, &geom1, 1, &geom2, 1, NULL));
- OK(scad_geometries_fuse(NULL, &geom1, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_fuse(geoms, 2, NULL, 0, &geom));
+ BAD(scad_geometries_fuse(NULL, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_fuse(&geom1, 1, NULL, 1, &geom));
+ BAD(scad_geometries_fuse(&geom1, 1, &geom2, 1, NULL));
+ OK(scad_geometries_fuse(&geom1, 1, &geom2, 1, &geom));
OK(scad_geometry_ref_put(geom));
/* BAD(scad_geometries_cut(NULL, NULL, 0, geoms, 2, &geom)); */
- BAD(scad_geometries_cut(NULL, geoms, 2, NULL, 0, &geom));
- BAD(scad_geometries_cut(NULL, NULL, 1, &geom2, 1, &geom));
- BAD(scad_geometries_cut(NULL, &geom1, 1, NULL, 1, &geom));
- BAD(scad_geometries_cut(NULL, &geom1, 1, &geom2, 1, NULL));
- OK(scad_geometries_cut(NULL, &geom1, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_cut(geoms, 2, NULL, 0, &geom));
+ BAD(scad_geometries_cut(NULL, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_cut(&geom1, 1, NULL, 1, &geom));
+ BAD(scad_geometries_cut(&geom1, 1, &geom2, 1, NULL));
+ OK(scad_geometries_cut(&geom1, 1, &geom2, 1, &geom));
OK(scad_geometry_ref_put(geom));
/* BAD(scad_geometries_intersect(NULL, NULL, 0, geoms, 2, &geom)); */
- BAD(scad_geometries_intersect(NULL, geoms, 2, NULL, 0, &geom));
- BAD(scad_geometries_intersect(NULL, NULL, 1, &geom2, 1, &geom));
- BAD(scad_geometries_intersect(NULL, &geom1, 1, NULL, 1, &geom));
- BAD(scad_geometries_intersect(NULL, &geom1, 1, &geom2, 1, NULL));
- OK(scad_geometries_intersect(NULL, &geom1, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_intersect(geoms, 2, NULL, 0, &geom));
+ BAD(scad_geometries_intersect(NULL, 1, &geom2, 1, &geom));
+ BAD(scad_geometries_intersect(&geom1, 1, NULL, 1, &geom));
+ BAD(scad_geometries_intersect(&geom1, 1, &geom2, 1, NULL));
+ OK(scad_geometries_intersect(&geom1, 1, &geom2, 1, &geom));
OK(scad_geometry_ref_put(geom));
/* BAD(scad_geometries_common_boundaries(NULL, NULL, 0, geoms, 2, &geom)); */
@@ -213,47 +212,48 @@ main(int argc, char* argv[])
}
MEM_RM(&allocator, geom_array);
- BAD(scad_geometry_copy(NULL, NULL, &geom));
- BAD(scad_geometry_copy(NULL, geom1, NULL));
- BAD(scad_geometry_copy("sphere 1", geom1, NULL)); /* Name already in use */
- OK(scad_geometry_copy("Sphere 1", geom1, &geom));
+ BAD(scad_geometry_copy(NULL, &geom));
+ BAD(scad_geometry_copy(geom1, NULL));
+ BAD(scad_geometry_copy(geom1, NULL)); /* Name already in use */
+ OK(scad_geometry_copy(geom1, &geom));
OK(scad_geometry_ref_put(geom));
BAD(scad_geometry_rename(NULL, NULL));
+ OK(scad_geometry_rename(geom1, "sphere 1"));
BAD(scad_geometry_rename(geom2, "sphere 1")); /* Name already in use */
OK(scad_geometry_rename(geom2, NULL));
- BAD(scad_geometry_translate(NULL, NULL, NULL, NULL));
- BAD(scad_geometry_translate(NULL, NULL, NULL, &geom));
- BAD(scad_geometry_translate(NULL, NULL, d1, NULL));
- BAD(scad_geometry_translate(NULL, NULL, d1, &geom));
- BAD(scad_geometry_translate(NULL, geom1, NULL, NULL));
- BAD(scad_geometry_translate(NULL, geom1, NULL, &geom));
- BAD(scad_geometry_translate(NULL, geom1, d1, NULL));
- OK(scad_geometry_translate(NULL, geom1, d1, &geom));
+ BAD(scad_geometry_translate(NULL, NULL, NULL));
+ BAD(scad_geometry_translate(NULL, NULL, &geom));
+ BAD(scad_geometry_translate(NULL, d1, NULL));
+ BAD(scad_geometry_translate(NULL, d1, &geom));
+ BAD(scad_geometry_translate(geom1, NULL, NULL));
+ BAD(scad_geometry_translate(geom1, NULL, &geom));
+ BAD(scad_geometry_translate(geom1, d1, NULL));
+ OK(scad_geometry_translate(geom1, d1, &geom));
OK(scad_geometry_ref_put(geom));
- BAD(scad_geometry_rotate(NULL, NULL, NULL, NULL, 1, NULL));
- BAD(scad_geometry_rotate(NULL, NULL, NULL, NULL, 1, &geom));
- BAD(scad_geometry_rotate(NULL, NULL, NULL, d1, 1, NULL));
- BAD(scad_geometry_rotate(NULL, NULL, NULL, d1, 1, &geom));
- BAD(scad_geometry_rotate(NULL, NULL, p1, NULL, 1, NULL));
- BAD(scad_geometry_rotate(NULL, NULL, p1, NULL, 1, &geom));
- BAD(scad_geometry_rotate(NULL, NULL, p1, d1, 1, NULL));
- BAD(scad_geometry_rotate(NULL, NULL, p1, d1, 1, &geom));
- BAD(scad_geometry_rotate(NULL, geom1, NULL, NULL, 1, NULL));
- BAD(scad_geometry_rotate(NULL, geom1, NULL, NULL, 1, &geom));
- BAD(scad_geometry_rotate(NULL, geom1, NULL, d1, 1, NULL));
- BAD(scad_geometry_rotate(NULL, geom1, NULL, d1, 1, &geom));
- BAD(scad_geometry_rotate(NULL, geom1, p1, NULL, 1, NULL));
- BAD(scad_geometry_rotate(NULL, geom1, p1, NULL, 1, &geom));
- BAD(scad_geometry_rotate(NULL, geom1, p1, d1, 1, NULL));
- OK(scad_geometry_rotate(NULL, geom1, p1, d1, 1, &geom));
-
- BAD(scad_geometry_extrude(NULL, NULL, d1, &geom));
- BAD(scad_geometry_extrude(NULL, poly, NULL, &geom));
- BAD(scad_geometry_extrude(NULL, poly, d1, NULL));
- OK(scad_geometry_extrude(NULL, poly, d1, &geom));
+ BAD(scad_geometry_rotate(NULL, NULL, NULL, 1, NULL));
+ BAD(scad_geometry_rotate(NULL, NULL, NULL, 1, &geom));
+ BAD(scad_geometry_rotate(NULL, NULL, d1, 1, NULL));
+ BAD(scad_geometry_rotate(NULL, NULL, d1, 1, &geom));
+ BAD(scad_geometry_rotate(NULL, p1, NULL, 1, NULL));
+ BAD(scad_geometry_rotate(NULL, p1, NULL, 1, &geom));
+ BAD(scad_geometry_rotate(NULL, p1, d1, 1, NULL));
+ BAD(scad_geometry_rotate(NULL, p1, d1, 1, &geom));
+ BAD(scad_geometry_rotate(geom1, NULL, NULL, 1, NULL));
+ BAD(scad_geometry_rotate(geom1, NULL, NULL, 1, &geom));
+ BAD(scad_geometry_rotate(geom1, NULL, d1, 1, NULL));
+ BAD(scad_geometry_rotate(geom1, NULL, d1, 1, &geom));
+ BAD(scad_geometry_rotate(geom1, p1, NULL, 1, NULL));
+ BAD(scad_geometry_rotate(geom1, p1, NULL, 1, &geom));
+ BAD(scad_geometry_rotate(geom1, p1, d1, 1, NULL));
+ OK(scad_geometry_rotate(geom1, p1, d1, 1, &geom));
+
+ BAD(scad_geometry_extrude(NULL, d1, &geom));
+ BAD(scad_geometry_extrude(poly, NULL, &geom));
+ BAD(scad_geometry_extrude(poly, d1, NULL));
+ OK(scad_geometry_extrude(poly, d1, &geom));
OK(scad_geometry_ref_put(poly));
OK(scad_geometry_ref_put(geom));
diff --git a/src/test_export.c b/src/test_export.c
@@ -41,12 +41,15 @@ main(int argc, char* argv[])
OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator));
OK(scad_initialize(NULL, &allocator, 3));
- OK(scad_add_rectangle("rectangle", p1, d1, &rectangle));
- OK(scad_add_box("cube", p1, d1, &cube));
- OK(scad_add_cylinder(NULL, p2, d1, 0.5, 2*PI, geoms+1));
+ OK(scad_add_rectangle(p1, d1, &rectangle));
+ OK(scad_geometry_rename(rectangle, "rectangle"));
+ OK(scad_add_box(p1, d1, &cube));
+ OK(scad_geometry_rename(cube, "cube"));
+ OK(scad_add_cylinder(p2, d1, 0.5, 2*PI, geoms+1));
geoms[0] = cube;
- OK(scad_geometries_fuse("fused", geoms, 1, geoms+1, 1, &fused));
+ OK(scad_geometries_fuse(geoms, 1, geoms+1, 1, &fused));
+ OK(scad_geometry_rename(fused, "fused"));
OK(scad_scene_mesh());
diff --git a/src/test_export2.c b/src/test_export2.c
@@ -62,9 +62,12 @@ main(int argc, char* argv[])
darray_double_init(&allocator, &array);
OK(scad_initialize(NULL, &allocator, 3));
- OK(scad_add_box("cube1", p1, d1, &cube1));
- OK(scad_add_box("cube2", p2, d2, &cube2));
- OK(scad_add_box("cube3", p3, d3, &cube3));
+ OK(scad_add_box(p1, d1, &cube1));
+ OK(scad_geometry_rename(cube1, "cube1"));
+ OK(scad_add_box(p2, d2, &cube2));
+ OK(scad_geometry_rename(cube2, "cube2"));
+ OK(scad_add_box(p3, d3, &cube3));
+ OK(scad_geometry_rename(cube3, "cube3"));
OK(scad_scene_mesh());
diff --git a/src/test_lifetime.c b/src/test_lifetime.c
@@ -42,7 +42,7 @@ alive_and_well
for(i = 0; i < c; i++) {
double dir1[3] = {0, 0, 1};
struct scad_geometry* gg;
- OK(scad_geometry_extrude("a_n_w_extruded", geom_array[i], dir1, &gg));
+ OK(scad_geometry_extrude(geom_array[i], dir1, &gg));
OK(scad_geometry_ref_put(geom_array[i]));
OK(scad_geometry_ref_put(gg));
}
@@ -76,7 +76,7 @@ main(int argc, char* argv[])
OK(scad_set_options(&options));
/* Check that 2D constituants of a deleted 3D object are alive and well */
- OK(scad_add_box("box", p1, diago, &geom));
+ OK(scad_add_box(p1, diago, &geom));
OK(scad_geometries_boundary("boundary", &geom, 1, &list, &list_n));
OK(scad_geometry_ref_put(geom));
for(i = 0; i < list_n; i++) {
@@ -85,8 +85,8 @@ main(int argc, char* argv[])
MEM_RM(&allocator, list); list = NULL;
/* Check that a 3D derivative of a deleted 2D object is alive and well */
- OK(scad_add_rectangle("rect", p1, base, &geom));
- OK(scad_geometry_extrude("cube", geom, dir1, &geom1));
+ OK(scad_add_rectangle(p1, base, &geom));
+ OK(scad_geometry_extrude(geom, dir1, &geom1));
OK(scad_geometry_ref_put(geom));
OK(scad_geometries_boundary("boundary", &geom1, 1, &list, &list_n));
OK(scad_geometry_ref_put(geom1));
@@ -96,18 +96,18 @@ main(int argc, char* argv[])
MEM_RM(&allocator, list); list = NULL;
/* Check that a 2D part of a deleted 3D object is alive and well */
- OK(scad_add_rectangle("rect2", p1, base, &geom));
- OK(scad_geometry_extrude("cube2", geom, dir1, &geom1));
+ OK(scad_add_rectangle(p1, base, &geom));
+ OK(scad_geometry_extrude(geom, dir1, &geom1));
OK(scad_geometry_ref_put(geom1));
alive_and_well(geom, &allocator);
- OK(scad_add_box("cavity", p1, diago, &geom1));
+ OK(scad_add_box(p1, diago, &geom1));
OK(scad_geometries_boundary("bcavity", &geom1, 1, &list, &list_n));
for(i = 0; i < list_n; i++) {
OK(scad_geometry_get_count(list[i], ¢er_n));
ASSERT(center_n == 1);
OK(scad_geometry_get_centerofmass(list[i], center));
- OK(scad_geometry_normal(NULL, list[i], center, N, &geom));
+ OK(scad_geometry_normal(list[i], center, N, &geom));
}
OK(scad_geometry_ref_put(geom));
for(i = 0; i < list_n; i++) {
@@ -118,8 +118,8 @@ main(int argc, char* argv[])
/* Check that 2D constituants of a deleted 3D object are alive and well after
* a partition */
- OK(scad_add_box("box1", p1, diago, geoms+0));
- OK(scad_add_box("box2", p1, diago_, geoms+1));
+ OK(scad_add_box(p1, diago, geoms+0));
+ OK(scad_add_box(p1, diago_, geoms+1));
OK(scad_geometries_boundary(NULL, geoms+0, 1, &list, &list_n));
OK(scad_geometries_boundary(NULL, geoms+1, 1, &list2, &list_n2));
OK(scad_geometries_partition(geoms, 2, 0, out_geoms));
diff --git a/src/test_partition.c b/src/test_partition.c
@@ -56,8 +56,8 @@ two_geoms
/* set position for cube #2 */
d3(p2, x, 0.25, 0.25);
- OK(scad_add_box("cube1", p1, d1, geoms+0));
- OK(scad_add_box("cube2", p2, d2, geoms+1));
+ OK(scad_add_box(p1, d1, geoms+0));
+ OK(scad_add_box(p2, d2, geoms+1));
/* Try to partition.
* Fails if the 2 cubes overlap and overlapping is not allowed. */
diff --git a/src/test_periodic.c b/src/test_periodic.c
@@ -43,9 +43,9 @@ main(int argc, char* argv[])
OK(scad_initialize(NULL, &allocator, 2));
r2 = r1 * XR;
- OK(scad_add_cylinder(NULL, p1, d2, r1, 2*PI, &cyl1));
- OK(scad_add_cylinder(NULL, p1, d2, r2, 2*PI, &cyl2));
- OK(scad_geometries_cut("cylinder", &cyl2, 1, &cyl1, 1, &cyl));
+ OK(scad_add_cylinder(p1, d2, r1, 2*PI, &cyl1));
+ OK(scad_add_cylinder(p1, d2, r2, 2*PI, &cyl2));
+ OK(scad_geometries_cut(&cyl2, 1, &cyl1, 1, &cyl));
OK(scad_geometry_ref_put(cyl1));
OK(scad_geometry_ref_put(cyl2));
OK(scad_geometries_boundary(NULL, &cyl, 1, &faces, &facesn));