Blender V5.0
mesh_triangulate.cc File Reference

Go to the source code of this file.

Classes

struct  blender::geometry::TriKey
struct  blender::geometry::FaceHash
struct  blender::geometry::FacesEquality

Namespaces

namespace  blender
namespace  blender::geometry
namespace  blender::geometry::quad
namespace  blender::geometry::ngon

Enumerations

enum class  blender::geometry::quad::QuadDirection : int8_t { blender::geometry::quad::Edge_0_2 = 0 , blender::geometry::quad::Edge_1_3 = 1 }

Functions

static void blender::geometry::gather (const Span< int > src, const Span< int16_t > indices, MutableSpan< int > dst)
static Span< int > blender::geometry::gather_or_reference (const Span< int > src, const Span< int16_t > indices, Vector< int > &dst)
static Span< int > blender::geometry::gather_or_reference (const Span< int > src, const IndexMaskSegment mask, Vector< int > &dst)
static Span< float3blender::geometry::face_normals_if_worthwhile (const Mesh &src_mesh, const int selection_size)
static void blender::geometry::copy_loose_vert_hint (const Mesh &src, Mesh &dst)
static QuadDirection blender::geometry::quad::calc_quad_direction_beauty (const float3 &v0, const float3 &v1, const float3 &v2, const float3 &v3)
static void blender::geometry::quad::calc_quad_directions (const Span< float3 > positions, const Span< int > face_offsets, const Span< int > corner_verts, const TriangulateQuadMode quad_mode, MutableSpan< QuadDirection > directions)
static void blender::geometry::quad::calc_corner_tris (const Span< int > face_offsets, const Span< QuadDirection > directions, MutableSpan< int3 > corner_tris)
static void blender::geometry::quad::calc_corner_tris (const Span< float3 > positions, const OffsetIndices< int > src_faces, const Span< int > src_corner_verts, const IndexMask &quads, const TriangulateQuadMode quad_mode, MutableSpan< int3 > corner_tris)
static OffsetIndices< int > blender::geometry::gather_selected_offsets (const OffsetIndices< int > src_offsets, const IndexMaskSegment selection, MutableSpan< int > dst_offsets)
static OffsetIndices< int > blender::geometry::ngon::calc_tris_by_ngon (const OffsetIndices< int > src_faces, const IndexMask &ngons, MutableSpan< int > face_offset_data)
static void blender::geometry::ngon::calc_corner_tris (const Span< float3 > positions, const OffsetIndices< int > src_faces, const Span< int > src_corner_verts, const Span< float3 > face_normals, const IndexMask &ngons, const OffsetIndices< int > tris_by_ngon, const TriangulateNGonMode ngon_mode, MutableSpan< int3 > corner_tris)
static int3 blender::geometry::tri_to_ordered (const int3 tri)
static Span< int3blender::geometry::tri_to_ordered_tri (MutableSpan< int3 > tris)
static IndexMask blender::geometry::face_tris_mask (const OffsetIndices< int > src_faces, const IndexMask &mask, IndexMaskMemory &memory)
static IndexMask blender::geometry::tris_in_set (const IndexMask &tri_mask, const OffsetIndices< int > faces, const Span< int > corner_verts, const VectorSet< TriKey, 4, DefaultProbingStrategy, FaceHash, FacesEquality, SimpleVectorSetSlot< TriKey, int > > &unique_tris, IndexMaskMemory &memory)
static void blender::geometry::face_keys_to_face_indices (const Span< TriKey > faces, MutableSpan< int > indices)
static void blender::geometry::quad_indices_of_tris (const IndexMask &quads, MutableSpan< int > indices)
static void blender::geometry::ngon_indices_of_tris (const IndexMask &ngons, const OffsetIndices< int > tris_by_ngon, MutableSpan< int > indices)
std::optional< Mesh * > blender::geometry::mesh_triangulate (const Mesh &src_mesh, const IndexMask &selection, TriangulateNGonMode ngon_mode, TriangulateQuadMode quad_mode, const bke::AttributeFilter &attribute_filter)