|
Blender V4.3
|
Classes | |
| struct | ConverterStorage |
| struct | Displacement |
| struct | ForeachContext |
| struct | ForeachTaskContext |
| struct | LoopsForInterpolation |
| struct | LoopsOfPtex |
| struct | MultiresDisplacementData |
| struct | PolyCornerIndex |
| struct | Settings |
| struct | Subdiv |
| struct | SubdivDeformContext |
| struct | SubdivMeshContext |
| struct | SubdivMeshTLS |
| struct | SubdivStats |
| struct | ToMeshSettings |
| struct | VerticesForInterpolation |
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 edge_crease) |
| 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< float3 > coarse_vert_positions, eSubdivEvaluatorType evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache) |
| bool | eval_refine_from_mesh (Subdiv *subdiv, const Mesh *mesh, Span< float3 > 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_faces (const OpenSubdiv_Converter *converter) |
| static int | get_num_edges (const OpenSubdiv_Converter *converter) |
| static int | get_num_vertices (const OpenSubdiv_Converter *converter) |
| static int | get_num_face_vertices (const OpenSubdiv_Converter *converter, int manifold_face_index) |
| 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) |
| static eOpenSubdivEvaluator | opensubdiv_evalutor_from_subdiv_evaluator_type (eSubdivEvaluatorType evaluator_type) |
Public entry point | |
| void | deform_coarse_vertices (Subdiv *subdiv, const Mesh *coarse_mesh, MutableSpan< float3 > 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 | |
| float3 | mesh_interpolate_position_on_edge (Span< float3 > coarse_positions, Span< int2 > coarse_edges, GroupedSpan< int > vert_to_edge_map, int coarse_edge_index, bool is_simple, float u) |
| static void | subdiv_mesh_vertex_loose (const ForeachContext *foreach_context, void *, const int coarse_vertex_index, const int subdiv_vertex_index) |
| static std::array< std::optional< int2 >, 2 > | find_edge_neighbors (const Span< int2 > coarse_edges, const GroupedSpan< int > vert_to_edge_map, const int edge_index) |
| static std::array< float3, 4 > | find_loose_edge_interpolation_positions (const Span< float3 > coarse_positions, const int2 &coarse_edge, const std::array< std::optional< int2 >, 2 > &neighbors) |
| static void | subdiv_mesh_vertex_of_loose_edge_interpolate (SubdivMeshContext *ctx, const int2 &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 59 of file subdiv_displacement_multires.cc.
| Enumerator | |
|---|---|
| SUBDIV_EVALUATOR_TYPE_CPU | |
| SUBDIV_EVALUATOR_TYPE_GPU | |
Definition at line 23 of file BKE_subdiv_eval.hh.
Definition at line 33 of file BKE_subdiv.hh.
Definition at line 75 of file BKE_subdiv.hh.
| Enumerator | |
|---|---|
| SUBDIV_VTX_BOUNDARY_NONE | |
| SUBDIV_VTX_BOUNDARY_EDGE_ONLY | |
| SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER | |
Definition at line 24 of file BKE_subdiv.hh.
|
static |
Definition at line 147 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 132 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 280 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 197 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::face_index.
Referenced by average_with_other().
|
static |
Definition at line 171 of file subdiv_displacement_multires.cc.
References average_construct_tangent_matrix(), average_convert_grid_coord_to_ptex(), average_read_displacement_tangent(), blender::bke::subdiv::PolyCornerIndex::face_index, mul_v3_m3v3(), and v.
Referenced by average_with_other().
|
static |
Definition at line 162 of file subdiv_displacement_multires.cc.
References read_displacement_grid().
Referenced by average_read_displacement_object().
|
static |
Definition at line 244 of file subdiv_displacement_multires.cc.
References average_with_other(), blender::bke::subdiv::PolyCornerIndex::face_index, and blender::bke::subdiv::Displacement::user_data.
Referenced by average_displacement().
|
static |
Definition at line 260 of file subdiv_displacement_multires.cc.
References average_with_other().
Referenced by average_displacement().
|
static |
Definition at line 215 of file subdiv_displacement_multires.cc.
References add_v3_v3(), average_get_other_ptex_and_corner(), average_read_displacement_object(), 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 270 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().
Definition at line 36 of file subdiv_converter.cc.
References BLI_assert_msg, 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 399 of file subdiv_converter_mesh.cc.
References 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, and SUBDIV_VTX_BOUNDARY_NONE.
Referenced by get_vtx_boundary_interpolation().
Definition at line 368 of file subdiv_displacement_multires.cc.
Referenced by displacement_data_init_mapping().
| BLI_INLINE float blender::bke::subdiv::crease_to_sharpness | ( | float | edge_crease | ) |
Definition at line 93 of file subdiv_inline.hh.
Referenced by get_edge_sharpness(), and get_vertex_sharpness().
| void blender::bke::subdiv::deform_coarse_vertices | ( | Subdiv * | subdiv, |
| const Mesh * | coarse_mesh, | ||
| MutableSpan< float3 > | vert_positions ) |
Definition at line 183 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::coarse_mesh, blender::bke::subdiv::Subdiv::displacement_evaluator, eval_begin_from_mesh(), Mesh::faces_num, foreach_subdiv_geometry(), blender::bke::subdiv::SubdivDeformContext::have_displacement, blender::bke::subdiv::ToMeshSettings::resolution, setup_foreach_callbacks(), blender::bke::subdiv::Subdiv::stats, 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 432 of file subdiv_displacement_multires.cc.
References CD_MDISPS, CustomData_has_layer(), displacement_detach(), blender::bke::subdiv::Subdiv::displacement_evaluator, 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 378 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, count_num_ptex_faces(), blender::bke::subdiv::PolyCornerIndex::face_index, MEM_malloc_arrayN, 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 blender::bke::subdiv::Subdiv::displacement_evaluator, blender::bke::subdiv::Displacement::free, and MEM_freeN().
Referenced by displacement_attach_from_multires(), and free().
|
static |
Definition at line 303 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, blender::bke::subdiv::PolyCornerIndex::face_index, rotate_quad_to_corner(), and v.
Referenced by eval_displacement().
|
static |
Definition at line 66 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, blender::bke::subdiv::PolyCornerIndex::face_index, ptex_face_uv_to_grid_uv(), rotate_quad_to_corner(), blender::IndexRange::start(), blender::bke::subdiv::Displacement::user_data, and v.
Referenced by eval_displacement().
|
static |
Definition at line 93 of file subdiv_displacement_multires.cc.
References blender::bke::subdiv::PolyCornerIndex::corner, blender::bke::subdiv::PolyCornerIndex::face_index, and blender::bke::subdiv::Displacement::user_data.
Referenced by average_with_other().
|
static |
Definition at line 407 of file subdiv_displacement_multires.cc.
References CD_MDISPS, CustomData_get_layer(), displacement_data_init_mapping(), face_ptex_offset_get(), grid_size_from_level(), blender::bke::subdiv::MultiresDisplacementData::subdiv, MultiresModifierData::totlvl, and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_attach_from_multires().
|
static |
Definition at line 425 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 51 of file subdiv_eval.cc.
References eval_init_displacement(), blender::bke::subdiv::Subdiv::evaluator, openSubdiv_createEvaluatorFromTopologyRefiner(), opensubdiv_evalutor_from_subdiv_evaluator_type(), OpenSubdiv_Evaluator::setSettings, blender::bke::subdiv::Subdiv::stats, stats_begin(), stats_end(), stats_reset(), SUBDIV_STATS_EVALUATOR_CREATE, and blender::bke::subdiv::Subdiv::topology_refiner.
Referenced by eval_begin_from_mesh().
| bool blender::bke::subdiv::eval_begin_from_mesh | ( | Subdiv * | subdiv, |
| const Mesh * | mesh, | ||
| Span< float3 > | coarse_vert_positions, | ||
| eSubdivEvaluatorType | evaluator_type, | ||
| OpenSubdiv_EvaluatorCache * | evaluator_cache ) |
Definition at line 214 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(), and subdiv_to_mesh().
|
static |
Definition at line 327 of file subdiv_displacement_multires.cc.
References average_displacement(), BKE_multires_construct_tangent_matrix(), BLI_assert, 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 354 of file subdiv_eval.cc.
References blender::bke::subdiv::Subdiv::displacement_evaluator, blender::bke::subdiv::Displacement::eval_displacement, v, and zero_v3().
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 343 of file subdiv_eval.cc.
References OpenSubdiv_Evaluator::evaluateFaceVarying, blender::bke::subdiv::Subdiv::evaluator, 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 370 of file subdiv_eval.cc.
References add_v3_v3(), blender::bke::subdiv::Subdiv::displacement_evaluator, 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 269 of file subdiv_eval.cc.
References blender::bke::subdiv::Subdiv::displacement_evaluator, and blender::bke::subdiv::Displacement::initialize.
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 284 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 290 of file subdiv_eval.cc.
References equals_v3v3(), OpenSubdiv_Evaluator::evaluateLimit, blender::bke::subdiv::Subdiv::evaluator, is_zero_v3(), 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 324 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< float3 > | coarse_vert_positions ) |
Definition at line 233 of file subdiv_eval.cc.
References BLI_assert_msg, CD_PROP_FLOAT2, CustomData_get_layer_n(), CustomData_number_of_layers(), blender::bke::subdiv::Subdiv::evaluator, float, blender::Span< T >::is_empty(), OpenSubdiv_Evaluator::refine, blender::bke::subdiv::Subdiv::stats, stats_begin(), stats_end(), SUBDIV_STATS_EVALUATOR_REFINE, and UNUSED_VARS.
Referenced by eval_begin_from_mesh(), multires_reshape_apply_base_refine_from_base(), and multires_reshape_apply_base_refine_from_deform().
| 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 337 of file subdiv_eval.cc.
References OpenSubdiv_Evaluator::evaluateVertexData, blender::bke::subdiv::Subdiv::evaluator, and v.
Referenced by subdiv_vertex_orco_evaluate().
|
static |
Definition at line 633 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 660 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, add_v3_v3(), copy_v3_v3(), 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 40 of file subdiv.cc.
References openSubdiv_cleanup().
Definition at line 219 of file subdiv.cc.
References blender::opensubdiv::TopologyRefinerImpl::base_level(), blender::bke::subdiv::Subdiv::cache_, blender::bke::subdiv::Subdiv::face_ptex_offset, MEM_malloc_arrayN, blender::bke::subdiv::Subdiv::topology_refiner, and UNUSED_VARS.
Referenced by context_init_common(), displacement_init_data(), blender::draw::draw_subdiv_build_cache(), subdiv_ccg_coord_to_ptex_coord(), and subdiv_foreach_ctx_init().
|
static |
Definition at line 1012 of file subdiv_mesh.cc.
References blender::Span< T >::size().
Referenced by mesh_interpolate_position_on_edge().
|
static |
Definition at line 1029 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 244 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 1795 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(), blender::draw::do_subdiv_traversal(), multires_reshape_assign_final_coords_from_vertcos(), and subdiv_to_mesh().
| void blender::bke::subdiv::free | ( | Subdiv * | subdiv | ) |
Definition at line 192 of file subdiv.cc.
References BKE_subsurf_modifier_free_gpu_cache_cb, blender::bke::subdiv::Subdiv::cache_, displacement_detach(), blender::bke::subdiv::Subdiv::evaluator, blender::bke::subdiv::Subdiv::face_ptex_offset, MEM_freeN(), openSubdiv_deleteEvaluator(), OPENSUBDIV_EVALUATOR_CPU, blender::bke::subdiv::Subdiv::topology_refiner, OpenSubdiv_Evaluator::type, and UNUSED_VARS.
Referenced by deform_matrices(), deform_matrices(), free_runtime_data(), free_runtime_data(), modify_mesh(), modify_mesh(), multires_do_versions_simple_to_catmull_clark(), multires_reshape_context_free(), subdivide_edit_mesh(), update_from_converter(), and SubdivCCG::~SubdivCCG().
|
static |
Definition at line 358 of file subdiv_displacement_multires.cc.
References MEM_freeN(), and blender::bke::subdiv::Displacement::user_data.
Referenced by displacement_init_functions().
|
static |
Definition at line 261 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 49 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 153 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::cd_edge_crease, crease_to_sharpness(), blender::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 142 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 252 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::faces, blender::bke::subdiv::ConverterStorage::loop_uv_indices, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 130 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::corner_verts, blender::bke::subdiv::ConverterStorage::faces, blender::bke::subdiv::ConverterStorage::manifold_vertex_index, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 93 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 112 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 124 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::faces, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 106 of file subdiv_converter_mesh.cc.
References Mesh::faces_num, blender::bke::subdiv::ConverterStorage::mesh, and OpenSubdiv_Converter::user_data.
Referenced by init_functions().
|
static |
Definition at line 194 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 246 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 118 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 69 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 184 of file subdiv_converter_mesh.cc.
References blender::bke::subdiv::ConverterStorage::cd_vertex_crease, crease_to_sharpness(), blender::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 85 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 36 of file subdiv_inline.hh.
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_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 27 of file subdiv_inline.hh.
Referenced by average_convert_grid_coord_to_ptex(), and multires_reshape_grid_coord_to_ptex().
| void blender::bke::subdiv::init | ( | ) |
|
static |
Definition at line 271 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_face_vertices(), get_num_faces(), 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::getNumFaces, OpenSubdiv_Converter::getNumFaceVertices, 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 377 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::subdiv::ConverterStorage::loop_uv_indices, blender::bke::subdiv::ConverterStorage::mesh, blender::bke::Point, blender::bke::subdiv::ConverterStorage::settings, OpenSubdiv_Converter::user_data, and blender::bke::subdiv::ConverterStorage::vert_positions.
Referenced by converter_init_for_mesh().
|
static |
Definition at line 319 of file subdiv_displacement_multires.cc.
References multiresModifier_ensure_external_read(), and blender::bke::subdiv::Displacement::user_data.
|
static |
Definition at line 307 of file subdiv_converter_mesh.cc.
References indices, blender::bits::BitSpan::is_empty(), and MEM_malloc_arrayN.
Referenced by initialize_manifold_indices().
|
static |
Definition at line 348 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 168 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 434 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 389 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 344 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(), float, indices, CustomData_MeshMasks::lmask, blender::bke::subdiv::LoopsForInterpolation::loop_indices, blender::IndexRange::size(), and blender::IndexRange::start().
Referenced by subdiv_mesh_ensure_loop_interpolation().
|
static |
Definition at line 160 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().
| float3 blender::bke::subdiv::mesh_interpolate_position_on_edge | ( | Span< float3 > | coarse_positions, |
| Span< int2 > | coarse_edges, | ||
| GroupedSpan< int > | vert_to_edge_map, | ||
| int | coarse_edge_index, | ||
| bool | is_simple, | ||
| float | u ) |
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 1055 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 100 of file subdiv.cc.
References blender::opensubdiv::TopologyRefinerImpl::createFromConverter(), blender::bke::subdiv::Subdiv::displacement_evaluator, blender::bke::subdiv::Subdiv::evaluator, OpenSubdiv_Converter::getNumVertices, OpenSubdiv_TopologyRefinerSettings::is_adaptive, OpenSubdiv_TopologyRefinerSettings::level, blender::bke::subdiv::Subdiv::settings, blender::bke::subdiv::Subdiv::stats, stats_begin(), stats_end(), stats_init(), SUBDIV_STATS_TOPOLOGY_REFINER_CREATION_TIME, blender::bke::subdiv::Subdiv::topology_refiner, and UNUSED_VARS.
Referenced by new_from_mesh(), and update_from_converter().
Definition at line 133 of file subdiv.cc.
References converter_free(), converter_init_for_mesh(), and new_from_converter().
Referenced by subdivide_edit_mesh().
| BLI_INLINE int blender::bke::subdiv::num_edges_per_ptex_face_get | ( | const int | resolution | ) |
Definition at line 35 of file subdiv_foreach.cc.
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 49 of file subdiv_foreach.cc.
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 40 of file subdiv_foreach.cc.
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 30 of file subdiv_foreach.cc.
Referenced by subdiv_foreach_ctx_count(), subdiv_foreach_ctx_init_offsets(), and subdiv_foreach_faces().
|
static |
Definition at line 32 of file subdiv_eval.cc.
References BLI_assert_msg, OPENSUBDIV_EVALUATOR_CPU, OPENSUBDIV_EVALUATOR_GPU, SUBDIV_EVALUATOR_TYPE_CPU, and SUBDIV_EVALUATOR_TYPE_GPU.
Referenced by eval_begin().
|
static |
Definition at line 201 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(), blender::Span< T >::data(), UvMapVert::face_index, blender::bke::subdiv::ConverterStorage::faces, float, UvMapVert::loop_of_face_index, blender::bke::subdiv::ConverterStorage::loop_uv_indices, MEM_malloc_arrayN, blender::bke::subdiv::ConverterStorage::mesh, UvMapVert::next, blender::bke::subdiv::ConverterStorage::num_uv_coordinates, UvMapVert::separate, STD_UV_CONNECT_LIMIT, OpenSubdiv_Converter::user_data, and Mesh::verts_num.
Referenced by init_functions().
| BLI_INLINE int blender::bke::subdiv::ptex_face_resolution_get | ( | const IndexRange | face, |
| int | resolution ) |
Definition at line 55 of file subdiv_foreach.cc.
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 18 of file subdiv_inline.hh.
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 107 of file subdiv_displacement_multires.cc.
References AVERAGE_WITH_ALL, AVERAGE_WITH_NEXT, AVERAGE_WITH_NONE, AVERAGE_WITH_PREV, copy_v3_v3(), MDisps::disps, 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 71 of file subdiv_inline.hh.
References BLI_assert.
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 982 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 41 of file subdiv_inline.hh.
References BLI_assert.
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 85 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 164 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 1131 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.
|
static |
Definition at line 101 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 71 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, add_v3_v3(), copy_v3_v3(), 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 846 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 903 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 949 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, 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 1781 of file subdiv_foreach.cc.
References subdiv_foreach_boundary_edges().
Referenced by foreach_subdiv_geometry().
|
static |
Definition at line 356 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 312 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 281 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 348 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 320 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 148 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 264 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 245 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 197 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 537 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 458 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 402 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, float, 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 529 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 466 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, float, 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 944 of file subdiv_foreach.cc.
References subdiv_foreach_edges_all_patches().
Referenced by subdiv_foreach_task().
|
static |
Definition at line 932 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 738 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, 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 816 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, 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 693 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 673 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 384 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 368 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 376 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 565 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 549 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 557 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 1625 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 1789 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 646 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 583 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, float, 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, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 608 of file subdiv_foreach.cc.
References blender::bke::subdiv::ForeachTaskContext::coarse_faces, blender::bke::subdiv::ForeachTaskContext::face_ptex_offset, float, 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, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_inner_vertices().
|
static |
Definition at line 1609 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 1059 of file subdiv_foreach.cc.
References v.
Referenced by subdiv_foreach_loops_regular().
|
static |
Definition at line 991 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 1076 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, float, 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, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1270 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, float, 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, and blender::bke::subdiv::ForeachTaskContext::vertices_inner_offset.
Referenced by subdiv_foreach_loops().
|
static |
Definition at line 1658 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 1728 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 1716 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 1738 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 1762 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 119 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 130 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 659 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 1672 of file subdiv_foreach.cc.
References BLI_BITMAP_TEST_BOOL, blender::bke::subdiv::ForeachTaskContext::coarse_edges, blender::bke::subdiv::ForeachTaskContext::coarse_edges_used_map, float, blender::bke::subdiv::ForeachTaskContext::foreach_context, 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 886 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 60 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 136 of file subdiv_mesh.cc.
References blender::bke::subdiv::SubdivMeshContext::accumulated_counters, blender::bke::subdiv::SubdivMeshContext::coarse_corner_data_interp, blender::bke::subdiv::SubdivMeshContext::coarse_mesh, Mesh::corners_num, CustomData_free(), MEM_SAFE_FREE, blender::bke::subdiv::SubdivMeshContext::subdiv_corner_edges, and blender::bke::subdiv::SubdivMeshContext::subdiv_corner_verts.
|
static |
Definition at line 103 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 92 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 866 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 919 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 742 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 977 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 790 of file subdiv_mesh.cc.
References blender::IndexRange::size(), and v.
Referenced by subdiv_mesh_tag_center_vertex().
|
static |
Definition at line 950 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 51 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 127 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 807 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 459 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 531 of file subdiv_mesh.cc.
References BKE_mesh_copy_parameters_for_eval(), CD_MASK_EVERYTHING, 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, CustomData_MeshMasks::lmask, 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 101 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 726 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 128 of file subdiv_deform.cc.
References blender::bke::subdiv::SubdivDeformContext::accumulated_counters, add_v3_v3(), BLI_assert, copy_v3_v3(), eval_limit_point(), blender::bke::subdiv::SubdivDeformContext::have_displacement, mul_v3_fl(), ORIGINDEX_NONE, 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 698 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 686 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 712 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 773 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 114 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 818 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 1000 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 1100 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 1076 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 1159 of file subdiv_mesh.cc.
References blender::bke::mesh::build_vert_to_edge_map(), CD_PROP_INT32, CustomData_add_layer_named_with_data(), blender::bke::subdiv::Subdiv::displacement_evaluator, eval_begin_from_mesh(), Mesh::faces_num, foreach_subdiv_geometry(), blender::bke::subdiv::Settings::is_simple, result, Mesh::runtime, blender::bke::subdiv::Subdiv::settings, blender::bke::subdiv::SubdivMeshContext::settings, setup_foreach_callbacks(), blender::bke::subdiv::Subdiv::stats, stats_begin(), stats_end(), SUBDIV_EVALUATOR_TYPE_CPU, 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, and Mesh::verts_num.
Referenced by multires_as_mesh(), subdiv_as_mesh(), and subdivide_edit_mesh().
|
static |
Definition at line 602 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 614 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 476 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().
Definition at line 21 of file subdiv_topology.cc.
References blender::opensubdiv::TopologyRefinerImpl::base_level(), blender::bke::subdiv::Subdiv::topology_refiner, and UNUSED_VARS.
| Subdiv * blender::bke::subdiv::update_from_converter | ( | Subdiv * | subdiv, |
| const Settings * | settings, | ||
| OpenSubdiv_Converter * | converter ) |
Definition at line 147 of file subdiv.cc.
References free(), blender::opensubdiv::TopologyRefinerImpl::isEqualToConverter(), new_from_converter(), blender::bke::subdiv::Subdiv::settings, settings_equal(), blender::bke::subdiv::Subdiv::stats, stats_begin(), stats_end(), SUBDIV_STATS_TOPOLOGY_COMPARE, blender::bke::subdiv::Subdiv::topology_refiner, 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 181 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 310 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 260 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 214 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(), float, 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, blender::bke::subdiv::VerticesForInterpolation::vertex_indices, and CustomData_MeshMasks::vmask.
Referenced by subdiv_mesh_ensure_vertex_interpolation().
| VtxBoundaryInterpolation blender::bke::subdiv::vtx_boundary_interpolation_from_subsurf | ( | int | boundary_smooth | ) |
Definition at line 69 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().