/* SPDX-FileCopyrightText: 2023 Blender Authors * * SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once /** \file * \ingroup bke */ #include "BLI_array.hh" #include "BLI_bounds_types.hh" #include "BLI_math_vector_types.hh" struct BMEditMesh; namespace blender::bke { struct EditMeshData { /** when set, \a vertexNos, faceNos are lazy initialized */ Array vertexCos; /** lazy initialize (when \a vertexCos is set) */ Array vertexNos; Array faceNos; /** also lazy init but don't depend on \a vertexCos */ Array faceCos; }; } // namespace blender::bke void BKE_editmesh_cache_ensure_face_normals(BMEditMesh &em, blender::bke::EditMeshData &emd); void BKE_editmesh_cache_ensure_vert_normals(BMEditMesh &em, blender::bke::EditMeshData &emd); void BKE_editmesh_cache_ensure_face_centers(BMEditMesh &em, blender::bke::EditMeshData &emd); std::optional> BKE_editmesh_cache_calc_minmax( const BMEditMesh &em, const blender::bke::EditMeshData &emd);