Files
test/source/blender/bmesh/tools/bmesh_decimate.h
Campbell Barton e955c94ed3 License Headers: Set copyright to "Blender Authors", add AUTHORS
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.

While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.

Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.

Some directories in `./intern/` have also been excluded:

- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.

An "AUTHORS" file has been added, using the chromium projects authors
file as a template.

Design task: #110784

Ref !110783.
2023-08-16 00:20:26 +10:00

60 lines
2.0 KiB
C

/* SPDX-FileCopyrightText: 2023 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/** \file
* \ingroup bmesh
*/
#ifdef __cplusplus
extern "C" {
#endif
/**
* \brief BM_mesh_decimate
* \param bm: The mesh
* \param factor: face count multiplier [0 - 1]
* \param vweights: Optional array of vertex aligned weights [0 - 1],
* a vertex group is the usual source for this.
* \param symmetry_axis: Axis of symmetry, -1 to disable mirror decimate.
* \param symmetry_eps: Threshold when matching mirror verts.
*
* \note The caller is responsible for recalculating face and vertex normals.
* - Vertex normals are maintained while decimating,
* although they won't necessarily match the final recalculated normals.
* - Face normals are not maintained at all.
*/
void BM_mesh_decimate_collapse(BMesh *bm,
float factor,
float *vweights,
float vweight_factor,
bool do_triangulate,
int symmetry_axis,
float symmetry_eps);
/**
* \param tag_only: so we can call this from an operator.
*/
void BM_mesh_decimate_unsubdivide_ex(BMesh *bm, int iterations, bool tag_only);
void BM_mesh_decimate_unsubdivide(BMesh *bm, int iterations);
void BM_mesh_decimate_dissolve_ex(BMesh *bm,
float angle_limit,
bool do_dissolve_boundaries,
BMO_Delimit delimit,
BMVert **vinput_arr,
int vinput_len,
BMEdge **einput_arr,
int einput_len,
short oflag_out);
void BM_mesh_decimate_dissolve(BMesh *bm,
float angle_limit,
bool do_dissolve_boundaries,
const BMO_Delimit delimit);
#ifdef __cplusplus
}
#endif