Files
test/source/blender/bmesh/tools/bmesh_decimate.h
Campbell Barton 3d3bc74884 Cleanup: remove redundant const qualifiers for POD types
MSVC used to warn about const mismatch for arguments passed by value.
Remove these as newer versions of MSVC no longer show this warning.
2022-01-07 14:16:26 +11:00

63 lines
2.6 KiB
C

/*
* 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 2
* 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, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#pragma once
/** \file
* \ingroup bmesh
*/
/**
* \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);