ClangFormat: apply to source, most of intern
[blender.git] / intern / opensubdiv / internal / opensubdiv_converter_orient.h
1 // Copyright 2018 Blender Foundation. All rights reserved.
2 //
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Author: Sergey Sharybin
18
19 #ifndef OPENSUBDIV_CONVERTER_ORIENT_H_
20 #  define OPENSUBDIV_CONVERTER_ORIENT_H_
21
22 #  include <opensubdiv/far/types.h>
23
24 // Set of utility functions which are needed to bring topology to an orientation
25 // (or, winding, if you wish) which OpenSubdiv expects.
26
27 namespace opensubdiv_capi {
28
29 inline void reverseFaceVertices(int *face_vertices, const int num_vertices);
30
31 // TODO(sergey): Document which value corresponds to which winding.
32 inline int getLoopWinding(int vert0_of_face, int vert1_of_face);
33
34 inline void reverseFaceLoops(OpenSubdiv::Far::IndexArray *face_vertices,
35                              OpenSubdiv::Far::IndexArray *face_edges);
36
37 // Used for debugging, checks whether orientation happened correct.
38 void checkOrientedVertexConnectivity(const int num_vertex_edges,
39                                      const int num_vertex_faces,
40                                      const int *vertex_edges,
41                                      const int *vertex_faces,
42                                      const int *dst_vertex_edges,
43                                      const int *dst_vertex_faces);
44
45 }  // namespace opensubdiv_capi
46
47 #endif  // OPENSUBDIV_CONVERTER_ORIENT_H_
48
49 #include "internal/opensubdiv_converter_orient_impl.h"