23 [&](
const int i) {
data.slice(
faces[i].drop_front(1)).reverse(); });
34 T *
data =
static_cast<T *
>(
53 const int a = face[j + 1];
54 const int b = face.
last(j);
55 std::swap(corner_verts[a], corner_verts[
b]);
56 std::swap(corner_edges[a - 1], corner_edges[
b]);
70 for (
const int corner :
faces[i]) {
84 if (
ELEM(iter.
name,
".corner_vert",
".corner_edge")) {
89 using T = decltype(dummy);
90 flip_corner_data(faces, selection, attribute.span.typed<T>());
95 mesh.tag_face_winding_changed();
CustomData interface, see also DNA_customdata_types.h.
int CustomData_sizeof(eCustomDataType type)
void * CustomData_get_layer_for_write(CustomData *data, eCustomDataType type, int totelem)
int CustomData_number_of_layers(const CustomData *data, eCustomDataType type)
void * CustomData_get_layer_n_for_write(CustomData *data, eCustomDataType type, int n, int totelem)
void BKE_mesh_mdisp_flip(MDisps *md, bool use_loop_mdisp_flip)
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between and object coordinate space Combine Create a color from its and value channels Color Retrieve a color attribute
constexpr int64_t last(const int64_t n=0) const
constexpr int64_t size() const
void foreach_attribute(const FunctionRef< void(const AttributeIter &)> fn) const
eCustomDataType data_type
GSpanAttributeWriter lookup_for_write_span(StringRef attribute_id)
void foreach_index(Fn &&fn) const
local_group_size(16, 16) .push_constant(Type b
void convert_to_static_type(const CPPType &cpp_type, const Func &func)
static void flip_corner_data(const OffsetIndices< int > faces, const IndexMask &face_selection, MutableSpan< T > data)
static void flip_custom_data_type(const OffsetIndices< int > faces, CustomData &corner_data, const IndexMask &face_selection, const eCustomDataType data_type)
void mesh_flip_faces(Mesh &mesh, const IndexMask &selection)
GPU_SHADER_INTERFACE_INFO(overlay_edit_curve_handle_iface, "vert").flat(Type pos vertex_in(1, Type::UINT, "data") .vertex_out(overlay_edit_curve_handle_iface) .geometry_layout(PrimitiveIn Frequency::GEOMETRY storage_buf(1, Qualifier::READ, "uint", "data[]", Frequency::GEOMETRY) .push_constant(Type Frequency::GEOMETRY selection[]