Mesh: Replace auto smooth with node group #108014
|
@ -443,7 +443,7 @@ static void add_orco_mesh(
|
|||
|
||||
static void mesh_calc_modifier_final_normals(const bool sculpt_dyntopo, Mesh *mesh_final)
|
||||
{
|
||||
const eAttrDomain domain = mesh_final->normal_domain_all_info();
|
||||
const eAttrDomain domain = eAttrDomain(mesh_final->normal_domain_all_info());
|
||||
|
||||
/* Needed as `final_datamask` is not preserved outside modifier stack evaluation. */
|
||||
SubsurfRuntimeData *subsurf_runtime_data = mesh_final->runtime->subsurf_runtime_data;
|
||||
|
@ -1056,7 +1056,7 @@ bool editbmesh_modifier_is_enabled(const Scene *scene,
|
|||
|
||||
static void editbmesh_calc_modifier_final_normals(Mesh *mesh_final)
|
||||
{
|
||||
const eAttrDomain domain = mesh_final->normal_domain_all_info();
|
||||
const eAttrDomain domain = eAttrDomain(mesh_final->normal_domain_all_info());
|
||||
|
||||
SubsurfRuntimeData *subsurf_runtime_data = mesh_final->runtime->subsurf_runtime_data;
|
||||
if (subsurf_runtime_data) {
|
||||
|
|
|
@ -1478,8 +1478,6 @@ void BKE_mesh_sharp_edges_set_from_angle(Mesh *me, const float angle)
|
|||
}
|
||||
bke::SpanAttributeWriter<bool> sharp_edges = attributes.lookup_or_add_for_write_span<bool>(
|
||||
"sharp_edge", ATTR_DOMAIN_EDGE);
|
||||
const bool *sharp_edges = static_cast<const bool *>(
|
||||
CustomData_get_layer_named(&me->edge_data, CD_PROP_BOOL, "sharp_edge"));
|
||||
const bool *sharp_faces = static_cast<const bool *>(
|
||||
CustomData_get_layer_named(&me->face_data, CD_PROP_BOOL, "sharp_face"));
|
||||
bke::mesh::edges_sharp_from_angle_set(me->faces(),
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "BKE_modifier.h"
|
||||
#include "BKE_multires.hh"
|
||||
#include "BKE_node.hh"
|
||||
#include "BKE_node_runtime.hh"
|
||||
|
||||
#include "BLT_translation.h"
|
||||
|
||||
|
|
|
@ -299,7 +299,7 @@ void normals_calc_face_vert(const Span<float3> positions,
|
|||
/** \name Mesh Normal Calculation
|
||||
* \{ */
|
||||
|
||||
eAttrDomain Mesh::normal_domain_all_info() const
|
||||
int Mesh::normal_domain_all_info() const
|
||||
{
|
||||
using namespace blender;
|
||||
using namespace blender::bke;
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_lattice.h"
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
* To update preference defaults see `userdef_default.c`.
|
||||
*/
|
||||
|
||||
#define DNA_DEPRECATED_ALLOW
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BLI_listbase.h"
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <pxr/base/tf/staticTokens.h>
|
||||
#include <pxr/imaging/hd/tokens.h>
|
||||
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_mesh_runtime.hh"
|
||||
|
@ -233,9 +234,10 @@ void MeshData::write_submeshes(const Mesh *mesh)
|
|||
const Span<int> corner_verts = mesh->corner_verts();
|
||||
const Span<MLoopTri> looptris = mesh->looptris();
|
||||
|
||||
Array<float3> corner_normals(mesh->totloop);
|
||||
BKE_mesh_calc_normals_split_ex(
|
||||
mesh, nullptr, reinterpret_cast<float(*)[3]>(corner_normals.data()));
|
||||
Span<float3> corner_normals;
|
||||
if (mesh->normal_domain_all_info() == ATTR_DOMAIN_CORNER) {
|
||||
corner_normals = mesh->corner_normals();
|
||||
}
|
||||
|
||||
const float2 *uv_map = static_cast<const float2 *>(
|
||||
CustomData_get_layer(&mesh->loop_data, CD_PROP_FLOAT2));
|
||||
|
|
Loading…
Reference in New Issue