Graphite
Version 3
An experimental 3D geometry processing program
mesh_decimate.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2000-2022 Inria
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
13
* * Neither the name of the ALICE Project-Team nor the names of its
14
* contributors may be used to endorse or promote products derived from this
15
* software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*
29
* Contact: Bruno Levy
30
*
31
* https://www.inria.fr/fr/bruno-levy
32
*
33
* Inria,
34
* Domaine de Voluceau,
35
* 78150 Le Chesnay - Rocquencourt
36
* FRANCE
37
*
38
*/
39
40
#ifndef GEOGRAM_MESH_MESH_DECIMATE
41
#define GEOGRAM_MESH_MESH_DECIMATE
42
43
#include <
geogram/basic/common.h
>
44
#include <
geogram/basic/numeric.h
>
45
#include <
geogram/basic/memory.h
>
46
52
namespace
GEO
{
53
class
Mesh;
54
61
enum
MeshDecimateMode
{
62
MESH_DECIMATE_FAST
= 0,
63
MESH_DECIMATE_DUP_F
= 1,
64
MESH_DECIMATE_DEG_3
= 2,
65
MESH_DECIMATE_KEEP_B
= 4,
66
MESH_DECIMATE_DEFAULT
=
67
MESH_DECIMATE_DUP_F
|
68
MESH_DECIMATE_DEG_3
|
69
MESH_DECIMATE_KEEP_B
71
};
72
84
void
GEOGRAM_API
mesh_decimate_vertex_clustering
(
85
Mesh
& M,
index_t
nb_bins,
86
MeshDecimateMode
mode =
MESH_DECIMATE_DEFAULT
,
87
geo_index_t
* vertices_flags =
nullptr
88
);
89
}
90
91
#endif
geo_index_t
unsigned int geo_index_t
Represents indices.
Definition:
defs.h:133
GEO::Mesh
Represents a mesh.
Definition:
mesh.h:2693
common.h
Common include file, providing basic definitions. Should be included before anything else by all head...
memory.h
Types and functions for memory manipulation.
GEO
Global Vorpaline namespace.
Definition:
lua_grob_shader.h:53
GEO::MeshDecimateMode
MeshDecimateMode
Determines the operating mode of mesh_decimate_vertex_clustering(). The flags can be combined with th...
Definition:
mesh_decimate.h:61
GEO::MESH_DECIMATE_FAST
@ MESH_DECIMATE_FAST
Definition:
mesh_decimate.h:62
GEO::MESH_DECIMATE_DEG_3
@ MESH_DECIMATE_DEG_3
Definition:
mesh_decimate.h:64
GEO::MESH_DECIMATE_KEEP_B
@ MESH_DECIMATE_KEEP_B
Definition:
mesh_decimate.h:65
GEO::MESH_DECIMATE_DEFAULT
@ MESH_DECIMATE_DEFAULT
Definition:
mesh_decimate.h:66
GEO::MESH_DECIMATE_DUP_F
@ MESH_DECIMATE_DUP_F
Definition:
mesh_decimate.h:63
GEO::mesh_decimate_vertex_clustering
void mesh_decimate_vertex_clustering(Mesh &M, index_t nb_bins, MeshDecimateMode mode=MESH_DECIMATE_DEFAULT, geo_index_t *vertices_flags=nullptr)
Generates a simplified representation of a mesh.
GEO::index_t
geo_index_t index_t
The type for storing and manipulating indices.
Definition:
numeric.h:329
numeric.h
Types and functions for numbers manipulation.
geogram
mesh
mesh_decimate.h
Generated on Fri Sep 13 2024 12:25:25 for Graphite by
1.9.1