|
Blender V4.5
|
Classes | |
| struct | Settings |
| struct | SubdivStats |
| struct | Displacement |
| struct | Subdiv |
| struct | ForeachContext |
| struct | ToMeshSettings |
| struct | ConverterStorage |
| struct | SubdivDeformContext |
| struct | PolyCornerIndex |
| struct | MultiresDisplacementData |
| struct | ForeachTaskContext |
| struct | SubdivMeshContext |
| struct | LoopsOfPtex |
| struct | VerticesForInterpolation |
| struct | LoopsForInterpolation |
| struct | SubdivMeshTLS |
Typedefs | |
| using | ForeachTopologyInformationCb |
| using | ForeachVertexFromCornerCb |
| using | ForeachVertexFromEdgeCb |
| using | ForeachVertexInnerCb |
| using | ForeachEdgeCb |
| using | ForeachLoopCb |
| using | ForeachPolygonCb |
| using | ForeachLooseCb |
| using | ForeachVertexOfLooseEdgeCb |
Functions | |
| void | init () |
| void | exit () |
| FVarLinearInterpolation | fvar_interpolation_from_uv_smooth (int uv_smooth) |
| VtxBoundaryInterpolation | vtx_boundary_interpolation_from_subsurf (int boundary_smooth) |
| void | stats_init (SubdivStats *stats) |
| void | stats_begin (SubdivStats *stats, StatsValue value) |
| void | stats_end (SubdivStats *stats, StatsValue value) |
| void | stats_reset (SubdivStats *stats, StatsValue value) |
| void | stats_print (const SubdivStats *stats) |
| bool | settings_equal (const Settings *settings_a, const Settings *settings_b) |
| Subdiv * | new_from_converter (const Settings *settings, OpenSubdiv_Converter *converter) |
| Subdiv * | new_from_mesh (const Settings *settings, const Mesh *mesh) |
| Subdiv * | update_from_converter (Subdiv *subdiv, const Settings *settings, OpenSubdiv_Converter *converter) |
| Subdiv * | update_from_mesh (Subdiv *subdiv, const Settings *settings, const Mesh *mesh) |
| void | free (Subdiv *subdiv) |
| void | displacement_attach_from_multires (Subdiv *subdiv, Mesh *mesh, const MultiresModifierData *mmd) |
| void | displacement_detach (Subdiv *subdiv) |
| int * | face_ptex_offset_get (Subdiv *subdiv) |
| BLI_INLINE void | ptex_face_uv_to_grid_uv (float ptex_u, float ptex_v, float *r_grid_u, float *r_grid_v) |
| BLI_INLINE void | grid_uv_to_ptex_face_uv (float grid_u, float grid_v, float *r_ptex_u, float *r_ptex_v) |
| BLI_INLINE int | grid_size_from_level (int level) |
| BLI_INLINE int | rotate_quad_to_corner (float quad_u, float quad_v, float *r_corner_u, float *r_corner_v) |
| BLI_INLINE void | rotate_grid_to_quad (int corner, float grid_u, float grid_v, float *r_quad_u, float *r_quad_v) |
| BLI_INLINE float | crease_to_sharpness (float crease) |
| BLI_INLINE float | sharpness_to_crease (float sharpness) |
| bool | eval_begin (Subdiv *subdiv, eSubdivEvaluatorType evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache, const OpenSubdiv_EvaluatorSettings *settings) |
| bool | eval_begin_from_mesh (Subdiv *subdiv, const Mesh *mesh, Span< float3float3 > coarse_vert_positions, eSubdivEvaluatorType evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache) |
| bool | eval_refine_from_mesh (Subdiv *subdiv, const Mesh *mesh, Span< float3float3 > coarse_vert_positions) |
| void | eval_init_displacement (Subdiv *subdiv) |
| void | eval_limit_point (Subdiv *subdiv, int ptex_face_index, float u, float v, float r_P[3]) |
| void | eval_limit_point_and_derivatives (Subdiv *subdiv, int ptex_face_index, float u, float v, float r_P[3], float r_dPdu[3], float r_dPdv[3]) |
| void | eval_limit_point_and_normal (Subdiv *subdiv, int ptex_face_index, float u, float v, float r_P[3], float r_N[3]) |
| void | eval_vertex_data (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_vertex_data[]) |
| void | eval_face_varying (Subdiv *subdiv, int face_varying_channel, int ptex_face_index, float u, float v, float r_face_varying[2]) |
| void | eval_displacement (Subdiv *subdiv, int ptex_face_index, float u, float v, const float dPdu[3], const float dPdv[3], float r_D[3]) |
| void | eval_final_point (Subdiv *subdiv, int ptex_face_index, float u, float v, float r_P[3]) |
| int | topology_num_fvar_layers_get (const Subdiv *subdiv) |
| void | converter_free (OpenSubdiv_Converter *converter) |
| int | converter_vtx_boundary_interpolation_from_settings (const Settings *settings) |
| int | converter_fvar_linear_from_settings (const Settings *settings) |
| void | converter_init_for_mesh (OpenSubdiv_Converter *converter, const Settings *settings, const Mesh *mesh) |
| static OpenSubdiv_SchemeType | get_scheme_type (const OpenSubdiv_Converter *converter) |
| static OpenSubdiv_VtxBoundaryInterpolation | get_vtx_boundary_interpolation (const OpenSubdiv_Converter *converter) |
| static OpenSubdiv_FVarLinearInterpolation | get_fvar_linear_interpolation (const OpenSubdiv_Converter *converter) |
| static bool | specifies_full_topology (const OpenSubdiv_Converter *) |
| static int | get_num_edges (const OpenSubdiv_Converter *converter) |
| static int | get_num_vertices (const OpenSubdiv_Converter *converter) |
| static void | get_face_vertices (const OpenSubdiv_Converter *converter, int manifold_face_index, int *manifold_face_vertices) |
| static void | get_edge_vertices (const OpenSubdiv_Converter *converter, int manifold_edge_index, int *manifold_edge_vertices) |
| static float | get_edge_sharpness (const OpenSubdiv_Converter *converter, int manifold_edge_index) |
| static bool | is_infinite_sharp_vertex (const OpenSubdiv_Converter *converter, int manifold_vertex_index) |
| static float | get_vertex_sharpness (const OpenSubdiv_Converter *converter, int manifold_vertex_index) |
| static int | get_num_uv_layers (const OpenSubdiv_Converter *converter) |
| static void | precalc_uv_layer (const OpenSubdiv_Converter *converter, const int layer_index) |
| static void | finish_uv_layer (const OpenSubdiv_Converter *) |
| static int | get_num_uvs (const OpenSubdiv_Converter *converter) |
| static int | get_face_corner_uv_index (const OpenSubdiv_Converter *converter, const int face_index, const int corner) |
| static void | free_user_data (const OpenSubdiv_Converter *converter) |
| static void | init_functions (OpenSubdiv_Converter *converter) |
| static void | initialize_manifold_index_array (const BitSpan not_used_map, const int num_elements, int **r_indices, int **r_indices_reverse, int *r_num_manifold_elements) |
| static void | initialize_manifold_indices (ConverterStorage *storage) |
| static void | init_user_data (OpenSubdiv_Converter *converter, const Settings *settings, const Mesh *mesh) |
| static int | displacement_get_grid_and_coord (Displacement *displacement, const int ptex_face_index, const float u, const float v, const MDisps **r_displacement_grid, float *grid_u, float *grid_v) |
| static const MDisps * | displacement_get_other_grid (Displacement *displacement, const int ptex_face_index, const int corner, const int corner_delta) |
| BLI_INLINE eAverageWith | read_displacement_grid (const MDisps *displacement_grid, const int grid_size, const float grid_u, const float grid_v, float r_tangent_D[3]) |
| static void | average_convert_grid_coord_to_ptex (const int num_corners, const int corner, const float grid_u, const float grid_v, float *r_ptex_face_u, float *r_ptex_face_v) |
| static void | average_construct_tangent_matrix (Subdiv *subdiv, const int num_corners, const int ptex_face_index, const int corner, const float u, const float v, float r_tangent_matrix[3][3]) |
| static void | average_read_displacement_tangent (MultiresDisplacementData *data, const MDisps *other_displacement_grid, const float grid_u, const float grid_v, float r_tangent_D[3]) |
| static void | average_read_displacement_object (MultiresDisplacementData *data, const MDisps *displacement_grid, const float grid_u, const float grid_v, const int ptex_face_index, const int corner_index, float r_D[3]) |
| static void | average_get_other_ptex_and_corner (MultiresDisplacementData *data, const int ptex_face_index, const int corner, const int corner_delta, int *r_other_ptex_face_index, int *r_other_corner_index) |
| static void | average_with_other (Displacement *displacement, const int ptex_face_index, const int corner, const float grid_u, const float grid_v, const int corner_delta, float r_D[3]) |
| static void | average_with_all (Displacement *displacement, const int ptex_face_index, const int corner, const float, const float, float r_D[3]) |
| static void | average_with_next (Displacement *displacement, const int ptex_face_index, const int corner, const float grid_u, const float, float r_D[3]) |
| static void | average_with_prev (Displacement *displacement, const int ptex_face_index, const int corner, const float, const float grid_v, float r_D[3]) |
| static void | average_displacement (Displacement *displacement, eAverageWith average_with, const int ptex_face_index, const int corner, const float grid_u, const float grid_v, float r_D[3]) |
| static int | displacement_get_face_corner (MultiresDisplacementData *data, const int ptex_face_index, const float u, const float v) |
| static void | initialize (Displacement *displacement) |
| static void | eval_displacement (Displacement *displacement, const int ptex_face_index, const float u, const float v, const float dPdu[3], const float dPdv[3], float r_D[3]) |
| static void | free_displacement (Displacement *displacement) |
| static int | count_num_ptex_faces (const Mesh *mesh) |
| static void | displacement_data_init_mapping (Displacement *displacement, const Mesh *mesh) |
| static void | displacement_init_data (Displacement *displacement, Subdiv *subdiv, Mesh *mesh, const MultiresModifierData *mmd) |
| static void | displacement_init_functions (Displacement *displacement) |
Public entry point | |
| void | deform_coarse_vertices (Subdiv *subdiv, const Mesh *coarse_mesh, MutableSpan< float3float3 > vert_positions) |
| Mesh * | subdiv_to_mesh (Subdiv *subdiv, const ToMeshSettings *settings, const Mesh *coarse_mesh) |
Subdivision process entry points | |
| bool | foreach_subdiv_geometry (Subdiv *subdiv, const ForeachContext *context, const ToMeshSettings *mesh_settings, const Mesh *coarse_mesh) |
| static void | subdiv_foreach_single_geometry_vertices (ForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_mark_non_loose_geometry (ForeachTaskContext *ctx) |
| static void | subdiv_foreach_single_thread_tasks (ForeachTaskContext *ctx) |
| static void | subdiv_foreach_task (void *__restrict userdata, const int face_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) |
Loose elements subdivision process | |
| float3float3 | mesh_interpolate_position_on_edge (Span< float3float3 > coarse_positions, Span< int2int2 > coarse_edges, GroupedSpan< int > vert_to_edge_map, int coarse_edge_index, bool is_simple, float u) |
| static void | subdiv_mesh_vertex_loose (const ForeachContext *foreach_context, void *, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static std::array< std::optional< int2int2 >, 2 > | find_edge_neighbors (const Span< int2int2 > coarse_edges, const GroupedSpan< int > vert_to_edge_map, const int edge_index) |
| static std::array< float3float3, 4 > | find_loose_edge_interpolation_positions (const Span< float3float3 > coarse_positions, const int2int2 &coarse_edge, const std::array< std::optional< int2int2 >, 2 > &neighbors) |
| static void | subdiv_mesh_vertex_of_loose_edge_interpolate (SubdivMeshContext *ctx, const int2int2 &coarse_edge, const float u, const int subdiv_vertex_index) |
| static void | subdiv_mesh_vertex_of_loose_edge (const ForeachContext *foreach_context, void *, const int coarse_edge_index, const float u, const int subdiv_vertex_index) |
Subdivision context | |
| static void | subdiv_mesh_prepare_accumulator (SubdivDeformContext *ctx, int num_vertices) |
| static void | subdiv_mesh_context_free (SubdivDeformContext *ctx) |
| static void | subdiv_mesh_ctx_cache_uv_layers (SubdivMeshContext *ctx) |
| static void | subdiv_mesh_ctx_cache_custom_data_layers (SubdivMeshContext *ctx) |
| static void | subdiv_mesh_prepare_accumulator (SubdivMeshContext *ctx, int num_vertices) |
| static void | subdiv_mesh_context_free (SubdivMeshContext *ctx) |
Accumulation helpers | |
| static void | subdiv_accumulate_vertex_displacement (SubdivDeformContext *ctx, const int ptex_face_index, const float u, const float v, int vertex_index) |
| static void | subdiv_accumulate_vertex_displacement (SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, const int subdiv_vertex_index) |
Subdivision callbacks | |
| static bool | subdiv_mesh_topology_info (const ForeachContext *foreach_context, const int, const int, const int, const int, const int *) |
| static void | subdiv_mesh_vertex_every_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) |
| static void | 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) |
Initialization | |
| static void | setup_foreach_callbacks (const SubdivDeformContext *subdiv_context, ForeachContext *foreach_context) |
| static void | subdiv_foreach_ctx_count (ForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_init_offsets (ForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_init (Subdiv *subdiv, ForeachTaskContext *ctx) |
| static void | subdiv_foreach_ctx_free (ForeachTaskContext *ctx) |
| static void | setup_foreach_callbacks (const SubdivMeshContext *subdiv_context, ForeachContext *foreach_context) |
General helpers | |
| BLI_INLINE int | num_ptex_faces_per_face_get (const IndexRange face) |
| 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_faces_per_ptex_get (const int resolution) |
| BLI_INLINE int | ptex_face_resolution_get (const IndexRange face, int resolution) |
Threading helpers | |
| static void * | subdiv_foreach_tls_alloc (ForeachTaskContext *ctx) |
| static void | subdiv_foreach_tls_free (ForeachTaskContext *ctx, void *tls) |
Vertex traversal process | |
| static void | subdiv_foreach_corner_vertices_regular_do (ForeachTaskContext *ctx, void *tls, const int coarse_face_index, ForeachVertexFromCornerCb vertex_corner, bool check_usage) |
| static void | subdiv_foreach_corner_vertices_regular (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_corner_vertices_special_do (ForeachTaskContext *ctx, void *tls, const int coarse_face_index, ForeachVertexFromCornerCb vertex_corner, bool check_usage) |
| static void | subdiv_foreach_corner_vertices_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_corner_vertices (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_corner_vertices_regular (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_corner_vertices_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_corner_vertices (ForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_edge_vertices_regular_do (ForeachTaskContext *ctx, void *tls, const int coarse_face_index, ForeachVertexFromEdgeCb vertex_edge, bool check_usage) |
| static void | subdiv_foreach_edge_vertices_regular (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_edge_vertices_special_do (ForeachTaskContext *ctx, void *tls, const int coarse_face_index, ForeachVertexFromEdgeCb vertex_edge, bool check_usage) |
| static void | subdiv_foreach_edge_vertices_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_edge_vertices (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_edge_vertices_regular (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_edge_vertices_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_every_edge_vertices (ForeachTaskContext *ctx, void *tls) |
| static void | subdiv_foreach_inner_vertices_regular (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_inner_vertices_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_inner_vertices (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_vertices (ForeachTaskContext *ctx, void *tls, const int face_index) |
Edge traversal process | |
| static int | subdiv_foreach_edges_row (ForeachTaskContext *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 (ForeachTaskContext *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 (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_edges_all_patches_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_edges_all_patches (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_edges (ForeachTaskContext *ctx, void *tls, int face_index) |
| static void | subdiv_foreach_boundary_edges (ForeachTaskContext *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_face (ForeachTaskContext *ctx, void *tls, int subdiv_loop_start_index, const int ptex_face_index, const int coarse_face_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 (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_loops_special (ForeachTaskContext *ctx, void *tls, const int coarse_face_index) |
| static void | subdiv_foreach_loops (ForeachTaskContext *ctx, void *tls, int face_index) |
Polygons traverse process | |
| static void | subdiv_foreach_faces (ForeachTaskContext *ctx, void *tls, int face_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) |
Loop custom data copy helpers | |
| static void | 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 | vertex_interpolation_init (const SubdivMeshContext *ctx, VerticesForInterpolation *vertex_interpolation, const IndexRange coarse_face) |
| static void | vertex_interpolation_from_corner (const SubdivMeshContext *ctx, VerticesForInterpolation *vertex_interpolation, const IndexRange coarse_face, const int corner) |
| static void | vertex_interpolation_end (VerticesForInterpolation *vertex_interpolation) |
Loop custom data interpolation helpers | |
| static void | loop_interpolation_init (const SubdivMeshContext *ctx, LoopsForInterpolation *loop_interpolation, const IndexRange coarse_face) |
| static void | loop_interpolation_from_corner (const SubdivMeshContext *ctx, LoopsForInterpolation *loop_interpolation, const IndexRange coarse_face, const int corner) |
| static void | loop_interpolation_end (LoopsForInterpolation *loop_interpolation) |
TLS | |
| static void | subdiv_mesh_tls_free (void *tls_v) |
Evaluation helper functions | |
| static void | subdiv_vertex_orco_evaluate (const SubdivMeshContext *ctx, const int ptex_face_index, const float u, const float v, const int subdiv_vertex_index) |
Callbacks | |
| static bool | 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 | subdiv_vertex_data_copy (const SubdivMeshContext *ctx, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static void | subdiv_vertex_data_interpolate (const SubdivMeshContext *ctx, const int subdiv_vertex_index, const VerticesForInterpolation *vertex_interpolation, const float u, const float v) |
| static void | 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 | 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 | 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 | 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 | 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 | 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 | subdiv_mesh_ensure_vertex_interpolation (SubdivMeshContext *ctx, SubdivMeshTLS *tls, const int coarse_face_index, const int coarse_corner) |
| static void | 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 | subdiv_mesh_is_center_vertex (const IndexRange coarse_face, const float u, const float v) |
| static void | 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 | 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 | subdiv_copy_edge_data (SubdivMeshContext *ctx, const int subdiv_edge_index, const int coarse_edge_index) |
| static void | 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 | subdiv_interpolate_corner_data (const SubdivMeshContext *ctx, const int subdiv_loop_index, const LoopsForInterpolation *loop_interpolation, const float u, const float v) |
| static void | subdiv_eval_uv_layer (SubdivMeshContext *ctx, const int corner_index, const int ptex_face_index, const float u, const float v) |
| static void | subdiv_mesh_ensure_loop_interpolation (SubdivMeshContext *ctx, SubdivMeshTLS *tls, const int coarse_face_index, const int coarse_corner) |
| static void | 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 | 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) |
Definition at line 57 of file BKE_subdiv_foreach.hh.
Definition at line 65 of file BKE_subdiv_foreach.hh.
Definition at line 84 of file BKE_subdiv_foreach.hh.
Definition at line 77 of file BKE_subdiv_foreach.hh.
Definition at line 21 of file BKE_subdiv_foreach.hh.
Definition at line 28 of file BKE_subdiv_foreach.hh.
Definition at line 38 of file BKE_subdiv_foreach.hh.
Definition at line 48 of file BKE_subdiv_foreach.hh.
Definition at line 89 of file BKE_subdiv_foreach.hh.
| Enumerator | |
|---|---|
| AVERAGE_WITH_NONE | |
| AVERAGE_WITH_ALL | |
| AVERAGE_WITH_PREV | |
| AVERAGE_WITH_NEXT | |
Definition at line 58 of file subdiv_displacement_multires.cc.
| Enumerator | |
|---|---|
| SUBDIV_EVALUATOR_TYPE_CPU | |
| SUBDIV_EVALUATOR_TYPE_GPU | |
Definition at line 22 of file BKE_subdiv_eval.hh.
Definition at line 32 of file BKE_subdiv.hh.
Definition at line 74 of file BKE_subdiv.hh.
| Enumerator | |
|---|---|
| SUBDIV_VTX_BOUNDARY_NONE | |
| SUBDIV_VTX_BOUNDARY_EDGE_ONLY | |
| SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER | |
Definition at line 23 of file BKE_subdiv.hh.
|
static |
Definition at line 146 of file subdiv_displacement_multires.cc.
References BKE_multires_construct_tangent_matrix(), eval_limit_point_and_derivatives(), and v.
Referenced by average_read_displacement_object().
|
static |
Definition at line 131 of file subdiv_displacement_multires.cc.
References grid_uv_to_ptex_face_uv(), and rotate_grid_to_quad().
Referenced by average_read_displacement_object().
|
static |
Definition at line 279 of file subdiv_displacement_multires.cc.
References AVERAGE_WITH_ALL, average_with_all(), AVERAGE_WITH_NEXT, average_with_next(), AVERAGE_WITH_NONE, AVERAGE_WITH_PREV, and average_with_prev().
Referenced by eval_displacement().
|
static |
Definition at line 196 of file subdiv_displacement_multires.cc.
References data, and blender::bke::subdiv::PolyCornerIndex::face_index.
Referenced by average_with_other().
|
static |
Definition at line 170 of file subdiv_displacement_multires.cc.
References average_construct_tangent_matrix(), average_convert_grid_coord_to_ptex(), average_read_displacement_tangent(), data, blender::bke::subdiv::PolyCornerIndex::face_index, mul_v3_m3v3(), and v.
Referenced by average_with_other().
|
static |
Definition at line 161 of file subdiv_displacement_multires.cc.
References data, and read_displacement_grid().
Referenced by average_read_displacement_object().
|
static |
Definition at line 243 of file subdiv_displacement_multires.cc.
References average_with_other(), data, blender::bke::subdiv::PolyCornerIndex::face_index, and blender::bke::subdiv::Displacement::user_data.
Referenced by average_displacement().
|
static |
Definition at line 259 of file subdiv_displacement_multires.cc.
References average_with_other().
Referenced by average_displacement().
|
static |
Definition at line 214 of file subdiv_displacement_multires.cc.
References add_v3_v3(), average_get_other_ptex_and_corner(), average_read_displacement_object(), data, displacement_get_other_grid(), mul_v3_fl(), and blender::bke::subdiv::Displacement::user_data.
Referenced by average_with_all(), average_with_next(), and average_with_prev().
|
static |
Definition at line 269 of file subdiv_displacement_multires.cc.
References average_with_other().
Referenced by average_displacement().
| void blender::bke::subdiv::converter_free | ( | OpenSubdiv_Converter * | converter | ) |
Definition at line 15 of file subdiv_converter.cc.
References OpenSubdiv_Converter::freeUserData.
Referenced by new_from_mesh(), and update_from_mesh().
| int blender::bke::subdiv::converter_fvar_linear_from_settings | ( | const Settings * | settings | ) |
Definition at line 36 of file subdiv_converter.cc.
References BLI_assert_msg, blender::bke::subdiv::Settings::fvar_linear_interpolation, OSD_FVAR_LINEAR_INTERPOLATION_ALL, OSD_FVAR_LINEAR_INTERPOLATION_BOUNDARIES, OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY, OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_PLUS1, OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_PLUS2, OSD_FVAR_LINEAR_INTERPOLATION_NONE, SUBDIV_FVAR_LINEAR_INTERPOLATION_ALL, SUBDIV_FVAR_LINEAR_INTERPOLATION_BOUNDARIES, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_AND_JUNCTIONS, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_JUNCTIONS_AND_CONCAVE, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY, and SUBDIV_FVAR_LINEAR_INTERPOLATION_NONE.
Referenced by get_fvar_linear_interpolation().
| void blender::bke::subdiv::converter_init_for_mesh | ( | OpenSubdiv_Converter * | converter, |
| const Settings * | settings, | ||
| const Mesh * | mesh ) |
Definition at line 382 of file subdiv_converter_mesh.cc.
References OpenSubdiv_Converter::faces, init_functions(), and init_user_data().
Referenced by new_from_mesh(), and update_from_mesh().
| int blender::bke::subdiv::converter_vtx_boundary_interpolation_from_settings | ( | const Settings * | settings | ) |
Definition at line 22 of file subdiv_converter.cc.
References BLI_assert_msg, OSD_VTX_BOUNDARY_EDGE_AND_CORNER, OSD_VTX_BOUNDARY_EDGE_ONLY, OSD_VTX_BOUNDARY_NONE, SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER, SUBDIV_VTX_BOUNDARY_EDGE_ONLY, SUBDIV_VTX_BOUNDARY_NONE, and blender::bke::subdiv::Settings::vtx_boundary_interpolation.
Referenced by get_vtx_boundary_interpolation().
|
static |
Definition at line 367 of file subdiv_displacement_multires.cc.
References faces.
Referenced by displacement_data_init_mapping().
| BLI_INLINE float blender::bke::subdiv::crease_to_sharpness | ( | float | crease | ) |
Definition at line 95 of file subdiv_inline.hh.
References BLI_INLINE.
Referenced by blender::io::alembic::get_edge_creases(), blender::io::usd::get_edge_creases(), get_edge_sharpness(), blender::io::alembic::get_vert_creases(), blender::io::usd::get_vert_creases(), and get_vertex_sharpness().
| void blender::bke::subdiv::deform_coarse_vertices | ( | Subdiv * | subdiv, |
| const Mesh * | coarse_mesh, | ||
| MutableSpan< float3float3 > | vert_positions ) |
Definition at line 179 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::coarse_mesh, eval_begin_from_mesh(), Mesh::faces_num, foreach_subdiv_geometry(), blender::bke::subdiv::SubdivDeformContext::have_displacement, blender::bke::subdiv::ToMeshSettings::resolution, setup_foreach_callbacks(), stats_begin(), stats_end(), blender::bke::subdiv::SubdivDeformContext::subdiv, SUBDIV_EVALUATOR_TYPE_CPU, subdiv_mesh_context_free(), SUBDIV_STATS_SUBDIV_TO_MESH, SUBDIV_STATS_SUBDIV_TO_MESH_GEOMETRY, blender::bke::subdiv::ToMeshSettings::use_optimal_display, blender::bke::subdiv::ForeachContext::user_data, and blender::bke::subdiv::SubdivDeformContext::vert_positions.
Referenced by deform_matrices(), and deform_matrices().
| void blender::bke::subdiv::displacement_attach_from_multires | ( | Subdiv * | subdiv, |
| Mesh * | mesh, | ||
| const MultiresModifierData * | mmd ) |
Definition at line 431 of file subdiv_displacement_multires.cc.
References CD_MDISPS, CustomData_has_layer(), displacement_detach(), displacement_init_data(), displacement_init_functions(), MEM_callocN(), and blender::bke::subdiv::Displacement::user_data.
Referenced by deform_matrices(), multires_as_ccg(), and multires_as_mesh().
|
static |
Definition at line 377 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, count_num_ptex_faces(), data, blender::bke::subdiv::PolyCornerIndex::face_index, faces, MEM_malloc_arrayN(), blender::IndexRange::size(), and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_init_data().
| void blender::bke::subdiv::displacement_detach | ( | Subdiv * | subdiv | ) |
Definition at line 15 of file subdiv_displacement.cc.
References MEM_freeN().
Referenced by displacement_attach_from_multires(), and free().
|
static |
Definition at line 302 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, data, blender::bke::subdiv::PolyCornerIndex::face_index, rotate_quad_to_corner(), and v.
Referenced by eval_displacement().
|
static |
Definition at line 65 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, data, blender::bke::subdiv::PolyCornerIndex::face_index, ptex_face_uv_to_grid_uv(), rotate_quad_to_corner(), blender::IndexRange::size(), blender::IndexRange::start(), blender::bke::subdiv::Displacement::user_data, and v.
Referenced by eval_displacement().
|
static |
Definition at line 92 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, data, blender::bke::subdiv::PolyCornerIndex::face_index, blender::IndexRange::size(), and blender::bke::subdiv::Displacement::user_data.
Referenced by average_with_other().
|
static |
Definition at line 406 of file subdiv_displacement_multires.cc.
References CD_MDISPS, CustomData_get_layer(), data, displacement_data_init_mapping(), face_ptex_offset_get(), grid_size_from_level(), MultiresModifierData::totlvl, and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_attach_from_multires().
|
static |
Definition at line 424 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::Displacement::eval_displacement, eval_displacement(), blender::bke::subdiv::Displacement::free, free_displacement(), blender::bke::subdiv::Displacement::initialize, and initialize().
Referenced by displacement_attach_from_multires().
| bool blender::bke::subdiv::eval_begin | ( | Subdiv * | subdiv, |
| eSubdivEvaluatorType | evaluator_type, | ||
| OpenSubdiv_EvaluatorCache * | evaluator_cache, | ||
| const OpenSubdiv_EvaluatorSettings * | settings ) |
Definition at line 55 of file subdiv_eval.cc.
References eval_init_displacement(), openSubdiv_createEvaluatorFromTopologyRefiner(), stats_begin(), stats_end(), stats_reset(), SUBDIV_STATS_EVALUATOR_CREATE, and UNUSED_VARS.
Referenced by eval_begin_from_mesh().
| bool blender::bke::subdiv::eval_begin_from_mesh | ( | Subdiv * | subdiv, |
| const Mesh * | mesh, | ||
| Span< float3float3 > | coarse_vert_positions, | ||
| eSubdivEvaluatorType | evaluator_type, | ||
| OpenSubdiv_EvaluatorCache * | evaluator_cache ) |
Definition at line 220 of file subdiv_eval.cc.
References eval_begin(), eval_refine_from_mesh(), and UNUSED_VARS.
Referenced by BKE_subdiv_to_ccg_mesh(), deform_coarse_vertices(), blender::draw::draw_subdiv_create_requested_buffers(), multires_reshape_create_subdiv(), and subdiv_to_mesh().
|
static |
Definition at line 326 of file subdiv_displacement_multires.cc.
References average_displacement(), BKE_multires_construct_tangent_matrix(), BLI_assert, data, displacement_get_face_corner(), displacement_get_grid_and_coord(), mul_v3_m3v3(), read_displacement_grid(), blender::bke::subdiv::Displacement::user_data, and v.
| void blender::bke::subdiv::eval_displacement | ( | Subdiv * | subdiv, |
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| const float | dPdu[3], | ||
| const float | dPdv[3], | ||
| float | r_D[3] ) |
Definition at line 367 of file subdiv_eval.cc.
Referenced by displacement_init_functions(), eval_final_point(), subdiv_accumulate_vertex_displacement(), and subdiv_accumulate_vertex_displacement().
| void blender::bke::subdiv::eval_face_varying | ( | Subdiv * | subdiv, |
| int | face_varying_channel, | ||
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| float | r_face_varying[2] ) |
Definition at line 352 of file subdiv_eval.cc.
References UNUSED_VARS, and v.
Referenced by subdiv_eval_uv_layer().
| void blender::bke::subdiv::eval_final_point | ( | Subdiv * | subdiv, |
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| float | r_P[3] ) |
Definition at line 383 of file subdiv_eval.cc.
References add_v3_v3(), D, eval_displacement(), eval_limit_point(), eval_limit_point_and_derivatives(), and v.
Referenced by subdiv_mesh_vertex_inner().
| void blender::bke::subdiv::eval_init_displacement | ( | Subdiv * | subdiv | ) |
Definition at line 275 of file subdiv_eval.cc.
Referenced by eval_begin().
| void blender::bke::subdiv::eval_limit_point | ( | Subdiv * | subdiv, |
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| float | r_P[3] ) |
Definition at line 290 of file subdiv_eval.cc.
References eval_limit_point_and_derivatives(), and v.
Referenced by BKE_subdiv_ccg_eval_limit_point(), eval_final_point(), evaluate_vertex_and_apply_displacement_copy(), evaluate_vertex_and_apply_displacement_interpolate(), and subdiv_mesh_vertex_corner().
| void blender::bke::subdiv::eval_limit_point_and_derivatives | ( | Subdiv * | subdiv, |
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| float | r_P[3], | ||
| float | r_dPdu[3], | ||
| float | r_dPdv[3] ) |
Definition at line 296 of file subdiv_eval.cc.
References equals_v3v3(), is_zero_v3(), UNUSED_VARS, and v.
Referenced by average_construct_tangent_matrix(), eval_final_point(), eval_limit_point(), eval_limit_point_and_normal(), multires_reshape_evaluate_limit_at_grid(), subdiv_accumulate_vertex_displacement(), and subdiv_accumulate_vertex_displacement().
| void blender::bke::subdiv::eval_limit_point_and_normal | ( | Subdiv * | subdiv, |
| int | ptex_face_index, | ||
| float | u, | ||
| float | v, | ||
| float | r_P[3], | ||
| float | r_N[3] ) |
Definition at line 329 of file subdiv_eval.cc.
References cross_v3_v3v3(), eval_limit_point_and_derivatives(), normalize_v3(), and v.
| bool blender::bke::subdiv::eval_refine_from_mesh | ( | Subdiv * | subdiv, |
| const Mesh * | mesh, | ||
| Span< float3float3 > | coarse_vert_positions ) |
Definition at line 239 of file subdiv_eval.cc.
References BLI_assert_msg, CD_PROP_FLOAT2, CustomData_get_layer_n(), CustomData_number_of_layers(), blender::Span< T >::is_empty(), stats_begin(), stats_end(), SUBDIV_STATS_EVALUATOR_REFINE, and UNUSED_VARS.
Referenced by eval_begin_from_mesh(), multires_reshape_apply_base_refine_from_base(), multires_reshape_apply_base_refine_from_deform(), and blender::ed::sculpt_paint::undo::refine_subdiv().
| void blender::bke::subdiv::eval_vertex_data | ( | Subdiv * | subdiv, |
| const int | ptex_face_index, | ||
| const float | u, | ||
| const float | v, | ||
| float | r_vertex_data[] ) |
Definition at line 342 of file subdiv_eval.cc.
References UNUSED_VARS, and v.
Referenced by subdiv_vertex_orco_evaluate().
|
static |
Definition at line 625 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, copy_v3_v3(), D, eval_limit_point(), blender::bke::subdiv::SubdivMeshContext::have_displacement, mul_v3_fl(), Mesh::runtime, blender::bke::subdiv::SubdivMeshContext::subdiv, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, blender::bke::subdiv::SubdivMeshContext::subdiv_positions, subdiv_vertex_data_copy(), subdiv_vertex_orco_evaluate(), and v.
Referenced by subdiv_mesh_vertex_corner().
|
static |
Definition at line 652 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, add_v3_v3(), copy_v3_v3(), D, eval_limit_point(), blender::bke::subdiv::SubdivMeshContext::have_displacement, mul_v3_fl(), blender::bke::subdiv::SubdivMeshContext::subdiv, blender::bke::subdiv::SubdivMeshContext::subdiv_positions, subdiv_vertex_data_interpolate(), subdiv_vertex_orco_evaluate(), and v.
Referenced by subdiv_mesh_vertex_edge().
| void blender::bke::subdiv::exit | ( | ) |
Definition at line 38 of file subdiv.cc.
References openSubdiv_cleanup().
Referenced by WM_exit_ex().
| int * blender::bke::subdiv::face_ptex_offset_get | ( | Subdiv * | subdiv | ) |
Definition at line 217 of file subdiv.cc.
References blender::opensubdiv::TopologyRefinerImpl::base_level(), MEM_malloc_arrayN(), and UNUSED_VARS.
Referenced by context_init_common(), displacement_init_data(), subdiv_ccg_coord_to_ptex_coord(), and subdiv_foreach_ctx_init().
|
static |
Definition at line 1004 of file subdiv_mesh.cc.
References blender::Span< T >::size().
Referenced by mesh_interpolate_position_on_edge().
|
static |
Definition at line 1021 of file subdiv_mesh.cc.
References blender::bke::mesh::edge_other_vert(), and result.
Referenced by mesh_interpolate_position_on_edge().
|
static |
Definition at line 230 of file subdiv_converter_mesh.cc.
Referenced by init_functions().
| bool blender::bke::subdiv::foreach_subdiv_geometry | ( | Subdiv * | subdiv, |
| const ForeachContext * | context, | ||
| const ToMeshSettings * | mesh_settings, | ||
| const Mesh * | coarse_mesh ) |
Definition at line 1794 of file subdiv_foreach.cc.
References BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, Mesh::edges_num, Mesh::faces_num, blender::bke::subdiv::ForeachTaskContext::foreach_context, TaskParallelSettings::func_free, TaskParallelSettings::min_iter_per_thread, blender::bke::subdiv::ForeachTaskContext::num_subdiv_edges, blender::bke::subdiv::ForeachTaskContext::num_subdiv_faces, blender::bke::subdiv::ForeachTaskContext::num_subdiv_loops, blender::bke::subdiv::ForeachTaskContext::num_subdiv_vertices, blender::bke::subdiv::ForeachTaskContext::settings, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, 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(), TaskParallelSettings::userdata_chunk, TaskParallelSettings::userdata_chunk_size, and Mesh::verts_num.
Referenced by deform_coarse_vertices(), multires_reshape_assign_final_coords_from_vertcos(), and subdiv_to_mesh().
| void blender::bke::subdiv::free | ( | Subdiv * | subdiv | ) |
Definition at line 190 of file subdiv.cc.
References BKE_subsurf_modifier_free_gpu_cache_cb, displacement_detach(), MEM_freeN(), OPENSUBDIV_EVALUATOR_CPU, and UNUSED_VARS.
Referenced by deform_matrices(), deform_matrices(), blender::draw::DRW_cache_free_old_subdiv(), free_runtime_data(), free_runtime_data(), mesh_wrapper_ensure_subdivision(), modify_mesh(), modify_mesh(), multires_do_versions_simple_to_catmull_clark(), multires_reshape_context_free(), multires_reshape_create_subdiv(), subdivide_edit_mesh(), update_from_converter(), and SubdivCCG::~SubdivCCG().
|
static |
Definition at line 357 of file subdiv_displacement_multires.cc.
References data, MEM_freeN(), and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_init_functions().
|
static |
Definition at line 247 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::loop_uv_indices, blender::bke::subdiv::ConverterStorage::manifold_edge_index_reverse, blender::bke::subdiv::ConverterStorage::manifold_vertex_index, blender::bke::subdiv::ConverterStorage::manifold_vertex_index_reverse, MEM_freeN(), MEM_SAFE_FREE, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
| FVarLinearInterpolation blender::bke::subdiv::fvar_interpolation_from_uv_smooth | ( | int | uv_smooth | ) |
Definition at line 47 of file subdiv.cc.
References BLI_assert_msg, SUBDIV_FVAR_LINEAR_INTERPOLATION_ALL, SUBDIV_FVAR_LINEAR_INTERPOLATION_BOUNDARIES, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_AND_JUNCTIONS, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_JUNCTIONS_AND_CONCAVE, SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY, SUBDIV_FVAR_LINEAR_INTERPOLATION_NONE, SUBSURF_UV_SMOOTH_ALL, SUBSURF_UV_SMOOTH_NONE, SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, SUBSURF_UV_SMOOTH_PRESERVE_CORNERS, SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_AND_JUNCTIONS, and SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE.
Referenced by BKE_multires_subdiv_settings_init(), and BKE_subsurf_modifier_settings_init().
|
static |
Definition at line 139 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::cd_edge_crease, crease_to_sharpness(), Span< T >::is_empty(), blender::bke::subdiv::Settings::is_simple, blender::bke::subdiv::ConverterStorage::manifold_edge_index_reverse, blender::bke::subdiv::ConverterStorage::settings, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 128 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::edges, blender::bke::subdiv::ConverterStorage::manifold_edge_index_reverse, blender::bke::subdiv::ConverterStorage::manifold_vertex_index, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 238 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::faces, blender::bke::subdiv::ConverterStorage::loop_uv_indices, blender::IndexRange::start(), and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 116 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::corner_verts, blender::bke::subdiv::ConverterStorage::faces, i, blender::bke::subdiv::ConverterStorage::manifold_vertex_index, blender::IndexRange::size(), and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 91 of file subdiv_converter_mesh.cc.
References converter_fvar_linear_from_settings(), blender::bke::subdiv::ConverterStorage::settings, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 104 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::num_manifold_edges, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 180 of file subdiv_converter_mesh.cc.
References CD_PROP_FLOAT2, CustomData_number_of_layers(), blender::bke::subdiv::ConverterStorage::mesh, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 232 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::num_uv_coordinates, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 110 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::num_manifold_vertices, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 67 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::Settings::is_simple, OSD_SCHEME_BILINEAR, OSD_SCHEME_CATMARK, blender::bke::subdiv::ConverterStorage::settings, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 170 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::cd_vertex_crease, crease_to_sharpness(), Span< T >::is_empty(), blender::bke::subdiv::ConverterStorage::manifold_vertex_index_reverse, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 83 of file subdiv_converter_mesh.cc.
References converter_vtx_boundary_interpolation_from_settings(), blender::bke::subdiv::ConverterStorage::settings, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
| BLI_INLINE int blender::bke::subdiv::grid_size_from_level | ( | int | level | ) |
Definition at line 38 of file subdiv_inline.hh.
References BLI_INLINE.
Referenced by allocate_displacement_grid(), BKE_subdiv_ccg_key(), BKE_subdiv_to_ccg(), displacement_init_data(), ensure_mask_grids(), foreach_grid_coordinate(), multires_reshape_context_create_from_base_mesh(), multires_reshape_context_create_from_ccg(), multires_reshape_context_create_from_object(), multires_reshape_context_create_from_subdiv(), multires_reshape_orig_grid_element_for_grid_coord(), and read_mask_grid().
| BLI_INLINE void blender::bke::subdiv::grid_uv_to_ptex_face_uv | ( | float | grid_u, |
| float | grid_v, | ||
| float * | r_ptex_u, | ||
| float * | r_ptex_v ) |
Definition at line 29 of file subdiv_inline.hh.
References BLI_INLINE.
Referenced by average_convert_grid_coord_to_ptex(), and multires_reshape_grid_coord_to_ptex().
| void blender::bke::subdiv::init | ( | ) |
|
static |
Definition at line 257 of file subdiv_converter_mesh.cc.
References finish_uv_layer(), OpenSubdiv_Converter::finishUVLayer, free_user_data(), OpenSubdiv_Converter::freeUserData, get_edge_sharpness(), get_edge_vertices(), get_face_corner_uv_index(), get_face_vertices(), get_fvar_linear_interpolation(), get_num_edges(), get_num_uv_layers(), get_num_uvs(), get_num_vertices(), get_scheme_type(), get_vertex_sharpness(), get_vtx_boundary_interpolation(), OpenSubdiv_Converter::getEdgeFaces, OpenSubdiv_Converter::getEdgeSharpness, OpenSubdiv_Converter::getEdgeVertices, OpenSubdiv_Converter::getFaceCornerUVIndex, OpenSubdiv_Converter::getFaceEdges, OpenSubdiv_Converter::getFaceVertices, OpenSubdiv_Converter::getFVarLinearInterpolation, OpenSubdiv_Converter::getNumEdgeFaces, OpenSubdiv_Converter::getNumEdges, OpenSubdiv_Converter::getNumUVCoordinates, OpenSubdiv_Converter::getNumUVLayers, OpenSubdiv_Converter::getNumVertexEdges, OpenSubdiv_Converter::getNumVertexFaces, OpenSubdiv_Converter::getNumVertices, OpenSubdiv_Converter::getSchemeType, OpenSubdiv_Converter::getVertexEdges, OpenSubdiv_Converter::getVertexFaces, OpenSubdiv_Converter::getVertexSharpness, OpenSubdiv_Converter::getVtxBoundaryInterpolation, is_infinite_sharp_vertex(), OpenSubdiv_Converter::isInfiniteSharpVertex, precalc_uv_layer(), OpenSubdiv_Converter::precalcUVLayer, specifies_full_topology(), and OpenSubdiv_Converter::specifiesFullTopology.
Referenced by converter_init_for_mesh().
|
static |
Definition at line 360 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::cd_edge_crease, blender::bke::subdiv::ConverterStorage::cd_vertex_crease, blender::bke::subdiv::ConverterStorage::corner_edges, blender::bke::subdiv::ConverterStorage::corner_verts, blender::bke::Edge, blender::bke::subdiv::ConverterStorage::edges, blender::bke::subdiv::ConverterStorage::faces, initialize_manifold_indices(), blender::bke::AttributeAccessor::lookup(), blender::bke::subdiv::ConverterStorage::loop_uv_indices, blender::bke::subdiv::ConverterStorage::mesh, blender::bke::Point, blender::bke::subdiv::ConverterStorage::settings, blender::bke::subdiv::Settings::use_creases, OpenSubdiv_Converter::user_data, and blender::bke::subdiv::ConverterStorage::vert_positions.
Referenced by converter_init_for_mesh().
|
static |
Definition at line 318 of file subdiv_displacement_multires.cc.
References data, multiresModifier_ensure_external_read(), and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_init_functions().
|
static |
Definition at line 291 of file subdiv_converter_mesh.cc.
References i, indices, blender::bits::BitSpan::is_empty(), and MEM_malloc_arrayN().
Referenced by initialize_manifold_indices().
|
static |
Definition at line 331 of file subdiv_converter_mesh.cc.
References blender::bke::LooseGeomCache::count, blender::bke::subdiv::ConverterStorage::edges, blender::bke::subdiv::ConverterStorage::infinite_sharp_vertices_map, initialize_manifold_index_array(), blender::bke::LooseGeomCache::is_loose_bits, blender::bke::subdiv::ConverterStorage::manifold_edge_index_reverse, blender::bke::subdiv::ConverterStorage::manifold_vertex_index, blender::bke::subdiv::ConverterStorage::manifold_vertex_index_reverse, blender::bke::subdiv::ConverterStorage::mesh, blender::bke::subdiv::ConverterStorage::num_manifold_edges, blender::bke::subdiv::ConverterStorage::num_manifold_vertices, and blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize().
Referenced by init_user_data().
|
static |
Definition at line 154 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::infinite_sharp_vertices_map, blender::bits::BitVector< InlineBufferCapacity, Allocator >::is_empty(), blender::bke::subdiv::Settings::is_simple, blender::bke::subdiv::ConverterStorage::manifold_vertex_index_reverse, blender::bke::subdiv::ConverterStorage::settings, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 430 of file subdiv_mesh.cc.
References blender::bke::subdiv::LoopsForInterpolation::corner_data_storage, blender::bke::subdiv::LoopsForInterpolation::corner_data_storage_allocated, and CustomData_free().
Referenced by subdiv_mesh_ensure_loop_interpolation(), and subdiv_mesh_tls_free().
|
static |
Definition at line 385 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_corner_data_interp, blender::bke::subdiv::LoopsForInterpolation::corner_data_storage, CustomData_copy_data(), CustomData_free_elem(), CustomData_interp(), blender::bke::subdiv::LoopsOfPtex::first_loop, blender::bke::subdiv::LoopsOfPtex::last_loop, loops_of_ptex_get(), blender::IndexRange::size(), and blender::IndexRange::start().
Referenced by subdiv_mesh_ensure_loop_interpolation().
|
static |
Definition at line 340 of file subdiv_mesh.cc.
References CD_MASK_EVERYTHING, CD_SET_DEFAULT, blender::bke::subdiv::SubdivMeshContext::coarse_corner_data_interp, blender::bke::subdiv::LoopsForInterpolation::corner_data, blender::bke::subdiv::LoopsForInterpolation::corner_data_storage, blender::bke::subdiv::LoopsForInterpolation::corner_data_storage_allocated, CustomData_init_layout_from(), CustomData_interp(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), i, indices, blender::bke::subdiv::LoopsForInterpolation::loop_indices, blender::IndexRange::size(), and blender::IndexRange::start().
Referenced by subdiv_mesh_ensure_loop_interpolation().
|
static |
Definition at line 156 of file subdiv_mesh.cc.
References blender::bke::subdiv::LoopsOfPtex::first_loop, blender::bke::subdiv::LoopsOfPtex::last_loop, blender::bke::subdiv::LoopsOfPtex::second_loop, blender::IndexRange::size(), blender::IndexRange::start(), and blender::bke::subdiv::LoopsOfPtex::third_loop.
Referenced by loop_interpolation_from_corner(), and vertex_interpolation_from_corner().
| float3float3 blender::bke::subdiv::mesh_interpolate_position_on_edge | ( | Span< float3float3 > | coarse_positions, |
| Span< int2int2 > | coarse_edges, | ||
| GroupedSpan< int > | vert_to_edge_map, | ||
| int | coarse_edge_index, | ||
| bool | is_simple, | ||
| float | u ) |
Interpolate a position along the coarse_edge at the relative u coordinate. If is_simple is false, this will perform a B-Spline interpolation using the edge neighbors, otherwise a linear interpolation will be done base on the edge vertices.
Definition at line 1047 of file subdiv_mesh.cc.
References find_edge_neighbors(), find_loose_edge_interpolation_positions(), blender::math::interpolate(), KEY_BSPLINE, key_curve_position_weights(), and blender::bke::attribute_math::mix4().
Referenced by subdiv_mesh_vertex_of_loose_edge().
| Subdiv * blender::bke::subdiv::new_from_converter | ( | const Settings * | settings, |
| OpenSubdiv_Converter * | converter ) |
Definition at line 98 of file subdiv.cc.
References blender::opensubdiv::TopologyRefinerImpl::createFromConverter(), OpenSubdiv_Converter::getNumVertices, blender::bke::subdiv::Settings::is_adaptive, OpenSubdiv_TopologyRefinerSettings::is_adaptive, blender::bke::subdiv::Settings::level, OpenSubdiv_TopologyRefinerSettings::level, MEM_callocN(), stats_begin(), stats_end(), stats_init(), SUBDIV_STATS_TOPOLOGY_REFINER_CREATION_TIME, and UNUSED_VARS.
Referenced by new_from_mesh(), and update_from_converter().
Definition at line 131 of file subdiv.cc.
References converter_free(), converter_init_for_mesh(), and new_from_converter().
Referenced by multires_reshape_create_subdiv(), and subdivide_edit_mesh().
| BLI_INLINE int blender::bke::subdiv::num_edges_per_ptex_face_get | ( | const int | resolution | ) |
Definition at line 34 of file subdiv_foreach.cc.
References BLI_INLINE.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_loops_regular().
| BLI_INLINE int blender::bke::subdiv::num_faces_per_ptex_get | ( | const int | resolution | ) |
Definition at line 48 of file subdiv_foreach.cc.
References BLI_INLINE.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_faces().
| BLI_INLINE int blender::bke::subdiv::num_inner_edges_per_ptex_face_get | ( | const int | resolution | ) |
Definition at line 39 of file subdiv_foreach.cc.
References BLI_INLINE.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_loops_special().
| BLI_INLINE int blender::bke::subdiv::num_ptex_faces_per_face_get | ( | const IndexRange | face | ) |
Definition at line 29 of file subdiv_foreach.cc.
References BLI_INLINE, and blender::IndexRange::size().
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_faces().
|
static |
Definition at line 187 of file subdiv_converter_mesh.cc.
References BKE_mesh_uv_vert_map_create(), BKE_mesh_uv_vert_map_free(), BKE_mesh_uv_vert_map_get_vert(), CD_PROP_FLOAT2, blender::bke::subdiv::ConverterStorage::corner_verts, CustomData_get_layer_n(), Span< T >::data(), UvMapVert::face_index, blender::bke::subdiv::ConverterStorage::faces, for(), UvMapVert::loop_of_face_index, blender::bke::subdiv::ConverterStorage::loop_uv_indices, blender::bke::subdiv::ConverterStorage::mesh, UvMapVert::next, blender::bke::subdiv::ConverterStorage::num_uv_coordinates, UvMapVert::separate, blender::IndexRange::start(), STD_UV_CONNECT_LIMIT, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
| BLI_INLINE int blender::bke::subdiv::ptex_face_resolution_get | ( | const IndexRange | face, |
| int | resolution ) |
Definition at line 54 of file subdiv_foreach.cc.
References BLI_INLINE, and blender::IndexRange::size().
Referenced by subdiv_foreach_edges_all_patches_special(), subdiv_foreach_faces(), subdiv_foreach_inner_vertices_special(), subdiv_foreach_loops_regular(), and subdiv_foreach_loops_special().
| BLI_INLINE void blender::bke::subdiv::ptex_face_uv_to_grid_uv | ( | float | ptex_u, |
| float | ptex_v, | ||
| float * | r_grid_u, | ||
| float * | r_grid_v ) |
Definition at line 20 of file subdiv_inline.hh.
References BLI_INLINE.
Referenced by displacement_get_grid_and_coord(), mask_get_grid_and_coord(), multires_reshape_grid_coord_to_ptex(), and multires_reshape_ptex_coord_to_grid().
| BLI_INLINE eAverageWith blender::bke::subdiv::read_displacement_grid | ( | const MDisps * | displacement_grid, |
| const int | grid_size, | ||
| const float | grid_u, | ||
| const float | grid_v, | ||
| float | r_tangent_D[3] ) |
Definition at line 106 of file subdiv_displacement_multires.cc.
References AVERAGE_WITH_ALL, AVERAGE_WITH_NEXT, AVERAGE_WITH_NONE, AVERAGE_WITH_PREV, BLI_INLINE, copy_v3_v3(), MDisps::disps, x, y, and zero_v3().
Referenced by average_read_displacement_tangent(), and eval_displacement().
| BLI_INLINE void blender::bke::subdiv::rotate_grid_to_quad | ( | int | corner, |
| float | grid_u, | ||
| float | grid_v, | ||
| float * | r_quad_u, | ||
| float * | r_quad_v ) |
Definition at line 73 of file subdiv_inline.hh.
References BLI_assert, and BLI_INLINE.
Referenced by average_convert_grid_coord_to_ptex(), multires_reshape_grid_coord_to_ptex(), and subdiv_ccg_coord_to_ptex_coord().
|
static |
Definition at line 981 of file subdiv_foreach.cc.
Referenced by subdiv_foreach_loops_of_face().
| BLI_INLINE int blender::bke::subdiv::rotate_quad_to_corner | ( | float | quad_u, |
| float | quad_v, | ||
| float * | r_corner_u, | ||
| float * | r_corner_v ) |
Definition at line 43 of file subdiv_inline.hh.
References BLI_assert, and BLI_INLINE.
Referenced by displacement_get_face_corner(), displacement_get_grid_and_coord(), mask_get_grid_and_coord(), and multires_reshape_ptex_coord_to_grid().
| bool blender::bke::subdiv::settings_equal | ( | const Settings * | settings_a, |
| const Settings * | settings_b ) |
Definition at line 83 of file subdiv.cc.
References blender::bke::subdiv::Settings::fvar_linear_interpolation, blender::bke::subdiv::Settings::is_adaptive, blender::bke::subdiv::Settings::is_simple, blender::bke::subdiv::Settings::level, and blender::bke::subdiv::Settings::vtx_boundary_interpolation.
Referenced by update_from_converter().
|
static |
Definition at line 160 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::have_displacement, subdiv_mesh_topology_info(), subdiv_mesh_vertex_corner(), subdiv_mesh_vertex_every_corner(), blender::bke::subdiv::ForeachContext::topology_info, blender::bke::subdiv::ForeachContext::vertex_corner, and blender::bke::subdiv::ForeachContext::vertex_every_corner.
Referenced by deform_coarse_vertices(), and subdiv_to_mesh().
|
static |
Definition at line 1123 of file subdiv_mesh.cc.
References blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::SubdivMeshContext::have_displacement, blender::bke::subdiv::ForeachContext::loop, blender::bke::subdiv::ForeachContext::poly, subdiv_mesh_edge(), subdiv_mesh_face(), subdiv_mesh_loop(), subdiv_mesh_tls_free(), subdiv_mesh_topology_info(), subdiv_mesh_vertex_corner(), subdiv_mesh_vertex_displacement_every_corner(), subdiv_mesh_vertex_displacement_every_edge(), subdiv_mesh_vertex_edge(), subdiv_mesh_vertex_inner(), subdiv_mesh_vertex_loose(), subdiv_mesh_vertex_of_loose_edge(), blender::bke::subdiv::ForeachContext::topology_info, blender::bke::subdiv::ForeachContext::user_data_tls_free, blender::bke::subdiv::ForeachContext::vertex_corner, blender::bke::subdiv::ForeachContext::vertex_edge, blender::bke::subdiv::ForeachContext::vertex_every_corner, blender::bke::subdiv::ForeachContext::vertex_every_edge, blender::bke::subdiv::ForeachContext::vertex_inner, blender::bke::subdiv::ForeachContext::vertex_loose, and blender::bke::subdiv::ForeachContext::vertex_of_loose_edge.
| BLI_INLINE float blender::bke::subdiv::sharpness_to_crease | ( | float | sharpness | ) |
Definition at line 100 of file subdiv_inline.hh.
References BLI_INLINE, and sqrt.
Referenced by blender::io::alembic::read_edge_creases(), and blender::io::alembic::read_vertex_creases().
|
static |
Definition at line 99 of file subdiv_converter_mesh.cc.
Referenced by init_functions().
| void blender::bke::subdiv::stats_begin | ( | SubdivStats * | stats, |
| StatsValue | value ) |
Definition at line 29 of file subdiv_stats.cc.
References blender::bke::subdiv::SubdivStats::begin_timestamp_, and BLI_time_now_seconds().
Referenced by BKE_subdiv_to_ccg(), BKE_subdiv_to_ccg_mesh(), deform_coarse_vertices(), eval_begin(), eval_refine_from_mesh(), new_from_converter(), subdiv_to_mesh(), and update_from_converter().
| void blender::bke::subdiv::stats_end | ( | SubdivStats * | stats, |
| StatsValue | value ) |
Definition at line 34 of file subdiv_stats.cc.
References blender::bke::subdiv::SubdivStats::begin_timestamp_, BLI_time_now_seconds(), and blender::bke::subdiv::SubdivStats::values_.
Referenced by BKE_subdiv_to_ccg(), BKE_subdiv_to_ccg_mesh(), deform_coarse_vertices(), eval_begin(), eval_refine_from_mesh(), new_from_converter(), subdiv_to_mesh(), and update_from_converter().
| void blender::bke::subdiv::stats_init | ( | SubdivStats * | stats | ) |
Definition at line 17 of file subdiv_stats.cc.
References blender::bke::subdiv::SubdivStats::evaluator_creation_time, blender::bke::subdiv::SubdivStats::evaluator_refine_time, blender::bke::subdiv::SubdivStats::subdiv_to_ccg_elements_time, blender::bke::subdiv::SubdivStats::subdiv_to_ccg_time, blender::bke::subdiv::SubdivStats::subdiv_to_mesh_geometry_time, blender::bke::subdiv::SubdivStats::subdiv_to_mesh_time, blender::bke::subdiv::SubdivStats::topology_compare_time, and blender::bke::subdiv::SubdivStats::topology_refiner_creation_time.
Referenced by new_from_converter().
| void blender::bke::subdiv::stats_print | ( | const SubdivStats * | stats | ) |
Definition at line 44 of file subdiv_stats.cc.
References printf, and STATS_PRINT_TIME.
| void blender::bke::subdiv::stats_reset | ( | SubdivStats * | stats, |
| StatsValue | value ) |
Definition at line 39 of file subdiv_stats.cc.
References blender::bke::subdiv::SubdivStats::values_.
Referenced by eval_begin().
|
static |
Definition at line 68 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, add_v3_v3(), copy_v3_v3(), D, eval_displacement(), eval_limit_point_and_derivatives(), blender::bke::subdiv::SubdivDeformContext::have_displacement, blender::bke::subdiv::SubdivDeformContext::subdiv, v, and blender::bke::subdiv::SubdivDeformContext::vert_positions.
Referenced by subdiv_mesh_vertex_displacement_every_corner_or_edge(), and subdiv_mesh_vertex_every_corner().
|
static |
|
static |
Definition at line 838 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_copy_data(), Mesh::edge_data, blender::bke::subdiv::SubdivMeshContext::edge_origindex, ORIGINDEX_NONE, blender::bke::subdiv::SubdivMeshContext::settings, blender::bke::subdiv::SubdivMeshContext::subdiv_display_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, and blender::bke::subdiv::ToMeshSettings::use_optimal_display.
Referenced by subdiv_mesh_edge().
|
static |
Definition at line 895 of file subdiv_mesh.cc.
References eval_face_varying(), blender::bke::subdiv::SubdivMeshContext::num_uv_layers, blender::bke::subdiv::SubdivMeshContext::subdiv, blender::bke::subdiv::SubdivMeshContext::uv_layers, and v.
Referenced by subdiv_mesh_loop().
|
static |
Definition at line 948 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_BOOL, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::edge_boundary_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, i, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, v2, blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset, and blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_boundary_edges_task().
|
static |
Definition at line 1780 of file subdiv_foreach.cc.
References subdiv_foreach_boundary_edges().
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 355 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, subdiv_foreach_corner_vertices_regular(), and subdiv_foreach_corner_vertices_special().
Referenced by subdiv_foreach_single_geometry_vertices().
|
static |
Definition at line 311 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_regular_do(), and blender::bke::subdiv::ForeachContext::vertex_corner.
Referenced by subdiv_foreach_corner_vertices().
|
static |
Definition at line 280 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::IndexRange::size(), v, and blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset.
Referenced by subdiv_foreach_corner_vertices_regular(), and subdiv_foreach_every_corner_vertices_regular().
|
static |
Definition at line 347 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_special_do(), and blender::bke::subdiv::ForeachContext::vertex_corner.
Referenced by subdiv_foreach_corner_vertices().
|
static |
Definition at line 319 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::IndexRange::size(), and blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset.
Referenced by subdiv_foreach_corner_vertices_special(), and subdiv_foreach_every_corner_vertices_special().
|
static |
Definition at line 147 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, Mesh::edges_num, Mesh::faces_num, num_edges_per_ptex_face_get(), num_faces_per_ptex_get(), num_inner_edges_per_ptex_face_get(), num_ptex_faces_per_face_get(), blender::bke::subdiv::ForeachTaskContext::num_subdiv_edges, blender::bke::subdiv::ForeachTaskContext::num_subdiv_faces, blender::bke::subdiv::ForeachTaskContext::num_subdiv_loops, blender::bke::subdiv::ForeachTaskContext::num_subdiv_vertices, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), and Mesh::verts_num.
Referenced by subdiv_foreach_ctx_init().
|
static |
Definition at line 263 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map, MEM_freeN(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, and blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 244 of file subdiv_foreach.cc.
References BLI_BITMAP_NEW, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map, Mesh::edges_num, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, face_ptex_offset_get(), Mesh::faces_num, MEM_malloc_arrayN(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, and Mesh::verts_num.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 196 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, blender::bke::subdiv::ForeachTaskContext::edge_boundary_offset, blender::bke::subdiv::ForeachTaskContext::edge_inner_offset, Mesh::edges_num, Mesh::faces_num, num_edges_per_ptex_face_get(), num_faces_per_ptex_get(), num_inner_edges_per_ptex_face_get(), num_ptex_faces_per_face_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset, blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset, blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset, and Mesh::verts_num.
Referenced by subdiv_foreach_ctx_init().
|
static |
Definition at line 536 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, subdiv_foreach_edge_vertices_regular(), and subdiv_foreach_edge_vertices_special().
Referenced by subdiv_foreach_single_geometry_vertices().
|
static |
Definition at line 457 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_regular_do(), and blender::bke::subdiv::ForeachContext::vertex_edge.
Referenced by subdiv_foreach_edge_vertices().
|
static |
Definition at line 401 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), v, and blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_edge_vertices_regular(), and subdiv_foreach_every_edge_vertices_regular().
|
static |
Definition at line 528 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_special_do(), and blender::bke::subdiv::ForeachContext::vertex_edge.
Referenced by subdiv_foreach_edge_vertices().
|
static |
Definition at line 465 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_AND_SET_ATOMIC, blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), v, and blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset.
Referenced by subdiv_foreach_edge_vertices_special(), and subdiv_foreach_every_edge_vertices_special().
|
static |
Definition at line 943 of file subdiv_foreach.cc.
References subdiv_foreach_edges_all_patches().
Referenced by subdiv_foreach_task().
|
static |
Definition at line 931 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, subdiv_foreach_edges_all_patches_regular(), and subdiv_foreach_edges_all_patches_special().
Referenced by subdiv_foreach_edges().
|
static |
Definition at line 737 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::edge_inner_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, i, ORIGINDEX_NONE, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, subdiv_foreach_edges_column(), subdiv_foreach_edges_row(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v2, blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_edges_all_patches().
|
static |
Definition at line 815 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::edge_inner_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, i, ORIGINDEX_NONE, ptex_face_resolution_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, subdiv_foreach_edges_column(), subdiv_foreach_edges_row(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v2, blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_edges_all_patches().
|
static |
Definition at line 692 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::foreach_context, ORIGINDEX_NONE, and v2.
Referenced by subdiv_foreach_edges_all_patches_regular(), and subdiv_foreach_edges_all_patches_special().
|
static |
Definition at line 672 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::foreach_context, and v2.
Referenced by subdiv_foreach_edges_all_patches_regular(), and subdiv_foreach_edges_all_patches_special().
|
static |
Definition at line 383 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, Mesh::faces_num, blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_every_corner_vertices_regular(), subdiv_foreach_every_corner_vertices_special(), and blender::bke::subdiv::ForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 367 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_regular_do(), and blender::bke::subdiv::ForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_every_corner_vertices().
|
static |
Definition at line 375 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices_special_do(), and blender::bke::subdiv::ForeachContext::vertex_every_corner.
Referenced by subdiv_foreach_every_corner_vertices().
|
static |
Definition at line 564 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::coarse_mesh, Mesh::faces_num, blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_every_edge_vertices_regular(), subdiv_foreach_every_edge_vertices_special(), and blender::bke::subdiv::ForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 548 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_regular_do(), and blender::bke::subdiv::ForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_every_edge_vertices().
|
static |
Definition at line 556 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_edge_vertices_special_do(), and blender::bke::subdiv::ForeachContext::vertex_every_edge.
Referenced by subdiv_foreach_every_edge_vertices().
|
static |
Definition at line 1624 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::foreach_context, num_faces_per_ptex_get(), num_ptex_faces_per_face_get(), blender::bke::subdiv::ForeachContext::poly, ptex_face_resolution_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, and blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset.
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1788 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, and blender::bke::subdiv::ForeachContext::user_data_tls_free.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 645 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, subdiv_foreach_inner_vertices_regular(), and subdiv_foreach_inner_vertices_special().
Referenced by subdiv_foreach_vertices().
|
static |
Definition at line 582 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v, blender::bke::subdiv::ForeachContext::vertex_inner, blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 607 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, blender::bke::subdiv::ForeachTaskContext::foreach_context, ptex_face_resolution_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v, blender::bke::subdiv::ForeachContext::vertex_inner, blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 1608 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, subdiv_foreach_loops_regular(), and subdiv_foreach_loops_special().
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1058 of file subdiv_foreach.cc.
References v.
Referenced by subdiv_foreach_loops_regular().
|
static |
Definition at line 990 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ForeachContext::loop, ORIGINDEX_NONE, rotate_indices(), v, and v2.
Referenced by subdiv_foreach_loops_regular(), and subdiv_foreach_loops_special().
|
static |
Definition at line 1075 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::edge_boundary_offset, blender::bke::subdiv::ForeachTaskContext::edge_inner_offset, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, i, num_edges_per_ptex_face_get(), ptex_face_resolution_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, subdiv_foreach_loops_corner_index(), subdiv_foreach_loops_of_face(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v, v2, blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset, blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset, blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1269 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::edge_boundary_offset, blender::bke::subdiv::ForeachTaskContext::edge_inner_offset, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, i, num_inner_edges_per_ptex_face_get(), ptex_face_resolution_get(), blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::IndexRange::size(), blender::bke::subdiv::ForeachTaskContext::subdiv_edge_offset, blender::bke::subdiv::ForeachTaskContext::subdiv_face_offset, subdiv_foreach_loops_of_face(), blender::bke::subdiv::ForeachTaskContext::subdiv_vertex_offset, v, v2, blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset, blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset, blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset, x, and y.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1657 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_BOOL, blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ForeachContext::vertex_loose, and blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 1727 of file subdiv_foreach.cc.
References BLI_BITMAP_ENABLE, blender::bke::subdiv::ForeachTaskContext::coarse_corner_edges, blender::bke::subdiv::ForeachTaskContext::coarse_corner_verts, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::coarse_faces, and blender::bke::subdiv::ForeachTaskContext::coarse_vertices_used_map.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 1715 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_mesh, Mesh::faces_num, blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_corner_vertices(), subdiv_foreach_edge_vertices(), and blender::bke::subdiv::ForeachContext::vertex_corner.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 1737 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, 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(), blender::bke::subdiv::ForeachContext::vertex_every_corner, blender::bke::subdiv::ForeachContext::vertex_every_edge, blender::bke::subdiv::ForeachContext::vertex_loose, and blender::bke::subdiv::ForeachContext::vertex_of_loose_edge.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 1761 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachContext::edge, blender::bke::subdiv::ForeachTaskContext::foreach_context, blender::bke::subdiv::ForeachContext::loop, blender::bke::subdiv::ForeachContext::poly, subdiv_foreach_edges(), subdiv_foreach_faces(), subdiv_foreach_loops(), and subdiv_foreach_vertices().
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 118 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, MEM_mallocN(), blender::bke::subdiv::ForeachContext::user_data_tls, and blender::bke::subdiv::ForeachContext::user_data_tls_size.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 129 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, MEM_freeN(), and blender::bke::subdiv::ForeachContext::user_data_tls_free.
Referenced by subdiv_foreach_single_thread_tasks().
|
static |
Definition at line 658 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::foreach_context, subdiv_foreach_inner_vertices(), and blender::bke::subdiv::ForeachContext::vertex_inner.
Referenced by subdiv_foreach_task().
|
static |
Definition at line 1671 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_BOOL, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, blender::bke::subdiv::ForeachTaskContext::foreach_context, i, blender::bke::subdiv::ToMeshSettings::resolution, blender::bke::subdiv::ForeachTaskContext::settings, blender::bke::subdiv::ForeachContext::vertex_of_loose_edge, blender::bke::subdiv::ForeachTaskContext::vertices_corner_offset, and blender::bke::subdiv::ForeachTaskContext::vertices_edge_offset.
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 878 of file subdiv_mesh.cc.
References blender::bke::subdiv::LoopsForInterpolation::corner_data, Mesh::corner_data, CustomData_interp(), blender::bke::subdiv::LoopsForInterpolation::loop_indices, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, and v.
Referenced by subdiv_mesh_loop().
|
static |
Definition at line 57 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, and MEM_SAFE_FREE.
Referenced by deform_coarse_vertices(), and subdiv_to_mesh().
|
static |
Definition at line 132 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, blender::bke::subdiv::SubdivMeshContext::coarse_corner_data_interp, CustomData_free(), MEM_SAFE_FREE, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_edges, and blender::bke::subdiv::SubdivMeshContext::subdiv_corner_verts.
|
static |
Definition at line 100 of file subdiv_mesh.cc.
References CD_CLOTH_ORCO, CD_ORCO, CD_ORIGINDEX, blender::bke::subdiv::SubdivMeshContext::cloth_orco, Mesh::corner_data, Mesh::corners_num, CustomData_get_layer_for_write(), Mesh::edge_data, blender::bke::subdiv::SubdivMeshContext::edge_origindex, Mesh::edges_num, Mesh::face_data, blender::bke::subdiv::SubdivMeshContext::face_origindex, Mesh::faces_num, blender::bke::subdiv::SubdivMeshContext::loop_origindex, blender::bke::subdiv::SubdivMeshContext::orco, blender::bke::subdiv::SubdivMeshContext::subdiv_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_face_offsets, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, subdiv_mesh_ctx_cache_uv_layers(), blender::bke::subdiv::SubdivMeshContext::subdiv_positions, Mesh::vert_data, blender::bke::subdiv::SubdivMeshContext::vert_origindex, and Mesh::verts_num.
Referenced by subdiv_mesh_topology_info().
|
static |
Definition at line 89 of file subdiv_mesh.cc.
References CD_PROP_FLOAT2, Mesh::corner_data, Mesh::corners_num, CustomData_get_layer_n_for_write(), CustomData_number_of_layers(), MAX_MTFACE, blender::bke::subdiv::SubdivMeshContext::num_uv_layers, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, and blender::bke::subdiv::SubdivMeshContext::uv_layers.
Referenced by subdiv_mesh_ctx_cache_custom_data_layers().
|
static |
Definition at line 858 of file subdiv_mesh.cc.
References subdiv_copy_edge_data(), blender::bke::subdiv::SubdivMeshContext::subdiv_edges, and blender::bke::subdiv::ForeachContext::user_data.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 911 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_faces, blender::bke::subdiv::SubdivMeshTLS::loop_interpolation, blender::bke::subdiv::SubdivMeshTLS::loop_interpolation_coarse_corner, blender::bke::subdiv::SubdivMeshTLS::loop_interpolation_coarse_face_index, loop_interpolation_end(), loop_interpolation_from_corner(), loop_interpolation_init(), and blender::bke::subdiv::SubdivMeshTLS::loop_interpolation_initialized.
Referenced by subdiv_mesh_loop().
|
static |
Definition at line 734 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_faces, blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation, blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation_coarse_corner, blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation_coarse_face_index, vertex_interpolation_end(), vertex_interpolation_from_corner(), vertex_interpolation_init(), and blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation_initialized.
Referenced by subdiv_mesh_vertex_edge(), and subdiv_mesh_vertex_inner().
|
static |
Definition at line 969 of file subdiv_mesh.cc.
References BLI_assert, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_copy_data(), Mesh::face_data, ORIGINDEX_NONE, blender::bke::subdiv::SubdivMeshContext::subdiv_face_offsets, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, and blender::bke::subdiv::ForeachContext::user_data.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 782 of file subdiv_mesh.cc.
References blender::IndexRange::size(), and v.
Referenced by subdiv_mesh_tag_center_vertex().
|
static |
Definition at line 942 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshTLS::loop_interpolation, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_verts, subdiv_eval_uv_layer(), subdiv_interpolate_corner_data(), subdiv_mesh_ensure_loop_interpolation(), blender::bke::subdiv::ForeachContext::user_data, and v.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 49 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, blender::bke::subdiv::SubdivDeformContext::have_displacement, and MEM_calloc_arrayN().
Referenced by subdiv_mesh_topology_info(), and subdiv_mesh_topology_info().
|
static |
Definition at line 124 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, blender::bke::subdiv::SubdivMeshContext::have_displacement, and MEM_calloc_arrayN().
|
static |
Definition at line 799 of file subdiv_mesh.cc.
References Mesh::runtime, subdiv_mesh_is_center_vertex(), and v.
Referenced by subdiv_mesh_vertex_inner().
|
static |
Definition at line 455 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshTLS::loop_interpolation, loop_interpolation_end(), blender::bke::subdiv::SubdivMeshTLS::loop_interpolation_initialized, blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation, vertex_interpolation_end(), and blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation_initialized.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 527 of file subdiv_mesh.cc.
References BKE_mesh_copy_parameters_for_eval(), CD_MASK_EVERYTHING, CD_MASK_MULTIRES_GRIDS, CD_SET_DEFAULT, blender::bke::subdiv::SubdivMeshContext::coarse_corner_data_interp, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, Mesh::corner_data, Mesh::corners_num, CustomData_free(), CustomData_free_layer_named(), CustomData_init_from(), CustomData_init_layout_from(), Mesh::edge_data, Mesh::face_data, mask(), MEM_malloc_arrayN(), blender::bke::mesh_new_no_attributes(), Mesh::runtime, blender::bke::subdiv::SubdivMeshContext::settings, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_verts, blender::bke::subdiv::SubdivMeshContext::subdiv_display_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, subdiv_mesh_ctx_cache_custom_data_layers(), subdiv_mesh_prepare_accumulator(), blender::bke::subdiv::ToMeshSettings::use_optimal_display, blender::bke::subdiv::ForeachContext::user_data, and Mesh::vert_data.
|
static |
Definition at line 98 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::coarse_mesh, subdiv_mesh_prepare_accumulator(), blender::bke::subdiv::ForeachContext::user_data, and Mesh::verts_num.
Referenced by setup_foreach_callbacks(), and setup_foreach_callbacks().
|
static |
Definition at line 718 of file subdiv_mesh.cc.
References BLI_assert, evaluate_vertex_and_apply_displacement_copy(), ORIGINDEX_NONE, blender::bke::subdiv::ForeachContext::user_data, and v.
|
static |
Definition at line 125 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, add_v3_v3(), copy_v3_v3(), D, eval_limit_point(), blender::bke::subdiv::SubdivDeformContext::have_displacement, mul_v3_fl(), blender::bke::subdiv::SubdivDeformContext::subdiv, blender::bke::subdiv::ForeachContext::user_data, v, and blender::bke::subdiv::SubdivDeformContext::vert_positions.
Referenced by setup_foreach_callbacks(), and setup_foreach_callbacks().
|
static |
Definition at line 690 of file subdiv_mesh.cc.
References subdiv_mesh_vertex_displacement_every_corner_or_edge(), and v.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 678 of file subdiv_mesh.cc.
References subdiv_accumulate_vertex_displacement(), blender::bke::subdiv::ForeachContext::user_data, and v.
Referenced by subdiv_mesh_vertex_displacement_every_corner(), and subdiv_mesh_vertex_displacement_every_edge().
|
static |
Definition at line 704 of file subdiv_mesh.cc.
References subdiv_mesh_vertex_displacement_every_corner_or_edge(), and v.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 765 of file subdiv_mesh.cc.
References evaluate_vertex_and_apply_displacement_interpolate(), subdiv_mesh_ensure_vertex_interpolation(), blender::bke::subdiv::ForeachContext::user_data, v, and blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 111 of file subdiv_deform.cc.
References subdiv_accumulate_vertex_displacement(), blender::bke::subdiv::ForeachContext::user_data, and v.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 810 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_faces, eval_final_point(), blender::bke::subdiv::SubdivMeshContext::subdiv, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, subdiv_mesh_ensure_vertex_interpolation(), subdiv_mesh_tag_center_vertex(), blender::bke::subdiv::SubdivMeshContext::subdiv_positions, subdiv_vertex_data_interpolate(), subdiv_vertex_orco_evaluate(), blender::bke::subdiv::ForeachContext::user_data, v, and blender::bke::subdiv::SubdivMeshTLS::vertex_interpolation.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 992 of file subdiv_mesh.cc.
References subdiv_vertex_data_copy(), and blender::bke::subdiv::ForeachContext::user_data.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 1092 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_edges, blender::bke::subdiv::SubdivMeshContext::coarse_positions, ELEM, blender::bke::subdiv::Settings::is_simple, mesh_interpolate_position_on_edge(), blender::bke::subdiv::Subdiv::settings, blender::bke::subdiv::SubdivMeshContext::subdiv, subdiv_mesh_vertex_of_loose_edge_interpolate(), blender::bke::subdiv::SubdivMeshContext::subdiv_positions, blender::bke::subdiv::ForeachContext::user_data, and blender::bke::subdiv::SubdivMeshContext::vert_to_edge_map.
Referenced by setup_foreach_callbacks().
|
static |
Definition at line 1068 of file subdiv_mesh.cc.
References BLI_assert, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_interp(), ORIGINDEX_NONE, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, Mesh::vert_data, and blender::bke::subdiv::SubdivMeshContext::vert_origindex.
Referenced by subdiv_mesh_vertex_of_loose_edge().
| Mesh * blender::bke::subdiv::subdiv_to_mesh | ( | Subdiv * | subdiv, |
| const ToMeshSettings * | settings, | ||
| const Mesh * | coarse_mesh ) |
Create real hi-res mesh from subdivision, all geometry is "real".
Definition at line 1151 of file subdiv_mesh.cc.
References blender::bke::mesh::build_vert_to_edge_map(), CD_PROP_INT32, blender::bke::subdiv::SubdivMeshContext::coarse_corner_verts, blender::bke::subdiv::SubdivMeshContext::coarse_edges, blender::bke::subdiv::SubdivMeshContext::coarse_faces, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, blender::bke::subdiv::SubdivMeshContext::coarse_positions, CustomData_add_layer_named_with_data(), eval_begin_from_mesh(), Mesh::faces_num, foreach_subdiv_geometry(), blender::bke::subdiv::SubdivMeshContext::have_displacement, Array< T, InlineBufferCapacity, Allocator >::is_empty(), result, Mesh::runtime, blender::bke::subdiv::SubdivMeshContext::settings, setup_foreach_callbacks(), stats_begin(), stats_end(), blender::bke::subdiv::SubdivMeshContext::subdiv, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_edges, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_verts, blender::bke::subdiv::SubdivMeshContext::subdiv_display_edges, SUBDIV_EVALUATOR_TYPE_CPU, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, subdiv_mesh_context_free(), SUBDIV_STATS_SUBDIV_TO_MESH, SUBDIV_STATS_SUBDIV_TO_MESH_GEOMETRY, blender::bke::subdiv::ForeachContext::user_data, blender::bke::subdiv::ForeachContext::user_data_tls, blender::bke::subdiv::ForeachContext::user_data_tls_size, blender::bke::subdiv::SubdivMeshContext::vert_to_edge_indices, blender::bke::subdiv::SubdivMeshContext::vert_to_edge_map, blender::bke::subdiv::SubdivMeshContext::vert_to_edge_offsets, and Mesh::verts_num.
Referenced by mesh_wrapper_ensure_subdivision(), multires_as_mesh(), subdiv_as_mesh(), and subdivide_edit_mesh().
|
static |
Definition at line 594 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_copy_data(), blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, and Mesh::vert_data.
Referenced by evaluate_vertex_and_apply_displacement_copy(), and subdiv_mesh_vertex_loose().
|
static |
Definition at line 606 of file subdiv_mesh.cc.
References CustomData_interp(), ORIGINDEX_NONE, blender::bke::subdiv::SubdivMeshContext::subdiv_mesh, v, Mesh::vert_data, blender::bke::subdiv::SubdivMeshContext::vert_origindex, blender::bke::subdiv::VerticesForInterpolation::vertex_data, and blender::bke::subdiv::VerticesForInterpolation::vertex_indices.
Referenced by evaluate_vertex_and_apply_displacement_interpolate(), and subdiv_mesh_vertex_inner().
|
static |
Definition at line 472 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::cloth_orco, copy_v3_v3(), eval_vertex_data(), blender::bke::subdiv::SubdivMeshContext::orco, blender::bke::subdiv::SubdivMeshContext::subdiv, and v.
Referenced by evaluate_vertex_and_apply_displacement_copy(), evaluate_vertex_and_apply_displacement_interpolate(), and subdiv_mesh_vertex_inner().
| int blender::bke::subdiv::topology_num_fvar_layers_get | ( | const Subdiv * | subdiv | ) |
Definition at line 21 of file subdiv_topology.cc.
References blender::opensubdiv::TopologyRefinerImpl::base_level(), and UNUSED_VARS.
| Subdiv * blender::bke::subdiv::update_from_converter | ( | Subdiv * | subdiv, |
| const Settings * | settings, | ||
| OpenSubdiv_Converter * | converter ) |
Definition at line 145 of file subdiv.cc.
References free(), new_from_converter(), settings_equal(), stats_begin(), stats_end(), SUBDIV_STATS_TOPOLOGY_COMPARE, and UNUSED_VARS.
Referenced by update_from_mesh().
| Subdiv * blender::bke::subdiv::update_from_mesh | ( | Subdiv * | subdiv, |
| const Settings * | settings, | ||
| const Mesh * | mesh ) |
Definition at line 179 of file subdiv.cc.
References converter_free(), converter_init_for_mesh(), and update_from_converter().
Referenced by BKE_subsurf_modifier_subdiv_descriptor_ensure(), and subdiv_descriptor_ensure().
|
static |
Definition at line 306 of file subdiv_mesh.cc.
References CustomData_free(), blender::bke::subdiv::VerticesForInterpolation::vertex_data_storage, and blender::bke::subdiv::VerticesForInterpolation::vertex_data_storage_allocated.
Referenced by subdiv_mesh_ensure_vertex_interpolation(), and subdiv_mesh_tls_free().
|
static |
Definition at line 256 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::coarse_corner_verts, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_copy_data(), CustomData_interp(), blender::bke::subdiv::LoopsOfPtex::first_loop, blender::bke::subdiv::LoopsOfPtex::last_loop, loops_of_ptex_get(), blender::IndexRange::size(), blender::IndexRange::start(), Mesh::vert_data, and blender::bke::subdiv::VerticesForInterpolation::vertex_data_storage.
Referenced by subdiv_mesh_ensure_vertex_interpolation().
|
static |
Definition at line 210 of file subdiv_mesh.cc.
References CD_MASK_EVERYTHING, CD_SET_DEFAULT, blender::bke::subdiv::SubdivMeshContext::coarse_corner_verts, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, CustomData_init_layout_from(), CustomData_interp(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), i, indices, blender::IndexRange::size(), blender::IndexRange::start(), Mesh::vert_data, blender::bke::subdiv::VerticesForInterpolation::vertex_data, blender::bke::subdiv::VerticesForInterpolation::vertex_data_storage, blender::bke::subdiv::VerticesForInterpolation::vertex_data_storage_allocated, and blender::bke::subdiv::VerticesForInterpolation::vertex_indices.
Referenced by subdiv_mesh_ensure_vertex_interpolation().
| VtxBoundaryInterpolation blender::bke::subdiv::vtx_boundary_interpolation_from_subsurf | ( | int | boundary_smooth | ) |
Definition at line 67 of file subdiv.cc.
References BLI_assert_msg, SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER, SUBDIV_VTX_BOUNDARY_EDGE_ONLY, SUBSURF_BOUNDARY_SMOOTH_ALL, and SUBSURF_BOUNDARY_SMOOTH_PRESERVE_CORNERS.
Referenced by BKE_multires_subdiv_settings_init(), and BKE_subsurf_modifier_settings_init().