Functions `mesh_create_eval_final_view()` and
`mesh_create_eval_final_render()` were doing the exact same thing,
except for a hack introduced in d3eb9dddd6 (2012-10-08, Better fix for
T32846: dupligroup messes up particle instancing on rendering) that
appears to be no longer necessary. Besides that, these functions had
confusing names. Their functionality changed over time, and whether to
do for-render or for-viewport evaluation is now actually determined by
the depsgraph evaluation mode. This means that the `..._render` function
could evaluate a mesh with viewport settings, and vice versa.
The functions are now merged into `mesh_create_eval_final()`, and the
hack has been removed. The `OB_NO_PSYS_UPDATE` flag has been removed
entirely (instead of keeping it around as deprecated flag), because it
was always only temporarily set on objects during mesh evaluation and
thus not saved to the blend file.
No expected functional changes as far as users are concerned.
108 lines
4.5 KiB
C
108 lines
4.5 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.
|
|
*
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*/
|
|
#pragma once
|
|
|
|
/** \file
|
|
* \ingroup bke
|
|
*
|
|
* This file contains access functions for the Mesh.runtime struct.
|
|
*/
|
|
|
|
//#include "BKE_customdata.h" /* for CustomDataMask */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct CustomData;
|
|
struct CustomData_MeshMasks;
|
|
struct Depsgraph;
|
|
struct KeyBlock;
|
|
struct MLoop;
|
|
struct MLoopTri;
|
|
struct MVertTri;
|
|
struct Mesh;
|
|
struct Object;
|
|
struct Scene;
|
|
|
|
void BKE_mesh_runtime_reset(struct Mesh *mesh);
|
|
void BKE_mesh_runtime_reset_on_copy(struct Mesh *mesh, const int flag);
|
|
int BKE_mesh_runtime_looptri_len(const struct Mesh *mesh);
|
|
void BKE_mesh_runtime_looptri_recalc(struct Mesh *mesh);
|
|
const struct MLoopTri *BKE_mesh_runtime_looptri_ensure(struct Mesh *mesh);
|
|
bool BKE_mesh_runtime_ensure_edit_data(struct Mesh *mesh);
|
|
bool BKE_mesh_runtime_clear_edit_data(struct Mesh *mesh);
|
|
bool BKE_mesh_runtime_reset_edit_data(struct Mesh *mesh);
|
|
void BKE_mesh_runtime_clear_geometry(struct Mesh *mesh);
|
|
void BKE_mesh_runtime_clear_cache(struct Mesh *mesh);
|
|
|
|
void BKE_mesh_runtime_verttri_from_looptri(struct MVertTri *r_verttri,
|
|
const struct MLoop *mloop,
|
|
const struct MLoopTri *looptri,
|
|
int looptri_num);
|
|
|
|
/* NOTE: the functions below are defined in DerivedMesh.c, and are intended to be moved
|
|
* to a more suitable location when that file is removed.
|
|
* They should also be renamed to use conventions from BKE, not old DerivedMesh.c.
|
|
* For now keep the names similar to avoid confusion. */
|
|
struct Mesh *mesh_get_eval_final(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask);
|
|
|
|
struct Mesh *mesh_get_eval_deform(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask);
|
|
|
|
struct Mesh *mesh_create_eval_final(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask);
|
|
|
|
struct Mesh *mesh_create_eval_final_index_render(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask,
|
|
int index);
|
|
|
|
struct Mesh *mesh_create_eval_no_deform(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask);
|
|
struct Mesh *mesh_create_eval_no_deform_render(struct Depsgraph *depsgraph,
|
|
struct Scene *scene,
|
|
struct Object *ob,
|
|
const struct CustomData_MeshMasks *dataMask);
|
|
|
|
void BKE_mesh_runtime_eval_to_meshkey(struct Mesh *me_deformed,
|
|
struct Mesh *me,
|
|
struct KeyBlock *kb);
|
|
|
|
#ifndef NDEBUG
|
|
char *BKE_mesh_runtime_debug_info(struct Mesh *me_eval);
|
|
void BKE_mesh_runtime_debug_print(struct Mesh *me_eval);
|
|
void BKE_mesh_runtime_debug_print_cdlayers(struct CustomData *data);
|
|
bool BKE_mesh_runtime_is_valid(struct Mesh *me_eval);
|
|
#endif /* NDEBUG */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|