|
Blender
V2.93
|
#include "BKE_subdiv_foreach.h"#include "atomic_ops.h"#include "DNA_key_types.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "BLI_bitmap.h"#include "BLI_task.h"#include "BKE_customdata.h"#include "BKE_key.h"#include "BKE_mesh.h"#include "BKE_subdiv.h"#include "BKE_subdiv_mesh.h"#include "MEM_guardedalloc.h"Go to the source code of this file.
Classes | |
| struct | SubdivForeachTaskContext |
Typedefs | |
Context which is passed to all threaded tasks | |
| typedef struct SubdivForeachTaskContext | SubdivForeachTaskContext |
Functions | |
General helpers | |
| BLI_INLINE int | num_ptex_faces_per_poly_get (const MPoly *poly) |
| BLI_INLINE int | num_edges_per_ptex_face_get (const int resolution) |
| BLI_INLINE int | num_inner_edges_per_ptex_face_get (const int resolution) |
| BLI_INLINE int | num_polys_per_ptex_get (const int resolution) |
| BLI_INLINE int | ptex_face_resolution_get (const MPoly *poly, int resolution) |
Threading helpers | |
| static void * | subdiv_foreach_tls_alloc (SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_tls_free (SubdivForeachTaskContext *ctx, void *tls) |
Initialization | |
| static void | subdiv_foreach_ctx_count (SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_init_offsets (SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_init (Subdiv *subdiv, SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_free (SubdivForeachTaskContext *ctx) |
Vertex traversal process | |
| static void | subdiv_foreach_corner_vertices_regular_do (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly, SubdivForeachVertexFromCornerCb vertex_corner, bool check_usage) |
| static void | subdiv_foreach_corner_vertices_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_corner_vertices_special_do (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly, SubdivForeachVertexFromCornerCb vertex_corner, bool check_usage) |
| static void | subdiv_foreach_corner_vertices_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_corner_vertices (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_corner_vertices_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_corner_vertices_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_corner_vertices (SubdivForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_edge_vertices_regular_do (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly, SubdivForeachVertexFromEdgeCb vertex_edge, bool check_usage) |
| static void | subdiv_foreach_edge_vertices_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_edge_vertices_special_do (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly, SubdivForeachVertexFromEdgeCb vertex_edge, bool check_usage) |
| static void | subdiv_foreach_edge_vertices_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_edge_vertices (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_edge_vertices_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_edge_vertices_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_every_edge_vertices (SubdivForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_inner_vertices_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_inner_vertices_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_inner_vertices (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_vertices (SubdivForeachTaskContext *ctx, void *tls, const int poly_index) |
Edge traversal process | |
| static int | subdiv_foreach_edges_row (SubdivForeachTaskContext *ctx, void *tls, const int coarse_edge_index, const int start_subdiv_edge_index, const int start_vertex_index, const int num_edges_per_row) |
| static int | subdiv_foreach_edges_column (SubdivForeachTaskContext *ctx, void *tls, const int coarse_start_edge_index, const int coarse_end_edge_index, const int start_subdiv_edge_index, const int start_vertex_index, const int num_edges_per_row) |
| static void | subdiv_foreach_edges_all_patches_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_edges_all_patches_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_edges_all_patches (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_edges (SubdivForeachTaskContext *ctx, void *tls, int poly_index) |
| static void | subdiv_foreach_boundary_edges (SubdivForeachTaskContext *ctx, void *tls, int coarse_edge_index) |
Loops traversal | |
| static void | rotate_indices (const int rot, int *a, int *b, int *c, int *d) |
| static void | subdiv_foreach_loops_of_poly (SubdivForeachTaskContext *ctx, void *tls, int subdiv_loop_start_index, const int ptex_face_index, const int coarse_poly_index, const int coarse_corner_index, const int rotation, int v0, int e0, int v1, int e1, int v2, int e2, int v3, int e3, const float u, const float v, const float du, const float dv) |
| static int | subdiv_foreach_loops_corner_index (const float u, const float v, const float du, const float dv) |
| static void | subdiv_foreach_loops_regular (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_loops_special (SubdivForeachTaskContext *ctx, void *tls, const MPoly *coarse_poly) |
| static void | subdiv_foreach_loops (SubdivForeachTaskContext *ctx, void *tls, int poly_index) |
Polygons traverse process | |
| static void | subdiv_foreach_polys (SubdivForeachTaskContext *ctx, void *tls, int poly_index) |
Loose elements traverse process | |
| static void | subdiv_foreach_loose_vertices_task (void *__restrict userdata, const int coarse_vertex_index, const TaskParallelTLS *__restrict tls) |
| static void | subdiv_foreach_vertices_of_loose_edges_task (void *__restrict userdata, const int coarse_edge_index, const TaskParallelTLS *__restrict tls) |
Subdivision process entry points | |
| static void | subdiv_foreach_single_geometry_vertices (SubdivForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_mark_non_loose_geometry (SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_single_thread_tasks (SubdivForeachTaskContext *ctx) |
| static void | subdiv_foreach_task (void *__restrict userdata, const int poly_index, const TaskParallelTLS *__restrict tls) |
| static void | subdiv_foreach_boundary_edges_task (void *__restrict userdata, const int edge_index, const TaskParallelTLS *__restrict tls) |
| static void | subdiv_foreach_free (const void *__restrict userdata, void *__restrict userdata_chunk) |
| bool | BKE_subdiv_foreach_subdiv_geometry (Subdiv *subdiv, const SubdivForeachContext *context, const SubdivToMeshSettings *mesh_settings, const Mesh *coarse_mesh) |
| typedef struct SubdivForeachTaskContext SubdivForeachTaskContext |
| bool BKE_subdiv_foreach_subdiv_geometry | ( | Subdiv * | subdiv, |
| const SubdivForeachContext * | context, | ||
| const SubdivToMeshSettings * | mesh_settings, | ||
| const Mesh * | coarse_mesh | ||
| ) |
Definition at line 1865 of file subdiv_foreach.c.
References BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), SubdivForeachTaskContext::coarse_mesh, context, SubdivForeachTaskContext::foreach_context, TaskParallelSettings::func_free, TaskParallelSettings::min_iter_per_thread, NULL, SubdivForeachTaskContext::num_subdiv_edges, SubdivForeachTaskContext::num_subdiv_loops, SubdivForeachTaskContext::num_subdiv_polygons, SubdivForeachTaskContext::num_subdiv_vertices, SubdivForeachTaskContext::settings, subdiv_foreach_boundary_edges_task(), subdiv_foreach_ctx_free(), subdiv_foreach_ctx_init(), subdiv_foreach_free(), subdiv_foreach_loose_vertices_task(), subdiv_foreach_single_thread_tasks(), subdiv_foreach_task(), subdiv_foreach_vertices_of_loose_edges_task(), Mesh::totedge, Mesh::totpoly, Mesh::totvert, TaskParallelSettings::userdata_chunk, and TaskParallelSettings::userdata_chunk_size.
| BLI_INLINE int num_edges_per_ptex_face_get | ( | const int | resolution | ) |
Definition at line 53 of file subdiv_foreach.c.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_loops_regular().
| BLI_INLINE int num_inner_edges_per_ptex_face_get | ( | const int | resolution | ) |
Definition at line 58 of file subdiv_foreach.c.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_loops_special().
| BLI_INLINE int num_polys_per_ptex_get | ( | const int | resolution | ) |
Definition at line 67 of file subdiv_foreach.c.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_polys().
| BLI_INLINE int num_ptex_faces_per_poly_get | ( | const MPoly * | poly | ) |
Definition at line 48 of file subdiv_foreach.c.
References MPoly::totloop.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_polys().
| BLI_INLINE int ptex_face_resolution_get | ( | const MPoly * | poly, |
| int | resolution | ||
| ) |
Definition at line 73 of file subdiv_foreach.c.
References MPoly::totloop.
Referenced by subdiv_foreach_edges_all_patches_special(), subdiv_foreach_inner_vertices_special(), subdiv_foreach_loops_regular(), subdiv_foreach_loops_special(), and subdiv_foreach_polys().
|
static |
Definition at line 1041 of file subdiv_foreach.c.
References Freestyle::a, Freestyle::c, and rot.
Referenced by subdiv_foreach_loops_of_poly().
|
static |
Definition at line 1008 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachContext::edge, SubdivForeachTaskContext::edge_boundary_offset, SubdivForeachTaskContext::foreach_context, Mesh::medge, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, v1, MEdge::v1, v2, MEdge::v2, SubdivForeachTaskContext::vertices_corner_offset, and SubdivForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_boundary_edges_task().
|
static |
Definition at line 1851 of file subdiv_foreach.c.
References subdiv_foreach_boundary_edges().
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 392 of file subdiv_foreach.c.
References subdiv_foreach_corner_vertices_regular(), subdiv_foreach_corner_vertices_special(), and MPoly::totloop.
Referenced by subdiv_foreach_single_geometry_vertices().
|
static |
Definition at line 345 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_regular_do(), and SubdivForeachContext::vertex_corner.
Referenced by subdiv_foreach_corner_vertices().
|
static |
Definition at line 311 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::coarse_vertices_used_map, SubdivForeachTaskContext::face_ptex_offset, SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::mloop, Mesh::mpoly, MPoly::totloop, v, MLoop::v, and SubdivForeachTaskContext::vertices_corner_offset.
Referenced by subdiv_foreach_corner_vertices_regular(), and subdiv_foreach_every_corner_vertices_regular().
|
static |
Definition at line 384 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_special_do(), and SubdivForeachContext::vertex_corner.
Referenced by subdiv_foreach_corner_vertices().
|
static |
Definition at line 353 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::coarse_vertices_used_map, SubdivForeachTaskContext::face_ptex_offset, SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::mloop, Mesh::mpoly, MPoly::totloop, MLoop::v, and SubdivForeachTaskContext::vertices_corner_offset.
Referenced by subdiv_foreach_corner_vertices_special(), and subdiv_foreach_every_corner_vertices_special().
|
static |
Definition at line 162 of file subdiv_foreach.c.
References BLI_BITMAP_ENABLE, BLI_BITMAP_TEST_BOOL, SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, MLoop::e, MPoly::loopstart, Mesh::mloop, Mesh::mpoly, num_edges_per_ptex_face_get(), num_inner_edges_per_ptex_face_get(), num_polys_per_ptex_get(), num_ptex_faces_per_poly_get(), SubdivForeachTaskContext::num_subdiv_edges, SubdivForeachTaskContext::num_subdiv_loops, SubdivForeachTaskContext::num_subdiv_polygons, SubdivForeachTaskContext::num_subdiv_vertices, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, Mesh::totedge, MPoly::totloop, Mesh::totpoly, and Mesh::totvert.
Referenced by subdiv_foreach_ctx_init().
|
static |
Definition at line 294 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_vertices_used_map, MEM_freeN, SubdivForeachTaskContext::subdiv_edge_offset, SubdivForeachTaskContext::subdiv_polygon_offset, and SubdivForeachTaskContext::subdiv_vertex_offset.
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 273 of file subdiv_foreach.c.
References BKE_subdiv_face_ptex_offset_get(), BLI_BITMAP_NEW, BLI_bitmap_set_all(), SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::coarse_vertices_used_map, SubdivForeachTaskContext::face_ptex_offset, MEM_malloc_arrayN, SubdivForeachTaskContext::subdiv_edge_offset, subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), SubdivForeachTaskContext::subdiv_polygon_offset, SubdivForeachTaskContext::subdiv_vertex_offset, Mesh::totedge, Mesh::totpoly, and Mesh::totvert.
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 224 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::edge_boundary_offset, SubdivForeachTaskContext::edge_inner_offset, Mesh::mpoly, num_edges_per_ptex_face_get(), num_inner_edges_per_ptex_face_get(), num_polys_per_ptex_get(), num_ptex_faces_per_poly_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_edge_offset, SubdivForeachTaskContext::subdiv_polygon_offset, SubdivForeachTaskContext::subdiv_vertex_offset, Mesh::totedge, MPoly::totloop, Mesh::totpoly, Mesh::totvert, SubdivForeachTaskContext::vertices_corner_offset, SubdivForeachTaskContext::vertices_edge_offset, and SubdivForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_ctx_init().
|
static |
Definition at line 580 of file subdiv_foreach.c.
References subdiv_foreach_edge_vertices_regular(), subdiv_foreach_edge_vertices_special(), and MPoly::totloop.
Referenced by subdiv_foreach_single_geometry_vertices().
|
static |
Definition at line 499 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_regular_do(), and SubdivForeachContext::vertex_edge.
Referenced by subdiv_foreach_edge_vertices().
|
static |
Definition at line 440 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachTaskContext::face_ptex_offset, float(), SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, MPoly::totloop, v, MLoop::v, MEdge::v2, and SubdivForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_edge_vertices_regular(), and subdiv_foreach_every_edge_vertices_regular().
|
static |
Definition at line 572 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_special_do(), and SubdivForeachContext::vertex_edge.
Referenced by subdiv_foreach_edge_vertices().
|
static |
Definition at line 507 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachTaskContext::face_ptex_offset, float(), SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, MPoly::totloop, v, MLoop::v, MEdge::v2, and SubdivForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_edge_vertices_special(), and subdiv_foreach_every_edge_vertices_special().
|
static |
Definition at line 1000 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, Mesh::mpoly, and subdiv_foreach_edges_all_patches().
Referenced by subdiv_foreach_task().
|
static |
Definition at line 988 of file subdiv_foreach.c.
References subdiv_foreach_edges_all_patches_regular(), subdiv_foreach_edges_all_patches_special(), and MPoly::totloop.
Referenced by subdiv_foreach_edges().
|
static |
Definition at line 789 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachContext::edge, SubdivForeachTaskContext::edge_inner_offset, SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, ORIGINDEX_NONE, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_edge_offset, subdiv_foreach_edges_column(), subdiv_foreach_edges_row(), SubdivForeachTaskContext::subdiv_vertex_offset, MPoly::totloop, MLoop::v, v1, v2, MEdge::v2, SubdivForeachTaskContext::vertices_edge_offset, and SubdivForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_edges_all_patches().
|
static |
Definition at line 870 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachContext::edge, SubdivForeachTaskContext::edge_inner_offset, SubdivForeachTaskContext::foreach_context, MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, ORIGINDEX_NONE, ptex_face_resolution_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_edge_offset, subdiv_foreach_edges_column(), subdiv_foreach_edges_row(), SubdivForeachTaskContext::subdiv_vertex_offset, MPoly::totloop, MLoop::v, v1, v2, MEdge::v2, SubdivForeachTaskContext::vertices_edge_offset, and SubdivForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_edges_all_patches().
|
static |
Definition at line 744 of file subdiv_foreach.c.
References SubdivForeachContext::edge, SubdivForeachTaskContext::foreach_context, ORIGINDEX_NONE, v1, and v2.
Referenced by subdiv_foreach_edges_all_patches_regular(), and subdiv_foreach_edges_all_patches_special().
|
static |
Definition at line 724 of file subdiv_foreach.c.
References SubdivForeachContext::edge, SubdivForeachTaskContext::foreach_context, v1, and v2.
Referenced by subdiv_foreach_edges_all_patches_regular(), and subdiv_foreach_edges_all_patches_special().
|
static |
Definition at line 420 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::foreach_context, Mesh::mpoly, NULL, subdiv_foreach_every_corner_vertices_regular(), subdiv_foreach_every_corner_vertices_special(), MPoly::totloop, Mesh::totpoly, and SubdivForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 404 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_regular_do(), and SubdivForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_every_corner_vertices().
|
static |
Definition at line 412 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_special_do(), and SubdivForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_every_corner_vertices().
|
static |
Definition at line 608 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::foreach_context, Mesh::mpoly, NULL, subdiv_foreach_every_edge_vertices_regular(), subdiv_foreach_every_edge_vertices_special(), MPoly::totloop, Mesh::totpoly, and SubdivForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 592 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_regular_do(), and SubdivForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_every_edge_vertices().
|
static |
Definition at line 600 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_special_do(), and SubdivForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_every_edge_vertices().
|
static |
Definition at line 1859 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, and SubdivForeachContext::user_data_tls_free.
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 694 of file subdiv_foreach.c.
References subdiv_foreach_inner_vertices_regular(), subdiv_foreach_inner_vertices_special(), and MPoly::totloop.
Referenced by subdiv_foreach_vertices().
|
static |
Definition at line 628 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::face_ptex_offset, float(), SubdivForeachTaskContext::foreach_context, Mesh::mpoly, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_vertex_offset, v, SubdivForeachContext::vertex_inner, SubdivForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 655 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::face_ptex_offset, float(), SubdivForeachTaskContext::foreach_context, Mesh::mpoly, ptex_face_resolution_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_vertex_offset, MPoly::totloop, v, SubdivForeachContext::vertex_inner, SubdivForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 1668 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, Mesh::mpoly, subdiv_foreach_loops_regular(), subdiv_foreach_loops_special(), and MPoly::totloop.
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1118 of file subdiv_foreach.c.
References v.
Referenced by subdiv_foreach_loops_regular().
|
static |
Definition at line 1050 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, SubdivForeachContext::loop, ORIGINDEX_NONE, rotate_indices(), v, v1, and v2.
Referenced by subdiv_foreach_loops_regular(), and subdiv_foreach_loops_special().
|
static |
Definition at line 1135 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachTaskContext::edge_boundary_offset, SubdivForeachTaskContext::edge_inner_offset, SubdivForeachTaskContext::face_ptex_offset, float(), MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, num_edges_per_ptex_face_get(), ptex_face_resolution_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_edge_offset, subdiv_foreach_loops_corner_index(), subdiv_foreach_loops_of_poly(), SubdivForeachTaskContext::subdiv_polygon_offset, SubdivForeachTaskContext::subdiv_vertex_offset, MPoly::totloop, v, MLoop::v, v1, MEdge::v1, v2, MEdge::v2, SubdivForeachTaskContext::vertices_corner_offset, SubdivForeachTaskContext::vertices_edge_offset, SubdivForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1329 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, MLoop::e, SubdivForeachTaskContext::edge_boundary_offset, SubdivForeachTaskContext::edge_inner_offset, SubdivForeachTaskContext::face_ptex_offset, float(), MPoly::loopstart, Mesh::medge, Mesh::mloop, Mesh::mpoly, num_inner_edges_per_ptex_face_get(), ptex_face_resolution_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, SubdivForeachTaskContext::subdiv_edge_offset, subdiv_foreach_loops_of_poly(), SubdivForeachTaskContext::subdiv_polygon_offset, SubdivForeachTaskContext::subdiv_vertex_offset, MPoly::totloop, v, MLoop::v, v1, MEdge::v1, v2, MEdge::v2, SubdivForeachTaskContext::vertices_corner_offset, SubdivForeachTaskContext::vertices_edge_offset, SubdivForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1720 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_BOOL, SubdivForeachTaskContext::coarse_vertices_used_map, SubdivForeachTaskContext::foreach_context, SubdivForeachContext::vertex_loose, and SubdivForeachTaskContext::vertices_corner_offset.
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 1793 of file subdiv_foreach.c.
References BLI_BITMAP_ENABLE, SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::coarse_vertices_used_map, MLoop::e, MPoly::loopstart, Mesh::mloop, Mesh::mpoly, MPoly::totloop, Mesh::totpoly, and MLoop::v.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 1687 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::foreach_context, Mesh::mpoly, num_polys_per_ptex_get(), num_ptex_faces_per_poly_get(), SubdivForeachContext::poly, ptex_face_resolution_get(), SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, and SubdivForeachTaskContext::subdiv_polygon_offset.
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1779 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::foreach_context, Mesh::mpoly, NULL, subdiv_foreach_corner_vertices(), subdiv_foreach_edge_vertices(), Mesh::totpoly, and SubdivForeachContext::vertex_corner.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 1808 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, NULL, subdiv_foreach_every_corner_vertices(), subdiv_foreach_every_edge_vertices(), subdiv_foreach_mark_non_loose_geometry(), subdiv_foreach_single_geometry_vertices(), subdiv_foreach_tls_alloc(), subdiv_foreach_tls_free(), SubdivForeachContext::vertex_every_corner, SubdivForeachContext::vertex_every_edge, SubdivForeachContext::vertex_loose, and SubdivForeachContext::vertex_of_loose_edge.
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 1832 of file subdiv_foreach.c.
References SubdivForeachContext::edge, SubdivForeachTaskContext::foreach_context, SubdivForeachContext::loop, NULL, SubdivForeachContext::poly, subdiv_foreach_edges(), subdiv_foreach_loops(), subdiv_foreach_polys(), and subdiv_foreach_vertices().
Referenced by BKE_subdiv_foreach_subdiv_geometry().
|
static |
Definition at line 133 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, MEM_mallocN, NULL, SubdivForeachContext::user_data_tls, and SubdivForeachContext::user_data_tls_size.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 144 of file subdiv_foreach.c.
References SubdivForeachTaskContext::foreach_context, MEM_freeN, NULL, and SubdivForeachContext::user_data_tls_free.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 707 of file subdiv_foreach.c.
References SubdivForeachTaskContext::coarse_mesh, SubdivForeachTaskContext::foreach_context, Mesh::mpoly, NULL, subdiv_foreach_inner_vertices(), and SubdivForeachContext::vertex_inner.
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1734 of file subdiv_foreach.c.
References BLI_BITMAP_TEST_BOOL, SubdivForeachTaskContext::coarse_edges_used_map, SubdivForeachTaskContext::coarse_mesh, float(), SubdivForeachTaskContext::foreach_context, Mesh::medge, SubdivToMeshSettings::resolution, SubdivForeachTaskContext::settings, MEdge::v1, MEdge::v2, SubdivForeachContext::vertex_of_loose_edge, SubdivForeachTaskContext::vertices_corner_offset, and SubdivForeachTaskContext::vertices_edge_offset.
Referenced by BKE_subdiv_foreach_subdiv_geometry().