1 /* 2 * This program is free software; you can redistribute it and/or 3 * modify it under the terms of the GNU General Public License 4 * as published by the Free Software Foundation; either version 2 5 * of the License, or (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software Foundation, 14 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 15 * 16 * The Original Code is Copyright (C) 2018 by Blender Foundation. 17 * All rights reserved. 18 */ 19 20 /** \file 21 * \ingroup bke 22 */ 23 24 #pragma once 25 26 #include "BLI_sys_types.h" 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 struct Mesh; 33 struct Subdiv; 34 35 typedef struct SubdivToMeshSettings { 36 /* Resolution at which regular ptex (created for quad polygon) are being 37 * evaluated. This defines how many vertices final mesh will have: every 38 * regular ptex has resolution^2 vertices. Special (irregular, or ptex 39 * created for a corner of non-quad polygon) will have resolution of 40 * `resolution - 1`. 41 */ 42 int resolution; 43 /* When true, only edges emitted from coarse ones will be displayed. */ 44 bool use_optimal_display; 45 } SubdivToMeshSettings; 46 47 /* Create real hi-res mesh from subdivision, all geometry is "real". */ 48 struct Mesh *BKE_subdiv_to_mesh(struct Subdiv *subdiv, 49 const SubdivToMeshSettings *settings, 50 const struct Mesh *coarse_mesh); 51 52 #ifdef __cplusplus 53 } 54 #endif 55