35 Span<int> corner_verts,
36 GroupedSpan<int> vert_to_face_map,
37 GSpan color_attribute,
39 Span<Vector<int>> vert_neighbors,
40 MutableSpan<float4> smooth_colors);
43 Span<int> corner_verts,
44 BitSpan boundary_verts,
47 MutableSpan<float3> new_positions);
50 MutableSpan<float3> new_positions);
52 MutableSpan<float3> new_positions);
59 Span<Vector<int>> vert_neighbors,
77 Span<float3> orig_positions,
80 MutableSpan<float3> laplacian_disp,
81 MutableSpan<float3> translations);
83 Span<float3> average_laplacian_disp,
85 MutableSpan<float3> translations);
88 Span<float3> vert_normals,
89 OffsetIndices<int> faces,
90 Span<int> corner_verts,
91 GroupedSpan<int> vert_to_face_map,
92 BitSpan boundary_verts,
95 bool filter_boundary_face_sets,
98 Vector<Vector<int>> &neighbors,
99 MutableSpan<float3> translations);
101 OffsetIndices<int> faces,
102 Span<int> corner_verts,
104 GroupedSpan<int> vert_to_face_map,
105 BitSpan boundary_verts,
107 bool filter_boundary_face_sets,
109 Vector<Vector<SubdivCCGCoord>> &neighbors,
110 MutableSpan<float3> translations);
112 Span<float3> positions,
113 const int face_set_offset,
114 bool filter_boundary_face_sets,
116 Vector<Vector<BMVert *>> &neighbors,
117 MutableSpan<float3> translations);
ATTR_WARN_UNUSED_RESULT const BMVert * v
void calc_relaxed_translations_grids(const SubdivCCG &subdiv_ccg, const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > face_sets, const GroupedSpan< int > vert_to_face_map, const BitSpan boundary_verts, const Span< int > grids, const bool filter_boundary_face_sets, const Span< float > factors, Vector< Vector< SubdivCCGCoord > > &neighbors, const MutableSpan< float3 > translations)
void average_data_bmesh(const Span< T > src, const Set< BMVert *, 0 > &verts, const MutableSpan< T > dst)
void neighbor_position_average_interior_grids(const OffsetIndices< int > faces, const Span< int > corner_verts, const BitSpan boundary_verts, const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float3 > new_positions)
void neighbor_data_average_mesh_check_loose(const Span< T > src, const Span< int > verts, const Span< Vector< int > > vert_neighbors, const MutableSpan< T > dst)
void neighbor_position_average_interior_bmesh(const Set< BMVert *, 0 > &verts, const MutableSpan< float3 > new_positions)
void calc_relaxed_translations_faces(const Span< float3 > vert_positions, const Span< float3 > vert_normals, const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const BitSpan boundary_verts, const Span< int > face_sets, const Span< bool > hide_poly, const bool filter_boundary_face_sets, const Span< int > verts, const Span< float > factors, Vector< Vector< int > > &neighbors, const MutableSpan< float3 > translations)
static float3 average_positions(const CCGKey &key, const Span< float3 > positions, const Span< SubdivCCGCoord > coords)
void calc_relaxed_translations_bmesh(const Set< BMVert *, 0 > &verts, const Span< float3 > positions, const int face_set_offset, const bool filter_boundary_face_sets, const Span< float > factors, Vector< Vector< BMVert * > > &neighbors, const MutableSpan< float3 > translations)
void surface_smooth_laplacian_step(const Span< float3 > positions, const Span< float3 > orig_positions, const Span< float3 > average_positions, const float alpha, MutableSpan< float3 > laplacian_disp, MutableSpan< float3 > translations)
void surface_smooth_displace_step(const Span< float3 > laplacian_disp, const Span< float3 > average_laplacian_disp, const float beta, const MutableSpan< float3 > translations)
void neighbor_color_average(const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const GSpan color_attribute, const bke::AttrDomain color_domain, const Span< Vector< int > > vert_neighbors, const MutableSpan< float4 > smooth_colors)
void bmesh_four_neighbor_average(float avg[3], const float3 &direction, const BMVert *v)
void neighbor_data_average_mesh(const Span< T > src, const Span< Vector< int > > vert_neighbors, const MutableSpan< T > dst)
void average_data_grids(const SubdivCCG &subdiv_ccg, const Span< T > src, const Span< int > grids, const MutableSpan< T > dst)
void blur_geometry_data_array(const Object &object, const int iterations, const MutableSpan< float > data)
void neighbor_position_average_bmesh(const Set< BMVert *, 0 > &verts, const MutableSpan< float3 > new_positions)
ccl_device_inline float beta(float x, float y)