|
Blender V4.3
|
#include <mutex>#include "DNA_key_types.h"#include "DNA_mesh_types.h"#include "BLI_array.hh"#include "BLI_math_vector.h"#include "BLI_math_vector.hh"#include "BLI_math_vector_types.hh"#include "BLI_task.hh"#include "BKE_attribute_math.hh"#include "BKE_customdata.hh"#include "BKE_key.hh"#include "BKE_mesh.hh"#include "BKE_mesh_mapping.hh"#include "BKE_subdiv.hh"#include "BKE_subdiv_eval.hh"#include "BKE_subdiv_foreach.hh"#include "BKE_subdiv_mesh.hh"#include "MEM_guardedalloc.h"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::bke |
| namespace | blender::bke::subdiv |
Functions | |
Subdivision context | |
| static void | blender::bke::subdiv::subdiv_mesh_ctx_cache_uv_layers (SubdivMeshContext *ctx) |
| static void | blender::bke::subdiv::subdiv_mesh_ctx_cache_custom_data_layers (SubdivMeshContext *ctx) |
| static void | blender::bke::subdiv::subdiv_mesh_prepare_accumulator (SubdivMeshContext *ctx, int num_vertices) |
| static void | blender::bke::subdiv::subdiv_mesh_context_free (SubdivMeshContext *ctx) |
Loop custom data copy helpers | |
| static void | blender::bke::subdiv::loops_of_ptex_get (LoopsOfPtex *loops_of_ptex, const IndexRange coarse_face, const int ptex_of_face_index) |
Vertex custom data interpolation helpers | |
| static void | blender::bke::subdiv::vertex_interpolation_init (const SubdivMeshContext *ctx, VerticesForInterpolation *vertex_interpolation, const IndexRange coarse_face) |
| static void | blender::bke::subdiv::vertex_interpolation_from_corner (const SubdivMeshContext *ctx, VerticesForInterpolation *vertex_interpolation, const IndexRange coarse_face, const int corner) |
| static void | blender::bke::subdiv::vertex_interpolation_end (VerticesForInterpolation *vertex_interpolation) |
Loop custom data interpolation helpers | |
| static void | blender::bke::subdiv::loop_interpolation_init (const SubdivMeshContext *ctx, LoopsForInterpolation *loop_interpolation, const IndexRange coarse_face) |
| static void | blender::bke::subdiv::loop_interpolation_from_corner (const SubdivMeshContext *ctx, LoopsForInterpolation *loop_interpolation, const IndexRange coarse_face, const int corner) |
| static void | blender::bke::subdiv::loop_interpolation_end (LoopsForInterpolation *loop_interpolation) |
TLS | |
| static void | blender::bke::subdiv::subdiv_mesh_tls_free (void *tls_v) |
Evaluation helper functions | |
| static void | blender::bke::subdiv::subdiv_vertex_orco_evaluate (const SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, const int subdiv_vertex_index) |
Accumulation helpers | |
| static void | blender::bke::subdiv::subdiv_accumulate_vertex_displacement (SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, const int subdiv_vertex_index) |
Callbacks | |
| static bool | blender::bke::subdiv::subdiv_mesh_topology_info (const ForeachContext *foreach_context, const int num_vertices, const int num_edges, const int num_loops, const int num_faces, const int *) |
Vertex subdivision process | |
| static void | blender::bke::subdiv::subdiv_vertex_data_copy (const SubdivMeshContext *ctx, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_vertex_data_interpolate (const SubdivMeshContext *ctx, const int subdiv_vertex_index, const VerticesForInterpolation *vertex_interpolation, const float u, const float v) |
| static void | blender::bke::subdiv::evaluate_vertex_and_apply_displacement_copy (const SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::evaluate_vertex_and_apply_displacement_interpolate (const SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, VerticesForInterpolation *vertex_interpolation, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_displacement_every_corner_or_edge (const ForeachContext *foreach_context, void *, const int ptex_face_index, const float u, const float v, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_displacement_every_corner (const ForeachContext *foreach_context, void *tls, const int ptex_face_index, const float u, const float v, const int, const int, const int, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_displacement_every_edge (const ForeachContext *foreach_context, void *tls, const int ptex_face_index, const float u, const float v, const int, const int, const int, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_corner (const ForeachContext *foreach_context, void *, const int ptex_face_index, const float u, const float v, const int coarse_vertex_index, const int, const int, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_ensure_vertex_interpolation (SubdivMeshContext *ctx, SubdivMeshTLS *tls, const int coarse_face_index, const int coarse_corner) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_edge (const ForeachContext *foreach_context, void *tls_v, const int ptex_face_index, const float u, const float v, const int, const int coarse_face_index, const int coarse_corner, const int subdiv_vertex_index) |
| static bool | blender::bke::subdiv::subdiv_mesh_is_center_vertex (const IndexRange coarse_face, const float u, const float v) |
| static void | blender::bke::subdiv::subdiv_mesh_tag_center_vertex (const IndexRange coarse_face, const int subdiv_vertex_index, const float u, const float v, Mesh *subdiv_mesh) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_inner (const ForeachContext *foreach_context, void *tls_v, const int ptex_face_index, const float u, const float v, const int coarse_face_index, const int coarse_corner, const int subdiv_vertex_index) |
Edge subdivision process | |
| static void | blender::bke::subdiv::subdiv_copy_edge_data (SubdivMeshContext *ctx, const int subdiv_edge_index, const int coarse_edge_index) |
| static void | blender::bke::subdiv::subdiv_mesh_edge (const ForeachContext *foreach_context, void *, const int coarse_edge_index, const int subdiv_edge_index, const bool, const int subdiv_v1, const int subdiv_v2) |
Loops creation/interpolation | |
| static void | blender::bke::subdiv::subdiv_interpolate_corner_data (const SubdivMeshContext *ctx, const int subdiv_loop_index, const LoopsForInterpolation *loop_interpolation, const float u, const float v) |
| static void | blender::bke::subdiv::subdiv_eval_uv_layer (SubdivMeshContext *ctx, const int corner_index, const int ptex_face_index, const float u, const float v) |
| static void | blender::bke::subdiv::subdiv_mesh_ensure_loop_interpolation (SubdivMeshContext *ctx, SubdivMeshTLS *tls, const int coarse_face_index, const int coarse_corner) |
| static void | blender::bke::subdiv::subdiv_mesh_loop (const ForeachContext *foreach_context, void *tls_v, const int ptex_face_index, const float u, const float v, const int, const int coarse_face_index, const int coarse_corner, const int subdiv_loop_index, const int subdiv_vertex_index, const int subdiv_edge_index) |
Polygons subdivision process | |
| static void | blender::bke::subdiv::subdiv_mesh_face (const ForeachContext *foreach_context, void *, const int coarse_face_index, const int subdiv_face_index, const int start_loop_index, const int) |
Loose elements subdivision process | |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_loose (const ForeachContext *foreach_context, void *, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static std::array< std::optional< int2 >, 2 > | blender::bke::subdiv::find_edge_neighbors (const Span< int2 > coarse_edges, const GroupedSpan< int > vert_to_edge_map, const int edge_index) |
| static std::array< float3, 4 > | blender::bke::subdiv::find_loose_edge_interpolation_positions (const Span< float3 > coarse_positions, const int2 &coarse_edge, const std::array< std::optional< int2 >, 2 > &neighbors) |
| float3 | blender::bke::subdiv::mesh_interpolate_position_on_edge (Span< float3 > coarse_positions, Span< int2 > coarse_edges, GroupedSpan< int > vert_to_edge_map, int coarse_edge_index, bool is_simple, float u) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_of_loose_edge_interpolate (SubdivMeshContext *ctx, const int2 &coarse_edge, const float u, const int subdiv_vertex_index) |
| static void | blender::bke::subdiv::subdiv_mesh_vertex_of_loose_edge (const ForeachContext *foreach_context, void *, const int coarse_edge_index, const float u, const int subdiv_vertex_index) |
Initialization | |
| static void | blender::bke::subdiv::setup_foreach_callbacks (const SubdivMeshContext *subdiv_context, ForeachContext *foreach_context) |
Public entry point | |
| Mesh * | blender::bke::subdiv::subdiv_to_mesh (Subdiv *subdiv, const ToMeshSettings *settings, const Mesh *coarse_mesh) |