|
Blender V4.3
|
Namespaces | |
| namespace | boolean |
| namespace | curve_constraints |
| namespace | tests |
Typedefs | |
| using | ParamKey = uintptr_t |
| using | NeighborCurves = Vector<NeighborCurve, max_neighbors> |
| using | CornerGroup = Vector<int> |
| using | PHashKey = uintptr_t |
Enumerations | |
| enum class | ConeFillType { None = 0 , NGon = 1 , Triangles = 2 } |
| enum | PHandleState { PHANDLE_STATE_ALLOCATED , PHANDLE_STATE_CONSTRUCTED , PHANDLE_STATE_LSCM , PHANDLE_STATE_STRETCH } |
| enum | Flag { OnStack = 1 , Inserted = 2 } |
| enum | PVertFlag { PVERT_PIN = 1 , PVERT_SELECT = 2 , PVERT_INTERIOR = 4 , PVERT_COLLAPSE = 8 , PVERT_SPLIT = 16 } |
| enum | PEdgeFlag { PEDGE_SEAM = 1 , PEDGE_VERTEX_SPLIT = 2 , PEDGE_PIN = 4 , PEDGE_SELECT = 8 , PEDGE_DONE = 16 , PEDGE_FILLED = 32 , PEDGE_COLLAPSE = 64 , PEDGE_COLLAPSE_EDGE = 128 , PEDGE_COLLAPSE_PAIR = 256 } |
| enum | PFaceFlag { PFACE_CONNECTED = 1 , PFACE_FILLED = 2 , PFACE_COLLAPSE = 4 , PFACE_DONE = 8 } |
Functions | |
| AddCurvesOnMeshOutputs | add_curves_on_mesh (bke::CurvesGeometry &curves, const AddCurvesOnMeshInputs &inputs) |
| float3 | compute_surface_point_normal (const int3 &tri, const float3 &bary_coord, Span< float3 > corner_normals) |
| bke::CurvesGeometry | extend_curves (bke::CurvesGeometry &src_curves, const IndexMask &selection, const VArray< float > &start_lengths, const VArray< float > &end_lengths, float overshoot_fac, bool follow_curvature, float point_density, float segment_influence, float max_angle, bool invert_curvature, GeometryNodeCurveSampleMode sample_mode, const bke::AttributeFilter &attribute_filter) |
| Array< Mesh * > | extract_mesh_vertices (const Mesh &mesh, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< Mesh * > | extract_mesh_edges (const Mesh &mesh, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< Mesh * > | extract_mesh_faces (const Mesh &mesh, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< PointCloud * > | extract_pointcloud_points (const PointCloud &pointcloud, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< Curves * > | extract_curves_points (const Curves &curves, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< Curves * > | extract_curves (const Curves &curves, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< bke::Instances * > | extract_instances (const bke::Instances &instances, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< GreasePencil * > | extract_greasepencil_layers (const GreasePencil &grease_pencil, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< GreasePencil * > | extract_greasepencil_layer_points (const GreasePencil &grease_pencil, int layer_i, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| Array< GreasePencil * > | extract_greasepencil_layer_curves (const GreasePencil &grease_pencil, int layer_i, const IndexMask &mask, const bke::AttributeFilter &attribute_filter) |
| bke::CurvesGeometry | fillet_curves_poly (const bke::CurvesGeometry &src_curves, const IndexMask &curve_selection, const VArray< float > &radius, const VArray< int > &counts, bool limit_radius, const bke::AttributeFilter &attribute_filter) |
| bke::CurvesGeometry | fillet_curves_bezier (const bke::CurvesGeometry &src_curves, const IndexMask &curve_selection, const VArray< float > &radius, bool limit_radius, const bke::AttributeFilter &attribute_filter) |
| void | interpolate_curves (const bke::CurvesGeometry &from_curves, const bke::CurvesGeometry &to_curves, Span< int > from_curve_indices, Span< int > to_curve_indices, const IndexMask &dst_curve_mask, Span< bool > dst_curve_flip_direction, const float mix_factor, bke::CurvesGeometry &dst_curves) |
| bke::GeometrySet | join_geometries (Span< bke::GeometrySet > geometries, const bke::AttributeFilter &attribute_filter, const std::optional< Span< bke::GeometryComponent::Type > > &component_types_to_join=std::nullopt) |
| void | join_attributes (const Span< const bke::GeometryComponent * > src_components, bke::GeometryComponent &r_result, const Span< StringRef > ignored_attributes={}) |
| bke::CurvesGeometry | curves_merge_endpoints (const bke::CurvesGeometry &src_curves, Span< int > connect_to_curve, Span< bool > flip_direction, const bke::AttributeFilter &attribute_filter) |
| GreasePencil * | merge_layers (const GreasePencil &src_grease_pencil, Span< Vector< int > > layers_to_merge, const bke::AttributeFilter &attribute_filter) |
| std::optional< Mesh * > | mesh_copy_selection (const Mesh &src_mesh, const VArray< bool > &selection, bke::AttrDomain selection_domain, const bke::AttributeFilter &attribute_filter={}) |
| std::optional< Mesh * > | mesh_copy_selection_keep_verts (const Mesh &src_mesh, const VArray< bool > &selection, bke::AttrDomain selection_domain, const bke::AttributeFilter &attribute_filter={}) |
| std::optional< Mesh * > | mesh_copy_selection_keep_edges (const Mesh &mesh, const VArray< bool > &selection, bke::AttrDomain selection_domain, const bke::AttributeFilter &attribute_filter={}) |
| Mesh * | create_cuboid_mesh (const float3 &size, int verts_x, int verts_y, int verts_z, const std::optional< StringRef > &uv_id) |
| Mesh * | create_cuboid_mesh (const float3 &size, int verts_x, int verts_y, int verts_z) |
| Mesh * | create_cylinder_or_cone_mesh (float radius_top, float radius_bottom, float depth, int circle_segments, int side_segments, int fill_segments, ConeFillType fill_type, ConeAttributeOutputs &attribute_outputs) |
| Mesh * | create_grid_mesh (int verts_x, int verts_y, float size_x, float size_y, const std::optional< StringRef > &uv_map_id) |
| Mesh * | create_line_mesh (float3 start, float3 delta, int count) |
| Bounds< float3 > | calculate_bounds_radial_primitive (float radius_top, float radius_bottom, int segments, float height) |
| Mesh * | create_uv_sphere_mesh (float radius, int segments, int rings, const std::optional< StringRef > &uv_map_id) |
| IndexMask | vert_selection_from_edge (Span< int2 > edges, const IndexMask &edge_mask, int verts_num, IndexMaskMemory &memory) |
| IndexMask | vert_selection_from_face (OffsetIndices< int > faces, const IndexMask &face_mask, Span< int > corner_verts, int verts_num, IndexMaskMemory &memory) |
| IndexMask | edge_selection_from_face (OffsetIndices< int > faces, const IndexMask &face_mask, Span< int > corner_edges, int edges_num, IndexMaskMemory &memory) |
| IndexMask | edge_selection_from_vert (Span< int2 > edges, Span< bool > vert_selection, IndexMaskMemory &memory) |
| IndexMask | face_selection_from_vert (OffsetIndices< int > faces, Span< int > corner_verts, Span< bool > vert_selection, IndexMaskMemory &memory) |
| IndexMask | face_selection_from_edge (OffsetIndices< int > faces, Span< int > corner_edges, Span< bool > edge_mask, IndexMaskMemory &memory) |
| void | split_edges (Mesh &mesh, const IndexMask &mask, const bke::AttributeFilter &attribute_filter={}) |
| bke::CurvesGeometry | mesh_to_curve_convert (const Mesh &mesh, const IndexMask &selection, const bke::AttributeFilter &attribute_filter) |
| bke::CurvesGeometry | create_curve_from_vert_indices (const bke::AttributeAccessor &mesh_attributes, Span< int > vert_indices, Span< int > curve_offsets, IndexRange cyclic_curves, const bke::AttributeFilter &attribute_filter) |
| bke::GeometrySet | mix_geometries (bke::GeometrySet a, const bke::GeometrySet &b, float factor) |
| PointCloud * | point_merge_by_distance (const PointCloud &src_points, const float merge_distance, const IndexMask &selection, const bke::AttributeFilter &attribute_filter) |
| bool | use_debug_randomization () |
| void | debug_randomize_vert_order (Mesh *mesh) |
| void | debug_randomize_edge_order (Mesh *mesh) |
| void | debug_randomize_face_order (Mesh *mesh) |
| void | debug_randomize_mesh_order (Mesh *mesh) |
| void | debug_randomize_point_order (PointCloud *pointcloud) |
| void | debug_randomize_curve_order (bke::CurvesGeometry *curves) |
| void | debug_randomize_instance_order (bke::Instances *instances) |
| const MultiValueMap< bke::GeometryComponent::Type, bke::AttrDomain > & | components_supported_reordering () |
| Mesh * | reorder_mesh (const Mesh &src_mesh, Span< int > old_by_new_map, bke::AttrDomain domain, const bke::AttributeFilter &attribute_filter) |
| PointCloud * | reorder_points (const PointCloud &src_pointcloud, Span< int > old_by_new_map, const bke::AttributeFilter &attribute_filter) |
| bke::CurvesGeometry | reorder_curves_geometry (const bke::CurvesGeometry &src_curves, Span< int > old_by_new_map, const bke::AttributeFilter &attribute_filter) |
| Curves * | reorder_curves (const Curves &src_curves, Span< int > old_by_new_map, const bke::AttributeFilter &attribute_filter) |
| bke::Instances * | reorder_instaces (const bke::Instances &src_instances, Span< int > old_by_new_map, const bke::AttributeFilter &attribute_filter) |
| bke::GeometryComponentPtr | reordered_component (const bke::GeometryComponent &src_component, Span< int > old_by_new_map, bke::AttrDomain domain, const bke::AttributeFilter &attribute_filter) |
| CurvesGeometry | resample_to_count (const CurvesGeometry &src_curves, const IndexMask &selection, const VArray< int > &counts, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| CurvesGeometry | resample_to_count (const CurvesGeometry &src_curves, const fn::FieldContext &field_context, const fn::Field< bool > &selection_field, const fn::Field< int > &count_field, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| CurvesGeometry | resample_to_length (const CurvesGeometry &src_curves, const IndexMask &selection, const VArray< float > &sample_lengths, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| CurvesGeometry | resample_to_length (const CurvesGeometry &src_curves, const fn::FieldContext &field_context, const fn::Field< bool > &selection_field, const fn::Field< float > &segment_length_field, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| CurvesGeometry | resample_to_evaluated (const CurvesGeometry &src_curves, const IndexMask &selection, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| CurvesGeometry | resample_to_evaluated (const CurvesGeometry &src_curves, const fn::FieldContext &field_context, const fn::Field< bool > &selection_field, const ResampleCurvesOutputAttributeIDs &output_ids={}) |
| void | separate_geometry (bke::GeometrySet &geometry_set, bke::AttrDomain domain, GeometryNodeDeleteGeometryMode mode, const fn::Field< bool > &selection_field, const bke::AttributeFilter &attribute_filter, bool &r_is_error) |
| bke::CurvesGeometry | convert_curves (const bke::CurvesGeometry &src_curves, const IndexMask &selection, CurveType dst_type, const bke::AttributeFilter &attribute_filter, const ConvertCurvesOptions &options={}) |
| IndexMask | simplify_curve_attribute (const Span< float3 > positions, const IndexMask &curves_selection, const OffsetIndices< int > points_by_curve, const VArray< bool > &cyclic, float epsilon, GSpan attribute_data, IndexMaskMemory &memory) |
| void | curve_simplify (const Span< float3 > positions, const bool cyclic, const float epsilon, const GSpan attribute_data, MutableSpan< bool > points_to_delete) |
| void | gaussian_blur_1D (const GSpan src, int iterations, const VArray< float > &influence_by_point, const bool smooth_ends, const bool keep_shape, const bool is_cyclic, GMutableSpan dst) |
| void | smooth_curve_attribute (const IndexMask &curves_to_smooth, const OffsetIndices< int > points_by_curve, const VArray< bool > &point_selection, const VArray< bool > &cyclic, int iterations, float influence, bool smooth_ends, bool keep_shape, GMutableSpan attribute_data) |
| void | smooth_curve_attribute (const IndexMask &curves_to_smooth, const OffsetIndices< int > points_by_curve, const VArray< bool > &point_selection, const VArray< bool > &cyclic, int iterations, const VArray< float > &influence_by_point, bool smooth_ends, bool keep_shape, GMutableSpan attribute_data) |
| void | smooth_curve_positions (bke::CurvesGeometry &curves, const IndexMask &curves_to_smooth, int iterations, const VArray< float > &influence_by_point, bool smooth_ends, bool keep_shape) |
| void | smooth_curve_positions (bke::CurvesGeometry &curves, const IndexMask &curves_to_smooth, int iterations, float influence, bool smooth_ends, bool keep_shape) |
| bke::CurvesGeometry | subdivide_curves (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const VArray< int > &cuts, const bke::AttributeFilter &attribute_filter={}) |
| void | transform_mesh (Mesh &mesh, float3 translation, math::Quaternion rotation, float3 scale) |
| std::optional< TransformGeometryErrors > | transform_geometry (bke::GeometrySet &geometry, const float4x4 &transform) |
| void | translate_geometry (bke::GeometrySet &geometry, const float3 translation) |
| bke::CurvesGeometry | trim_curves (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const VArray< float > &starts, const VArray< float > &ends, GeometryNodeCurveSampleMode mode, const bke::AttributeFilter &attribute_filter) |
| float | pack_islands (Span< PackIsland * > islands, const UVPackIsland_Params ¶ms) |
| void | mul_v2_m2_add_v2v2 (float r[2], const float mat[2][2], const float a[2], const float b[2]) |
| static void | calc_straight_curve_positions (const float3 &a, const float3 &b, MutableSpan< float3 > dst) |
| static Array< NeighborCurves > | find_curve_neighbors (const Span< float3 > root_positions, const KDTree_3d &old_roots_kdtree) |
| template<typename T , typename GetValueF > | |
| void | interpolate_from_neighbor_curves (const Span< NeighborCurves > neighbors_per_curve, const T &fallback, const GetValueF &get_value_from_neighbor, MutableSpan< T > r_interpolated_values) |
| static void | calc_position_without_interpolation (CurvesGeometry &curves, const int old_curves_num, const Span< float3 > root_positions_cu, const Span< float > new_lengths_cu, const Span< float3 > new_normals_su, const float4x4 &surface_to_curves_normal_mat) |
| static void | calc_position_with_interpolation (CurvesGeometry &curves, const Span< float3 > root_positions_cu, const Span< NeighborCurves > neighbors_per_curve, const int old_curves_num, const Span< float > new_lengths_cu, const Span< float3 > new_normals_su, const bke::CurvesSurfaceTransforms &transforms, const Span< int3 > corner_tris, const ReverseUVSampler &reverse_uv_sampler, const Span< float3 > corner_normals_su) |
| static void | calc_radius_without_interpolation (CurvesGeometry &curves, const IndexRange new_points_range, const float radius) |
| static void | calc_radius_with_interpolation (CurvesGeometry &curves, const int old_curves_num, const float radius, const Span< float > new_lengths_cu, const Span< NeighborCurves > neighbors_per_curve) |
| static void | extend_curves_straight (const float used_percent_length, const float new_size, const Span< int > start_points, const Span< int > end_points, const int curve, const IndexRange new_curve, const Span< float > use_start_lengths, const Span< float > use_end_lengths, MutableSpan< float3 > positions) |
| static void | extend_curves_curved (const float used_percent_length, const Span< int > start_points, const Span< int > end_points, const OffsetIndices< int > points_by_curve, const int curve, const IndexRange new_curve, const Span< float > use_start_lengths, const Span< float > use_end_lengths, const float max_angle, const float segment_influence, const bool invert_curvature, MutableSpan< float3 > positions) |
| static void | duplicate_fillet_point_data (const OffsetIndices< int > src_points_by_curve, const OffsetIndices< int > dst_points_by_curve, const IndexMask &curve_selection, const Span< int > all_point_offsets, const GSpan src, GMutableSpan dst) |
| static void | calculate_result_offsets (const OffsetIndices< int > src_points_by_curve, const IndexMask &selection, const IndexMask &unselected, const VArray< float > &radii, const VArray< int > &counts, const Span< bool > cyclic, MutableSpan< int > dst_curve_offsets, MutableSpan< int > dst_point_offsets) |
| static void | calculate_directions (const Span< float3 > positions, MutableSpan< float3 > directions) |
| static void | calculate_angles (const Span< float3 > directions, MutableSpan< float > angles) |
| static float | limit_radius (const float3 &position_prev, const float3 &position, const float3 &position_next, const float angle_prev, const float angle, const float angle_next, const float radius_prev, const float radius, const float radius_next) |
| static void | limit_radii (const Span< float3 > positions, const Span< float > angles, const Span< float > radii, const bool cyclic, MutableSpan< float > radii_clamped) |
| static void | calculate_fillet_positions (const Span< float3 > src_positions, const Span< float > angles, const Span< float > radii, const Span< float3 > directions, const OffsetIndices< int > dst_offsets, MutableSpan< float3 > dst) |
| static void | calculate_bezier_handles_bezier_mode (const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, const Span< int8_t > src_types_l, const Span< int8_t > src_types_r, const Span< float > angles, const Span< float > radii, const Span< float3 > directions, const OffsetIndices< int > dst_offsets, const Span< float3 > dst_positions, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r) |
| static void | calculate_bezier_handles_poly_mode (const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, const Span< int8_t > src_types_l, const Span< int8_t > src_types_r, const OffsetIndices< int > dst_offsets, const Span< float3 > dst_positions, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r) |
| static bke::CurvesGeometry | fillet_curves (const bke::CurvesGeometry &src_curves, const IndexMask &curve_selection, const VArray< float > &radius_input, const VArray< int > &counts, const bool limit_radius, const bool use_bezier_mode, const bke::AttributeFilter &attribute_filter) |
| static bool | interpolate_attribute_to_curves (const StringRef attribute_id, const std::array< int, CURVE_TYPES_NUM > &type_counts) |
| static bool | interpolate_attribute_to_poly_curve (const StringRef attribute_id) |
| static AttributesForInterpolation | retrieve_attribute_spans (const Span< StringRef > ids, const CurvesGeometry &src_from_curves, const CurvesGeometry &src_to_curves, const bke::AttrDomain domain, CurvesGeometry &dst_curves) |
| static AttributesForInterpolation | gather_point_attributes_to_interpolate (const CurvesGeometry &from_curves, const CurvesGeometry &to_curves, CurvesGeometry &dst_curves) |
| static AttributesForInterpolation | gather_curve_attributes_to_interpolate (const CurvesGeometry &from_curves, const CurvesGeometry &to_curves, CurvesGeometry &dst_curves) |
| static void | sample_curve_attribute (const bke::CurvesGeometry &src_curves, const Span< int > src_curve_indices, const OffsetIndices< int > dst_points_by_curve, const GSpan src_data, const IndexMask &dst_curve_mask, const Span< int > dst_sample_indices, const Span< float > dst_sample_factors, GMutableSpan dst_data) |
| template<typename T > | |
| static void | mix_arrays (const Span< T > from, const Span< T > to, const float mix_factor, const MutableSpan< T > dst) |
| static void | mix_arrays (const GSpan src_from, const GSpan src_to, const float mix_factor, const IndexMask &selection, const GMutableSpan dst) |
| static void | mix_arrays (const GSpan src_from, const GSpan src_to, const float mix_factor, const IndexMask &group_selection, const OffsetIndices< int > groups, const GMutableSpan dst) |
| static Map< StringRef, AttributeMetaData > | get_final_attribute_info (const Span< const GeometryComponent * > components, const Span< StringRef > ignored_attributes) |
| static void | fill_new_attribute (const Span< const GeometryComponent * > src_components, const StringRef attribute_id, const eCustomDataType data_type, const bke::AttrDomain domain, GMutableSpan dst_span) |
| static void | join_instances (const Span< const GeometryComponent * > src_components, GeometrySet &result) |
| static void | join_volumes (const Span< const GeometryComponent * >, GeometrySet &) |
| static void | join_component_type (const bke::GeometryComponent::Type component_type, const Span< GeometrySet > src_geometry_sets, const bke::AttributeFilter &attribute_filter, GeometrySet &result) |
| GeometrySet | join_geometries (const Span< GeometrySet > geometries, const bke::AttributeFilter &attribute_filter, const std::optional< Span< GeometryComponent::Type > > &component_types_to_join) |
| template<typename Fn > | |
| static void | foreach_connected_curve (const Span< int > connect_to_curve, MutableSpan< uint8_t > flags, const int start, Fn fn) |
| static Vector< int > | toposort_connected_curves (const Span< int > connect_to_curve) |
| static void | reverse_order (GMutableSpan span) |
| static void | reorder_and_flip_attributes_group_to_group (const bke::AttributeAccessor src_attributes, const bke::AttrDomain domain, const OffsetIndices< int > src_offsets, const OffsetIndices< int > dst_offsets, const Span< int > old_by_new_map, const Span< bool > flip_direction, bke::MutableAttributeAccessor dst_attributes) |
| static bke::CurvesGeometry | reorder_and_flip_curves (const bke::CurvesGeometry &src_curves, const Span< int > old_by_new_map, const Span< bool > flip_direction) |
| static void | find_connected_ranges (const bke::CurvesGeometry &src_curves, const Span< int > old_by_new_map, Span< int > connect_to_curve, Span< bool > cyclic, Vector< int > &r_joined_curve_offsets, Vector< bool > &r_joined_cyclic) |
| static bke::CurvesGeometry | join_curves_ranges (const bke::CurvesGeometry &src_curves, const OffsetIndices< int > old_curves_by_new) |
| static bke::CurvesGeometry | join_curves (const GreasePencil &src_grease_pencil, const Span< const bke::CurvesGeometry * > all_src_curves, const Span< float4x4 > transforms_to_apply, const bke::AttributeFilter &attribute_filter) |
| static void | remap_verts (const OffsetIndices< int > src_faces, const OffsetIndices< int > dst_faces, const int src_verts_num, const IndexMask &vert_mask, const IndexMask &edge_mask, const IndexMask &face_mask, const Span< int2 > src_edges, const Span< int > src_corner_verts, MutableSpan< int2 > dst_edges, MutableSpan< int > dst_corner_verts) |
| static void | remap_edges (const OffsetIndices< int > src_faces, const OffsetIndices< int > dst_faces, const int src_edges_num, const IndexMask &edge_mask, const IndexMask &face_mask, const Span< int > src_corner_edges, MutableSpan< int > dst_corner_edges) |
| static void | copy_loose_vert_hint (const Mesh &src, Mesh &dst) |
| static void | copy_loose_edge_hint (const Mesh &src, Mesh &dst) |
| static void | copy_overlapping_hint (const Mesh &src, Mesh &dst) |
| static void | gather_vert_attributes (const Mesh &mesh_src, const bke::AttributeFilter &attribute_filter, const IndexMask &vert_mask, Mesh &mesh_dst) |
| static void | calculate_positions (const CuboidConfig &config, MutableSpan< float3 > positions) |
| static void | define_quad (MutableSpan< int > corner_verts, const int loop_index, const int vert_1, const int vert_2, const int vert_3, const int vert_4) |
| static void | calculate_corner_verts (const CuboidConfig &config, MutableSpan< int > corner_verts) |
| static void | calculate_uvs (const CuboidConfig &config, Mesh *mesh, const StringRef uv_id) |
| static void | calculate_cone_verts (const ConeConfig &config, MutableSpan< float3 > positions) |
| static void | calculate_cone_edges (const ConeConfig &config, MutableSpan< int2 > edges) |
| static void | calculate_cone_faces (const ConeConfig &config, MutableSpan< int > corner_verts, MutableSpan< int > corner_edges, MutableSpan< int > face_sizes) |
| static void | calculate_selection_outputs (const ConeConfig &config, const ConeAttributeOutputs &attribute_outputs, bke::MutableAttributeAccessor attributes) |
| static void | calculate_cone_uvs (const ConeConfig &config, Mesh *mesh, const StringRef uv_map_id) |
| static Mesh * | create_vertex_mesh () |
| static Bounds< float3 > | calculate_bounds_cylinder (const ConeConfig &config) |
| static void | calculate_uvs (Mesh *mesh, const Span< float3 > positions, const Span< int > corner_verts, const float size_x, const float size_y, const StringRef uv_map_id) |
| static int | sphere_vert_total (const int segments, const int rings) |
| static int | sphere_edge_total (const int segments, const int rings) |
| static int | sphere_corner_total (const int segments, const int rings) |
| static int | sphere_face_total (const int segments, const int rings) |
| static BLI_NOINLINE void | calculate_sphere_vertex_data (MutableSpan< float3 > positions, MutableSpan< float3 > vert_normals, const float radius, const int segments, const int rings) |
| static BLI_NOINLINE void | calculate_sphere_edge_indices (MutableSpan< int2 > edges, const int segments, const int rings) |
| static BLI_NOINLINE void | calculate_sphere_faces (MutableSpan< int > face_offsets, const int segments) |
| static BLI_NOINLINE void | calculate_sphere_corners (MutableSpan< int > corner_verts, MutableSpan< int > corner_edges, const int segments, const int rings) |
| static BLI_NOINLINE void | calculate_sphere_uvs (Mesh *mesh, const float segments, const float rings, const StringRef uv_map_id) |
| static Bounds< float3 > | calculate_bounds_uv_sphere (const float radius, const int segments, const int rings) |
| static IndexMask | mapped_corner_selection_from_face (const OffsetIndices< int > faces, const IndexMask &face_mask, const Span< int > corner_verts_or_edges, const int verts_or_edges_num, IndexMaskMemory &memory) |
| static IndexMask | face_selection_from_mapped_corner (const OffsetIndices< int > faces, const Span< int > corner_verts_or_edges, const Span< bool > vert_or_edge_selection, IndexMaskMemory &memory) |
| static void | propagate_vert_attributes (Mesh &mesh, const Span< int > new_to_old_verts_map) |
| static void | propagate_edge_attributes (Mesh &mesh, const Span< int > new_to_old_edge_map) |
| static BitVector | selection_to_bit_vector (const IndexMask &selection, const int total_size) |
| static int | corner_on_edge_connected_to_vert (const Span< int > corner_verts, const int corner, const IndexRange face, const int vert) |
| static Vector< CornerGroup > | calc_corner_groups_for_vertex (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const BitSpan split_edges, const Span< int > connected_corners, const int vert) |
| static BLI_NOINLINE Array< Vector< CornerGroup > > | calc_all_corner_groups (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, const GroupedSpan< int > vert_to_corner_map, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const BitSpan split_edges, const IndexMask &affected_verts) |
| static VertLooseEdges | calc_vert_loose_edges (const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, const int vert) |
| static OffsetIndices< int > | calc_vert_ranges_per_old_vert (const IndexMask &affected_verts, const Span< Vector< CornerGroup > > corner_groups, const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, Array< int > &offset_data) |
| static void | update_corner_verts (const int orig_verts_num, const Span< Vector< CornerGroup > > corner_groups, const OffsetIndices< int > new_verts_by_affected_vert, MutableSpan< int > new_corner_verts) |
| static OrderedEdge | edge_from_corner (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_to_face_map, const int corner) |
| static Array< int2 > | calc_new_edges (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const IndexMask &selected_edges, MutableSpan< int2 > edges, MutableSpan< int > corner_edges, MutableSpan< int > r_new_edge_offsets) |
| static void | update_unselected_edges (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const IndexMask &unselected_edges, MutableSpan< int2 > edges) |
| static void | swap_edge_vert (int2 &edge, const int old_vert, const int new_vert) |
| static void | reassign_loose_edge_verts (const int orig_verts_num, const IndexMask &affected_verts, const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, const Span< Vector< CornerGroup > > corner_groups, const OffsetIndices< int > new_verts_by_affected_vert, MutableSpan< int2 > edges) |
| static Array< int > | offsets_to_map (const IndexMask &mask, const OffsetIndices< int > offsets) |
| static BLI_NOINLINE CurveFromEdgesOutput | edges_to_curve_point_indices (const int verts_num, const Span< int2 > edges) |
| static BLI_NOINLINE bke::CurvesGeometry | edges_to_curves_convert (const Mesh &mesh, const Span< int2 > edges, const bke::AttributeFilter &attribute_filter) |
| static bool | sharing_info_equal (const ImplicitSharingInfo *a, const ImplicitSharingInfo *b) |
| template<typename T > | |
| void | mix_with_indices (MutableSpan< T > a, const VArray< T > &b, const Span< int > index_map, const float factor) |
| static void | mix_with_indices (GMutableSpan a, const GVArray &b, const Span< int > index_map, const float factor) |
| template<typename T > | |
| static void | mix (MutableSpan< T > a, const VArray< T > &b, const float factor) |
| static void | mix (GMutableSpan a, const GVArray &b, const float factor) |
| static void | mix_attributes (bke::MutableAttributeAccessor attributes_a, const bke::AttributeAccessor b_attributes, const Span< int > index_map, const bke::AttrDomain mix_domain, const float factor, const Set< std::string > &names_to_skip={}) |
| static Map< int, int > | create_value_to_first_index_map (const Span< int > values) |
| static Array< int > | create_id_index_map (const bke::AttributeAccessor attributes_a, const bke::AttributeAccessor b_attributes) |
| static Array< int > | get_permutation (const int length, const int seed) |
| static Array< int > | invert_permutation (const Span< int > permutation) |
| static int | seed_from_mesh (const Mesh &mesh) |
| static int | seed_from_pointcloud (const PointCloud &pointcloud) |
| static int | seed_from_curves (const bke::CurvesGeometry &curves) |
| static int | seed_from_instances (const bke::Instances &instances) |
| static void | reorder_customdata (CustomData &data, const Span< int > new_by_old_map) |
| static Array< int > | make_new_offset_indices (const OffsetIndices< int > old_offsets, const Span< int > old_by_new_map) |
| static void | reorder_customdata_groups (CustomData &data, const OffsetIndices< int > old_offsets, const OffsetIndices< int > new_offsets, const Span< int > new_by_old_map) |
| static int64_t | get_final_points_num (const GatherTasks &tasks) |
| static bool | skip_transform (const float4x4 &transform) |
| static void | copy_transformed_positions (const Span< float3 > src, const float4x4 &transform, MutableSpan< float3 > dst) |
| static void | transform_positions (const float4x4 &transform, MutableSpan< float3 > positions) |
| static void | copy_transformed_normals (const Span< float3 > src, const float4x4 &transform, MutableSpan< float3 > dst) |
| static void | threaded_copy (const GSpan src, GMutableSpan dst) |
| static void | threaded_fill (const GPointer value, GMutableSpan dst) |
| static void | copy_generic_attributes_to_result (const Span< std::optional< GVArraySpan > > src_attributes, const AttributeFallbacksArray &attribute_fallbacks, const OrderedAttributes &ordered_attributes, const FunctionRef< IndexRange(bke::AttrDomain)> &range_fn, MutableSpan< GSpanAttributeWriter > dst_attribute_writers) |
| static void | create_result_ids (const RealizeInstancesOptions &options, const Span< int > stored_ids, const int task_id, MutableSpan< int > dst_ids) |
| static void | reorder_attributes_group_to_group (const bke::AttributeAccessor src_attributes, const bke::AttrDomain domain, const OffsetIndices< int > src_offsets, const OffsetIndices< int > dst_offsets, const Span< int > old_by_new_map, bke::MutableAttributeAccessor dst_attributes) |
| static Array< int > | invert_permutation (const Span< int > permutation) |
| static void | reorder_mesh_verts_exec (const Mesh &src_mesh, const Span< int > old_by_new_map, Mesh &dst_mesh) |
| static void | reorder_mesh_edges_exec (const Mesh &src_mesh, const Span< int > old_by_new_map, Mesh &dst_mesh) |
| static void | reorder_mesh_faces_exec (const Mesh &src_mesh, const Span< int > old_by_new_map, Mesh &dst_mesh) |
| static void | reorder_mesh_exec (const Mesh &src_mesh, const Span< int > old_by_new_map, const bke::AttrDomain domain, Mesh &dst_mesh) |
| static void | reorder_points_exec (const PointCloud &src_pointcloud, const Span< int > old_by_new_map, PointCloud &dst_pointcloud) |
| static void | reorder_curves_exec (const bke::CurvesGeometry &src_curves, const Span< int > old_by_new_map, bke::CurvesGeometry &dst_curves) |
| static void | reorder_instaces_exec (const bke::Instances &src_instances, const Span< int > old_by_new_map, bke::Instances &dst_instances) |
| static void | clean_unused_attributes (const bke::AttributeFilter &attribute_filter, bke::MutableAttributeAccessor attributes) |
| static fn::Field< int > | get_count_input_max_one (const fn::Field< int > &count_field) |
| static fn::Field< int > | get_count_input_from_length (const fn::Field< float > &length_field) |
| static bool | interpolate_attribute_to_curves (const StringRef attribute_id, const std::array< int, CURVE_TYPES_NUM > &type_counts) |
| static bool | interpolate_attribute_to_poly_curve (const StringRef attribute_id) |
| static void | retrieve_attribute_spans (const Span< StringRef > ids, const CurvesGeometry &src_curves, CurvesGeometry &dst_curves, Vector< GVArraySpan > &src, Vector< GMutableSpan > &dst, Vector< bke::GSpanAttributeWriter > &dst_attributes) |
| static void | gather_point_attributes_to_interpolate (const CurvesGeometry &src_curves, CurvesGeometry &dst_curves, AttributesForResample &result, const ResampleCurvesOutputAttributeIDs &output_ids) |
| static void | copy_or_defaults_for_unselected_curves (const CurvesGeometry &src_curves, const IndexMask &unselected_curves, const AttributesForResample &attributes, CurvesGeometry &dst_curves) |
| static void | normalize_span (MutableSpan< float3 > data) |
| static void | normalize_curve_point_data (const IndexMaskSegment curve_selection, const OffsetIndices< int > points_by_curve, MutableSpan< float3 > data) |
| static void | resample_to_uniform (const CurvesGeometry &src_curves, const IndexMask &selection, const ResampleCurvesOutputAttributeIDs &output_ids, CurvesGeometry &dst_curves) |
| static CurvesGeometry | resample_to_uniform (const CurvesGeometry &src_curves, const fn::FieldContext &field_context, const fn::Field< bool > &selection_field, const fn::Field< int > &count_field, const ResampleCurvesOutputAttributeIDs &output_ids) |
| static int2 | uv_to_cell (const float2 &uv, const int resolution) |
| static Bounds< int2 > | tri_to_cell_bounds (const int3 &tri, const int resolution, const Span< float2 > uv_map) |
| static void | sort_tris_into_rows (const Span< float2 > uv_map, const Span< int3 > corner_tris, const int resolution, threading::EnumerableThreadSpecific< LocalData > &data_per_thread) |
| static void | finish_rows (const Span< int > all_ys, const Span< const LocalData * > local_data_vec, const Bounds< int > y_bounds, ReverseUVSampler::LookupGrid &lookup_grid) |
| static Span< int > | lookup_tris_in_cell (const int2 cell, const ReverseUVSampler::LookupGrid &lookup_grid) |
| static std::optional< bke::CurvesGeometry > | separate_curves_selection (const bke::CurvesGeometry &src_curves, const fn::FieldContext &field_context, const fn::Field< bool > &selection_field, const AttrDomain domain, const bke::AttributeFilter &attribute_filter) |
| static std::optional< PointCloud * > | separate_point_cloud_selection (const PointCloud &src_pointcloud, const fn::Field< bool > &selection_field, const bke::AttributeFilter &attribute_filter) |
| static void | delete_selected_instances (bke::GeometrySet &geometry_set, const fn::Field< bool > &selection_field, const bke::AttributeFilter &attribute_filter) |
| static std::optional< Mesh * > | separate_mesh_selection (const Mesh &mesh, const fn::Field< bool > &selection_field, const AttrDomain selection_domain, const GeometryNodeDeleteGeometryMode mode, const bke::AttributeFilter &attribute_filter) |
| static std::optional< GreasePencil * > | separate_grease_pencil_layer_selection (const GreasePencil &src_grease_pencil, const fn::Field< bool > &selection_field, const bke::AttributeFilter &attribute_filter) |
| void | separate_geometry (bke::GeometrySet &geometry_set, const AttrDomain domain, const GeometryNodeDeleteGeometryMode mode, const fn::Field< bool > &selection, const bke::AttributeFilter &attribute_filter, bool &r_is_error) |
| static bool | is_nurbs_to_bezier_one_to_one (const KnotsMode knots_mode) |
| template<typename T > | |
| static void | scale_input_assign (const Span< T > src, const int scale, const int offset, MutableSpan< T > dst) |
| template<typename T > | |
| static void | bezier_generic_to_nurbs (const Span< T > src, MutableSpan< T > dst) |
| static void | bezier_generic_to_nurbs (const GSpan src, GMutableSpan dst) |
| static void | bezier_positions_to_nurbs (const Span< float3 > src_positions, const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, MutableSpan< float3 > dst_positions) |
| static void | catmull_rom_to_bezier_handles (const Span< float3 > src_positions, const bool cyclic, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r) |
| static void | catmull_rom_to_nurbs_positions (const Span< float3 > src_positions, const bool cyclic, MutableSpan< float3 > dst_positions) |
| template<typename T > | |
| static void | nurbs_to_bezier_assign (const Span< T > src, const MutableSpan< T > dst, const KnotsMode knots_mode) |
| static void | nurbs_to_bezier_assign (const GSpan src, const KnotsMode knots_mode, GMutableSpan dst) |
| static Vector< float3 > | create_nurbs_to_bezier_handles (const Span< float3 > nurbs_positions, const KnotsMode knots_mode) |
| static void | create_nurbs_to_bezier_positions (const Span< float3 > nurbs_positions, const Span< float3 > handle_positions, const KnotsMode knots_mode, MutableSpan< float3 > bezier_positions) |
| static int | to_bezier_size (const CurveType src_type, const bool cyclic, const KnotsMode knots_mode, const int src_size) |
| static int | to_nurbs_size (const CurveType src_type, const int src_size) |
| static bke::CurvesGeometry | convert_curves_to_bezier (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const bke::AttributeFilter &attribute_filter) |
| static bke::CurvesGeometry | convert_curves_to_nurbs (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const bke::AttributeFilter &attribute_filter) |
| static bke::CurvesGeometry | convert_curves_trivial (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const CurveType dst_type) |
| static bke::CurvesGeometry | convert_curves_to_catmull_rom_or_poly (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const CurveType dst_type, const bke::AttributeFilter &attribute_filter, const ConvertCurvesOptions &options) |
| static bke::CurvesGeometry | convert_bezier_or_catmull_rom_to_poly_before_conversion_to_nurbs (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const ConvertCurvesOptions &options) |
| template<typename T > | |
| float | perpendicular_distance (const Span< float3 > positions, const Span< T > attribute_data, const int64_t first_index, const int64_t last_index, const int64_t index) |
| template<typename T > | |
| static void | ramer_douglas_peucker (const IndexRange range, const Span< float3 > positions, const float epsilon, const Span< T > attribute_data, MutableSpan< bool > points_to_delete) |
| template<typename T > | |
| static void | curve_simplify (const Span< float3 > positions, const bool cyclic, const float epsilon, const Span< T > attribute_data, MutableSpan< bool > points_to_delete) |
| template<typename T > | |
| static void | gaussian_blur_1D (const Span< T > src, const int iterations, const VArray< float > &influence_by_point, const bool smooth_ends, const bool keep_shape, const bool is_cyclic, MutableSpan< T > dst) |
| static void | calculate_result_offsets (const bke::CurvesGeometry &src_curves, const IndexMask &selection, const IndexMask &unselected, const VArray< int > &cuts, const Span< bool > cyclic, MutableSpan< int > dst_curve_offsets, MutableSpan< int > dst_point_offsets) |
| template<typename T > | |
| static void | linear_interpolation (const T &a, const T &b, MutableSpan< T > dst) |
| template<typename T > | |
| static void | subdivide_attribute_linear (const OffsetIndices< int > src_points_by_curve, const OffsetIndices< int > dst_points_by_curve, const IndexMask &selection, const Span< int > all_point_offsets, const Span< T > src, MutableSpan< T > dst) |
| static void | subdivide_attribute_linear (const OffsetIndices< int > src_points_by_curve, const OffsetIndices< int > dst_points_by_curve, const IndexMask &selection, const Span< int > all_point_offsets, const GSpan src, GMutableSpan dst) |
| static void | subdivide_attribute_catmull_rom (const OffsetIndices< int > src_points_by_curve, const OffsetIndices< int > dst_points_by_curve, const IndexMask &selection, const Span< int > all_point_offsets, const Span< bool > cyclic, const GSpan src, GMutableSpan dst) |
| static void | subdivide_bezier_segment (const float3 &position_prev, const float3 &handle_prev, const float3 &handle_next, const float3 &position_next, const HandleType type_prev, const HandleType type_next, const IndexRange segment_points, MutableSpan< float3 > dst_positions, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r, const bool is_last_cyclic_segment) |
| static void | subdivide_bezier_positions (const Span< float3 > src_positions, const Span< int8_t > src_types_l, const Span< int8_t > src_types_r, const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, const OffsetIndices< int > evaluated_offsets, const bool cyclic, MutableSpan< float3 > dst_positions, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r) |
| static void | translate_positions (MutableSpan< float3 > positions, const float3 &translation) |
| static void | transform_positions (MutableSpan< float3 > positions, const float4x4 &matrix) |
| static void | transform_mesh (Mesh &mesh, const float4x4 &transform) |
| static void | translate_pointcloud (PointCloud &pointcloud, const float3 translation) |
| static void | transform_pointcloud (PointCloud &pointcloud, const float4x4 &transform) |
| static void | translate_greasepencil (GreasePencil &grease_pencil, const float3 translation) |
| static void | transform_greasepencil (GreasePencil &grease_pencil, const float4x4 &transform) |
| static void | translate_instances (bke::Instances &instances, const float3 translation) |
| static void | transform_instances (bke::Instances &instances, const float4x4 &transform) |
| static bool | transform_volume (Volume &volume, const float4x4 &transform) |
| static void | translate_volume (Volume &volume, const float3 translation) |
| static void | transform_curve_edit_hints (bke::CurvesEditHints &edit_hints, const float4x4 &transform) |
| static void | transform_gizmo_edit_hints (bke::GizmoEditHints &edit_hints, const float4x4 &transform) |
| static void | translate_curve_edit_hints (bke::CurvesEditHints &edit_hints, const float3 &translation) |
| static void | translate_gizmos_edit_hints (bke::GizmoEditHints &edit_hints, const float3 &translation) |
| static float | dist_signed_squared_to_edge (const float2 probe, const float2 uva, const float2 uvb) |
| static float | get_aspect_scaled_extent (const rctf &extent, const UVPackIsland_Params ¶ms) |
| static float | get_aspect_scaled_area (const rctf &extent, const UVPackIsland_Params ¶ms) |
| static bool | is_larger (const rctf &a, const rctf &b, const UVPackIsland_Params ¶ms) |
| static bool | can_rotate (const Span< PackIsland * > islands, const UVPackIsland_Params ¶ms) |
| static float | angle_match (float angle_radians, float target_radians) |
| static float | angle_wrap (float angle_radians) |
| static float | plusminus_90_angle (float angle_radians) |
| static void | pack_islands_alpaca_turbo (const int64_t exclude_index, const rctf &exclude, const Span< std::unique_ptr< UVAABBIsland > > islands, const float target_aspect_y, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static void | update_hole_rotate (float2 &hole, float2 &hole_diagonal, bool &hole_rotate, const float u0, const float v0, const float u1, const float v1) |
| static void | pack_islands_alpaca_rotate (const int64_t exclude_index, const rctf &exclude, const Span< std::unique_ptr< UVAABBIsland > > islands, const float target_aspect_y, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static void | pack_islands_fast (const int64_t exclude_index, const rctf &exclude, const Span< std::unique_ptr< UVAABBIsland > > aabbs, const bool rotate, const float target_aspect_y, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static void | pack_gobel (const Span< std::unique_ptr< UVAABBIsland > > aabbs, const float scale, const int m, MutableSpan< UVPhi > r_phis) |
| static bool | pack_islands_optimal_pack_table (const int table_count, const float max_extent, const float *optimal, const char *, int64_t island_count, const float large_uv, const Span< std::unique_ptr< UVAABBIsland > > aabbs, const UVPackIsland_Params ¶ms, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static void | pack_islands_optimal_pack (const Span< std::unique_ptr< UVAABBIsland > > aabbs, const UVPackIsland_Params ¶ms, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static void | pack_island_box_pack_2d (const Span< std::unique_ptr< UVAABBIsland > > aabbs, const UVPackIsland_Params ¶ms, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static float | signed_distance_fat_triangle (const float2 probe, const float2 uv0, const float2 uv1, const float2 uv2) |
| static UVPhi | find_best_fit_for_island (const PackIsland *island, const int scan_line, const Occupancy &occupancy, const float scale, const int angle_90_multiple, const float margin, const float target_aspect_y) |
| static float | guess_initial_scale (const Span< PackIsland * > islands, const float scale, const float margin) |
| static bool | rotate_inside_square (const Span< std::unique_ptr< UVAABBIsland > > island_indices, const Span< PackIsland * > islands, const UVPackIsland_Params ¶ms, const float scale, const float margin, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static int64_t | pack_island_xatlas (const Span< std::unique_ptr< UVAABBIsland > > island_indices, const Span< PackIsland * > islands, const float scale, const float margin, const UVPackIsland_Params ¶ms, MutableSpan< UVPhi > r_phis, rctf *r_extent) |
| static float | pack_islands_scale_margin (const Span< PackIsland * > islands, const float scale, const float margin, const UVPackIsland_Params ¶ms, MutableSpan< UVPhi > r_phis) |
| static float | pack_islands_margin_fraction (const Span< PackIsland * > islands, const float margin_fraction, const bool rescale_margin, const UVPackIsland_Params ¶ms) |
| static float | calc_margin_from_aabb_length_sum (const Span< PackIsland * > island_vector, const UVPackIsland_Params ¶ms) |
| static bool | can_rotate_with_method (const PackIsland &island, const UVPackIsland_Params ¶ms, const eUVPackIsland_RotationMethod rotate_method) |
| static PHash * | phash_new (PHashLink **list, int sizehint) |
| static void | phash_safe_delete (PHash **pph) |
| static int | phash_size (PHash *ph) |
| static void | phash_insert (PHash *ph, PHashLink *link) |
| static PHashLink * | phash_lookup (PHash *ph, PHashKey key) |
| static PHashLink * | phash_next (PHash *ph, PHashKey key, PHashLink *link) |
| static void | fix_large_angle (const float v_fix[3], const float v1[3], const float v2[3], double *r_fix, double *r_a1, double *r_a2) |
| static void | p_triangle_angles (const float v1[3], const float v2[3], const float v3[3], double *r_a1, double *r_a2, double *r_a3) |
| static void | p_face_angles (PFace *f, double *r_a1, double *r_a2, double *r_a3) |
| static float | p_vec_cos (const float v1[3], const float v2[3], const float v3[3]) |
| static void | p_triangle_cos (const float v1[3], const float v2[3], const float v3[3], float *r_cos1, float *r_cos2, float *r_cos3) |
| static void UNUSED_FUNCTION | p_face_cos (PFace *f, float *r_cos1, float *r_cos2, float *r_cos3) |
| static float | p_face_area (PFace *f) |
| static float | p_area_signed (const float v1[2], const float v2[2], const float v3[2]) |
| static float | p_face_uv_area_signed (PFace *f) |
| static float | p_edge_length (PEdge *e) |
| static float | p_edge_length_squared (PEdge *e) |
| static float | p_edge_uv_length (PEdge *e) |
| static void | p_chart_uv_bbox (PChart *chart, float minv[2], float maxv[2]) |
| static float | p_chart_uv_area (PChart *chart) |
| static void | p_chart_uv_scale (PChart *chart, const float scale) |
| static void | uv_parametrizer_scale_x (ParamHandle *phandle, const float scale_x) |
| static void | p_chart_uv_translate (PChart *chart, const float trans[2]) |
| static void | p_chart_uv_transform (PChart *chart, const float mat[2][2]) |
| static void | p_chart_uv_to_array (PChart *chart, float(*points)[2]) |
| static bool | p_intersect_line_2d_dir (const float v1[2], const float dir1[2], const float v2[2], const float dir2[2], float r_isect[2]) |
| static PEdge * | p_wheel_edge_next (PEdge *e) |
| static const PEdge * | p_wheel_edge_next (const PEdge *e) |
| static PEdge * | p_wheel_edge_prev (PEdge *e) |
| static PEdge * | p_boundary_edge_next (PEdge *e) |
| static PEdge * | p_boundary_edge_prev (PEdge *e) |
| static bool | p_vert_interior (PVert *v) |
| static void | p_face_flip (PFace *f) |
| static void | p_vert_load_pin_select_uvs (ParamHandle *handle, PVert *v) |
| static void | p_flush_uvs (ParamHandle *handle, PChart *chart) |
| static void | p_face_backup_uvs (PFace *f) |
| static void | p_face_restore_uvs (PFace *f) |
| static PVert * | p_vert_add (ParamHandle *handle, PHashKey key, const float co[3], const float weight, PEdge *e) |
| static PVert * | p_vert_lookup (ParamHandle *handle, PHashKey key, const float co[3], const float weight, PEdge *e) |
| static PVert * | p_vert_copy (ParamHandle *handle, PVert *v) |
| static PEdge * | p_edge_lookup (ParamHandle *handle, const PHashKey *vkeys) |
| static int | p_face_exists (ParamHandle *handle, const ParamKey *pvkeys, int i1, int i2, int i3) |
| static bool | p_edge_implicit_seam (PEdge *e, PEdge *ep) |
| static bool | p_edge_has_pair (ParamHandle *handle, PEdge *e, bool topology_from_uvs, PEdge **r_pair) |
| static bool | p_edge_connect_pair (ParamHandle *handle, PEdge *e, bool topology_from_uvs, PEdge ***stack) |
| static int | p_connect_pairs (ParamHandle *handle, bool topology_from_uvs) |
| static void | p_split_vert (ParamHandle *handle, PChart *chart, PEdge *e) |
| static PChart ** | p_split_charts (ParamHandle *handle, PChart *chart, int ncharts) |
| static PFace * | p_face_add (ParamHandle *handle) |
| static PFace * | p_face_add_construct (ParamHandle *handle, ParamKey key, const ParamKey *vkeys, const float **co, float **uv, const float *weight, int i1, int i2, int i3, const bool *pin, const bool *select) |
| static PFace * | p_face_add_fill (ParamHandle *handle, PChart *chart, PVert *v1, PVert *v2, PVert *v3) |
| static void | p_chart_boundaries (PChart *chart, PEdge **r_outer) |
| static float | p_edge_boundary_angle (PEdge *e) |
| static void | p_chart_fill_boundary (ParamHandle *handle, PChart *chart, PEdge *be, int nedges) |
| static void | p_chart_fill_boundaries (ParamHandle *handle, PChart *chart, const PEdge *outer) |
| static void | p_vert_fix_edge_pointer (PVert *v) |
| static void | p_collapsing_verts (PEdge *edge, PEdge *pair, PVert **r_newv, PVert **r_keepv) |
| static void | p_collapse_edge (PEdge *edge, PEdge *pair) |
| static bool | p_collapse_allowed_topologic (PEdge *edge, PEdge *pair) |
| static void | p_collapse_cost_vertex (PVert *vert, float *r_mincost, PEdge **r_mine, const std::function< float(PEdge *, PEdge *)> &collapse_cost_fn, const std::function< float(PEdge *, PEdge *)> &collapse_allowed_fn) |
| static void | p_chart_post_collapse_flush (PChart *chart, PEdge *collapsed) |
| static void | p_chart_simplify_compute (PChart *chart, std::function< float(PEdge *, PEdge *)> collapse_cost_fn, std::function< float(PEdge *, PEdge *)> collapse_allowed_fn) |
| static void | p_abf_setup_system (PAbfSystem *sys) |
| static void | p_abf_free_system (PAbfSystem *sys) |
| static void | p_abf_compute_sines (PAbfSystem *sys) |
| static float | p_abf_compute_sin_product (PAbfSystem *sys, PVert *v, int aid) |
| static float | p_abf_compute_grad_alpha (PAbfSystem *sys, PFace *f, PEdge *e) |
| static float | p_abf_compute_gradient (PAbfSystem *sys, PChart *chart) |
| static void | p_abf_adjust_alpha (PAbfSystem *sys, const int id, const float dlambda1, const float pre) |
| static bool | p_abf_matrix_invert (PAbfSystem *sys, PChart *chart) |
| static bool | p_chart_abf_solve (PChart *chart) |
| static void | p_chart_pin_positions (PChart *chart, PVert **pin1, PVert **pin2) |
| static bool | p_chart_symmetry_pins (PChart *chart, PEdge *outer, PVert **pin1, PVert **pin2) |
| static void | p_chart_extrema_verts (PChart *chart, PVert **pin1, PVert **pin2) |
| static void | p_chart_lscm_begin (PChart *chart, bool live, bool abf) |
| static bool | p_chart_lscm_solve (ParamHandle *handle, PChart *chart) |
| static void | p_chart_lscm_transform_single_pin (PChart *chart) |
| static void | p_chart_lscm_end (PChart *chart) |
| static void | p_stretch_pin_boundary (PChart *chart) |
| static float | p_face_stretch (PFace *f) |
| static float | p_stretch_compute_vertex (PVert *v) |
| static void | p_chart_stretch_minimize (PChart *chart, RNG *rng) |
| static int | p_compare_geometric_uv (const void *a, const void *b) |
| static bool | p_chart_convex_hull (PChart *chart, PVert ***r_verts, int *r_nverts, int *r_right) |
| static float | p_rectangle_area (float *p1, float *dir, float *p2, float *p3, float *p4) |
| static float | p_chart_minimum_area_angle (PChart *chart) |
| static void | p_chart_rotate_minimum_area (PChart *chart) |
| static void | p_chart_rotate_fit_aabb (PChart *chart) |
| static GeoUVPinIndex * | new_geo_uv_pinindex (ParamHandle *handle, const float uv[2]) |
| static void | p_add_ngon (ParamHandle *handle, const ParamKey key, const int nverts, const ParamKey *vkeys, const float **co, float **uv, const float *weight, const bool *pin, const bool *select) |
Merge Map Creation | |
| std::optional< Mesh * > | mesh_merge_by_distance_all (const Mesh &mesh, const IndexMask &selection, float merge_distance) |
| std::optional< Mesh * > | mesh_merge_by_distance_connected (const Mesh &mesh, Span< bool > selection, float merge_distance, bool only_loose_edges) |
| Mesh * | mesh_merge_verts (const Mesh &mesh, MutableSpan< int > vert_dest_map, int vert_dest_map_len, const bool do_mix_data) |
Realize Instances | |
| bke::GeometrySet | realize_instances (bke::GeometrySet geometry_set, const RealizeInstancesOptions &options) |
| bke::GeometrySet | realize_instances (bke::GeometrySet geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
| static void | remove_id_attribute_from_instances (bke::GeometrySet &geometry_set) |
| static void | propagate_instances_to_keep (const bke::GeometrySet &geometry_set, const IndexMask &selection, bke::GeometrySet &new_geometry_set, const bke::AttributeFilter &attribute_filter) |
Chart Construction: | |
Faces and seams may only be added between ParamHandle::ParamHandle() and geometry::uv_parametrizer_construct_end. The pointers to In geometry::uv_parametrizer_construct_end the mesh will be split up according to the seams. The resulting charts must be manifold, connected and open (at least one boundary loop). The output will be written to the | |
| void | uv_parametrizer_aspect_ratio (ParamHandle *handle, float aspect_y) |
| void | uv_prepare_pin_index (ParamHandle *handle, const int bmvertindex, const float uv[2]) |
| ParamKey | uv_find_pin_index (ParamHandle *handle, const int bmvertindex, const float uv[2]) |
| void | uv_parametrizer_face_add (ParamHandle *handle, const ParamKey key, const int nverts, const ParamKey *vkeys, const float **co, float **uv, const float *weight, const bool *pin, const bool *select) |
| void | uv_parametrizer_edge_set_seam (ParamHandle *phandle, const ParamKey *vkeys) |
| void | uv_parametrizer_construct_end (ParamHandle *phandle, bool fill_holes, bool topology_from_uvs, int *r_count_failed=nullptr) |
SLIM: | |
| |
| void | uv_parametrizer_slim_solve (ParamHandle *phandle, const ParamSlimOptions *slim_options, int *count_changed, int *count_failed) |
| void | uv_parametrizer_slim_live_begin (ParamHandle *phandle, const ParamSlimOptions *slim_options) |
| void | uv_parametrizer_slim_live_solve_iteration (ParamHandle *phandle) |
| void | uv_parametrizer_slim_live_end (ParamHandle *phandle) |
| void | uv_parametrizer_slim_stretch_iteration (ParamHandle *phandle, float blend) |
| bool | uv_parametrizer_is_slim (const ParamHandle *phandle) |
Least Squares Conformal Maps: | |
Charts with less than two pinned vertices are assigned two pins. LSCM is divided to three steps:
UV coordinates are allowed to change within begin/end, for quick re-solving. | |
| void | uv_parametrizer_lscm_begin (ParamHandle *handle, bool live, bool abf) |
| void | uv_parametrizer_lscm_solve (ParamHandle *handle, int *count_changed, int *count_failed) |
| void | uv_parametrizer_lscm_end (ParamHandle *handle) |
Stretch | |
| void | uv_parametrizer_stretch_begin (ParamHandle *handle) |
| void | uv_parametrizer_stretch_blend (ParamHandle *handle, float blend) |
| void | uv_parametrizer_stretch_iter (ParamHandle *handle) |
| void | uv_parametrizer_stretch_end (ParamHandle *handle) |
Packing | |
| void | uv_parametrizer_pack (ParamHandle *handle, float margin, bool do_rotate, bool ignore_pinned) |
Average area for all charts | |
| void | uv_parametrizer_average (ParamHandle *handle, bool ignore_pinned, bool scale_uv, bool shear) |
Flushing | |
| void | uv_parametrizer_flush (ParamHandle *handle) |
| void | uv_parametrizer_flush_restore (ParamHandle *handle) |
Vert API | |
| static Vector< int > | weld_vert_ctx_alloc_and_setup (MutableSpan< int > vert_dest_map, const int vert_kill_len) |
Edge API | |
| static Vector< WeldEdge > | weld_edge_ctx_alloc_and_find_collapsed (Span< int2 > edges, Span< int > vert_dest_map, MutableSpan< int > r_edge_dest_map, int *r_edge_collapsed_len) |
| static void | weld_edge_find_doubles (Span< WeldEdge > weld_edges, int mvert_num, MutableSpan< int > r_edge_dest_map, int *r_edge_double_kill_len) |
Poly and Loop API | |
| static bool | weld_iter_loop_of_poly_next (WeldLoopOfPolyIter &iter) |
| static bool | weld_iter_loop_of_poly_begin (WeldLoopOfPolyIter &iter, const WeldPoly &wp, Span< WeldLoop > wloop, const Span< int > corner_verts, const Span< int > corner_edges, Span< int > loop_map, int *group_buffer) |
| static void | weld_poly_loop_ctx_alloc (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, WeldMesh *r_weld_mesh) |
| static void | weld_poly_split_recursive (int poly_loop_len, Span< int > vert_dest_map, WeldPoly *r_wp, WeldMesh *r_weld_mesh, int *r_poly_kill, int *r_loop_kill) |
| static void | weld_poly_loop_ctx_setup_collapsed_and_split (const int remain_edge_ctx_len, WeldMesh *r_weld_mesh) |
| static int | poly_find_doubles (const OffsetIndices< int > poly_corners_offsets, const int poly_num, const Span< int > corners, const int corner_index_max, Vector< int > &r_doubles_offsets, Array< int > &r_doubles_buffer) |
| static void | weld_poly_find_doubles (const Span< int > corner_verts, const Span< int > corner_edges, const int medge_len, WeldMesh *r_weld_mesh) |
Mesh API | |
| static void | weld_mesh_context_create (const Mesh &mesh, MutableSpan< int > vert_dest_map, const int vert_kill_len, const bool get_doubles, WeldMesh *r_weld_mesh) |
CustomData | |
| static void | merge_groups_create (Span< int > dest_map, Span< int > double_elems, MutableSpan< int > r_groups_offsets, Array< int > &r_groups_buffer) |
| Create groups to merge. | |
| static void | customdata_weld (const CustomData *source, CustomData *dest, const int *src_indices, int count, int dest_index) |
| static void | merge_customdata_all (const CustomData *source, CustomData *dest, Span< int > dest_map, Span< int > double_elems, const int dest_size, const bool do_mix_data, Array< int > &r_final_map) |
Applies to CustomData *dest the values in CustomData *source. | |
Mesh Vertex Merging | |
| static Mesh * | create_merged_mesh (const Mesh &mesh, MutableSpan< int > vert_dest_map, const int removed_vertex_count, const bool do_mix_data) |
Gather Realize Tasks | |
| static void | gather_realize_tasks_recursive (GatherTasksInfo &gather_info, const int current_depth, const int target_depth, const bke::GeometrySet &geometry_set, const float4x4 &base_transform, const InstanceContext &base_instance_context) |
| static Vector< std::pair< int, GSpan > > | prepare_attribute_fallbacks (GatherTasksInfo &gather_info, const Instances &instances, const OrderedAttributes &ordered_attributes) |
| static void | foreach_geometry_in_reference (const InstanceReference &reference, const float4x4 &base_transform, const uint32_t id, FunctionRef< void(const bke::GeometrySet &geometry_set, const float4x4 &transform, uint32_t id)> fn) |
| static void | gather_realize_tasks_for_instances (GatherTasksInfo &gather_info, const int current_depth, const int target_depth, const Instances &instances, const float4x4 &base_transform, const InstanceContext &base_instance_context) |
| static void | gather_attribute_propagation_components (const bke::GeometrySet &geometry, const bke::GeometryComponent::Type component_type, const RealizeInstancesOptions &options, const int current_depth, const std::optional< int > max_depth, Set< bke::GeometryComponentPtr > &r_components) |
| static void | gather_attribute_propagation_components_with_custom_depths (const bke::GeometrySet &geometry, const bke::GeometryComponent::Type component_type, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option, Set< bke::GeometryComponentPtr > &r_components) |
| static Map< StringRef, AttributeKind > | gather_attributes_to_propagate (const bke::GeometrySet &geometry, const bke::GeometryComponent::Type component_type, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
Instance | |
| static OrderedAttributes | gather_generic_instance_attributes_to_propagate (const bke::GeometrySet &in_geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
| static void | execute_instances_tasks (const Span< bke::GeometryComponentPtr > src_components, Span< blender::float4x4 > src_base_transforms, OrderedAttributes all_instances_attributes, Span< blender::geometry::AttributeFallbacksArray > attribute_fallback, bke::GeometrySet &r_realized_geometry) |
Point Cloud | |
| static OrderedAttributes | gather_generic_pointcloud_attributes_to_propagate (const bke::GeometrySet &in_geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option, bool &r_create_radii, bool &r_create_id) |
| static void | gather_pointclouds_to_realize (const bke::GeometrySet &geometry_set, VectorSet< const PointCloud * > &r_pointclouds) |
| static AllPointCloudsInfo | preprocess_pointclouds (const bke::GeometrySet &geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
| static void | execute_realize_pointcloud_task (const RealizeInstancesOptions &options, const RealizePointCloudTask &task, const OrderedAttributes &ordered_attributes, MutableSpan< GSpanAttributeWriter > dst_attribute_writers, MutableSpan< float > all_dst_radii, MutableSpan< int > all_dst_ids, MutableSpan< float3 > all_dst_positions) |
| static void | add_instance_attributes_to_single_geometry (const OrderedAttributes &ordered_attributes, const AttributeFallbacksArray &attribute_fallbacks, bke::MutableAttributeAccessor attributes) |
| static void | execute_realize_pointcloud_tasks (const RealizeInstancesOptions &options, const AllPointCloudsInfo &all_pointclouds_info, const Span< RealizePointCloudTask > tasks, const OrderedAttributes &ordered_attributes, bke::GeometrySet &r_realized_geometry) |
Mesh | |
| static OrderedAttributes | gather_generic_mesh_attributes_to_propagate (const bke::GeometrySet &in_geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option, bool &r_create_id, bool &r_create_material_index) |
| static void | gather_meshes_to_realize (const bke::GeometrySet &geometry_set, VectorSet< const Mesh * > &r_meshes) |
| static AllMeshesInfo | preprocess_meshes (const bke::GeometrySet &geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
| static void | execute_realize_mesh_task (const RealizeInstancesOptions &options, const RealizeMeshTask &task, const OrderedAttributes &ordered_attributes, MutableSpan< GSpanAttributeWriter > dst_attribute_writers, MutableSpan< float3 > all_dst_positions, MutableSpan< int2 > all_dst_edges, MutableSpan< int > all_dst_face_offsets, MutableSpan< int > all_dst_corner_verts, MutableSpan< int > all_dst_corner_edges, MutableSpan< int > all_dst_vertex_ids, MutableSpan< int > all_dst_material_indices) |
| static void | execute_realize_mesh_tasks (const RealizeInstancesOptions &options, const AllMeshesInfo &all_meshes_info, const Span< RealizeMeshTask > tasks, const OrderedAttributes &ordered_attributes, const VectorSet< Material * > &ordered_materials, bke::GeometrySet &r_realized_geometry) |
Curves | |
| static OrderedAttributes | gather_generic_curve_attributes_to_propagate (const bke::GeometrySet &in_geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option, bool &r_create_id) |
| static void | gather_curves_to_realize (const bke::GeometrySet &geometry_set, VectorSet< const Curves * > &r_curves) |
| static AllCurvesInfo | preprocess_curves (const bke::GeometrySet &geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_option) |
| static void | execute_realize_curve_task (const RealizeInstancesOptions &options, const AllCurvesInfo &all_curves_info, const RealizeCurveTask &task, const OrderedAttributes &ordered_attributes, bke::CurvesGeometry &dst_curves, MutableSpan< GSpanAttributeWriter > dst_attribute_writers, MutableSpan< int > all_dst_ids, MutableSpan< float3 > all_handle_left, MutableSpan< float3 > all_handle_right, MutableSpan< float > all_radii, MutableSpan< float > all_nurbs_weights, MutableSpan< int > all_resolutions, MutableSpan< float3 > all_custom_normals) |
| static void | execute_realize_curve_tasks (const RealizeInstancesOptions &options, const AllCurvesInfo &all_curves_info, const Span< RealizeCurveTask > tasks, const OrderedAttributes &ordered_attributes, bke::GeometrySet &r_realized_geometry) |
Grease Pencil | |
| static OrderedAttributes | gather_generic_grease_pencil_attributes_to_propagate (const bke::GeometrySet &in_geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_options) |
| static void | gather_grease_pencils_to_realize (const bke::GeometrySet &geometry_set, VectorSet< const GreasePencil * > &r_grease_pencils) |
| static AllGreasePencilsInfo | preprocess_grease_pencils (const bke::GeometrySet &geometry_set, const RealizeInstancesOptions &options, const VariedDepthOptions &varied_depth_options) |
| static void | execute_realize_grease_pencil_task (const RealizeGreasePencilTask &task, const OrderedAttributes &ordered_attributes, GreasePencil &dst_grease_pencil, MutableSpan< GSpanAttributeWriter > dst_attribute_writers) |
| static void | transform_grease_pencil_layers (Span< bke::greasepencil::Layer * > layers, const float4x4 &transform) |
| static void | execute_realize_grease_pencil_tasks (const AllGreasePencilsInfo &all_grease_pencils_info, const Span< RealizeGreasePencilTask > tasks, const OrderedAttributes &ordered_attributes, bke::GeometrySet &r_realized_geometry) |
Edit Data | |
| static void | execute_realize_edit_data_tasks (const Span< RealizeEditDataTask > tasks, bke::GeometrySet &r_realized_geometry) |
Lookup Curve Points | |
| static bke::curves::CurvePoint | lookup_point_uniform_spacing (const Span< float > lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points) |
| static bke::curves::CurvePoint | lookup_point_polygonal (const Span< float > lengths, const float sample_length, const bool cyclic, const int evaluated_size) |
| static bke::curves::CurvePoint | lookup_point_bezier (const Span< int > bezier_offsets, const Span< float > lengths, const float sample_length, const bool cyclic, const int num_curve_points) |
| static bke::curves::CurvePoint | lookup_point_bezier (const bke::CurvesGeometry &src_curves, const OffsetIndices< int > evaluated_points_by_curve, const int64_t curve_index, const Span< float > accumulated_lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points) |
| static bke::curves::CurvePoint | lookup_curve_point (const bke::CurvesGeometry &src_curves, const OffsetIndices< int > evaluated_points_by_curve, const CurveType curve_type, const int64_t curve_index, const Span< float > accumulated_lengths, const float sample_length, const bool cyclic, const int resolution, const int num_curve_points) |
Utility Functions | |
| static void | fill_bezier_data (bke::CurvesGeometry &dst_curves, const IndexMask &selection) |
| static void | fill_nurbs_data (bke::CurvesGeometry &dst_curves, const IndexMask &selection) |
| template<typename T > | |
| static int64_t | copy_point_data_between_endpoints (const Span< T > src_data, MutableSpan< T > dst_data, const bke::curves::IndexRangeCyclic src_range, int64_t dst_index) |
Sampling Utilities | |
| template<typename T > | |
| static T | interpolate_catmull_rom (const Span< T > src_data, const bke::curves::CurvePoint insertion_point, const bool src_cyclic) |
| static bke::curves::bezier::Insertion | knot_insert_bezier (const Span< float3 > positions, const Span< float3 > handles_left, const Span< float3 > handles_right, const bke::curves::CurvePoint insertion_point) |
Sample Curve Interval (Trim) | |
| template<typename T , bool include_start_point = true> | |
| static void | sample_interval_linear (const Span< T > src_data, MutableSpan< T > dst_data, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point) |
| template<typename T > | |
| static void | sample_interval_catmull_rom (const Span< T > src_data, MutableSpan< T > dst_data, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point, const bool src_cyclic) |
| template<bool include_start_point = true> | |
| static void | sample_interval_bezier (const Span< float3 > src_positions, const Span< float3 > src_handles_l, const Span< float3 > src_handles_r, const Span< int8_t > src_types_l, const Span< int8_t > src_types_r, MutableSpan< float3 > dst_positions, MutableSpan< float3 > dst_handles_l, MutableSpan< float3 > dst_handles_r, MutableSpan< int8_t > dst_types_l, MutableSpan< int8_t > dst_types_r, bke::curves::IndexRangeCyclic src_range, const IndexRange dst_range, const bke::curves::CurvePoint start_point, const bke::curves::CurvePoint end_point) |
Trim Curves | |
| static void | trim_attribute_linear (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes) |
| static void | trim_polygonal_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes) |
| static void | trim_catmull_rom_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes) |
| static void | trim_bezier_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes) |
| static void | trim_evaluated_curves (const bke::CurvesGeometry &src_curves, bke::CurvesGeometry &dst_curves, const IndexMask &selection, const Span< bke::curves::CurvePoint > start_points, const Span< bke::curves::CurvePoint > end_points, const Span< bke::curves::IndexRangeCyclic > src_ranges, MutableSpan< bke::AttributeTransferData > transfer_attributes) |
Compute trim parameters | |
| static float | trim_sample_length (const Span< float > accumulated_lengths, const float sample_length, const GeometryNodeCurveSampleMode mode) |
| static void | compute_curve_trim_parameters (const bke::CurvesGeometry &curves, const IndexMask &selection, const VArray< float > &starts, const VArray< float > &ends, const GeometryNodeCurveSampleMode mode, MutableSpan< int > dst_curve_size, MutableSpan< bke::curves::CurvePoint > start_points, MutableSpan< bke::curves::CurvePoint > end_points, MutableSpan< bke::curves::IndexRangeCyclic > src_ranges) |
Implement <tt>pack_islands</tt> | |
| static bool | overlap_aabb (const float2 &pivot_a, const float2 &half_diagonal_a, const float2 &pivot_b, const float2 &half_diagonal_b) |
| static void | finalize_geometry (const Span< PackIsland * > islands, const UVPackIsland_Params ¶ms) |
| float | pack_islands (const Span< PackIsland * > islands, const UVPackIsland_Params ¶ms) |
Variables | |
| static constexpr int | max_neighbors = 5 |
| static int | PHashSizes [] |
Degenerate Geometry Fixing | |
| static const float | CORR_ZERO_AREA_EPS = 1.0e-10f |
| static void | p_chart_flush_collapsed_uvs (PChart *chart) |
| static bool | p_collapse_doubles_allowed (PEdge *edge, PEdge *pair, float threshold_squared) |
| static float | p_collapse_doubles_cost (PEdge *edge, PEdge *pair) |
| static void UNUSED_FUNCTION | p_chart_collapse_doubles (PChart *chart, const float threshold) |
| static bool | p_validate_corrected_coords_point (const PEdge *corr_e, const float corr_co1[3], const float corr_co2[3], const float min_area, const float min_angle_cos) |
| static bool | p_validate_corrected_coords (const PEdge *corr_e, const float corr_co[3], float min_area, float min_angle_cos) |
| static bool | p_edge_matrix (float R[3][3], const float edge_dir[3]) |
| static bool | p_edge_matrix (float R[3][3], const PEdge *e) |
| static bool | p_chart_correct_degenerate_triangle_point (PFace *f, float min_area, float min_angle_cos) |
| static bool | p_chart_correct_degenerate_triangles2 (PChart *chart, float min_area, float min_angle) |
| static bool | p_validate_triangle_angles (const PVert *vert1, const PVert *vert2, const PVert *vert3, const float min_angle_cos) |
| static bool UNUSED_FUNCTION_NO_SLIM | p_chart_correct_degenerate_triangles (PChart *chart, const float min_area, const float min_angle) |
The code below uses a suffix naming convention to indicate the coordinate space: cu: Local space of the curves object that is being edited. su: Local space of the surface object.
| using blender::geometry::CornerGroup = Vector<int> |
Definition at line 138 of file mesh_split_edges.cc.
Definition at line 39 of file add_curves_on_mesh.cc.
| using blender::geometry::ParamKey = uintptr_t |
Definition at line 27 of file GEO_uv_parametrizer.hh.
| using blender::geometry::PHashKey = uintptr_t |
Definition at line 49 of file uv_parametrizer.cc.
|
strong |
| Enumerator | |
|---|---|
| None | |
| NGon | |
| Triangles | |
Definition at line 21 of file GEO_mesh_primitive_cylinder_cone.hh.
| Enumerator | |
|---|---|
| OnStack | |
| Inserted | |
Definition at line 12 of file merge_curves.cc.
| Enumerator | |
|---|---|
| PEDGE_SEAM | |
| PEDGE_VERTEX_SPLIT | |
| PEDGE_PIN | |
| PEDGE_SELECT | |
| PEDGE_DONE | |
| PEDGE_FILLED | |
| PEDGE_COLLAPSE | |
| PEDGE_COLLAPSE_EDGE | |
| PEDGE_COLLAPSE_PAIR | |
Definition at line 123 of file uv_parametrizer.cc.
| Enumerator | |
|---|---|
| PFACE_CONNECTED | |
| PFACE_FILLED | |
| PFACE_COLLAPSE | |
| PFACE_DONE | |
Definition at line 138 of file uv_parametrizer.cc.
| Enumerator | |
|---|---|
| PHANDLE_STATE_ALLOCATED | |
| PHANDLE_STATE_CONSTRUCTED | |
| PHANDLE_STATE_LSCM | |
| PHANDLE_STATE_STRETCH | |
Definition at line 30 of file GEO_uv_parametrizer.hh.
| Enumerator | |
|---|---|
| PVERT_PIN | |
| PVERT_SELECT | |
| PVERT_INTERIOR | |
| PVERT_COLLAPSE | |
| PVERT_SPLIT | |
Definition at line 115 of file uv_parametrizer.cc.
| AddCurvesOnMeshOutputs blender::geometry::add_curves_on_mesh | ( | bke::CurvesGeometry & | curves, |
| const AddCurvesOnMeshInputs & | inputs ) |
Generate new curves on a mesh surface with the given inputs. Existing curves stay intact.
Definition at line 315 of file add_curves_on_mesh.cc.
References add_curves_on_mesh(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, blender::MutableSpan< T >::copy_from(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), find_curve_neighbors(), blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), blender::MutableSpan< T >::last(), outputs, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::MutableSpan< T >::take_back(), blender::MutableSpan< T >::take_front(), and blender::math::transform_point().
Referenced by add_curves_on_mesh(), and blender::ed::sculpt_paint::AddOperationExecutor::execute().
|
static |
Definition at line 1182 of file realize_instances.cc.
References add_instance_attributes_to_single_geometry(), blender::geometry::AttributeFallbacksArray::array, blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), and blender::geometry::OrderedAttributes::kinds.
Referenced by add_instance_attributes_to_single_geometry(), execute_realize_curve_tasks(), execute_realize_grease_pencil_tasks(), execute_realize_mesh_tasks(), and execute_realize_pointcloud_tasks().
Angle rounding helper for "D4" transforms.
Definition at line 211 of file uv_pack.cc.
References DEG2RADF, and fabsf.
Referenced by plusminus_90_angle().
Definition at line 219 of file uv_pack.cc.
References BLI_assert, DEG2RADF, floorf, M_PI, and M_PI_2.
Referenced by plusminus_90_angle().
|
static |
Definition at line 55 of file set_curve_type.cc.
References blender::bke::attribute_math::convert_to_static_type(), and blender::GSpan::type().
|
static |
The Bezier control point and its handles become three control points on the NURBS curve, so each attribute value is duplicated three times.
Definition at line 46 of file set_curve_type.cc.
References blender::Span< T >::index_range().
Referenced by convert_curves_to_nurbs().
|
static |
Definition at line 63 of file set_curve_type.cc.
References blender::Span< T >::index_range().
Referenced by catmull_rom_to_nurbs_positions(), and convert_curves_to_nurbs().
|
static |
Definition at line 202 of file mesh_split_edges.cc.
References calc_corner_groups_for_vertex(), blender::index_mask::IndexMask::foreach_index(), mask(), blender::index_mask::IndexMask::size(), and split_edges().
Referenced by split_edges().
|
static |
Collect groups of corners connected by edges bordered by boundary edges or split edges. We store corner indices instead of edge indices because later on in the algorithm we only relink the corner_vert array to each group's new vertex.
The corners are not ordered in winding order, since we only need to group connected faces into each group.
Definition at line 148 of file mesh_split_edges.cc.
References blender::bits::BitVector< InlineBufferCapacity, Allocator >::append(), corner_on_edge_connected_to_vert(), blender::bke::mesh::face_corner_prev(), blender::Span< T >::first_index(), blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), blender::Span< T >::size(), and split_edges().
Referenced by calc_all_corner_groups().
|
static |
Definition at line 2117 of file uv_pack.cc.
References calc_margin_from_aabb_length_sum(), params, sqrtf, and w().
Referenced by calc_margin_from_aabb_length_sum(), and pack_islands().
|
static |
Based on updated corner vertex indices, update the edges in each face. This includes updating corner edge indices, adding new edges, and reusing original edges for the first "split" edge. The main complexity comes from the fact that in the case of single isolated split edges, no new edges are created because they all end up identical. We need to handle this case, but since it's rare, we optimize for the case that it doesn't happen first.
Definition at line 334 of file mesh_split_edges.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_and_get_index(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), calc_new_edges(), edge_from_corner(), blender::Vector< T, InlineBufferCapacity, Allocator >::first(), blender::Vector< T, InlineBufferCapacity, Allocator >::first_index_of_try(), blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::foreach_index_optimized(), blender::offset_indices::OffsetIndices< T >::index_range(), int2, mask(), blender::MutableSpan< T >::size(), blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), size(), blender::offset_indices::OffsetIndices< T >::total_size(), and UNLIKELY.
Referenced by calc_new_edges(), and split_edges().
|
static |
Definition at line 137 of file add_curves_on_mesh.cc.
References calc_position_with_interpolation(), calc_straight_curve_positions(), compute_surface_point_normal(), blender::MutableSpan< T >::fill(), blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), indices, blender::math::interpolate(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), mul_m3_v3(), blender::math::normalize(), range, rotation_between_vecs_to_mat3(), blender::geometry::ReverseUVSampler::sample(), blender::IndexRange::size(), blender::Span< T >::size(), blender::MutableSpan< T >::slice(), blender::bke::CurvesSurfaceTransforms::surface_to_curves_normal, and blender::math::transform_direction().
Referenced by calc_position_with_interpolation().
|
static |
Definition at line 111 of file add_curves_on_mesh.cc.
References calc_position_without_interpolation(), calc_straight_curve_positions(), blender::math::normalize(), range, blender::Span< T >::size(), blender::MutableSpan< T >::slice(), and blender::math::transform_direction().
Referenced by calc_position_without_interpolation().
|
static |
Definition at line 249 of file add_curves_on_mesh.cc.
References calc_radius_with_interpolation(), blender::MutableSpan< T >::fill(), blender::bke::SpanAttributeWriter< T >::finish(), blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), indices, blender::math::interpolate(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), range, blender::IndexRange::size(), blender::Span< T >::size(), blender::MutableSpan< T >::slice(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by calc_radius_with_interpolation().
|
static |
Definition at line 238 of file add_curves_on_mesh.cc.
References calc_radius_without_interpolation(), blender::bke::SpanAttributeWriter< T >::finish(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by calc_radius_without_interpolation().
|
static |
Definition at line 50 of file add_curves_on_mesh.cc.
References b, blender::MutableSpan< T >::index_range(), blender::bke::attribute_math::mix2(), blender::math::rcp(), and blender::MutableSpan< T >::size().
Referenced by calc_position_with_interpolation(), and calc_position_without_interpolation().
|
static |
Find selected and non-selected loose edges connected to a vertex.
Definition at line 234 of file mesh_split_edges.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::geometry::VertLooseEdges::selected, split_edges(), and blender::geometry::VertLooseEdges::unselected.
Referenced by reassign_loose_edge_verts().
|
static |
Every affected vertex maps to potentially multiple output vertices. Create a mapping from affected vertex index to the group of output vertex indices (indices are within those groups, not indices in arrays of all vertices). For every original vertex, reuse the original vertex for the first of:
Definition at line 264 of file mesh_split_edges.cc.
References blender::index_mask::IndexMask::index_range(), blender::threading::parallel_for(), blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), and blender::index_mask::IndexMask::size().
Referenced by split_edges().
|
static |
Definition at line 88 of file fillet_curves.cc.
References angle_v3v3(), blender::IndexRange::drop_front(), blender::Span< T >::first(), blender::Span< T >::index_range(), blender::Span< T >::last(), and M_PI.
Referenced by fillet_curves().
|
static |
Set handles for the "Bezier" mode where we rely on setting the inner handles to approximate a circular arc. The outer (previous and next) handles outside the result fillet segment are set to vector handles.
Definition at line 251 of file fillet_curves.cc.
References calculate_bezier_handles_bezier_mode(), blender::Span< T >::index_range(), and blender::IndexRange::last().
Referenced by calculate_bezier_handles_bezier_mode(), and fillet_curves().
|
static |
In the poly fillet mode, all the inner handles are set to vector handles, along with the "outer" (previous and next) handles at each fillet.
Definition at line 316 of file fillet_curves.cc.
References calculate_bezier_handles_poly_mode(), blender::Span< T >::index_range(), and blender::IndexRange::last().
Referenced by calculate_bezier_handles_poly_mode(), and fillet_curves().
|
static |
Definition at line 649 of file mesh_primitive_cylinder_cone.cc.
References calculate_bounds_radial_primitive(), blender::geometry::ConeConfig::circle_segments, blender::geometry::ConeConfig::height, blender::geometry::ConeConfig::radius_bottom, and blender::geometry::ConeConfig::radius_top.
Referenced by create_cylinder_or_cone_mesh().
| Bounds< float3 > blender::geometry::calculate_bounds_radial_primitive | ( | float | radius_top, |
| float | radius_bottom, | ||
| int | segments, | ||
| float | height ) |
Calculates the bounds of a radial primitive. The algorithm assumes X-axis symmetry of primitives.
Definition at line 12 of file mesh_primitive_uv_sphere.cc.
References delta_phi(), and M_PI.
Referenced by blender::nodes::node_geo_mesh_primitive_circle_cc::calculate_bounds_circle(), calculate_bounds_cylinder(), and calculate_bounds_uv_sphere().
|
static |
Definition at line 284 of file mesh_primitive_uv_sphere.cc.
References calculate_bounds_radial_primitive(), float, and M_PI.
Referenced by create_uv_sphere_mesh().
|
static |
Definition at line 317 of file mesh_primitive_cylinder_cone.cc.
References blender::geometry::ConeConfig::bottom_has_center_vert, blender::geometry::ConeConfig::circle_segments, blender::geometry::ConeConfig::first_ring_verts_start, blender::geometry::ConeConfig::first_vert, blender::geometry::ConeConfig::last_ring_verts_start, blender::geometry::ConeConfig::last_vert, blender::geometry::ConeConfig::top_has_center_vert, and blender::geometry::ConeConfig::tot_edge_rings.
Referenced by create_cylinder_or_cone_mesh().
|
static |
Definition at line 362 of file mesh_primitive_cylinder_cone.cc.
References blender::geometry::ConeConfig::bottom_has_center_vert, blender::geometry::ConeConfig::circle_segments, blender::MutableSpan< T >::fill(), blender::geometry::ConeConfig::fill_type, blender::MutableSpan< T >::first(), blender::geometry::ConeConfig::first_ring_edges_start, blender::geometry::ConeConfig::first_ring_verts_start, blender::geometry::ConeConfig::last_edge, blender::geometry::ConeConfig::last_fan_edges_start, blender::geometry::ConeConfig::last_ring_edges_start, blender::geometry::ConeConfig::last_ring_verts_start, blender::geometry::ConeConfig::last_vert, NGon, blender::MutableSpan< T >::slice(), blender::MutableSpan< T >::take_front(), blender::geometry::ConeConfig::top_has_center_vert, and blender::geometry::ConeConfig::tot_quad_rings.
Referenced by create_cylinder_or_cone_mesh().
|
static |
If the top is the cone tip or has a fill, it is unwrapped into a circle in the lower left quadrant of the UV. Likewise, if the bottom is the cone tip or has a fill, it is unwrapped into a circle in the lower right quadrant of the UV. If the mesh is a truncated cone or a cylinder, the side faces are unwrapped into a rectangle that fills the top half of the UV (or the entire UV, if there are no fills).
Definition at line 523 of file mesh_primitive_cylinder_cone.cc.
References blender::geometry::ConeConfig::bottom_has_center_vert, blender::geometry::ConeConfig::bottom_is_point, blender::geometry::ConeConfig::circle_segments, blender::bke::Corner, blender::geometry::ConeConfig::fill_segments, blender::geometry::ConeConfig::fill_type, blender::bke::SpanAttributeWriter< T >::finish(), float, M_PI, NGon, None, blender::geometry::ConeConfig::side_segments, blender::bke::SpanAttributeWriter< T >::span, blender::geometry::ConeConfig::top_has_center_vert, and blender::geometry::ConeConfig::top_is_point.
Referenced by create_cylinder_or_cone_mesh().
|
static |
Definition at line 253 of file mesh_primitive_cylinder_cone.cc.
References blender::geometry::ConeConfig::bottom_has_center_vert, blender::geometry::ConeConfig::bottom_is_point, blender::geometry::ConeConfig::circle_segments, blender::geometry::ConeConfig::fill_segments, float, blender::geometry::ConeConfig::height, M_PI, blender::geometry::ConeConfig::radius_bottom, blender::geometry::ConeConfig::radius_top, blender::geometry::ConeConfig::side_segments, blender::geometry::ConeConfig::top_has_center_vert, blender::geometry::ConeConfig::top_is_point, x, and y.
Referenced by create_cylinder_or_cone_mesh().
|
static |
Definition at line 119 of file mesh_primitive_cuboid.cc.
References define_quad(), blender::geometry::CuboidConfig::edges_x, blender::geometry::CuboidConfig::edges_y, blender::geometry::CuboidConfig::edges_z, blender::geometry::CuboidConfig::verts_x, blender::geometry::CuboidConfig::verts_y, blender::geometry::CuboidConfig::verts_z, x, y, and z().
Referenced by create_cuboid_mesh().
|
static |
Definition at line 80 of file fillet_curves.cc.
References blender::MutableSpan< T >::last(), and blender::math::normalize().
Referenced by fillet_curves().
|
static |
Definition at line 197 of file fillet_curves.cc.
References blender::Span< T >::index_range(), blender::IndexRange::last(), and blender::threading::parallel_for().
Referenced by fillet_curves().
|
static |
Definition at line 52 of file mesh_primitive_cuboid.cc.
References blender::geometry::CuboidConfig::edges_x, blender::geometry::CuboidConfig::edges_y, blender::geometry::CuboidConfig::edges_z, ELEM, blender::geometry::CuboidConfig::size, blender::geometry::CuboidConfig::verts_x, blender::geometry::CuboidConfig::verts_y, blender::geometry::CuboidConfig::verts_z, x, y, and z().
Referenced by create_cuboid_mesh().
|
static |
Definition at line 15 of file subdivide_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::offset_indices::copy_group_sizes(), count, blender::MutableSpan< T >::drop_back(), blender::MutableSpan< T >::first(), blender::MutableSpan< T >::last(), blender::VArrayCommon< T >::materialize_compressed(), blender::bke::curves::per_curve_point_offsets_range(), blender::bke::CurvesGeometry::points_by_curve(), blender::IndexRange::size(), and blender::MutableSpan< T >::slice().
Referenced by subdivide_curves().
|
static |
Definition at line 35 of file fillet_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::offset_indices::copy_group_sizes(), count, blender::devirtualize_varray(), blender::MutableSpan< T >::drop_back(), blender::MutableSpan< T >::first(), blender::MutableSpan< T >::last(), blender::VArrayCommon< T >::materialize_compressed(), blender::bke::curves::per_curve_point_offsets_range(), blender::IndexRange::size(), and blender::MutableSpan< T >::slice().
Referenced by fillet_curves().
|
static |
Definition at line 468 of file mesh_primitive_cylinder_cone.cc.
References blender::geometry::ConeConfig::bottom_faces_len, blender::geometry::ConeConfig::bottom_faces_start, blender::geometry::ConeAttributeOutputs::bottom_id, blender::geometry::ConeConfig::bottom_is_point, blender::geometry::ConeConfig::circle_segments, blender::bke::Face, blender::geometry::ConeConfig::fill_type, blender::geometry::ConeConfig::first_vert, blender::geometry::ConeConfig::last_ring_verts_start, blender::geometry::ConeConfig::last_vert, None, blender::bke::Point, blender::geometry::ConeConfig::side_faces_len, blender::geometry::ConeConfig::side_faces_start, blender::geometry::ConeAttributeOutputs::side_id, blender::bke::SpanAttributeWriter< T >::span, blender::geometry::ConeConfig::top_faces_len, blender::geometry::ConeAttributeOutputs::top_id, and blender::geometry::ConeConfig::top_is_point.
Referenced by create_cylinder_or_cone_mesh().
|
static |
Definition at line 159 of file mesh_primitive_uv_sphere.cc.
References sphere_vert_total().
Referenced by create_uv_sphere_mesh().
|
static |
Definition at line 100 of file mesh_primitive_uv_sphere.cc.
References sphere_vert_total().
Referenced by create_uv_sphere_mesh().
|
static |
Definition at line 146 of file mesh_primitive_uv_sphere.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::MutableSpan< T >::drop_back(), blender::MutableSpan< T >::drop_front(), blender::MutableSpan< T >::fill(), blender::MutableSpan< T >::take_back(), and blender::MutableSpan< T >::take_front().
Referenced by create_uv_sphere_mesh().
|
static |
Definition at line 235 of file mesh_primitive_uv_sphere.cc.
References blender::bke::Corner, blender::bke::SpanAttributeWriter< T >::finish(), float, and blender::bke::SpanAttributeWriter< T >::span.
Referenced by create_uv_sphere_mesh().
|
static |
Also calculate vertex normals here, since the calculation is trivial, and it allows avoiding the calculation later, if it's necessary. The vertex normals are just the normalized positions.
Definition at line 59 of file mesh_primitive_uv_sphere.cc.
References delta_phi(), blender::MutableSpan< T >::first(), blender::MutableSpan< T >::last(), M_PI, sin_theta(), and z().
Referenced by create_uv_sphere_mesh().
|
static |
Definition at line 292 of file mesh_primitive_cuboid.cc.
References blender::bke::Corner, blender::geometry::CuboidConfig::edges_x, blender::geometry::CuboidConfig::edges_y, blender::geometry::CuboidConfig::edges_z, blender::bke::SpanAttributeWriter< T >::finish(), float, blender::bke::SpanAttributeWriter< T >::span, and z().
Referenced by create_cuboid_mesh().
|
static |
Definition at line 12 of file mesh_primitive_grid.cc.
References blender::bke::Corner, blender::threading::memory_bandwidth_bound_task(), blender::Span< T >::size_in_bytes(), and blender::bke::SpanAttributeWriter< T >::span.
|
static |
Definition at line 200 of file uv_pack.cc.
References params.
Referenced by pack_islands_scale_margin().
|
static |
Definition at line 2388 of file uv_pack.cc.
References can_rotate_with_method(), ED_UVPACK_PIN_LOCK_ALL, ED_UVPACK_PIN_LOCK_ROTATION, ED_UVPACK_PIN_LOCK_ROTATION_SCALE, ED_UVPACK_ROTATION_AXIS_ALIGNED_X, ED_UVPACK_ROTATION_AXIS_ALIGNED_Y, ED_UVPACK_ROTATION_NONE, ELEM, params, and blender::geometry::PackIsland::pinned.
Referenced by blender::geometry::PackIsland::can_rotate_(), blender::geometry::PackIsland::can_rotate_before_pack_(), and can_rotate_with_method().
|
static |
Definition at line 75 of file set_curve_type.cc.
References blender::IndexRange::drop_back(), blender::IndexRange::drop_front(), blender::MutableSpan< T >::first(), blender::Span< T >::first(), blender::Span< T >::index_range(), blender::MutableSpan< T >::last(), blender::Span< T >::last(), and blender::Span< T >::size().
Referenced by catmull_rom_to_nurbs_positions(), and convert_curves_to_bezier().
|
static |
Definition at line 110 of file set_curve_type.cc.
References bezier_positions_to_nurbs(), catmull_rom_to_bezier_handles(), and blender::Span< T >::size().
Referenced by convert_curves_to_nurbs().
|
static |
Definition at line 215 of file reorder.cc.
References blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), CD_PROP_STRING, clean_unused_attributes(), blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::name, and blender::Vector< T, InlineBufferCapacity, Allocator >::remove().
Referenced by clean_unused_attributes(), reorder_curves_geometry(), reorder_instaces(), reorder_mesh(), and reorder_points().
| const MultiValueMap< bke::GeometryComponent::Type, bke::AttrDomain > & blender::geometry::components_supported_reordering | ( | ) |
Definition at line 27 of file reorder.cc.
References blender::MultiValueMap< Key, Value >::add(), blender::MultiValueMap< Key, Value >::add_multiple(), blender::bke::GeometryComponent::Curve, blender::bke::GeometryComponent::Instance, blender::bke::GeometryComponent::Mesh, and blender::bke::GeometryComponent::PointCloud.
|
static |
Compute the selected range of points for every selected curve.
Definition at line 812 of file trim_curves.cc.
References BLI_assert, compute_curve_trim_parameters(), count, CURVE_TYPE_NURBS, lookup_curve_point(), blender::MutableSpan< T >::size(), blender::offset_indices::OffsetIndices< T >::size(), and trim_sample_length().
Referenced by compute_curve_trim_parameters(), and trim_curves().
| float3 blender::geometry::compute_surface_point_normal | ( | const int3 & | tri, |
| const float3 & | bary_coord, | ||
| Span< float3 > | corner_normals ) |
Definition at line 41 of file add_curves_on_mesh.cc.
References blender::math::normalize(), and blender::bke::mesh_surface_sample::sample_corner_attribute_with_bary_coords().
Referenced by calc_position_with_interpolation(), blender::ed::sculpt_paint::SlideOperationExecutor::find_curves_to_slide(), and blender::ed::sculpt_paint::PuffOperationExecutor::puff().
|
static |
Converts some curves to poly curves before they are converted to nurbs. This is useful because it discards the bezier/catmull-rom shape which is sometimes the desired behavior.
Definition at line 755 of file set_curve_type.cc.
References convert_curves_trivial(), CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curve_types(), blender::index_mask::IndexMask::from_predicate(), and options.
Referenced by convert_curves().
| bke::CurvesGeometry blender::geometry::convert_curves | ( | const bke::CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| CurveType | dst_type, | ||
| const bke::AttributeFilter & | attribute_filter, | ||
| const ConvertCurvesOptions & | options = {} ) |
Change the types of the selected curves, potentially changing the total point count.
Definition at line 776 of file set_curve_type.cc.
References BLI_assert_unreachable, convert_bezier_or_catmull_rom_to_poly_before_conversion_to_nurbs(), convert_curves_to_bezier(), convert_curves_to_catmull_rom_or_poly(), convert_curves_to_nurbs(), CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, CURVE_TYPE_NURBS, CURVE_TYPE_POLY, and options.
Referenced by blender::nodes::node_geo_curve_spline_type_cc::node_geo_exec().
|
static |
Definition at line 268 of file set_curve_type.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), ATTR_DOMAIN_MASK_POINT, blender::bke::attribute_filter_with_skip_ref(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BEZIER_HANDLE_ALIGN, BEZIER_HANDLE_VECTOR, blender::bke::CurvesGeometry::calculate_bezier_auto_handles(), catmull_rom_to_bezier_handles(), blender::index_mask::IndexMask::complement(), blender::bke::copy_attributes_group_to_group(), blender::offset_indices::copy_group_sizes(), blender::array_utils::copy_group_to_group(), blender::bke::curves::copy_only_curve_domain(), create_nurbs_to_bezier_handles(), create_nurbs_to_bezier_positions(), CURVE_TYPE_BEZIER, blender::bke::CurvesGeometry::curve_type_counts(), CURVE_TYPE_NURBS, blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), blender::bke::CurvesGeometry::fill_curve_types(), blender::bke::curves::fill_points(), blender::bke::curves::foreach_curve_by_type(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::bke::CurvesGeometry::has_curve_with_type(), is_nurbs_to_bezier_one_to_one(), blender::MutableSpan< T >::last(), NURBS_KNOT_MODE_NORMAL, blender::bke::CurvesGeometry::nurbs_knots_modes(), nurbs_to_bezier_assign(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::Point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), blender::bke::retrieve_attributes_for_transfer(), scale_input_assign(), selection, blender::IndexRange::size(), size(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), and to_bezier_size().
Referenced by convert_curves().
|
static |
Definition at line 629 of file set_curve_type.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), ATTR_DOMAIN_MASK_POINT, blender::bke::attribute_filter_with_skip_ref(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::index_mask::IndexMask::complement(), convert_curves_trivial(), blender::bke::copy_attributes_group_to_group(), blender::offset_indices::copy_group_sizes(), blender::array_utils::copy_group_to_group(), blender::bke::curves::copy_only_curve_domain(), CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::CPPType::fill_assign_n(), blender::bke::CurvesGeometry::fill_curve_types(), blender::bke::curves::foreach_curve_by_type(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::has_curve_with_type(), blender::IndexRange::index_range(), blender::MutableSpan< T >::last(), blender::bke::CurvesGeometry::offsets_for_write(), options, blender::bke::Point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), blender::bke::retrieve_attributes_for_transfer(), selection, blender::IndexRange::size(), and blender::IndexRange::start().
Referenced by convert_curves().
|
static |
Definition at line 451 of file set_curve_type.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), ATTR_DOMAIN_MASK_POINT, blender::bke::attribute_filter_with_skip_ref(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), bezier_generic_to_nurbs(), bezier_positions_to_nurbs(), catmull_rom_to_nurbs_positions(), blender::index_mask::IndexMask::complement(), blender::bke::AttributeAccessor::contains(), blender::bke::copy_attributes_group_to_group(), blender::offset_indices::copy_group_sizes(), blender::array_utils::copy_group_to_group(), blender::bke::curves::copy_only_curve_domain(), blender::bke::CurvesGeometry::curve_type_counts(), CURVE_TYPE_NURBS, blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::fill_curve_types(), blender::bke::curves::fill_points(), blender::bke::curves::foreach_curve_by_type(), blender::VArrayCommon< T >::get_internal_single(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_right(), blender::Span< T >::is_empty(), blender::VArrayCommon< T >::is_single(), blender::MutableSpan< T >::last(), blender::index_mask::masked_fill(), NURBS_KNOT_MODE_BEZIER, NURBS_KNOT_MODE_ENDPOINT, NURBS_KNOT_MODE_NORMAL, blender::bke::CurvesGeometry::nurbs_knots_modes_for_write(), blender::bke::CurvesGeometry::nurbs_orders_for_write(), blender::bke::CurvesGeometry::nurbs_weights(), blender::bke::CurvesGeometry::nurbs_weights_for_write(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::Point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), blender::bke::retrieve_attributes_for_transfer(), selection, size(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), and to_nurbs_size().
Referenced by convert_curves().
|
static |
Definition at line 619 of file set_curve_type.cc.
References blender::bke::CurvesGeometry::fill_curve_types(), and blender::bke::CurvesGeometry::remove_attributes_based_on_types().
Referenced by convert_bezier_or_catmull_rom_to_poly_before_conversion_to_nurbs(), and convert_curves_to_catmull_rom_or_poly().
|
static |
Definition at line 427 of file realize_instances.cc.
References copy_generic_attributes_to_result(), and blender::MutableSpan< T >::index_range().
Referenced by copy_generic_attributes_to_result(), execute_realize_grease_pencil_task(), and execute_realize_pointcloud_task().
Definition at line 81 of file mesh_copy_selection.cc.
References Mesh::runtime.
Definition at line 73 of file mesh_copy_selection.cc.
References Mesh::runtime.
|
static |
Definition at line 192 of file resample_curves.cc.
References blender::array_utils::copy_group_to_group(), blender::bke::curves::fill_points(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), and blender::bke::CurvesGeometry::positions_for_write().
Referenced by resample_to_evaluated(), and resample_to_uniform().
Definition at line 89 of file mesh_copy_selection.cc.
|
static |
Definition at line 216 of file trim_curves.cc.
References blender::MutableSpan< T >::copy_from(), blender::bke::curves::IndexRangeCyclic::curve_range(), blender::bke::curves::IndexRangeCyclic::cycles(), blender::bke::curves::IndexRangeCyclic::first(), blender::IndexRange::first(), blender::bke::curves::IndexRangeCyclic::one_after_last(), blender::bke::curves::IndexRangeCyclic::size_after_loop(), blender::bke::curves::IndexRangeCyclic::size_before_loop(), blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().
Referenced by sample_interval_catmull_rom(), and sample_interval_linear().
|
static |
Definition at line 393 of file realize_instances.cc.
References blender::MutableSpan< T >::copy_from(), copy_transformed_normals(), blender::Span< T >::index_range(), blender::math::invert(), blender::math::is_equal(), and blender::math::transpose().
Referenced by copy_transformed_normals(), and execute_realize_curve_task().
|
static |
Definition at line 368 of file realize_instances.cc.
References blender::MutableSpan< T >::copy_from(), blender::Span< T >::index_range(), blender::threading::parallel_for(), and skip_transform().
Referenced by execute_realize_curve_task(), and execute_realize_pointcloud_task().
|
static |
Used for fanning around the corners connected to a vertex.
Depending on the winding direction of neighboring faces, traveling from a corner across an edge to a different face can give a corner that uses a different vertex than the original. To find the face's corner that uses the original vertex, we may have to use the next corner instead.
Definition at line 125 of file mesh_split_edges.cc.
References BLI_assert, and blender::bke::mesh::face_corner_next().
Referenced by calc_corner_groups_for_vertex().
| Mesh * blender::geometry::create_cuboid_mesh | ( | const float3 & | size, |
| int | verts_x, | ||
| int | verts_y, | ||
| int | verts_z ) |
Definition at line 398 of file mesh_primitive_cuboid.cc.
References create_cuboid_mesh().
| Mesh * blender::geometry::create_cuboid_mesh | ( | const float3 & | size, |
| int | verts_x, | ||
| int | verts_y, | ||
| int | verts_z, | ||
| const std::optional< StringRef > & | uv_id ) |
Definition at line 368 of file mesh_primitive_cuboid.cc.
References BKE_mesh_new_nomain(), calculate_corner_verts(), calculate_positions(), calculate_uvs(), blender::geometry::CuboidConfig::face_count, blender::offset_indices::fill_constant_group_size(), blender::geometry::CuboidConfig::loop_count, mesh, blender::bke::mesh_calc_edges(), blender::bke::mesh_smooth_set(), and blender::geometry::CuboidConfig::vertex_count.
Referenced by blender::nodes::node_geo_mesh_primitive_cube_cc::create_cube_mesh(), create_cuboid_mesh(), and blender::nodes::node_geo_bounding_box_cc::node_geo_exec().
| BLI_NOINLINE bke::CurvesGeometry blender::geometry::create_curve_from_vert_indices | ( | const bke::AttributeAccessor & | mesh_attributes, |
| Span< int > | vert_indices, | ||
| Span< int > | curve_offsets, | ||
| IndexRange | cyclic_curves, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 20 of file mesh_to_curve_convert.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::bke::AttributeAccessor::all_ids(), blender::bke::attribute_filter_with_skip_ref(), CD_PROP_STRING, CURVE_TYPE_POLY, blender::bke::AttributeIter::data_type, debug_randomize_curve_order(), blender::bke::AttributeIter::domain, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::attribute_math::gather(), blender::bke::gather_attributes(), blender::bke::AttributeIter::get(), blender::bke::AttributeAccessor::is_builtin(), blender::IndexRange::is_empty(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, blender::bke::Point, blender::Span< T >::size(), and blender::bke::GSpanAttributeWriter::span.
Referenced by blender::nodes::node_geo_edge_paths_to_curves_cc::edge_paths_to_curves_convert(), and edges_to_curves_convert().
| Mesh * blender::geometry::create_cylinder_or_cone_mesh | ( | float | radius_top, |
| float | radius_bottom, | ||
| float | depth, | ||
| int | circle_segments, | ||
| int | side_segments, | ||
| int | fill_segments, | ||
| ConeFillType | fill_type, | ||
| ConeAttributeOutputs & | attribute_outputs ) |
Definition at line 655 of file mesh_primitive_cylinder_cone.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), BKE_mesh_new_nomain(), blender::geometry::ConeConfig::bottom_is_point, calculate_bounds_cylinder(), calculate_cone_edges(), calculate_cone_faces(), calculate_cone_uvs(), calculate_cone_verts(), calculate_selection_outputs(), create_line_mesh(), create_vertex_mesh(), blender::MutableSpan< T >::drop_back(), float, blender::geometry::ConeConfig::height, mesh, blender::bke::mesh_smooth_set(), blender::geometry::ConeConfig::side_segments, blender::geometry::ConeConfig::top_is_point, blender::geometry::ConeConfig::tot_corners, blender::geometry::ConeConfig::tot_edges, blender::geometry::ConeConfig::tot_faces, blender::geometry::ConeConfig::tot_verts, and blender::geometry::ConeAttributeOutputs::uv_map_id.
Referenced by blender::nodes::node_geo_mesh_primitive_cone_cc::node_geo_exec(), and blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_geo_exec().
| Mesh * blender::geometry::create_grid_mesh | ( | int | verts_x, |
| int | verts_y, | ||
| float | size_x, | ||
| float | size_y, | ||
| const std::optional< StringRef > & | uv_map_id ) |
Definition at line 40 of file mesh_primitive_grid.cc.
References BKE_mesh_new_nomain(), BLI_assert, and create_grid_mesh().
Referenced by blender::nodes::node_geo_mesh_primitive_cube_cc::create_cube_mesh(), create_grid_mesh(), and blender::nodes::node_geo_mesh_primitive_grid_cc::node_geo_exec().
|
static |
Definition at line 125 of file mix_geometries.cc.
References create_id_index_map(), create_value_to_first_index_map(), blender::Span< T >::index_range(), blender::bke::AttributeAccessor::lookup(), blender::bke::AttributeReader< T >::sharing_info, sharing_info_equal(), and blender::Span< T >::size().
Referenced by create_id_index_map(), and mix_geometries().
Definition at line 13 of file mesh_primitive_line.cc.
References BKE_mesh_new_nomain(), count, and blender::threading::memory_bandwidth_bound_task().
Referenced by blender::nodes::node_geo_mesh_primitive_cube_cc::create_cube_mesh(), create_cylinder_or_cone_mesh(), and blender::nodes::node_geo_mesh_primitive_line_cc::node_geo_exec().
|
static |
Definition at line 1539 of file mesh_merge_by_distance.cc.
References BKE_mesh_new_nomain_from_template(), BLI_assert, CustomData_copy_data(), customdata_weld(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), debug_randomize_mesh_order(), blender::geometry::WeldMesh::double_edges, blender::geometry::WeldMesh::double_verts, blender::geometry::WeldLoopOfPolyIter::e, blender::geometry::WeldMesh::edge_dest_map, blender::geometry::WeldMesh::edge_kill_len, blender::geometry::WeldMesh::face_kill_len, blender::geometry::WeldMesh::face_map, blender::geometry::WeldLoopOfPolyIter::group_len, IN_RANGE_INCL, blender::offset_indices::OffsetIndices< T >::index_range(), blender::geometry::WeldMesh::loop_kill_len, blender::geometry::WeldMesh::loop_map, blender::geometry::WeldMesh::max_face_len, merge_customdata_all(), OUT_OF_CONTEXT, blender::geometry::WeldPoly::poly_dst, result, SCOPED_TIMER, blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::geometry::WeldLoopOfPolyIter::v, blender::geometry::WeldMesh::vert_kill_len, weld_iter_loop_of_poly_begin(), weld_iter_loop_of_poly_next(), weld_mesh_context_create(), blender::geometry::WeldMesh::wloop, blender::geometry::WeldMesh::wpoly, and blender::geometry::WeldMesh::wpoly_new_len.
Referenced by mesh_merge_by_distance_all(), mesh_merge_by_distance_connected(), and mesh_merge_verts().
|
static |
Definition at line 155 of file set_curve_type.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), float, is_nurbs_to_bezier_one_to_one(), NURBS_KNOT_MODE_NORMAL, blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), and blender::Span< T >::size().
Referenced by convert_curves_to_bezier().
|
static |
Definition at line 223 of file set_curve_type.cc.
References blender::MutableSpan< T >::index_range(), blender::math::interpolate(), is_nurbs_to_bezier_one_to_one(), and scale_input_assign().
Referenced by convert_curves_to_bezier().
|
static |
Definition at line 455 of file realize_instances.cc.
References blender::MutableSpan< T >::copy_from(), create_result_ids(), blender::MutableSpan< T >::fill(), blender::MutableSpan< T >::index_range(), blender::Span< T >::is_empty(), and options.
Referenced by create_result_ids(), and execute_realize_pointcloud_task().
| Mesh * blender::geometry::create_uv_sphere_mesh | ( | float | radius, |
| int | segments, | ||
| int | rings, | ||
| const std::optional< StringRef > & | uv_map_id ) |
Definition at line 294 of file mesh_primitive_uv_sphere.cc.
References BKE_mesh_new_nomain(), calculate_bounds_uv_sphere(), calculate_sphere_corners(), calculate_sphere_edge_indices(), calculate_sphere_faces(), calculate_sphere_uvs(), calculate_sphere_vertex_data(), mesh, blender::bke::mesh_smooth_set(), blender::bke::mesh_vert_normals_assign(), blender::threading::parallel_invoke(), sphere_corner_total(), sphere_edge_total(), sphere_face_total(), and sphere_vert_total().
Referenced by blender::nodes::node_geo_mesh_primitive_uv_sphere_cc::node_geo_exec().
|
static |
Definition at line 115 of file mix_geometries.cc.
References create_value_to_first_index_map(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve().
Referenced by create_id_index_map(), and create_value_to_first_index_map().
|
static |
Definition at line 641 of file mesh_primitive_cylinder_cone.cc.
References BKE_mesh_new_nomain(), and mesh.
Referenced by create_cylinder_or_cone_mesh().
| void blender::geometry::curve_simplify | ( | const Span< float3 > | positions, |
| const bool | cyclic, | ||
| const float | epsilon, | ||
| const GSpan | attribute_data, | ||
| MutableSpan< bool > | points_to_delete ) |
Same as above, but only for a single curve. All spans are expected to be the size of the curve.
Definition at line 120 of file simplify_curves.cc.
References curve_simplify(), and blender::GSpan::type().
Referenced by curve_simplify().
|
static |
Definition at line 94 of file simplify_curves.cc.
References blender::MutableSpan< T >::as_span(), blender::array_utils::find_all_ranges(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), and blender::threading::parallel_for().
| bke::CurvesGeometry blender::geometry::curves_merge_endpoints | ( | const bke::CurvesGeometry & | src_curves, |
| Span< int > | connect_to_curve, | ||
| Span< bool > | flip_direction, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Join each selected curve's end point with another curve's start point to form a single curve.
| connect_to_curve | Index of the curve to connect to, invalid indices are ignored (set to -1 to leave a curve disconnected). |
| flip_direction | Flip direction of input curves. |
Definition at line 281 of file merge_curves.cc.
References BLI_assert, blender::MutableSpan< T >::copy_from(), curves_merge_endpoints(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::cyclic_for_write(), find_connected_ranges(), join_curves_ranges(), reorder_and_flip_curves(), blender::Span< T >::size(), and toposort_connected_curves().
Referenced by curves_merge_endpoints(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), blender::geometry::tests::TEST(), and blender::geometry::tests::TEST().
|
static |
Definition at line 1332 of file mesh_merge_by_distance.cc.
References CD_MVERT_SKIN, count, CustomData_copy_data(), CustomData_copy_layer_type_data(), CustomData_data_add(), CustomData_data_multiply(), CustomData_interp(), CustomData_layer_has_interp(), CustomData_layer_has_math(), CustomData_sizeof(), CustomDataLayer::data, MVertSkin::flag, CustomData::layers, POINTER_OFFSET, CustomData::totlayer, and CustomDataLayer::type.
Referenced by create_merged_mesh(), and merge_customdata_all().
| void blender::geometry::debug_randomize_curve_order | ( | bke::CurvesGeometry * | curves | ) |
Definition at line 196 of file randomize.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), get_permutation(), invert_permutation(), make_new_offset_indices(), reorder_customdata(), reorder_customdata_groups(), seed, seed_from_curves(), and use_debug_randomization().
Referenced by create_curve_from_vert_indices(), and blender::nodes::node_geo_string_to_curves_cc::create_curve_instances().
| void blender::geometry::debug_randomize_edge_order | ( | Mesh * | mesh | ) |
Definition at line 108 of file randomize.cc.
References e, get_permutation(), reorder_customdata(), seed, seed_from_mesh(), and use_debug_randomization().
Referenced by debug_randomize_mesh_order(), split_edges(), and blender::nodes::node_geo_triangulate_cc::triangulate_mesh_selection().
| void blender::geometry::debug_randomize_face_order | ( | Mesh * | mesh | ) |
Definition at line 158 of file randomize.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), get_permutation(), invert_permutation(), make_new_offset_indices(), reorder_customdata(), reorder_customdata_groups(), seed, seed_from_mesh(), and use_debug_randomization().
Referenced by debug_randomize_mesh_order(), and blender::nodes::node_geo_triangulate_cc::triangulate_mesh_selection().
| void blender::geometry::debug_randomize_instance_order | ( | bke::Instances * | instances | ) |
Definition at line 231 of file randomize.cc.
References get_permutation(), reorder_customdata(), seed, seed_from_instances(), and use_debug_randomization().
| void blender::geometry::debug_randomize_mesh_order | ( | Mesh * | mesh | ) |
Definition at line 220 of file randomize.cc.
References debug_randomize_edge_order(), debug_randomize_face_order(), debug_randomize_vert_order(), and use_debug_randomization().
Referenced by blender::nodes::node_geo_mesh_primitive_ico_sphere_cc::create_ico_sphere_mesh(), create_merged_mesh(), blender::nodes::node_geo_curve_to_mesh_cc::curve_to_mesh(), doEdgeSplit(), modify_mesh(), modify_mesh(), modify_mesh(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_convex_hull_cc::node_geo_exec(), and blender::nodes::node_geo_grid_to_mesh_cc::node_geo_exec().
| void blender::geometry::debug_randomize_point_order | ( | PointCloud * | pointcloud | ) |
Definition at line 181 of file randomize.cc.
References get_permutation(), PointCloud::pdata, reorder_customdata(), seed, seed_from_pointcloud(), PointCloud::totpoint, and use_debug_randomization().
Referenced by blender::nodes::node_geo_distribute_points_in_grid_cc::node_geo_exec(), and blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec().
| void blender::geometry::debug_randomize_vert_order | ( | Mesh * | mesh | ) |
Definition at line 87 of file randomize.cc.
References get_permutation(), reorder_customdata(), seed, seed_from_mesh(), use_debug_randomization(), and v.
Referenced by debug_randomize_mesh_order(), and split_edges().
|
static |
Definition at line 106 of file mesh_primitive_cuboid.cc.
Referenced by calculate_corner_verts().
|
static |
Definition at line 81 of file separate_geometry.cc.
References blender::bke::GeometrySet::get_instances_for_write(), blender::bke::GeometrySet::remove(), and blender::fn::FieldEvaluator::set_selection().
Referenced by separate_geometry().
|
static |
Compute signed distance squared to a line passing through uva and uvb.
Definition at line 81 of file uv_pack.cc.
References blender::math::length_squared().
Referenced by blender::geometry::PackIsland::add_triangle(), and signed_distance_fat_triangle().
|
static |
Definition at line 16 of file fillet_curves.cc.
References blender::index_mask::IndexMask::foreach_index(), blender::bke::attribute_math::gather_to_groups(), blender::bke::curves::per_curve_point_offsets_range(), blender::IndexRange::size(), blender::GMutableSpan::slice(), blender::GSpan::slice(), and blender::Span< T >::slice().
Referenced by fillet_curves().
|
static |
Definition at line 317 of file mesh_split_edges.cc.
References edge_from_corner().
Referenced by calc_new_edges(), edge_from_corner(), and update_unselected_edges().
| IndexMask blender::geometry::edge_selection_from_face | ( | OffsetIndices< int > | faces, |
| const IndexMask & | face_mask, | ||
| Span< int > | corner_edges, | ||
| int | edges_num, | ||
| IndexMaskMemory & | memory ) |
An edge is selected if it is used by a selected face.
Definition at line 48 of file mesh_selection.cc.
References mapped_corner_selection_from_face().
Referenced by mesh_copy_selection_keep_verts().
| IndexMask blender::geometry::edge_selection_from_vert | ( | Span< int2 > | edges, |
| Span< bool > | vert_selection, | ||
| IndexMaskMemory & | memory ) |
An edge is selected if both of its vertices are selected.
Definition at line 57 of file mesh_selection.cc.
References blender::index_mask::IndexMask::from_predicate().
|
static |
Definition at line 95 of file mesh_to_curve_convert.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::offset_indices::build_reverse_offsets(), blender::IndexRange::drop_front(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), size(), and v2.
Referenced by edges_to_curves_convert().
|
static |
Definition at line 204 of file mesh_to_curve_convert.cc.
References create_curve_from_vert_indices(), and edges_to_curve_point_indices().
Referenced by mesh_to_curve_convert().
|
static |
Definition at line 964 of file realize_instances.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), BLI_assert, blender::GMutableSpan::data(), blender::CPPType::default_value(), execute_instances_tasks(), blender::CPPType::fill_assign_n(), blender::bke::GSpanAttributeWriter::finish(), blender::bke::InstancesComponent::get(), blender::bke::GeometrySet::get_component_for_write(), blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::Span< T >::index_range(), blender::bke::Instances::instances_num(), blender::Span< T >::is_empty(), join_attributes(), blender::geometry::OrderedAttributes::kinds, blender::bke::Instances::reference_handles(), blender::bke::Instances::references(), blender::bke::GeometrySet::replace_instances(), blender::IndexRange::size(), blender::Span< T >::size(), blender::GMutableSpan::slice(), blender::MutableSpan< T >::slice(), blender::bke::GSpanAttributeWriter::span, blender::offset_indices::OffsetIndices< T >::total_size(), transform(), and blender::bke::Instances::transforms().
Referenced by execute_instances_tasks(), and realize_instances().
|
static |
Definition at line 1768 of file realize_instances.cc.
References copy_transformed_normals(), copy_transformed_positions(), blender::geometry::AllCurvesInfo::create_custom_normal_attribute, blender::geometry::AllCurvesInfo::create_handle_postion_attributes, blender::geometry::AllCurvesInfo::create_nurbs_weight_attribute, blender::geometry::AllCurvesInfo::create_radius_attribute, blender::geometry::AllCurvesInfo::create_resolution_attribute, blender::geometry::RealizeCurveInfo::curves, blender::geometry::RealizeCurveInfo::custom_normal, execute_realize_curve_task(), blender::MutableSpan< T >::fill(), Curves::geometry, blender::geometry::RealizeCurveInfo::handle_left, blender::geometry::RealizeCurveInfo::handle_right, blender::Span< T >::is_empty(), blender::VArrayCommon< T >::materialize(), blender::geometry::RealizeCurveInfo::nurbs_weight, blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::positions_for_write(), blender::geometry::RealizeCurveInfo::radius, blender::geometry::RealizeCurveInfo::resolution, blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().
Referenced by execute_realize_curve_task().
|
static |
Definition at line 1872 of file realize_instances.cc.
References add_instance_attributes_to_single_geometry(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::CurvesGeometry::attributes_for_write(), BKE_curves_copy_for_eval(), blender::geometry::AllCurvesInfo::create_custom_normal_attribute, blender::geometry::AllCurvesInfo::create_handle_postion_attributes, blender::geometry::AllCurvesInfo::create_id_attribute, blender::geometry::AllCurvesInfo::create_nurbs_weight_attribute, blender::geometry::AllCurvesInfo::create_radius_attribute, blender::geometry::AllCurvesInfo::create_resolution_attribute, blender::geometry::CurvesElementStartIndices::curve, blender::geometry::RealizeCurveTask::curve_info, CurvesGeometry::curve_num, blender::geometry::RealizeCurveInfo::curves, execute_realize_curve_tasks(), blender::Span< T >::first(), Curves::geometry, blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::Span< T >::index_range(), blender::Span< T >::is_empty(), blender::geometry::OrderedAttributes::kinds, blender::MutableSpan< T >::last(), blender::Span< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::CurvesGeometry::offsets_for_write(), blender::geometry::CurvesElementStartIndices::point, CurvesGeometry::point_num, blender::bke::GeometrySet::replace_curves(), blender::Span< T >::size(), skip_transform(), and blender::geometry::RealizeCurveTask::start_indices.
Referenced by execute_realize_curve_tasks(), and realize_instances().
|
static |
Definition at line 2212 of file realize_instances.cc.
References blender::bke::GeometryComponentEditData::curves_edit_hints_, execute_realize_edit_data_tasks(), blender::bke::GeometrySet::get_component_for_write(), and blender::Span< T >::is_empty().
Referenced by execute_realize_edit_data_tasks(), and realize_instances().
|
static |
Definition at line 2075 of file realize_instances.cc.
References blender::geometry::GreasePencilRealizeInfo::attributes, blender::bke::CurvesGeometry::attributes_for_write(), BKE_grease_pencil_copy_layer_parameters(), copy_generic_attributes_to_result(), execute_realize_grease_pencil_task(), blender::bke::SpanAttributeWriter< T >::finish(), blender::geometry::GreasePencilRealizeInfo::grease_pencil, blender::Span< T >::index_range(), blender::bke::greasepencil::Layer::local_transform(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), GreasePencil::material_array_num, blender::geometry::GreasePencilRealizeInfo::material_index_map, blender::bke::greasepencil::Layer::set_local_transform(), blender::Span< T >::size(), blender::bke::SpanAttributeWriter< T >::span, blender::bke::greasepencil::Drawing::strokes(), and blender::bke::greasepencil::Drawing::strokes_for_write().
Referenced by execute_realize_grease_pencil_task().
|
static |
Definition at line 2138 of file realize_instances.cc.
References add_instance_attributes_to_single_geometry(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_grease_pencil_copy_for_eval(), BKE_grease_pencil_copy_parameters(), BKE_grease_pencil_new_nomain(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::data(), execute_realize_grease_pencil_tasks(), blender::Span< T >::first(), blender::geometry::GreasePencilRealizeInfo::grease_pencil, blender::geometry::RealizeGreasePencilTask::grease_pencil_info, blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::Span< T >::index_range(), blender::Span< T >::is_empty(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::geometry::OrderedAttributes::kinds, blender::Span< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), GreasePencil::material_array, GreasePencil::material_array_num, blender::geometry::AllGreasePencilsInfo::materials, MEM_SAFE_FREE, blender::bke::GeometrySet::replace_grease_pencil(), blender::Span< T >::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), skip_transform(), blender::geometry::RealizeGreasePencilTask::start_index, transform_grease_pencil_layers(), and blender::uninitialized_copy_n().
Referenced by execute_realize_grease_pencil_tasks(), and realize_instances().
|
static |
Definition at line 1418 of file realize_instances.cc.
References blender::geometry::MeshRealizeInfo::corner_edges, blender::geometry::MeshRealizeInfo::corner_verts, blender::geometry::MeshRealizeInfo::edges, execute_realize_mesh_task(), blender::geometry::MeshRealizeInfo::faces, blender::Span< T >::index_range(), blender::geometry::MeshRealizeInfo::mesh, blender::geometry::MeshRealizeInfo::positions, blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), and blender::MutableSpan< T >::slice().
Referenced by execute_realize_mesh_task().
|
static |
Definition at line 1530 of file realize_instances.cc.
References add_instance_attributes_to_single_geometry(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_id_material_eval_assign(), BKE_mesh_copy_for_eval(), BKE_mesh_copy_parameters_for_eval(), BKE_mesh_new_nomain(), BLI_freelistN(), CD_PROP_FLOAT2, Mesh::corner_data, Mesh::corners_num, blender::geometry::AllMeshesInfo::create_id_attribute, blender::geometry::AllMeshesInfo::create_material_index_attribute, CustomData_get_active_layer_name(), CustomData_get_named_layer(), CustomData_get_render_layer_name(), CustomData_set_layer_active(), CustomData_set_layer_render(), blender::geometry::MeshElementStartIndices::edge, Mesh::edges_num, execute_realize_mesh_tasks(), blender::geometry::MeshElementStartIndices::face, Mesh::faces_num, blender::Span< T >::first(), Mesh::id, blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::Span< T >::index_range(), blender::Span< T >::is_empty(), blender::geometry::OrderedAttributes::kinds, blender::Span< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::geometry::MeshElementStartIndices::loop, blender::geometry::MeshRealizeInfo::mesh, blender::geometry::RealizeMeshTask::mesh_info, blender::bke::GeometrySet::replace_mesh(), blender::Span< T >::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), skip_transform(), blender::geometry::RealizeMeshTask::start_indices, transform_positions(), blender::geometry::MeshElementStartIndices::vertex, Mesh::vertex_group_names, and Mesh::verts_num.
Referenced by execute_realize_mesh_tasks(), and realize_instances().
|
static |
Definition at line 1145 of file realize_instances.cc.
References blender::geometry::PointCloudRealizeInfo::attributes, copy_generic_attributes_to_result(), copy_transformed_positions(), create_result_ids(), execute_realize_pointcloud_task(), blender::MutableSpan< T >::is_empty(), blender::VArrayCommon< T >::materialize(), options, blender::geometry::PointCloudRealizeInfo::pointcloud, blender::geometry::PointCloudRealizeInfo::positions, blender::geometry::PointCloudRealizeInfo::radii, blender::MutableSpan< T >::slice(), blender::geometry::PointCloudRealizeInfo::stored_ids, and PointCloud::totpoint.
Referenced by execute_realize_pointcloud_task().
|
static |
Definition at line 1202 of file realize_instances.cc.
References add_instance_attributes_to_single_geometry(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_pointcloud_copy_for_eval(), BKE_pointcloud_new_nomain(), blender::geometry::AllPointCloudsInfo::create_id_attribute, blender::geometry::AllPointCloudsInfo::create_radius_attribute, execute_realize_pointcloud_tasks(), blender::Span< T >::first(), blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::Span< T >::index_range(), blender::Span< T >::is_empty(), blender::geometry::OrderedAttributes::kinds, blender::Span< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), PointCloud::mat, MEM_dupallocN, blender::geometry::PointCloudRealizeInfo::pointcloud, blender::geometry::RealizePointCloudTask::pointcloud_info, blender::bke::GeometrySet::replace_pointcloud(), blender::Span< T >::size(), skip_transform(), blender::geometry::RealizePointCloudTask::start_index, PointCloud::totcol, PointCloud::totpoint, and transform_positions().
Referenced by execute_realize_pointcloud_tasks(), and realize_instances().
| bke::CurvesGeometry blender::geometry::extend_curves | ( | bke::CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const VArray< float > & | start_lengths, | ||
| const VArray< float > & | end_lengths, | ||
| float | overshoot_fac, | ||
| bool | follow_curvature, | ||
| float | point_density, | ||
| float | segment_influence, | ||
| float | max_angle, | ||
| bool | invert_curvature, | ||
| GeometryNodeCurveSampleMode | sample_mode, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 202 of file extend_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::math::ceil(), blender::bke::curves::copy_only_curve_domain(), curve, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_length_total_for_curve(), blender::MutableSpan< T >::fill(), GEO_NODE_CURVE_SAMPLE_FACTOR, blender::MutableSpan< T >::index_range(), blender::MutableSpan< T >::last(), blender::bke::CurvesGeometry::offsets_for_write(), blender::threading::parallel_for(), blender::bke::Point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), blender::MutableSpan< T >::size(), blender::offset_indices::OffsetIndices< T >::size(), and blender::MutableSpan< T >::slice().
Referenced by blender::deform_drawing().
|
static |
Definition at line 75 of file extend_curves.cc.
References blender::math::abs(), angle(), blender::math::angle_between(), blender::math::ceil(), blender::math::clamp(), blender::math::cross(), curve, blender::math::from_rotation(), len, M_PI, blender::math::max(), blender::math::min(), blender::math::normalize(), blender::math::normalize_and_get_length(), normalize_v3(), blender::math::pow(), rot, blender::offset_indices::OffsetIndices< T >::size(), blender::math::to_quaternion(), blender::math::transform_point(), and UNLIKELY.
|
static |
Here we use the vector between two adjacent points around #overshoot_point_param as our reference for the direction of extension, however to have better tolerance for jitter, using the vector (a_few_points_back - end_point) might be a better solution in the future.
Definition at line 27 of file extend_curves.cc.
References blender::math::ceil(), curve, blender::IndexRange::first(), blender::math::floor(), fmodf, blender::math::interpolate(), blender::math::is_zero(), blender::IndexRange::last(), blender::math::length(), and UNLIKELY.
| Array< Curves * > blender::geometry::extract_curves | ( | const Curves & | curves, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 309 of file extract_elements.cc.
References blender::bke::CurvesGeometry::attributes(), BLI_assert, CURVE_TYPE_POLY, blender::bke::curves_copy_parameters(), blender::bke::curves_new_nomain_single(), element, blender::bke::gather_attributes(), blender::bke::CurvesGeometry::points_by_curve(), and blender::IndexRange::size().
| Array< Curves * > blender::geometry::extract_curves_points | ( | const Curves & | curves, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 271 of file extract_elements.cc.
References blender::bke::CurvesGeometry::attributes(), BLI_assert, CURVE_TYPE_POLY, blender::bke::curves_copy_parameters(), blender::bke::curves_new_nomain_single(), element, blender::bke::gather_attributes(), and blender::bke::CurvesGeometry::point_to_curve_map().
| Array< GreasePencil * > blender::geometry::extract_greasepencil_layer_curves | ( | const GreasePencil & | grease_pencil, |
| int | layer_i, | ||
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 477 of file extract_elements.cc.
References blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BKE_grease_pencil_new_nomain(), element, blender::bke::gather_attributes(), GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::resize(), GreasePencilLayer::runtime, blender::IndexRange::size(), blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::bke::CurvesGeometry::update_curve_types().
| Array< GreasePencil * > blender::geometry::extract_greasepencil_layer_points | ( | const GreasePencil & | grease_pencil, |
| int | layer_i, | ||
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 421 of file extract_elements.cc.
References blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BKE_grease_pencil_new_nomain(), element, blender::bke::gather_attributes(), blender::MutableSpan< T >::last(), GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN, blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::point_to_curve_map(), blender::bke::CurvesGeometry::resize(), GreasePencilLayer::runtime, blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::bke::CurvesGeometry::update_curve_types().
| Array< GreasePencil * > blender::geometry::extract_greasepencil_layers | ( | const GreasePencil & | grease_pencil, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 382 of file extract_elements.cc.
References BKE_grease_pencil_new_nomain(), BLI_assert, element, blender::bke::gather_attributes(), GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN, GreasePencilLayer::runtime, blender::bke::greasepencil::Drawing::strokes(), and blender::bke::greasepencil::Drawing::strokes_for_write().
| Array< bke::Instances * > blender::geometry::extract_instances | ( | const bke::Instances & | instances, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 346 of file extract_elements.cc.
References blender::bke::attribute_filter_with_skip_ref(), BLI_assert, element, and blender::bke::gather_attributes().
| Array< Mesh * > blender::geometry::extract_mesh_edges | ( | const Mesh & | mesh, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 74 of file extract_elements.cc.
References blender::bke::AttributeAccessor::adapt_domain(), blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_mesh_copy_parameters_for_eval(), BKE_mesh_new_nomain(), BLI_assert, CD_PROP_STRING, blender::bke::AttributeIter::data_type, ELEM, element, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, and blender::bke::GSpanAttributeWriter::span.
| Array< Mesh * > blender::geometry::extract_mesh_faces | ( | const Mesh & | mesh, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 148 of file extract_elements.cc.
References blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_mesh_copy_parameters_for_eval(), BKE_mesh_new_nomain(), BLI_assert, BLI_assert_unreachable, CD_PROP_STRING, blender::GMutableSpan::data(), blender::Span< T >::data(), blender::bke::AttributeIter::data_type, ELEM, element, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::MutableSpan< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, blender::IndexRange::size(), and blender::bke::GSpanAttributeWriter::span.
| Array< Mesh * > blender::geometry::extract_mesh_vertices | ( | const Mesh & | mesh, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 28 of file extract_elements.cc.
References blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_mesh_copy_parameters_for_eval(), BKE_mesh_new_nomain(), BLI_assert, CD_PROP_STRING, blender::bke::AttributeIter::data_type, element, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, and blender::bke::GSpanAttributeWriter::span.
| Array< PointCloud * > blender::geometry::extract_pointcloud_points | ( | const PointCloud & | pointcloud, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 245 of file extract_elements.cc.
References Geometry::attributes, BKE_pointcloud_new_nomain(), BLI_assert, element, blender::bke::gather_attributes(), PointCloud::mat, MEM_dupallocN, PointCloud::totcol, and PointCloud::totpoint.
| IndexMask blender::geometry::face_selection_from_edge | ( | OffsetIndices< int > | faces, |
| Span< int > | corner_edges, | ||
| Span< bool > | edge_mask, | ||
| IndexMaskMemory & | memory ) |
A face is selected if all of its edges are selected.
Definition at line 90 of file mesh_selection.cc.
References face_selection_from_mapped_corner().
Referenced by mesh_copy_selection_keep_edges().
|
static |
Definition at line 68 of file mesh_selection.cc.
References blender::index_mask::IndexMask::from_predicate(), and blender::Span< T >::slice().
Referenced by face_selection_from_edge(), and face_selection_from_vert().
| IndexMask blender::geometry::face_selection_from_vert | ( | OffsetIndices< int > | faces, |
| Span< int > | corner_verts, | ||
| Span< bool > | vert_selection, | ||
| IndexMaskMemory & | memory ) |
A face is selected if all of its vertices are selected.
Definition at line 82 of file mesh_selection.cc.
References face_selection_from_mapped_corner().
Referenced by mesh_copy_selection_keep_edges().
|
static |
Definition at line 187 of file trim_curves.cc.
References BEZIER_HANDLE_FREE, CURVE_TYPE_BEZIER, blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::bke::CurvesGeometry::has_curve_with_type(), blender::bke::CurvesGeometry::points_by_curve(), and blender::MutableSpan< T >::slice().
Referenced by trim_catmull_rom_curves(), trim_evaluated_curves(), and trim_polygonal_curves().
|
static |
Definition at line 48 of file join_geometries.cc.
References BLI_assert, blender::CPPType::copy_assign_n(), and fill_new_attribute().
Referenced by fill_new_attribute(), and join_attributes().
|
static |
Definition at line 206 of file trim_curves.cc.
References CURVE_TYPE_NURBS, blender::bke::curves::fill_points(), blender::bke::CurvesGeometry::has_curve_with_type(), blender::bke::CurvesGeometry::nurbs_weights_for_write(), and blender::bke::CurvesGeometry::points_by_curve().
Referenced by trim_bezier_curves(), trim_catmull_rom_curves(), trim_evaluated_curves(), and trim_polygonal_curves().
|
static |
Definition at line 365 of file fillet_curves.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), ATTR_DOMAIN_MASK_POINT, blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), calculate_angles(), calculate_bezier_handles_bezier_mode(), calculate_bezier_handles_poly_mode(), calculate_directions(), calculate_fillet_positions(), calculate_result_offsets(), blender::index_mask::IndexMask::complement(), CURVE_TYPE_BEZIER, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), duplicate_fillet_point_data(), fillet_curves(), blender::index_mask::IndexMask::foreach_segment(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::bke::CurvesGeometry::has_curve_with_type(), blender::Span< T >::last(), limit_radii(), limit_radius(), blender::VArrayCommon< T >::materialize_compressed(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::bke::CurvesGeometry::resize(), blender::IndexRange::size(), blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().
Referenced by fillet_curves(), fillet_curves_bezier(), and fillet_curves_poly().
| bke::CurvesGeometry blender::geometry::fillet_curves_bezier | ( | const bke::CurvesGeometry & | src_curves, |
| const IndexMask & | curve_selection, | ||
| const VArray< float > & | radius, | ||
| bool | limit_radius, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 531 of file fillet_curves.cc.
References fillet_curves(), fillet_curves_bezier(), limit_radius(), and blender::bke::CurvesGeometry::points_num().
Referenced by blender::nodes::node_geo_curve_fillet_cc::fillet_curve(), and fillet_curves_bezier().
| bke::CurvesGeometry blender::geometry::fillet_curves_poly | ( | const bke::CurvesGeometry & | src_curves, |
| const IndexMask & | curve_selection, | ||
| const VArray< float > & | radius, | ||
| const VArray< int > & | counts, | ||
| bool | limit_radius, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 520 of file fillet_curves.cc.
References count, fillet_curves(), fillet_curves_poly(), and limit_radius().
Referenced by blender::nodes::node_geo_curve_fillet_cc::fillet_curve(), and fillet_curves_poly().
|
static |
Definition at line 2266 of file uv_pack.cc.
References BLI_heap_free(), BLI_heap_new(), BLI_memarena_clear(), BLI_memarena_free(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, finalize_geometry(), and params.
Referenced by finalize_geometry(), and pack_islands().
|
static |
Definition at line 1354 of file uv_pack.cc.
References blender::geometry::Occupancy::bitmap_scale_reciprocal, blender::geometry::PackIsland::build_transformation(), ceilf, DEG2RADF, blender::geometry::PackIsland::get_diagonal_support(), int, sqrtf, and blender::geometry::Occupancy::trace_island().
Referenced by pack_island_xatlas().
|
static |
Definition at line 190 of file merge_curves.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::IndexRange::contains(), blender::bke::CurvesGeometry::curves_range(), find_connected_ranges(), blender::Span< T >::index_range(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::IndexRange::size(), and blender::Span< T >::size().
Referenced by curves_merge_endpoints(), and find_connected_ranges().
|
static |
Definition at line 60 of file add_curves_on_mesh.cc.
References max_neighbors, blender::threading::parallel_for(), range, and blender::Span< T >::size().
Referenced by add_curves_on_mesh().
|
static |
Consolidates the data that has been gather for each row so that it is each to look up which triangles are in each cell.
Definition at line 117 of file reverse_uv_sampler.cc.
References finish_rows(), and blender::Span< T >::index_range().
Referenced by finish_rows(), and blender::geometry::ReverseUVSampler::ReverseUVSampler().
|
static |
Definition at line 293 of file uv_parametrizer.cc.
References DEG2RADF, len_v3v3(), sum(), and v2.
Referenced by p_triangle_angles().
|
static |
Definition at line 18 of file merge_curves.cc.
References blender::Span< T >::index_range(), Inserted, blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), next, OnStack, blender::Stack< T, InlineBufferCapacity, Allocator >::peek(), blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), and UNUSED_VARS.
Referenced by toposort_connected_curves().
|
static |
Calls #fn for every geometry in the given #InstanceReference. Also passes on the transformation that is applied to every instance.
Definition at line 546 of file realize_instances.cc.
References foreach_geometry_in_reference().
Referenced by foreach_geometry_in_reference(), and gather_realize_tasks_for_instances().
|
static |
Definition at line 770 of file realize_instances.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_as(), gather_attribute_propagation_components(), and options.
Referenced by gather_attribute_propagation_components(), gather_attribute_propagation_components_with_custom_depths(), and gather_attributes_to_propagate().
|
static |
Definition at line 807 of file realize_instances.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_as(), blender::geometry::VariedDepthOptions::depths, blender::index_mask::IndexMask::foreach_index(), gather_attribute_propagation_components(), gather_attribute_propagation_components_with_custom_depths(), options, blender::geometry::VariedDepthOptions::selection, and blender::Span< T >::size().
Referenced by gather_attribute_propagation_components_with_custom_depths(), and gather_attributes_to_propagate().
|
static |
Definition at line 871 of file realize_instances.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), blender::bke::AttributeFilter::allow_skip(), blender::bke::GeometryComponent::attribute_domain_size(), CD_PROP_STRING, blender::bke::AttributeIter::data_type, blender::geometry::VariedDepthOptions::depths, blender::bke::AttributeIter::domain, blender::bke::AttributeAccessor::foreach_attribute(), gather_attribute_propagation_components(), gather_attribute_propagation_components_with_custom_depths(), gather_attributes_to_propagate(), blender::VArrayCommon< T >::get_if_single(), blender::bke::AttributeIter::is_builtin, blender::bke::AttributeIter::name, options, blender::geometry::VariedDepthOptions::selection, and blender::index_mask::IndexMask::size().
Referenced by gather_attributes_to_propagate(), gather_generic_curve_attributes_to_propagate(), gather_generic_grease_pencil_attributes_to_propagate(), gather_generic_instance_attributes_to_propagate(), gather_generic_mesh_attributes_to_propagate(), and gather_generic_pointcloud_attributes_to_propagate().
|
static |
Gather a set of all generic attribute IDs to copy to the result curves.
Definition at line 148 of file interpolate_curves.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::bke::attribute_name_is_anonymous(), blender::bke::CurvesGeometry::attributes(), CD_PROP_STRING, blender::bke::Curve, blender::bke::AttributeAccessor::foreach_attribute(), and retrieve_attribute_spans().
Referenced by interpolate_curves().
|
static |
Definition at line 1688 of file realize_instances.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), gather_curves_to_realize(), blender::bke::GeometrySet::get_curves(), and blender::bke::GeometrySet::get_instances().
Referenced by gather_curves_to_realize(), and preprocess_curves().
|
static |
Definition at line 1664 of file realize_instances.cc.
References gather_attributes_to_propagate(), gather_generic_curve_attributes_to_propagate(), blender::geometry::OrderedAttributes::ids, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::geometry::OrderedAttributes::kinds, options, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pop_try(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove().
Referenced by gather_generic_curve_attributes_to_propagate(), and preprocess_curves().
|
static |
Definition at line 2008 of file realize_instances.cc.
References gather_attributes_to_propagate(), gather_generic_grease_pencil_attributes_to_propagate(), blender::geometry::OrderedAttributes::ids, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::geometry::OrderedAttributes::kinds, and options.
Referenced by gather_generic_grease_pencil_attributes_to_propagate(), and preprocess_grease_pencils().
|
static |
Definition at line 948 of file realize_instances.cc.
References gather_attributes_to_propagate(), gather_generic_instance_attributes_to_propagate(), blender::geometry::OrderedAttributes::ids, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::geometry::OrderedAttributes::kinds, options, and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pop_try().
Referenced by gather_generic_instance_attributes_to_propagate(), and realize_instances().
|
static |
Definition at line 1292 of file realize_instances.cc.
References gather_attributes_to_propagate(), gather_generic_mesh_attributes_to_propagate(), blender::geometry::OrderedAttributes::ids, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::geometry::OrderedAttributes::kinds, options, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pop_try(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove().
Referenced by gather_generic_mesh_attributes_to_propagate(), and preprocess_meshes().
|
static |
Definition at line 1063 of file realize_instances.cc.
References gather_attributes_to_propagate(), gather_generic_pointcloud_attributes_to_propagate(), blender::geometry::OrderedAttributes::ids, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::geometry::OrderedAttributes::kinds, options, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pop_try(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove().
Referenced by gather_generic_pointcloud_attributes_to_propagate(), and preprocess_pointclouds().
|
static |
Definition at line 2023 of file realize_instances.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), gather_grease_pencils_to_realize(), blender::bke::GeometrySet::get_grease_pencil(), and blender::bke::GeometrySet::get_instances().
Referenced by gather_grease_pencils_to_realize(), and preprocess_grease_pencils().
|
static |
Definition at line 1315 of file realize_instances.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), gather_meshes_to_realize(), blender::bke::GeometrySet::get_instances(), and blender::bke::GeometrySet::get_mesh().
Referenced by gather_meshes_to_realize(), and preprocess_meshes().
|
static |
Gather a set of all generic attribute IDs to copy to the result curves.
Definition at line 113 of file interpolate_curves.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::bke::CurvesGeometry::attributes(), CD_PROP_STRING, blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::AttributeAccessor::foreach_attribute(), interpolate_attribute_to_curves(), interpolate_attribute_to_poly_curve(), blender::bke::Point, and retrieve_attribute_spans().
Referenced by interpolate_curves(), resample_to_evaluated(), and resample_to_uniform().
|
static |
Gather a set of all generic attribute IDs to copy to the result curves.
Definition at line 133 of file resample_curves.cc.
References blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), CD_PROP_FLOAT3, CD_PROP_STRING, blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, blender::bke::CurvesGeometry::evaluated_normals(), blender::bke::CurvesGeometry::evaluated_tangents(), blender::bke::AttributeAccessor::foreach_attribute(), interpolate_attribute_to_curves(), interpolate_attribute_to_poly_curve(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, blender::geometry::ResampleCurvesOutputAttributeIDs::normal_id, blender::bke::Point, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained(), retrieve_attribute_spans(), blender::bke::GSpanAttributeWriter::span, blender::geometry::ResampleCurvesOutputAttributeIDs::tangent_id, and blender::GMutableSpan::typed().
|
static |
Definition at line 1083 of file realize_instances.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), gather_pointclouds_to_realize(), blender::bke::GeometrySet::get_instances(), and blender::bke::GeometrySet::get_pointcloud().
Referenced by gather_pointclouds_to_realize(), and preprocess_pointclouds().
|
static |
Definition at line 558 of file realize_instances.cc.
References blender::geometry::AttributeFallbacksArray::array, blender::geometry::AllCurvesInfo::attributes, blender::geometry::AllGreasePencilsInfo::attributes, blender::geometry::AllMeshesInfo::attributes, blender::geometry::AllPointCloudsInfo::attributes, blender::geometry::GatherTasksInfo::create_id_attribute_on_any_component, blender::geometry::GatherTasksInfo::curves, blender::geometry::InstanceContext::curves, blender::geometry::GatherTasksInfo::depths, foreach_geometry_in_reference(), gather_realize_tasks_for_instances(), gather_realize_tasks_recursive(), blender::geometry::GatherTasksInfo::grease_pencils, blender::geometry::InstanceContext::grease_pencils, blender::geometry::InstanceContext::id, blender::geometry::InstanceContext::instances, blender::geometry::GatherTasksInfo::instances_attriubutes, blender::Span< T >::is_empty(), blender::geometry::GatherTasksInfo::meshes, blender::geometry::InstanceContext::meshes, blender::geometry::GatherTasksInfo::pointclouds, blender::geometry::InstanceContext::pointclouds, prepare_attribute_fallbacks(), blender::geometry::GatherTasksInfo::selection, transform(), and blender::bke::AttributeReader< T >::varray.
Referenced by gather_realize_tasks_for_instances(), and gather_realize_tasks_recursive().
|
static |
Gather tasks for all geometries in the #geometry_set.
Definition at line 651 of file realize_instances.cc.
References blender::ImplicitSharingInfo::add_user(), blender::geometry::AllInstancesInfo::attribute_fallback, blender::geometry::CurvesElementStartIndices::curve, blender::geometry::GatherTasks::curve_tasks, blender::geometry::GatherTasksInfo::curves, blender::geometry::InstanceContext::curves, blender::geometry::GatherOffsets::curves_offsets, blender::geometry::MeshElementStartIndices::edge, blender::geometry::GatherTasks::edit_data_tasks, blender::geometry::MeshElementStartIndices::face, blender::geometry::GatherTasks::first_volume, gather_realize_tasks_for_instances(), gather_realize_tasks_recursive(), blender::bke::GeometrySet::get_components(), blender::geometry::GatherOffsets::grease_pencil_layer_offset, blender::geometry::GatherTasks::grease_pencil_tasks, blender::geometry::GatherTasksInfo::grease_pencils, blender::geometry::InstanceContext::grease_pencils, blender::geometry::InstanceContext::id, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of(), blender::geometry::GatherTasksInfo::instances, blender::geometry::InstanceContext::instances, blender::geometry::AllInstancesInfo::instances_components_to_merge, blender::geometry::AllInstancesInfo::instances_components_transforms, blender::geometry::MeshElementStartIndices::loop, blender::geometry::GatherOffsets::mesh_offsets, blender::geometry::GatherTasks::mesh_tasks, blender::geometry::GatherTasksInfo::meshes, blender::geometry::InstanceContext::meshes, blender::geometry::AllCurvesInfo::order, blender::geometry::AllGreasePencilsInfo::order, blender::geometry::AllMeshesInfo::order, blender::geometry::AllPointCloudsInfo::order, blender::geometry::CurvesElementStartIndices::point, blender::geometry::GatherOffsets::pointcloud_offset, blender::geometry::GatherTasks::pointcloud_tasks, blender::geometry::GatherTasksInfo::pointclouds, blender::geometry::InstanceContext::pointclouds, blender::geometry::GatherTasksInfo::r_offsets, blender::geometry::GatherTasksInfo::r_tasks, blender::geometry::AllCurvesInfo::realize_info, blender::geometry::AllGreasePencilsInfo::realize_info, blender::geometry::AllMeshesInfo::realize_info, blender::geometry::AllPointCloudsInfo::realize_info, PointCloud::totpoint, and blender::geometry::MeshElementStartIndices::vertex.
Referenced by gather_realize_tasks_for_instances(), gather_realize_tasks_recursive(), and realize_instances().
|
static |
Gather vertex group data and array attributes in separate loops.
Definition at line 97 of file mesh_copy_selection.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), Geometry::attributes, gather_vert_attributes(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Span< T >::is_empty(), LISTBASE_FOREACH, and Mesh::vertex_group_names.
Referenced by gather_vert_attributes().
| void blender::geometry::gaussian_blur_1D | ( | const GSpan | src, |
| int | iterations, | ||
| const VArray< float > & | influence_by_point, | ||
| const bool | smooth_ends, | ||
| const bool | keep_shape, | ||
| const bool | is_cyclic, | ||
| GMutableSpan | dst ) |
1D Gaussian-like smoothing function.
| iterations | Number of times to repeat the smoothing. |
| influence | Influence factor for each point. |
| smooth_ends | Smooth the first and last value. |
| keep_shape | Changes the gaussian kernel to avoid severe deformations. |
| is_cyclic | Propagate smoothing across the ends of the input as if they were connected. |
Definition at line 150 of file smooth_curves.cc.
References gaussian_blur_1D(), and blender::GSpan::type().
Referenced by gaussian_blur_1D(), smooth_curve_attribute(), and smooth_curve_positions().
|
static |
1D Gaussian-like smoothing function.
NOTE: This is the algorithm used by BKE_gpencil_stroke_smooth_point (legacy), but generalized and written in C++.
This function uses a binomial kernel, which is the discrete version of gaussian blur. The weight for a value at the relative index is: w = nCr(n, j + n/2) / 2^n = (n/1 * (n-1)/2 * ... * (n-j-n/2)/(j+n/2)) / 2^n. All weights together sum up to 1. This is equivalent to doing multiple iterations of averaging neighbors, where: n = iterations * 2 and -n/2 <= j <= n/2.
Now the problem is that nCr(n, j + n/2) is very hard to compute for n > 500, since even double precision isn't sufficient. A very good robust approximation for n > 20 is: nCr(n, j + n/2) / 2^n = sqrt(2/(pi*n)) * exp(-2*j*j/n).
keep_shape is a new option to stop the points from severely deforming. It uses different partially negative weights. w = 2 * (nCr(n, j + n/2) / 2^n) - (nCr(3*n, j + n) / 2^(3*n)) ~ 2 * sqrt(2/(pi*n)) * exp(-2*j*j/n) - sqrt(2/(pi*3*n)) * exp(-2*j*j/(3*n)) All weights still sum up to 1. Note that these weights only work because the averaging is done in relative coordinates.
Definition at line 21 of file smooth_curves.cc.
References BLI_assert, double(), ELEM, exp(), blender::MutableSpan< T >::index_range(), is_cyclic(), blender::Span< T >::is_empty(), M_SQRT3, blender::threading::parallel_for(), blender::MutableSpan< T >::size(), blender::Span< T >::size(), and w().
|
static |
extent, factoring in the target aspect ratio. Definition at line 111 of file uv_pack.cc.
References BLI_rctf_size_x(), BLI_rctf_size_y(), and params.
Referenced by is_larger().
|
static |
extent, factoring in the target aspect ratio. Definition at line 101 of file uv_pack.cc.
References BLI_rctf_size_x(), BLI_rctf_size_y(), and params.
Referenced by is_larger(), rotate_inside_square(), and blender::geometry::UVMinimumEnclosingSquareFinder::update().
|
static |
Definition at line 33 of file resample_curves.cc.
References count, blender::fn::FieldOperation::Create(), int, and UNLIKELY.
Referenced by resample_to_length().
|
static |
Definition at line 24 of file resample_curves.cc.
References blender::fn::FieldOperation::Create().
Referenced by resample_to_count().
|
static |
Definition at line 18 of file join_geometries.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), blender::bke::attribute_data_type_highest_complexity(), blender::bke::attribute_domain_highest_priority(), CD_PROP_STRING, blender::Span< T >::contains(), blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, and blender::bke::AttributeIter::name.
Referenced by join_attributes().
|
static |
Definition at line 345 of file realize_instances.cc.
References blender::geometry::GatherTasks::curve_tasks, blender::geometry::GatherTasks::mesh_tasks, and blender::geometry::GatherTasks::pointcloud_tasks.
Referenced by realize_instances().
Definition at line 27 of file randomize.cc.
Referenced by debug_randomize_curve_order(), debug_randomize_edge_order(), debug_randomize_face_order(), debug_randomize_instance_order(), debug_randomize_point_order(), and debug_randomize_vert_order().
|
static |
Definition at line 1424 of file uv_pack.cc.
References blender::geometry::PackIsland::half_diagonal_, sqrtf, and sum().
Referenced by pack_island_xatlas().
|
static |
Return true if the attribute should be copied/interpolated to the result curves. Don't output attributes that correspond to curve types that have no curves in the result.
Definition at line 28 of file interpolate_curves.cc.
References blender::bke::attribute_name_is_anonymous(), CURVE_TYPE_BEZIER, CURVE_TYPE_NURBS, and ELEM.
Referenced by gather_point_attributes_to_interpolate(), and gather_point_attributes_to_interpolate().
|
static |
Return true if the attribute should be copied/interpolated to the result curves. Don't output attributes that correspond to curve types that have no curves in the result.
Definition at line 59 of file resample_curves.cc.
References blender::bke::attribute_name_is_anonymous(), CURVE_TYPE_BEZIER, CURVE_TYPE_NURBS, and ELEM.
|
static |
Return true if the attribute should be copied to poly curves.
Definition at line 46 of file interpolate_curves.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains().
Referenced by gather_point_attributes_to_interpolate(), and gather_point_attributes_to_interpolate().
|
static |
Return true if the attribute should be copied to poly curves.
Definition at line 77 of file resample_curves.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains().
|
static |
Definition at line 247 of file trim_curves.cc.
References BLI_assert, blender::bke::curves::CurveSegment::index, blender::bke::curves::catmull_rom::interpolate(), blender::bke::curves::CurveSegment::next_index, blender::bke::curves::CurvePoint::parameter, and blender::Span< T >::size().
Referenced by sample_interval_catmull_rom().
| void blender::geometry::interpolate_curves | ( | const bke::CurvesGeometry & | from_curves, |
| const bke::CurvesGeometry & | to_curves, | ||
| Span< int > | from_curve_indices, | ||
| Span< int > | to_curve_indices, | ||
| const IndexMask & | dst_curve_mask, | ||
| Span< bool > | dst_curve_flip_direction, | ||
| const float | mix_factor, | ||
| bke::CurvesGeometry & | dst_curves ) |
Create new curves that are interpolated between "from" and "to" curves.
| dst_curve_mask | Set of curves in dst_curves that are being filled. |
Definition at line 277 of file interpolate_curves.cc.
References BLI_assert, CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_lengths_for_curve(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::fill_curve_types(), blender::index_mask::IndexMask::foreach_index(), gather_curve_attributes_to_interpolate(), gather_point_attributes_to_interpolate(), interpolate_curves(), blender::Span< T >::is_empty(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), pos, blender::bke::CurvesGeometry::positions_for_write(), blender::index_mask::IndexMask::size(), and blender::Span< T >::size().
Referenced by blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), and interpolate_curves().
| void blender::geometry::interpolate_from_neighbor_curves | ( | const Span< NeighborCurves > | neighbors_per_curve, |
| const T & | fallback, | ||
| const GetValueF & | get_value_from_neighbor, | ||
| MutableSpan< T > | r_interpolated_values ) |
Definition at line 88 of file add_curves_on_mesh.cc.
References blender::MutableSpan< T >::index_range(), and blender::threading::parallel_for().
Definition at line 37 of file randomize.cc.
References data, blender::Span< T >::index_range(), and blender::Span< T >::size().
Referenced by debug_randomize_curve_order(), and debug_randomize_face_order().
Definition at line 76 of file reorder.cc.
References data, blender::Span< T >::index_range(), invert_permutation(), and blender::Span< T >::size().
Referenced by invert_permutation(), reorder_mesh_edges_exec(), and reorder_mesh_verts_exec().
|
static |
b is a preferred layout over a, given the packing parameters supplied. Definition at line 121 of file uv_pack.cc.
References b, compare_ff_relative(), get_aspect_scaled_area(), get_aspect_scaled_extent(), and params.
Referenced by pack_island_box_pack_2d(), pack_island_xatlas(), pack_islands_optimal_pack(), and pack_islands_optimal_pack_table().
|
static |
This function answers the question about possible conversion method for NURBS-to-Bezier. In general for 3rd degree NURBS curves there is one-to-one relation with 3rd degree Bezier curves that can be exploit for conversion - Bezier handles sit on NURBS hull segments and in the middle between those handles are Bezier anchor points.
Definition at line 23 of file set_curve_type.cc.
References ELEM, NURBS_KNOT_MODE_ENDPOINT, and NURBS_KNOT_MODE_NORMAL.
Referenced by convert_curves_to_bezier(), create_nurbs_to_bezier_handles(), create_nurbs_to_bezier_positions(), and to_bezier_size().
| void blender::geometry::join_attributes | ( | const Span< const bke::GeometryComponent * > | src_components, |
| bke::GeometryComponent & | r_result, | ||
| const Span< StringRef > | ignored_attributes = {} ) |
Definition at line 75 of file join_geometries.cc.
References blender::bke::AttributeMetaData::data_type, blender::bke::AttributeMetaData::domain, fill_new_attribute(), blender::bke::GSpanAttributeWriter::finish(), get_final_attribute_info(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), join_attributes(), and blender::bke::GSpanAttributeWriter::span.
Referenced by execute_instances_tasks(), join_attributes(), and join_instances().
|
static |
Definition at line 145 of file join_geometries.cc.
References blender::bke::GeometrySet::add(), blender::bke::GeometrySet::get_component_for_write(), blender::bke::GeometryComponent::is_empty(), join_component_type(), join_instances(), join_volumes(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), options, and realize_instances().
Referenced by join_component_type(), and join_geometries().
|
static |
Definition at line 16 of file merge_layers.cc.
References BLI_assert, blender::bke::curves_new_nomain(), blender::bke::CurvesGeometry::curves_num(), Curves::geometry, blender::bke::GeometrySet::get_curves(), blender::bke::GeometrySet::has_curves(), blender::Span< T >::index_range(), join_geometries(), Curves::mat, GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN, blender::Span< T >::size(), Curves::totcol, and blender::bke::CurvesGeometry::transform().
Referenced by merge_layers().
|
static |
Definition at line 245 of file merge_curves.cc.
References blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::offset_indices::OffsetIndices< T >::data(), blender::IndexRange::drop_back(), blender::MutableSpan< T >::fill(), blender::MutableSpan< T >::index_range(), join_curves_ranges(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::offset_indices::OffsetIndices< T >::size(), and blender::bke::CurvesGeometry::tag_topology_changed().
Referenced by curves_merge_endpoints(), and join_curves_ranges().
| GeometrySet blender::geometry::join_geometries | ( | const Span< GeometrySet > | geometries, |
| const bke::AttributeFilter & | attribute_filter, | ||
| const std::optional< Span< GeometryComponent::Type > > & | component_types_to_join ) |
Definition at line 200 of file join_geometries.cc.
References join_component_type(), join_geometries(), blender::bke::GeometrySet::name, and result.
| bke::GeometrySet blender::geometry::join_geometries | ( | Span< bke::GeometrySet > | geometries, |
| const bke::AttributeFilter & | attribute_filter, | ||
| const std::optional< Span< bke::GeometryComponent::Type > > & | component_types_to_join = std::nullopt ) |
Referenced by blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::nodes::node_geo_curve_to_mesh_cc::grease_pencil_to_mesh(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::ed::greasepencil::join_curves(), join_curves(), join_geometries(), MOD_lineart_gpencil_generate_v3(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_instance_on_points_cc::node_geo_exec(), and blender::nodes::node_geo_join_geometry_cc::node_geo_exec().
|
static |
Definition at line 98 of file join_geometries.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::Span< T >::index_range(), join_attributes(), join_instances(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), blender::bke::Instances::reference_handles(), blender::bke::Instances::references(), blender::Span< T >::size(), blender::MutableSpan< T >::slice(), and blender::offset_indices::OffsetIndices< T >::total_size().
Referenced by join_component_type(), and join_instances().
|
static |
Definition at line 138 of file join_geometries.cc.
References join_volumes().
Referenced by join_component_type(), and join_volumes().
|
static |
Definition at line 270 of file trim_curves.cc.
References BLI_assert, blender::bke::curves::CurveSegment::index, blender::bke::curves::bezier::insert(), blender::bke::curves::CurveSegment::next_index, and blender::bke::curves::CurvePoint::parameter.
Referenced by sample_interval_bezier().
|
static |
Definition at line 128 of file fillet_curves.cc.
References blender::MutableSpan< T >::first(), blender::MutableSpan< T >::last(), and limit_radius().
Referenced by fillet_curves().
|
static |
Find the portion of the previous and next segments used by the current and next point fillets. If more than the total length of the segment would be used, scale the current point's radius just enough to make the two points meet in the middle.
Definition at line 101 of file fillet_curves.cc.
References blender::math::distance(), and blender::math::safe_divide().
Referenced by fillet_curves(), fillet_curves_bezier(), fillet_curves_poly(), and limit_radii().
|
inlinestatic |
Definition at line 56 of file subdivide_curves.cc.
References b, blender::IndexRange::drop_front(), blender::MutableSpan< T >::first(), blender::MutableSpan< T >::index_range(), blender::bke::attribute_math::mix2(), and blender::MutableSpan< T >::size().
Referenced by subdivide_attribute_linear(), and subdivide_bezier_segment().
|
static |
Definition at line 143 of file trim_curves.cc.
References BLI_assert, CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, CURVE_TYPE_POLY, lookup_point_bezier(), lookup_point_polygonal(), lookup_point_uniform_spacing(), and size().
Referenced by compute_curve_trim_parameters().
|
static |
Definition at line 122 of file trim_curves.cc.
References blender::bke::CurvesGeometry::bezier_evaluated_offsets_for_curve(), blender::bke::curves::bezier::has_vector_handles(), lookup_point_bezier(), lookup_point_uniform_spacing(), and size().
|
static |
Find the point on a Bezier curve using the 'bezier_offsets' cache.
Definition at line 91 of file trim_curves.cc.
References blender::Span< T >::begin(), blender::Span< T >::end(), left, and blender::length_parameterize::sample_at_length().
Referenced by lookup_curve_point(), and lookup_point_bezier().
|
static |
Find the point on the 'evaluated' polygonal curve.
Definition at line 66 of file trim_curves.cc.
References blender::length_parameterize::sample_at_length().
Referenced by lookup_curve_point().
|
static |
Find the point on the curve defined by the distance along the curve. Assumes curve resolution is constant for all curve segments and evaluated curve points are uniformly spaced between the segment endpoints in relation to the curve parameter.
| lengths | Accumulated length for the evaluated curve. |
| sample_length | Distance along the curve to determine the #CurvePoint for. |
| cyclic | If curve is cyclic. |
| resolution | Curve resolution (number of evaluated points per segment). |
| num_curve_points | Total number of control points in the curve. |
Definition at line 37 of file trim_curves.cc.
References BLI_assert, and blender::length_parameterize::sample_at_length().
Referenced by lookup_curve_point(), and lookup_point_bezier().
|
static |
Definition at line 210 of file reverse_uv_sampler.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::Array< T, InlineBufferCapacity, Allocator >::is_empty(), blender::geometry::Row::offsets, blender::geometry::ReverseUVSampler::LookupGrid::rows, blender::Span< T >::slice(), blender::geometry::Row::tri_indices, blender::geometry::Row::x_max, blender::geometry::Row::x_min, and blender::geometry::ReverseUVSampler::LookupGrid::y_min.
Referenced by blender::geometry::ReverseUVSampler::sample().
|
static |
Definition at line 126 of file randomize.cc.
References blender::offset_indices::OffsetIndices< T >::data(), blender::offset_indices::OffsetIndices< T >::index_range(), and blender::offset_indices::OffsetIndices< T >::size().
Referenced by debug_randomize_curve_order(), and debug_randomize_face_order().
|
static |
Definition at line 26 of file mesh_selection.cc.
References blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::from_bools(), and blender::Span< T >::slice().
Referenced by edge_selection_from_face(), and vert_selection_from_face().
|
static |
Applies to CustomData *dest the values in CustomData *source.
This function creates the CustomData of the resulting mesh according to the merge map in dest_map. The resulting customdata will not have the source elements, so the indexes will be modified. To indicate the new indices r_final_map is also created.
| dest_map | Map that defines the source and target elements. The source elements will be merged into the target. Each target corresponds to a group. |
| double_elems | Source and target elements in dest_map. For quick access. |
| do_mix_data | If true the target element will have the custom data interpolated with all sources pointing to it. |
Definition at line 1442 of file mesh_merge_by_distance.cc.
References BLI_assert, count, CustomData_copy_data(), customdata_weld(), ELEM_COLLAPSED, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), merge_groups_create(), OUT_OF_CONTEXT, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::IndexRange::size(), blender::Span< T >::size(), blender::IndexRange::start(), and UNUSED_VARS_NDEBUG.
Referenced by create_merged_mesh().
|
static |
Create groups to merge.
This function creates groups for merging elements based on the provided dest_map.
| dest_map | Map that defines the source and target elements. The source elements will be merged into the target. Each target corresponds to a group. |
| double_elems | Source and target elements in dest_map. For quick access. |
Definition at line 1298 of file mesh_merge_by_distance.cc.
References BLI_assert, blender::MutableSpan< T >::fill(), blender::Span< T >::index_range(), blender::MutableSpan< T >::last(), blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::Array< T, InlineBufferCapacity, Allocator >::size(), blender::MutableSpan< T >::size(), and blender::Span< T >::size().
Referenced by merge_customdata_all().
| GreasePencil * blender::geometry::merge_layers | ( | const GreasePencil & | src_grease_pencil, |
| Span< Vector< int > > | layers_to_merge, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Creates a new grease pencil geometry that has groups of layers merged into one layer per group.
| layers_to_merge | A list of source layer indices for each new layers. Each new layer must have at least one source layer. |
Definition at line 42 of file merge_layers.cc.
References blender::bke::AttributeFilter::allow_skip(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_grease_pencil_new_nomain(), BLI_assert, CD_PROP_STRING, blender::bke::attribute_math::convert_to_static_type(), blender::bke::AttributeIter::data_type, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeIter::get(), blender::Span< T >::index_range(), blender::math::invert(), blender::Span< T >::is_empty(), join_curves(), blender::bke::Layer, blender::bke::greasepencil::Layer::local_transform(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), GreasePencil::material_array, GreasePencil::material_array_num, MEM_dupallocN, blender::bke::AttributeIter::name, blender::threading::parallel_for(), GreasePencil::runtime, blender::bke::greasepencil::Layer::set_local_transform(), blender::Span< T >::size(), blender::bke::GSpanAttributeWriter::span, blender::bke::greasepencil::Drawing::strokes_for_write(), blender::GMutableSpan::type(), blender::GMutableSpan::typed(), blender::GVArray::typed(), and blender::bke::GAttributeReader::varray.
Referenced by blender::ed::object::apply_eval_grease_pencil_data(), and blender::nodes::node_geo_merge_layers_cc::merge_layers().
| std::optional< Mesh * > blender::geometry::mesh_copy_selection | ( | const Mesh & | src_mesh, |
| const VArray< bool > & | selection, | ||
| bke::AttrDomain | selection_domain, | ||
| const bke::AttributeFilter & | attribute_filter = {} ) |
Definition at line 121 of file mesh_copy_selection.cc.
References blender::bke::MutableAttributeAccessor::add(), Geometry::attributes, BKE_mesh_copy_parameters_for_eval(), BLI_assert_unreachable, Mesh::corners_num, Mesh::edges_num, Mesh::faces_num, blender::index_mask::IndexMask::is_empty(), blender::threading::EnumerableThreadSpecific< T >::local(), mesh_copy_selection(), blender::index_mask::IndexMask::size(), blender::Span< T >::size(), blender::offset_indices::OffsetIndices< T >::total_size(), and Mesh::verts_num.
Referenced by mesh_copy_selection(), and separate_mesh_selection().
| std::optional< Mesh * > blender::geometry::mesh_copy_selection_keep_edges | ( | const Mesh & | mesh, |
| const VArray< bool > & | selection, | ||
| bke::AttrDomain | selection_domain, | ||
| const bke::AttributeFilter & | attribute_filter = {} ) |
Definition at line 397 of file mesh_copy_selection.cc.
References blender::bke::MutableAttributeAccessor::add(), Geometry::attributes, BKE_mesh_copy_parameters_for_eval(), BLI_assert_unreachable, copy_loose_vert_hint(), copy_overlapping_hint(), Mesh::corners_num, Mesh::edges_num, face_selection_from_edge(), face_selection_from_vert(), Mesh::faces_num, mesh_copy_selection_keep_edges(), Mesh::runtime, blender::index_mask::IndexMask::size(), blender::offset_indices::OffsetIndices< T >::total_size(), and Mesh::verts_num.
Referenced by mesh_copy_selection_keep_edges(), and separate_mesh_selection().
| std::optional< Mesh * > blender::geometry::mesh_copy_selection_keep_verts | ( | const Mesh & | src_mesh, |
| const VArray< bool > & | selection, | ||
| bke::AttrDomain | selection_domain, | ||
| const bke::AttributeFilter & | attribute_filter = {} ) |
Definition at line 278 of file mesh_copy_selection.cc.
References blender::bke::MutableAttributeAccessor::add(), Geometry::attributes, BKE_mesh_copy_parameters_for_eval(), BLI_assert_unreachable, copy_loose_edge_hint(), copy_overlapping_hint(), Mesh::corners_num, edge_selection_from_face(), Mesh::edges_num, Mesh::faces_num, blender::threading::EnumerableThreadSpecific< T >::local(), mesh_copy_selection_keep_verts(), remap_edges(), Mesh::runtime, blender::index_mask::IndexMask::size(), blender::Span< T >::size(), blender::offset_indices::OffsetIndices< T >::total_size(), and Mesh::verts_num.
Referenced by mesh_copy_selection_keep_verts(), and separate_mesh_selection().
| std::optional< Mesh * > blender::geometry::mesh_merge_by_distance_all | ( | const Mesh & | mesh, |
| const IndexMask & | selection, | ||
| float | merge_distance ) |
Merge selected vertices into other selected vertices within the merge_distance. The merged indices favor speed over accuracy, since the results will depend on the order of the vertices.
Definition at line 1697 of file mesh_merge_by_distance.cc.
References create_merged_mesh(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), OUT_OF_CONTEXT, and tree.
Referenced by calculate_weld(), blender::io::ply::convert_ply_to_mesh(), and blender::nodes::node_geo_merge_by_distance_cc::mesh_merge_by_distance_all().
| std::optional< Mesh * > blender::geometry::mesh_merge_by_distance_connected | ( | const Mesh & | mesh, |
| Span< bool > | selection, | ||
| float | merge_distance, | ||
| bool | only_loose_edges ) |
Merge selected vertices along edges to other selected vertices. Only vertices connected by edges are considered for merging.
Definition at line 1725 of file mesh_merge_by_distance.cc.
References blender::geometry::WeldVertexCluster::co, copy_v3_v3(), blender::bke::LooseGeomCache::count, create_merged_mesh(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), blender::bke::LooseGeomCache::is_loose_bits, len_squared_v3(), madd_v3_v3fl(), blender::geometry::WeldVertexCluster::merged_verts, OUT_OF_CONTEXT, range_vn_i(), square_f(), sub_v3_v3v3(), v, and v2.
Referenced by calculate_weld(), and blender::nodes::node_geo_merge_by_distance_cc::mesh_merge_by_distance_connected().
| Mesh * blender::geometry::mesh_merge_verts | ( | const Mesh & | mesh, |
| MutableSpan< int > | vert_dest_map, | ||
| int | vert_dest_map_len, | ||
| const bool | do_mix_data ) |
Merge Verts indicated in the targets map.
This frees the given mesh and returns a new mesh.
| vert_dest_map | The table that maps vertices to target vertices. a value of -1 indicates a vertex is a target, and is to be kept. This array is aligned with 'mesh->verts_num' |
| vert_dest_map_len | The number of non '-1' values in vert_dest_map. (not the size) |
| do_mix_data | If true, the groups of vertices in the vert_dest_map_len, defined by source vertices with the same target plus the target vertex, will have their custom data interpolated into the resulting vertex. If false, only the custom data of the target vertex will remain. |
Definition at line 1819 of file mesh_merge_by_distance.cc.
References create_merged_mesh().
| bke::CurvesGeometry blender::geometry::mesh_to_curve_convert | ( | const Mesh & | mesh, |
| const IndexMask & | selection, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Convert the mesh into one or many poly curves. Since curves cannot have branches, intersections of more than three edges will become breaks in curves. Attributes that are not built-in on meshes and not curves are transferred to the result curve.
Definition at line 215 of file mesh_to_curve_convert.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), edges_to_curves_convert(), and blender::array_utils::gather().
Referenced by blender::nodes::node_geo_mesh_to_curve_cc::node_geo_exec().
|
static |
Definition at line 64 of file mix_geometries.cc.
|
static |
Definition at line 53 of file mix_geometries.cc.
|
static |
Definition at line 258 of file interpolate_curves.cc.
References curve, blender::index_mask::IndexMask::foreach_index(), mix_arrays(), and blender::GMutableSpan::type().
|
static |
Definition at line 241 of file interpolate_curves.cc.
References blender::bke::attribute_math::convert_to_static_type(), and blender::GMutableSpan::type().
|
static |
Definition at line 231 of file interpolate_curves.cc.
References blender::MutableSpan< T >::index_range(), and blender::math::interpolate().
Referenced by mix_arrays().
|
static |
Definition at line 72 of file mix_geometries.cc.
References mix_attributes().
Referenced by mix_attributes(), and mix_geometries().
| bke::GeometrySet blender::geometry::mix_geometries | ( | bke::GeometrySet | a, |
| const bke::GeometrySet & | b, | ||
| float | factor ) |
Mixes both geometries if possible (e.g. if corresponding meshes have the same number of vertices).
If mixing is not possible, the geometry from the a input is returned.
Definition at line 150 of file mix_geometries.cc.
References b, create_id_index_map(), mix_attributes(), and mix_geometries().
Referenced by blender::nodes::mix_baked_data_item(), and mix_geometries().
|
static |
Definition at line 42 of file mix_geometries.cc.
References mix_with_indices().
| void blender::geometry::mix_with_indices | ( | MutableSpan< T > | a, |
| const VArray< T > & | b, | ||
| const Span< int > | index_map, | ||
| const float | factor ) |
Definition at line 26 of file mix_geometries.cc.
References blender::threading::parallel_for().
Referenced by mix_with_indices().
| void blender::geometry::mul_v2_m2_add_v2v2 | ( | float | r[2], |
| const float | mat[2][2], | ||
| const float | a[2], | ||
| const float | b[2] ) |
Compute r = mat * (a + b) with high precision.
Definition at line 55 of file uv_pack.cc.
References b, double(), and float.
Referenced by island_uv_transform(), and uv_parametrizer_pack().
|
static |
Definition at line 3810 of file uv_parametrizer.cc.
References BLI_memarena_alloc(), copy_v2_v2(), blender::geometry::GeoUVPinIndex::next, PARAM_KEY_MAX, blender::geometry::GeoUVPinIndex::reindex, and blender::geometry::GeoUVPinIndex::uv.
Referenced by uv_prepare_pin_index().
|
static |
Definition at line 237 of file resample_curves.cc.
References normalize_span().
Referenced by resample_to_evaluated(), and resample_to_uniform().
|
static |
Definition at line 230 of file resample_curves.cc.
References blender::math::normalize().
Referenced by normalize_curve_point_data().
|
static |
Definition at line 147 of file set_curve_type.cc.
References blender::bke::attribute_math::convert_to_static_type(), and blender::GSpan::type().
|
static |
Definition at line 123 of file set_curve_type.cc.
References blender::IndexRange::drop_back(), blender::IndexRange::drop_front(), blender::MutableSpan< T >::first(), blender::Span< T >::first(), blender::MutableSpan< T >::index_range(), blender::MutableSpan< T >::last(), blender::Span< T >::last(), NURBS_KNOT_MODE_ENDPOINT, NURBS_KNOT_MODE_NORMAL, scale_input_assign(), and blender::Span< T >::size().
Referenced by convert_curves_to_bezier().
|
static |
Transform the #OffsetIndices storage of new elements per source element into a more standard index map which can be used with existing utilities to copy attributes.
Definition at line 504 of file mesh_split_edges.cc.
References offsets_to_map(), and blender::offset_indices::OffsetIndices< T >::total_size().
Referenced by offsets_to_map(), and split_edges().
|
static |
Definition at line 2137 of file uv_pack.cc.
References overlap_aabb().
Referenced by blender::geometry::OverlapMerger::overlap(), and overlap_aabb().
|
static |
Definition at line 2522 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::bAlpha, clamp_f(), M_PI, and blender::geometry::PAbfSystem::weight.
Referenced by p_abf_matrix_invert().
|
static |
Definition at line 2449 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::beta, e, blender::geometry::PFace::PFaceUnion::id, blender::geometry::PAbfSystem::lambdaLength, blender::geometry::PAbfSystem::lambdaPlanar, blender::geometry::PAbfSystem::lambdaTriangle, p_abf_compute_sin_product(), PVERT_INTERIOR, blender::geometry::PFace::u, v, v2, and blender::geometry::PAbfSystem::weight.
Referenced by p_abf_compute_gradient().
|
static |
Definition at line 2474 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::bAlpha, blender::geometry::PAbfSystem::bInterior, blender::geometry::PAbfSystem::bTriangle, e, blender::geometry::PFace::edge, blender::geometry::PChart::faces, float, blender::geometry::PEdge::PEdgeUnion::id, blender::geometry::PFace::PFaceUnion::id, M_PI, blender::geometry::PEdge::next, blender::geometry::PFace::nextlink, blender::geometry::PAbfSystem::ninterior, norm(), p_abf_compute_grad_alpha(), p_abf_compute_sin_product(), PVERT_INTERIOR, blender::geometry::PEdge::u, blender::geometry::PFace::u, v, and blender::geometry::PChart::verts.
Referenced by p_chart_abf_solve().
|
static |
Definition at line 2412 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::cosine, e, blender::geometry::PEdge::PEdgeUnion::id, blender::geometry::PAbfSystem::sine, blender::geometry::PEdge::u, and v.
Referenced by p_abf_compute_grad_alpha(), p_abf_compute_gradient(), and p_abf_matrix_invert().
|
static |
Definition at line 2399 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, cos(), blender::geometry::PAbfSystem::cosine, blender::geometry::PAbfSystem::nangles, and blender::geometry::PAbfSystem::sine.
Referenced by p_chart_abf_solve().
|
static |
Definition at line 2381 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::bAlpha, blender::geometry::PAbfSystem::beta, blender::geometry::PAbfSystem::bInterior, blender::geometry::PAbfSystem::bstar, blender::geometry::PAbfSystem::bTriangle, blender::geometry::PAbfSystem::cosine, blender::geometry::PAbfSystem::dstar, blender::geometry::PAbfSystem::J2dt, blender::geometry::PAbfSystem::lambdaLength, blender::geometry::PAbfSystem::lambdaPlanar, blender::geometry::PAbfSystem::lambdaTriangle, MEM_freeN(), blender::geometry::PAbfSystem::sine, and blender::geometry::PAbfSystem::weight.
Referenced by p_chart_abf_solve().
|
static |
Definition at line 2533 of file uv_parametrizer.cc.
References b, blender::geometry::PAbfSystem::bAlpha, beta(), blender::geometry::PAbfSystem::bInterior, blender::geometry::PAbfSystem::bstar, blender::geometry::PAbfSystem::bTriangle, blender::geometry::PAbfSystem::dstar, EIG_linear_solver_delete(), EIG_linear_solver_matrix_add(), EIG_linear_solver_new(), EIG_linear_solver_right_hand_side_add(), EIG_linear_solver_solve(), EIG_linear_solver_variable_get(), blender::geometry::PChart::faces, blender::geometry::PVert::flag, float, blender::geometry::PEdge::PEdgeUnion::id, blender::geometry::PVert::PVertUnion::id, blender::geometry::PAbfSystem::J2dt, blender::geometry::PAbfSystem::lambdaLength, blender::geometry::PAbfSystem::lambdaPlanar, blender::geometry::PAbfSystem::lambdaTriangle, blender::geometry::PEdge::next, blender::geometry::PAbfSystem::ninterior, p_abf_adjust_alpha(), p_abf_compute_sin_product(), PVERT_INTERIOR, blender::geometry::PEdge::u, blender::geometry::PVert::u, v2, blender::geometry::PEdge::vert, W, blender::geometry::PAbfSystem::weight, and x.
Referenced by p_chart_abf_solve().
|
static |
Definition at line 2354 of file uv_parametrizer.cc.
References blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::bAlpha, blender::geometry::PAbfSystem::beta, blender::geometry::PAbfSystem::bInterior, blender::geometry::PAbfSystem::bstar, blender::geometry::PAbfSystem::bTriangle, blender::geometry::PAbfSystem::cosine, blender::geometry::PAbfSystem::dstar, blender::geometry::PAbfSystem::J2dt, blender::geometry::PAbfSystem::lambdaLength, blender::geometry::PAbfSystem::lambdaPlanar, blender::geometry::PAbfSystem::lambdaTriangle, MEM_callocN, MEM_mallocN, blender::geometry::PAbfSystem::nangles, blender::geometry::PAbfSystem::nfaces, blender::geometry::PAbfSystem::ninterior, blender::geometry::PAbfSystem::sine, and blender::geometry::PAbfSystem::weight.
Referenced by p_chart_abf_solve().
|
static |
Definition at line 3845 of file uv_parametrizer.cc.
References add_newell_cross_v3_v3v3(), axis_dominant_v3_to_m3_negate(), BLI_memarena_alloc(), BLI_memarena_clear(), BLI_polyfill_beautify(), BLI_polyfill_calc_arena(), float, mul_v2_m3v3(), normalize_v3(), select(), UNLIKELY, uv_parametrizer_face_add(), v2, and zero_v3().
Referenced by uv_parametrizer_face_add().
|
static |
Definition at line 399 of file uv_parametrizer.cc.
References v2.
Referenced by p_chart_convex_hull().
Definition at line 540 of file uv_parametrizer.cc.
References e.
Referenced by p_chart_convex_hull(), p_chart_fill_boundary(), and p_chart_symmetry_pins().
Definition at line 545 of file uv_parametrizer.cc.
References e, and p_wheel_edge_next().
Referenced by p_chart_fill_boundary(), and p_chart_symmetry_pins().
|
static |
Definition at line 2741 of file uv_parametrizer.cc.
References blender::geometry::PChart::abf_alpha, ABF_MAX_ITER, blender::geometry::PAbfSystem::alpha, blender::geometry::PAbfSystem::beta, e, blender::geometry::PFace::edge, blender::geometry::PChart::faces, float, blender::geometry::PEdge::PEdgeUnion::id, blender::geometry::PFace::PFaceUnion::id, M_PI, MEM_dupallocN, blender::geometry::PAbfSystem::nangles, blender::geometry::PEdge::next, blender::geometry::PFace::nextlink, blender::geometry::PAbfSystem::nfaces, blender::geometry::PChart::nfaces, blender::geometry::PAbfSystem::ninterior, norm(), p_abf_compute_gradient(), p_abf_compute_sines(), p_abf_free_system(), p_abf_matrix_invert(), p_abf_setup_system(), p_face_angles(), p_vert_interior(), param_warning, PVERT_INTERIOR, blender::geometry::PEdge::u, blender::geometry::PFace::u, v, blender::geometry::PChart::verts, and blender::geometry::PAbfSystem::weight.
Referenced by p_chart_lscm_begin().
Definition at line 1191 of file uv_parametrizer.cc.
References e, blender::geometry::PChart::edges, len, blender::geometry::PChart::nboundaries, p_edge_length(), and PEDGE_DONE.
Referenced by p_chart_convex_hull(), p_chart_lscm_begin(), and uv_parametrizer_construct_end().
|
static |
Definition at line 4430 of file uv_parametrizer.cc.
References e, p_chart_simplify_compute(), p_collapse_doubles_allowed(), and p_collapse_doubles_cost().
|
static |
Definition at line 3477 of file uv_parametrizer.cc.
References e, L, MEM_freeN(), MEM_mallocN, p_area_signed(), p_boundary_edge_next(), p_chart_boundaries(), p_compare_geometric_uv(), and U.
Referenced by p_chart_minimum_area_angle().
|
static |
Definition at line 4620 of file uv_parametrizer.cc.
References add_v3_v3(), ARRAY_SIZE, BMVert::co, copy_v3_v3(), CORR_ZERO_AREA_EPS, cos(), e, blender::geometry::PFace::edge, blender::geometry::PFace::flag, float, M, M_PI, mul_m3_v3(), mul_v3_fl(), p_edge_matrix(), p_validate_corrected_coords_point(), and PFACE_DONE.
Referenced by p_chart_correct_degenerate_triangles2().
|
static |
Definition at line 4855 of file uv_parametrizer.cc.
References BLI_assert, CORR_ZERO_AREA_EPS, blender::geometry::PVert::edge, blender::geometry::PEdge::next, p_chart_correct_degenerate_triangles2(), p_face_area(), p_validate_triangle_angles(), PFACE_DONE, ret, and blender::geometry::PEdge::vert.
|
static |
Definition at line 4705 of file uv_parametrizer.cc.
References add_v3_v3(), BLI_assert, blender::geometry::PVert::co, copy_v3_v3(), CORR_ZERO_AREA_EPS, cos(), e, eps, blender::geometry::PChart::faces, float, len, M, M_PI, mul_m3_v3(), mul_v3_fl(), blender::geometry::PEdge::next, p_chart_correct_degenerate_triangle_point(), p_edge_length(), p_edge_matrix(), p_face_area(), p_validate_corrected_coords(), p_vec_cos(), PFACE_DONE, and blender::geometry::PEdge::vert.
Referenced by p_chart_correct_degenerate_triangles().
|
static |
Definition at line 3012 of file uv_parametrizer.cc.
References BMVert::co, p_chart_pin_positions(), v, and blender::geometry::PChart::verts.
Referenced by p_chart_lscm_begin().
|
static |
Definition at line 1328 of file uv_parametrizer.cc.
References e, blender::geometry::PChart::edges, p_chart_fill_boundary(), and PEDGE_FILLED.
Referenced by uv_parametrizer_construct_end().
|
static |
Definition at line 1251 of file uv_parametrizer.cc.
References angle(), BLI_heap_free(), BLI_heap_insert(), BLI_heap_new(), BLI_heap_pop_min(), BLI_heap_remove(), e, blender::geometry::PFace::edge, blender::geometry::PVert::edge, blender::geometry::PEdge::flag, blender::geometry::PFace::flag, blender::geometry::PEdge::PEdgeUnion::heaplink, blender::geometry::PEdge::next, p_boundary_edge_next(), p_boundary_edge_prev(), p_edge_boundary_angle(), p_face_add_fill(), blender::geometry::PEdge::pair, PEDGE_FILLED, PFACE_FILLED, blender::geometry::PEdge::u, and blender::geometry::PEdge::vert.
Referenced by p_chart_fill_boundaries().
|
static |
Definition at line 4439 of file uv_parametrizer.cc.
References blender::geometry::PChart::collapsed_edges, e, blender::geometry::PVert::flag, p_collapsing_verts(), PEDGE_COLLAPSE_EDGE, PEDGE_COLLAPSE_PAIR, PVERT_PIN, and blender::geometry::PVert::uv.
Referenced by p_flush_uvs().
|
static |
Definition at line 3055 of file uv_parametrizer.cc.
References blender::geometry::PChart::area_uv, BLI_assert, blender::geometry::PChart::context, EIG_linear_least_squares_solver_new(), blender::geometry::PChart::nfaces, blender::geometry::PChart::nverts, p_chart_abf_solve(), p_chart_boundaries(), p_chart_extrema_verts(), p_chart_simplify_compute(), p_chart_symmetry_pins(), p_chart_uv_area(), param_warning, blender::geometry::PChart::pin1, blender::geometry::PChart::pin2, PVERT_PIN, PVERT_SELECT, select(), blender::geometry::PChart::single_pin, blender::geometry::PChart::skip_flush, v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_lscm_begin().
|
static |
Definition at line 3288 of file uv_parametrizer.cc.
References blender::geometry::PChart::abf_alpha, blender::geometry::PChart::context, EIG_linear_solver_delete(), MEM_SAFE_FREE, blender::geometry::PChart::pin1, blender::geometry::PChart::pin2, and blender::geometry::PChart::single_pin.
Referenced by uv_parametrizer_lscm_end(), and uv_parametrizer_lscm_solve().
|
static |
Definition at line 3127 of file uv_parametrizer.cc.
References blender::geometry::PChart::abf_alpha, blender::geometry::PChart::context, copy_v2_v2(), cos(), EIG_linear_solver_matrix_add(), EIG_linear_solver_solve(), EIG_linear_solver_variable_get(), EIG_linear_solver_variable_lock(), EIG_linear_solver_variable_set(), blender::geometry::PChart::faces, blender::geometry::PVert::flag, blender::geometry::PVert::PVertUnion::id, max_ddd(), blender::geometry::PEdge::next, blender::geometry::PChart::origin, p_face_angles(), p_face_uv_area_signed(), p_vert_load_pin_select_uvs(), blender::geometry::PChart::pin1, blender::geometry::PChart::pin2, PVERT_PIN, SHIFT3, blender::geometry::PChart::single_pin, blender::geometry::PVert::u, blender::geometry::PVert::uv, v, v2, blender::geometry::PEdge::vert, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_lscm_solve().
|
static |
Definition at line 3269 of file uv_parametrizer.cc.
References blender::geometry::PChart::area_uv, blender::geometry::PChart::origin, p_chart_uv_area(), p_chart_uv_scale(), p_chart_uv_translate(), blender::geometry::PChart::single_pin, sqrtf, sub_v2_v2v2(), and blender::geometry::PVert::uv.
Referenced by uv_parametrizer_lscm_solve().
Definition at line 3571 of file uv_parametrizer.cc.
References angle_v2v2v2(), float, len, len_v2v2(), M_PI, M_PI_2, M_PI_4, MEM_freeN(), MEM_mallocN, p_chart_convex_hull(), p_rectangle_area(), blender::geometry::PVert::uv, and v.
Referenced by p_chart_rotate_minimum_area().
|
static |
Definition at line 2854 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, fabsf, blender::geometry::PChart::faces, blender::geometry::PEdge::next, sub_v3_v3v3(), blender::geometry::PVert::uv, and blender::geometry::PEdge::vert.
Referenced by p_chart_extrema_verts(), and p_chart_symmetry_pins().
|
static |
Definition at line 2088 of file uv_parametrizer.cc.
References blender::geometry::PChart::collapsed_edges, blender::geometry::PChart::collapsed_faces, blender::geometry::PChart::collapsed_verts, e, blender::geometry::PChart::edges, blender::geometry::PChart::faces, blender::geometry::PFace::flag, blender::geometry::PChart::nedges, blender::geometry::PFace::nextlink, blender::geometry::PChart::nfaces, blender::geometry::PChart::nverts, PEDGE_COLLAPSE, PEDGE_COLLAPSE_EDGE, PFACE_COLLAPSE, PVERT_COLLAPSE, v, blender::geometry::PChart::verts, and verts.
Referenced by p_chart_simplify_compute().
|
static |
Definition at line 3709 of file uv_parametrizer.cc.
References angle_to_mat2(), BLI_convexhull_aabb_fit_points_2d(), float, MEM_freeN(), MEM_mallocN, blender::geometry::PChart::nverts, p_chart_uv_to_array(), and p_chart_uv_transform().
Referenced by uv_parametrizer_lscm_solve().
|
static |
Definition at line 3695 of file uv_parametrizer.cc.
References cosf, p_chart_minimum_area_angle(), sinf, v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_lscm_solve().
|
static |
Definition at line 2158 of file uv_parametrizer.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_heap_free(), BLI_heap_insert(), BLI_heap_is_empty(), BLI_heap_new(), BLI_heap_pop_min(), BLI_heap_remove(), BLI_heap_top(), blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), e, blender::geometry::PVert::edge, blender::geometry::PChart::edges, blender::geometry::PEdge::flag, blender::geometry::PEdge::next, blender::geometry::PEdge::PEdgeUnion::nextcollapse, p_chart_post_collapse_flush(), p_collapse_cost_vertex(), p_collapse_edge(), p_collapsing_verts(), p_wheel_edge_next(), blender::geometry::PEdge::pair, PEDGE_COLLAPSE_EDGE, PEDGE_COLLAPSE_PAIR, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::geometry::PEdge::u, v, blender::geometry::PEdge::vert, and blender::geometry::PChart::verts.
Referenced by p_chart_collapse_doubles(), and p_chart_lscm_begin().
Definition at line 3388 of file uv_parametrizer.cc.
References add_v2_v2v2(), BLI_rng_get_float(), copy_v2_v2(), cosf, e, float, M_PI, p_edge_uv_length(), p_stretch_compute_vertex(), P_STRETCH_ITER, p_wheel_edge_next(), PVERT_PIN, PVERT_SELECT, sinf, v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_stretch_iter().
|
static |
Definition at line 2905 of file uv_parametrizer.cc.
References equals_v3v3(), blender::geometry::PVert::flag, len, p_boundary_edge_next(), p_boundary_edge_prev(), p_chart_pin_positions(), p_edge_length(), PVERT_SPLIT, and blender::geometry::PEdge::vert.
Referenced by p_chart_lscm_begin().
Definition at line 439 of file uv_parametrizer.cc.
References fabsf, blender::geometry::PChart::faces, and p_face_uv_area_signed().
Referenced by p_chart_lscm_begin(), and p_chart_lscm_transform_single_pin().
|
static |
Definition at line 428 of file uv_parametrizer.cc.
References INIT_MINMAX2, minmax_v2v2_v2(), v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_average().
Definition at line 450 of file uv_parametrizer.cc.
References v, and blender::geometry::PChart::verts.
Referenced by p_chart_lscm_transform_single_pin(), and uv_parametrizer_average().
Definition at line 492 of file uv_parametrizer.cc.
References copy_v2_v2(), v, and blender::geometry::PChart::verts.
Referenced by p_chart_rotate_fit_aabb().
|
static |
Definition at line 485 of file uv_parametrizer.cc.
References mul_m2_v2(), v, and blender::geometry::PChart::verts.
Referenced by p_chart_rotate_fit_aabb(), and uv_parametrizer_average().
Definition at line 477 of file uv_parametrizer.cc.
References v, and blender::geometry::PChart::verts.
Referenced by p_chart_lscm_transform_single_pin(), and uv_parametrizer_average().
Definition at line 1825 of file uv_parametrizer.cc.
References p_collapsing_verts(), and p_vert_interior().
Referenced by p_collapse_doubles_allowed().
|
static |
Definition at line 2044 of file uv_parametrizer.cc.
References e, blender::geometry::PVert::edge, and p_wheel_edge_next().
Referenced by p_chart_simplify_compute().
|
static |
Definition at line 4404 of file uv_parametrizer.cc.
References blender::geometry::PVert::flag, p_collapse_allowed_topologic(), p_collapsing_verts(), p_edge_length_squared(), and PVERT_PIN.
Referenced by p_chart_collapse_doubles().
Definition at line 4424 of file uv_parametrizer.cc.
References p_edge_length_squared().
Referenced by p_chart_collapse_doubles().
Definition at line 1679 of file uv_parametrizer.cc.
References e, blender::geometry::PVert::edge, blender::geometry::PEdge::flag, blender::geometry::PFace::flag, blender::geometry::PVert::flag, blender::geometry::PEdge::next, p_collapsing_verts(), p_vert_fix_edge_pointer(), p_wheel_edge_next(), p_wheel_edge_prev(), blender::geometry::PEdge::pair, PEDGE_COLLAPSE, PFACE_COLLAPSE, PVERT_COLLAPSE, and blender::geometry::PEdge::vert.
Referenced by p_chart_simplify_compute().
|
static |
Definition at line 1666 of file uv_parametrizer.cc.
Referenced by p_chart_flush_collapsed_uvs(), p_chart_simplify_compute(), p_collapse_allowed_topologic(), p_collapse_doubles_allowed(), and p_collapse_edge().
|
static |
Definition at line 3457 of file uv_parametrizer.cc.
References b, blender::geometry::PVert::uv, and v2.
Referenced by p_chart_convex_hull().
|
static |
Definition at line 923 of file uv_parametrizer.cc.
References blender::geometry::PFace::PFaceUnion::chart, e, blender::geometry::PFace::edge, blender::geometry::PVert::edge, blender::geometry::PChart::faces, blender::geometry::PFace::flag, MEM_freeN(), MEM_mallocN, blender::geometry::PEdge::next, blender::geometry::PFace::nextlink, p_edge_connect_pair(), PFACE_CONNECTED, phash_size(), blender::geometry::PFace::u, and blender::geometry::PEdge::vert.
Referenced by uv_parametrizer_construct_end().
Definition at line 1228 of file uv_parametrizer.cc.
References angle(), angle_v3v3v3(), blender::geometry::PVert::co, BMVert::co, e, M_PI, blender::geometry::PEdge::next, blender::geometry::PEdge::pair, v, v2, and blender::geometry::PEdge::vert.
Referenced by p_chart_fill_boundary().
|
static |
Definition at line 899 of file uv_parametrizer.cc.
References e, p_edge_has_pair(), p_face_flip(), and PFACE_CONNECTED.
Referenced by p_connect_pairs().
|
static |
Definition at line 848 of file uv_parametrizer.cc.
References e, blender::geometry::PEdge::flag, blender::geometry::PVert::PVertUnion::key, blender::geometry::PEdge::next, p_edge_implicit_seam(), PEDGE_SEAM, PHASH_edge, phash_lookup(), phash_next(), blender::geometry::PVert::u, v2, and blender::geometry::PEdge::vert.
Referenced by p_edge_connect_pair().
Definition at line 814 of file uv_parametrizer.cc.
References e, fabsf, blender::geometry::PEdge::flag, blender::geometry::PVert::PVertUnion::key, blender::geometry::PEdge::next, blender::geometry::PEdge::orig_uv, PEDGE_SEAM, blender::geometry::PVert::u, and blender::geometry::PEdge::vert.
Referenced by p_edge_has_pair().
Definition at line 413 of file uv_parametrizer.cc.
References BMVert::co, e, and len_v3v3().
Referenced by p_chart_boundaries(), p_chart_correct_degenerate_triangles2(), and p_chart_symmetry_pins().
Definition at line 418 of file uv_parametrizer.cc.
References BMVert::co, e, and len_squared_v3v3().
Referenced by p_collapse_doubles_allowed(), and p_collapse_doubles_cost().
|
static |
Definition at line 771 of file uv_parametrizer.cc.
References e, PHASH_edge, phash_lookup(), and phash_next().
Referenced by uv_parametrizer_edge_set_seam().
Definition at line 4561 of file uv_parametrizer.cc.
References copy_v3_v3(), cross_v3_v3v3(), eps, len_v3(), mul_v3_fl(), and R.
Referenced by p_chart_correct_degenerate_triangle_point(), p_chart_correct_degenerate_triangles2(), and p_edge_matrix().
Definition at line 4609 of file uv_parametrizer.cc.
References BMVert::co, copy_v3_v3(), e, p_edge_matrix(), R, and sub_v3_v3().
Definition at line 423 of file uv_parametrizer.cc.
References e, and len_v2v2().
Referenced by p_chart_stretch_minimize(), and p_face_stretch().
|
static |
Definition at line 1067 of file uv_parametrizer.cc.
References BLI_memarena_alloc(), BLI_memarena_calloc(), blender::geometry::PFace::edge, blender::geometry::PEdge::face, blender::geometry::PFace::flag, and blender::geometry::PEdge::next.
Referenced by p_face_add_construct(), and p_face_add_fill().
|
static |
Definition at line 1090 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PEdge::flag, blender::geometry::PEdge::PEdgeUnion::key, blender::geometry::PFace::PFaceUnion::key, blender::geometry::PEdge::next, blender::geometry::PEdge::orig_uv, p_face_add(), p_vert_lookup(), PEDGE_PIN, PEDGE_SELECT, PHASH_edge, phash_insert(), select(), blender::geometry::PEdge::u, blender::geometry::PFace::u, and blender::geometry::PEdge::vert.
Referenced by uv_parametrizer_face_add().
|
static |
Definition at line 1163 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PChart::edges, blender::geometry::PChart::faces, blender::geometry::PChart::nedges, blender::geometry::PEdge::next, blender::geometry::PEdge::nextlink, blender::geometry::PFace::nextlink, blender::geometry::PChart::nfaces, blender::geometry::PEdge::orig_uv, p_face_add(), v2, and blender::geometry::PEdge::vert.
Referenced by p_chart_fill_boundary().
|
static |
Definition at line 358 of file uv_parametrizer.cc.
References blender::geometry::PVert::co, BMVert::co, blender::geometry::PFace::edge, blender::geometry::PEdge::next, p_triangle_angles(), v2, and blender::geometry::PEdge::vert.
Referenced by p_chart_abf_solve(), and p_chart_lscm_solve().
Definition at line 391 of file uv_parametrizer.cc.
References area_tri_v3(), blender::geometry::PVert::co, BMVert::co, blender::geometry::PFace::edge, blender::geometry::PEdge::next, v2, and blender::geometry::PEdge::vert.
Referenced by p_chart_correct_degenerate_triangles(), p_chart_correct_degenerate_triangles2(), uv_parametrizer_average(), and uv_parametrizer_stretch_begin().
|
static |
Definition at line 675 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PEdge::next, blender::geometry::PEdge::old_uv, and blender::geometry::PEdge::orig_uv.
Referenced by uv_parametrizer_lscm_begin(), uv_parametrizer_slim_live_begin(), and uv_parametrizer_stretch_begin().
|
static |
Definition at line 383 of file uv_parametrizer.cc.
References blender::geometry::PVert::co, BMVert::co, blender::geometry::PEdge::next, p_triangle_cos(), v2, and blender::geometry::PEdge::vert.
|
static |
Definition at line 790 of file uv_parametrizer.cc.
References e, PHASH_edge, phash_lookup(), and phash_next().
Referenced by uv_parametrizer_face_add().
|
static |
Definition at line 562 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PEdge::flag, blender::geometry::PVert::flag, blender::geometry::PEdge::next, blender::geometry::PEdge::orig_uv, PEDGE_VERTEX_FLAGS, v2, and blender::geometry::PEdge::vert.
Referenced by p_edge_connect_pair().
|
static |
Definition at line 693 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PEdge::next, blender::geometry::PEdge::old_uv, and blender::geometry::PEdge::orig_uv.
Referenced by uv_parametrizer_flush_restore().
Definition at line 3318 of file uv_parametrizer.cc.
References add_v3_v3(), blender::geometry::PVert::co, BMVert::co, copy_v3_v3(), dot_v3v3(), blender::geometry::PFace::edge, blender::geometry::PFace::flag, mul_v3_fl(), blender::geometry::PEdge::next, p_edge_uv_length(), p_face_uv_area_signed(), PFACE_FILLED, sqrtf, T, blender::geometry::PVert::uv, v2, blender::geometry::PEdge::vert, and w().
Referenced by p_stretch_compute_vertex().
Definition at line 404 of file uv_parametrizer.cc.
References blender::geometry::PFace::edge, blender::geometry::PEdge::next, blender::geometry::PVert::uv, v2, and blender::geometry::PEdge::vert.
Referenced by p_chart_lscm_solve(), p_chart_uv_area(), p_face_stretch(), and uv_parametrizer_average().
|
static |
Definition at line 651 of file uv_parametrizer.cc.
References blend, blender::geometry::PChart::collapsed_edges, e, blender::geometry::PChart::edges, and p_chart_flush_collapsed_uvs().
Referenced by uv_parametrizer_flush().
|
static |
Definition at line 3546 of file uv_parametrizer.cc.
References corner1, corner2, len_v2v2(), and p_intersect_line_2d_dir().
Referenced by p_chart_minimum_area_angle().
|
static |
Definition at line 1030 of file uv_parametrizer.cc.
References blender::geometry::PFace::PFaceUnion::chart, blender::geometry::PFace::edge, blender::geometry::PChart::edges, blender::geometry::PChart::faces, MEM_callocN, blender::geometry::PChart::nedges, blender::geometry::PEdge::next, blender::geometry::PEdge::nextlink, blender::geometry::PFace::nextlink, blender::geometry::PChart::nfaces, p_split_vert(), and blender::geometry::PFace::u.
Referenced by uv_parametrizer_construct_end().
|
static |
Definition at line 973 of file uv_parametrizer.cc.
References copy(), e, blender::geometry::PEdge::flag, blender::geometry::PChart::has_pins, blender::geometry::PChart::nverts, p_vert_copy(), p_wheel_edge_next(), p_wheel_edge_prev(), PEDGE_PIN, PEDGE_VERTEX_SPLIT, PVERT_SPLIT, v, blender::geometry::PEdge::vert, and blender::geometry::PChart::verts.
Referenced by p_split_charts().
Definition at line 3375 of file uv_parametrizer.cc.
References e, p_face_stretch(), p_wheel_edge_next(), sum(), and v.
Referenced by p_chart_stretch_minimize().
|
static |
Definition at line 3304 of file uv_parametrizer.cc.
References PVERT_PIN, v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_stretch_begin().
|
static |
Definition at line 336 of file uv_parametrizer.cc.
References angle_v3v3v3(), fix_large_angle(), max_dd(), and v2.
Referenced by p_face_angles().
|
static |
Definition at line 371 of file uv_parametrizer.cc.
References p_vec_cos(), and v2.
Referenced by p_face_cos(), p_validate_corrected_coords(), p_validate_corrected_coords_point(), and p_validate_triangle_angles().
|
static |
Definition at line 4522 of file uv_parametrizer.cc.
References area_tri_v3(), blender::geometry::PVert::co, e, blender::geometry::PVert::edge, p_triangle_cos(), p_wheel_edge_next(), PFACE_DONE, and blender::geometry::PEdge::vert.
Referenced by p_chart_correct_degenerate_triangles2().
|
static |
Definition at line 4462 of file uv_parametrizer.cc.
References area_tri_v3(), blender::geometry::PVert::co, e, blender::geometry::PVert::edge, p_triangle_cos(), p_wheel_edge_next(), blender::geometry::PEdge::pair, PFACE_DONE, and blender::geometry::PEdge::vert.
Referenced by p_chart_correct_degenerate_triangle_point().
|
static |
Definition at line 4836 of file uv_parametrizer.cc.
References blender::geometry::PVert::co, and p_triangle_cos().
Referenced by p_chart_correct_degenerate_triangles().
|
static |
Definition at line 366 of file uv_parametrizer.cc.
References cos_v3v3v3(), and v2.
Referenced by p_chart_correct_degenerate_triangles2(), and p_triangle_cos().
|
static |
Definition at line 713 of file uv_parametrizer.cc.
References BLI_memarena_alloc(), BMVert::co, copy_v3_v3(), e, phash_insert(), UNLIKELY, and v.
Referenced by p_vert_lookup().
|
static |
Definition at line 753 of file uv_parametrizer.cc.
References BLI_memarena_alloc(), blender::geometry::PVert::co, BMVert::co, copy_v3_v3(), blender::geometry::PVert::edge, blender::geometry::PVert::flag, blender::geometry::PVert::PVertUnion::key, blender::geometry::PVert::on_boundary_flag, blender::geometry::PVert::slim_id, blender::geometry::PVert::u, blender::geometry::PVert::uv, v, and blender::geometry::PVert::weight.
Referenced by p_split_vert().
|
static |
Definition at line 1652 of file uv_parametrizer.cc.
References p_wheel_edge_prev(), and v.
Referenced by p_collapse_edge().
|
static |
Definition at line 557 of file uv_parametrizer.cc.
References v.
Referenced by p_chart_abf_solve(), and p_collapse_allowed_topologic().
|
static |
Definition at line 607 of file uv_parametrizer.cc.
References e, p_wheel_edge_next(), PEDGE_PIN, PEDGE_SELECT, PVERT_PIN, PVERT_SELECT, and v.
Referenced by p_chart_lscm_solve(), and uv_parametrizer_construct_end().
|
static |
Definition at line 742 of file uv_parametrizer.cc.
References e, p_vert_add(), phash_lookup(), and v.
Referenced by p_face_add_construct().
Definition at line 530 of file uv_parametrizer.cc.
References e.
Definition at line 525 of file uv_parametrizer.cc.
References e.
Referenced by p_boundary_edge_prev(), p_chart_simplify_compute(), p_chart_stretch_minimize(), p_collapse_cost_vertex(), p_collapse_edge(), p_split_vert(), p_stretch_compute_vertex(), p_validate_corrected_coords(), p_validate_corrected_coords_point(), and p_vert_load_pin_select_uvs().
Definition at line 535 of file uv_parametrizer.cc.
References e.
Referenced by p_collapse_edge(), p_split_vert(), and p_vert_fix_edge_pointer().
|
static |
Frits Göbel, 1979.
Definition at line 692 of file uv_pack.cc.
References cosf, DEG2RADF, int, and sqrtf.
Referenced by pack_islands_optimal_pack().
|
static |
Definition at line 1091 of file uv_pack.cc.
References BLI_box_pack_2d(), is_larger(), MEM_freeN(), MEM_mallocN, params, and BoxPack::w.
|
static |
Pack irregular islands using the xatlas strategy, and optional D4 transforms.
Loosely based on the 'xatlas' code by Jonathan Young from https://github.com/jpcy/xatlas
A brute force packer (BF-Packer) with accelerators:
margin * 2, read with margin == 0.Performance of "xatlas" would normally be O(n^4) (or worse!), however, in our implementation, bitmap_radix is a constant, which reduces the time complexity to O(n^3). => if n can ever be large, bitmap_radix will need to vary accordingly.
Definition at line 1622 of file uv_pack.cc.
References blender::geometry::Occupancy::bitmap_radix, blender::geometry::PackIsland::can_rotate_(), blender::geometry::PackIsland::can_scale_(), blender::geometry::PackIsland::can_translate_(), blender::geometry::Occupancy::clear(), ED_UVPACK_SHAPE_AABB, find_best_fit_for_island(), G, blender::geometry::PackIsland::get_diagonal_support(), guess_initial_scale(), blender::geometry::Occupancy::increase_scale(), is_larger(), params, blender::geometry::PackIsland::pivot_, rotate_inside_square(), blender::MutableSpan< T >::size(), sqrt(), sqrtf, sub_v2_v2(), blender::geometry::Occupancy::trace_island(), rctf::xmax, and rctf::ymax.
| float blender::geometry::pack_islands | ( | const Span< PackIsland * > | islands, |
| const UVPackIsland_Params & | params ) |
Definition at line 2279 of file uv_pack.cc.
References BLI_assert, BLI_assert_unreachable, calc_margin_from_aabb_length_sum(), ED_UVPACK_MARGIN_ADD, ED_UVPACK_MARGIN_FRACTION, ED_UVPACK_MARGIN_SCALED, finalize_geometry(), pack_islands(), pack_islands_margin_fraction(), pack_islands_scale_margin(), params, and result.
| float blender::geometry::pack_islands | ( | Span< PackIsland * > | islands, |
| const UVPackIsland_Params & | params ) |
|
static |
Pack AABB islands using the "Alpaca" strategy, with rotation.
Same as pack_islands_alpaca_turbo, with support for rotation in 90 degree increments.
Also adds the concept of a "Hole", which is unused space that can be filled. Tracking the "Hole" has a slight performance cost, while improving packing efficiency.
Definition at line 569 of file uv_pack.cc.
References blender::geometry::UVAABBIsland::aspect_y, DEG2RADF, blender::geometry::UVAABBIsland::index, max_ff(), update_hole_rotate(), blender::geometry::UVAABBIsland::uv_diagonal, rctf::xmax, and rctf::ymax.
Referenced by pack_islands_fast().
|
static |
Pack AABB islands using the "Alpaca" strategy, with no rotation.
Each box is packed into an "L" shaped region, gradually filling up space. "Alpaca" is a pun, as it's pronounced the same as "L-Packer" in English.
In theory, alpaca_turbo should be the fastest non-trivial packer, hence the "turbo" suffix.
Technically, the algorithm here is only O(n), In practice, to get reasonable results, the input must be pre-sorted, which costs an additional O(nlogn) time complexity.
Definition at line 458 of file uv_pack.cc.
References blender::geometry::UVAABBIsland::index, max_ff(), blender::geometry::UVAABBIsland::uv_diagonal, rctf::xmax, and rctf::ymax.
Referenced by pack_islands_fast().
|
static |
Use a fast algorithm to pack the supplied aabbs.
Definition at line 675 of file uv_pack.cc.
References pack_islands_alpaca_rotate(), and pack_islands_alpaca_turbo().
|
static |
Find the optimal scale to pack islands into the unit square. returns largest scale that will pack islands into the unit square.
Definition at line 2003 of file uv_pack.cc.
References BLI_assert, blender::geometry::PackIsland::can_scale_(), pack_islands_margin_fraction(), pack_islands_scale_margin(), params, blender::geometry::PackIsland::place_(), and sqrtf.
Referenced by pack_islands(), and pack_islands_margin_fraction().
|
static |
Definition at line 758 of file uv_pack.cc.
References ED_UVPACK_ROTATION_ANY, ED_UVPACK_SHAPE_AABB, floorf, is_larger(), max_ff(), pack_gobel(), pack_islands_optimal_pack_table(), params, and sqrtf.
|
static |
Definition at line 728 of file uv_pack.cc.
References is_larger(), and params.
Referenced by pack_islands_optimal_pack().
|
static |
Pack islands using a mix of other strategies.
| islands | The islands to be packed. |
| scale | Scale islands by scale before packing. |
| margin | Add margin units around islands before packing. |
| params | Additional parameters. Scale and margin information is ignored. |
| r_phis | Island layout information will be written here. |
u or v co-ordinate. Definition at line 1806 of file uv_pack.cc.
References blender::geometry::PackIsland::aspect_y, b, blender::Array< T, InlineBufferCapacity, Allocator >::begin(), can_rotate(), blender::geometry::PackIsland::can_scale_(), blender::Array< T, InlineBufferCapacity, Allocator >::end(), blender::geometry::PackIsland::half_diagonal_, and params.
Referenced by pack_islands(), and pack_islands_margin_fraction().
| float blender::geometry::perpendicular_distance | ( | const Span< float3 > | positions, |
| const Span< T > | attribute_data, | ||
| const int64_t | first_index, | ||
| const int64_t | last_index, | ||
| const int64_t | index ) |
Computes a "perpendicular distance" value for the generic attribute data based on the positions of the curve.
First, we compute a lambda value that represents a factor from the first point to the last point of the current range. This is the projection of the point of interest onto the vector from the first to the last point.
Then this lambda value is used to compute an interpolated value of the first and last point and finally we compute the distance from the interpolated value to the actual value. This is the "perpendicular distance".
Definition at line 27 of file simplify_curves.cc.
References blender::math::distance(), blender::math::dot(), blender::math::interpolate(), and blender::math::is_zero().
Referenced by ramer_douglas_peucker().
Definition at line 220 of file uv_parametrizer.cc.
References blender::geometry::PHash::buckets, blender::geometry::PHash::cursize, blender::geometry::PHash::cursize_id, hash, blender::geometry::PHashLink::key, blender::geometry::PHash::list, MEM_callocN, MEM_freeN(), blender::geometry::PHashLink::next, next, PHASH_hash, phash_insert(), PHashSizes, and blender::geometry::PHash::size.
Referenced by p_face_add_construct(), p_vert_add(), and phash_insert().
Definition at line 256 of file uv_parametrizer.cc.
References blender::geometry::PHash::buckets, hash, blender::geometry::PHashLink::key, blender::geometry::PHashLink::next, and PHASH_hash.
Referenced by p_edge_has_pair(), p_edge_lookup(), p_face_exists(), and p_vert_lookup().
Definition at line 188 of file uv_parametrizer.cc.
References blender::geometry::PHash::buckets, blender::geometry::PHash::cursize, blender::geometry::PHash::cursize_id, blender::geometry::PHash::list, MEM_callocN, PHashSizes, and blender::geometry::PHash::size.
Referenced by blender::geometry::ParamHandle::ParamHandle().
|
static |
Definition at line 273 of file uv_parametrizer.cc.
References hash, blender::geometry::PHashLink::key, blender::geometry::PHashLink::next, and PHASH_hash.
Referenced by p_edge_has_pair(), p_edge_lookup(), and p_face_exists().
|
static |
Definition at line 205 of file uv_parametrizer.cc.
References MEM_freeN(), and MEM_SAFE_FREE.
Referenced by uv_parametrizer_construct_end(), and blender::geometry::ParamHandle::~ParamHandle().
Definition at line 215 of file uv_parametrizer.cc.
References blender::geometry::PHash::size.
Referenced by p_connect_pairs().
Angle rounding helper for "D4" transforms.
Definition at line 228 of file uv_pack.cc.
References angle_match(), angle_wrap(), BLI_assert, and DEG2RADF.
| PointCloud * blender::geometry::point_merge_by_distance | ( | const PointCloud & | src_points, |
| const float | merge_distance, | ||
| const IndexMask & | selection, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Merge selected points into other selected points within the merge_distance. The merged indices favor speed over accuracy, since the results will depend on the order of the points.
Definition at line 20 of file point_merge_by_distance.cc.
References blender::bke::AttributeAccessor::all_ids(), blender::bke::AttributeFilter::allow_skip(), Geometry::attributes, BKE_pointcloud_new_nomain(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::bke::attribute_math::convert_to_static_type(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), blender::array_utils::fill_index_range(), blender::bke::GSpanAttributeWriter::finish(), blender::Array< T, InlineBufferCapacity, Allocator >::last(), blender::bke::AttributeAccessor::lookup(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::threading::parallel_for(), blender::bke::Point, pos, range, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained(), tree, blender::GVArrayCommon::type(), and blender::bke::GAttributeReader::varray.
Referenced by blender::nodes::node_geo_merge_by_distance_cc::pointcloud_merge_by_distance().
|
static |
Definition at line 979 of file mesh_merge_by_distance.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, blender::Array< T, InlineBufferCapacity, Allocator >::data(), intersect(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by weld_poly_find_doubles().
|
static |
Checks which of the #ordered_attributes exist on the #instances_component. For each attribute that exists on the instances, a pair is returned that contains the attribute index and the corresponding attribute data.
Definition at line 503 of file realize_instances.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::DataTypeConversions::convert_to_initialized_n(), blender::bke::AttributeIter::data_type, blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::geometry::OrderedAttributes::ids, blender::bke::DataTypeConversions::is_convertible(), blender::geometry::OrderedAttributes::kinds, blender::bke::AttributeIter::name, prepare_attribute_fallbacks(), blender::geometry::GatherTasksInfo::r_temporary_arrays, and blender::GSpan::type().
Referenced by gather_realize_tasks_for_instances(), and prepare_attribute_fallbacks().
|
static |
Definition at line 1703 of file realize_instances.cc.
References blender::geometry::AllCurvesInfo::attributes, blender::geometry::RealizeCurveInfo::attributes, blender::geometry::AllCurvesInfo::create_custom_normal_attribute, blender::geometry::AllCurvesInfo::create_handle_postion_attributes, blender::geometry::AllCurvesInfo::create_id_attribute, blender::geometry::AllCurvesInfo::create_nurbs_weight_attribute, blender::geometry::AllCurvesInfo::create_radius_attribute, blender::geometry::AllCurvesInfo::create_resolution_attribute, blender::geometry::RealizeCurveInfo::curves, blender::geometry::RealizeCurveInfo::custom_normal, gather_curves_to_realize(), gather_generic_curve_attributes_to_propagate(), Curves::geometry, blender::GVArrayCommon::get_internal_span(), blender::geometry::RealizeCurveInfo::handle_left, blender::geometry::RealizeCurveInfo::handle_right, blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::geometry::OrderedAttributes::kinds, blender::geometry::RealizeCurveInfo::nurbs_weight, options, blender::geometry::AllCurvesInfo::order, preprocess_curves(), blender::geometry::RealizeCurveInfo::radius, blender::geometry::AllCurvesInfo::realize_info, blender::geometry::RealizeCurveInfo::resolution, blender::geometry::OrderedAttributes::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::geometry::RealizeCurveInfo::stored_ids, blender::GSpan::typed(), and blender::bke::GAttributeReader::varray.
Referenced by preprocess_curves(), and realize_instances().
|
static |
Definition at line 2038 of file realize_instances.cc.
References blender::geometry::AllGreasePencilsInfo::attributes, blender::geometry::GreasePencilRealizeInfo::attributes, gather_generic_grease_pencil_attributes_to_propagate(), gather_grease_pencils_to_realize(), blender::geometry::GreasePencilRealizeInfo::grease_pencil, blender::geometry::OrderedAttributes::ids, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of_or_add(), blender::geometry::OrderedAttributes::index_range(), blender::geometry::OrderedAttributes::kinds, GreasePencil::material_array, GreasePencil::material_array_num, blender::geometry::GreasePencilRealizeInfo::material_index_map, blender::geometry::AllGreasePencilsInfo::materials, options, blender::geometry::AllGreasePencilsInfo::order, preprocess_grease_pencils(), blender::geometry::AllGreasePencilsInfo::realize_info, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::geometry::OrderedAttributes::size(), and blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size().
Referenced by preprocess_grease_pencils(), and realize_instances().
|
static |
Definition at line 1330 of file realize_instances.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::geometry::AllMeshesInfo::attributes, blender::geometry::MeshRealizeInfo::attributes, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::begin(), blender::geometry::MeshRealizeInfo::corner_edges, blender::geometry::MeshRealizeInfo::corner_verts, blender::geometry::AllMeshesInfo::create_id_attribute, blender::geometry::AllMeshesInfo::create_material_index_attribute, blender::geometry::MeshRealizeInfo::edges, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::end(), blender::geometry::MeshRealizeInfo::faces, blender::Array< T, InlineBufferCapacity, Allocator >::first(), gather_generic_mesh_attributes_to_propagate(), gather_meshes_to_realize(), blender::GVArrayCommon::get_internal_span(), blender::geometry::OrderedAttributes::ids, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of(), blender::geometry::OrderedAttributes::index_range(), blender::geometry::OrderedAttributes::kinds, blender::geometry::MeshRealizeInfo::material_index_map, blender::geometry::MeshRealizeInfo::material_indices, blender::geometry::AllMeshesInfo::materials, blender::geometry::MeshRealizeInfo::mesh, mesh, blender::geometry::AllMeshesInfo::no_loose_edges_hint, blender::geometry::AllMeshesInfo::no_loose_verts_hint, blender::geometry::AllMeshesInfo::no_overlapping_hint, options, blender::geometry::AllMeshesInfo::order, blender::geometry::MeshRealizeInfo::positions, preprocess_meshes(), blender::geometry::AllMeshesInfo::realize_info, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::geometry::OrderedAttributes::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::geometry::MeshRealizeInfo::stored_vertex_ids, blender::GSpan::typed(), and blender::bke::GAttributeReader::varray.
Referenced by preprocess_meshes(), and realize_instances().
|
static |
Definition at line 1098 of file realize_instances.cc.
References blender::geometry::AllPointCloudsInfo::attributes, blender::geometry::PointCloudRealizeInfo::attributes, Geometry::attributes, blender::geometry::AllPointCloudsInfo::create_id_attribute, blender::geometry::AllPointCloudsInfo::create_radius_attribute, gather_generic_pointcloud_attributes_to_propagate(), gather_pointclouds_to_realize(), blender::GVArrayCommon::get_internal_span(), blender::VArrayCommon< T >::get_internal_span(), blender::geometry::OrderedAttributes::ids, blender::geometry::OrderedAttributes::index_range(), blender::geometry::OrderedAttributes::kinds, options, blender::geometry::AllPointCloudsInfo::order, blender::geometry::PointCloudRealizeInfo::pointcloud, blender::geometry::PointCloudRealizeInfo::positions, preprocess_pointclouds(), blender::geometry::PointCloudRealizeInfo::radii, blender::geometry::AllPointCloudsInfo::realize_info, blender::geometry::OrderedAttributes::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::geometry::PointCloudRealizeInfo::stored_ids, blender::GSpan::typed(), and blender::bke::GAttributeReader::varray.
Referenced by preprocess_pointclouds(), and realize_instances().
|
static |
Definition at line 63 of file mesh_split_edges.cc.
References CD_FREESTYLE_EDGE, CD_ORIGINDEX, CustomData_free_layers(), CustomData_get_layer_for_write(), CustomData_realloc(), blender::bke::Edge, blender::array_utils::gather(), blender::bke::attribute_math::gather(), blender::Span< T >::size(), blender::MutableSpan< T >::take_back(), and blender::Span< T >::take_back().
Referenced by split_edges().
|
static |
Propagate instances from the old geometry set to the new geometry set if they are not realized.
Definition at line 2257 of file realize_instances.cc.
References blender::index_mask::IndexMask::complement(), blender::bke::GeometrySet::get_component_for_write(), blender::bke::GeometrySet::get_instances(), blender::index_mask::IndexMask::is_empty(), propagate_instances_to_keep(), and blender::bke::InstancesComponent::replace().
Referenced by propagate_instances_to_keep(), and realize_instances().
|
static |
Definition at line 20 of file mesh_split_edges.cc.
References CD_CLOTH_ORCO, CD_MVERT_SKIN, CD_ORCO, CD_ORIGINDEX, CD_SHAPEKEY, CustomData_free_layers(), CustomData_get_layer_for_write(), CustomData_realloc(), blender::array_utils::gather(), blender::bke::attribute_math::gather(), blender::bke::Point, blender::Span< T >::size(), blender::MutableSpan< T >::take_back(), and blender::Span< T >::take_back().
Referenced by split_edges().
|
static |
An implementation of the Ramer-Douglas-Peucker algorithm.
Definition at line 50 of file simplify_curves.cc.
References blender::IndexRange::drop_back(), blender::IndexRange::drop_front(), blender::MutableSpan< T >::fill(), blender::IndexRange::first(), blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), blender::IndexRange::last(), perpendicular_distance(), blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), blender::IndexRange::size(), blender::IndexRange::slice(), and blender::MutableSpan< T >::slice().
| bke::GeometrySet blender::geometry::realize_instances | ( | bke::GeometrySet | geometry_set, |
| const RealizeInstancesOptions & | options ) |
Join all instances into a single geometry component for each geometry type. For example, all mesh instances (including the already realized mesh) are joined into a single mesh. The output geometry set does not contain any instances. If the input did not contain any instances, it is returned directly.
The id attribute has special handling. If there is an id attribute on any component, the output will contain an id attribute as well. The output id is generated by mixing/hashing ids of instances and of the instanced geometry data.
Definition at line 2279 of file realize_instances.cc.
References blender::geometry::VariedDepthOptions::depths, blender::bke::GeometrySet::get_instances(), blender::bke::GeometrySet::has_instances(), blender::bke::Instances::instances_num(), options, realize_instances(), and blender::geometry::VariedDepthOptions::selection.
Referenced by blender::create_array_copies(), blender::create_mirror_copies(), blender::duplicate_strokes(), join_component_type(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_geo_exec(), blender::nodes::node_geo_realize_instances_cc::node_geo_exec(), realize_instances(), and realize_instances().
| bke::GeometrySet blender::geometry::realize_instances | ( | bke::GeometrySet | geometry_set, |
| const RealizeInstancesOptions & | options, | ||
| const VariedDepthOptions & | varied_depth_option ) |
Same realize_instances but will realize only the instances chosen by varied_depth_option to there chosen depth.
Definition at line 2293 of file realize_instances.cc.
References blender::bke::GeometrySet::add(), blender::geometry::AllInstancesInfo::attribute_fallback, blender::geometry::AllCurvesInfo::attributes, blender::geometry::AllGreasePencilsInfo::attributes, blender::geometry::AllMeshesInfo::attributes, blender::geometry::AllPointCloudsInfo::attributes, blender::bke::InstancesComponent::copy(), blender::geometry::AllCurvesInfo::create_id_attribute, blender::geometry::AllMeshesInfo::create_id_attribute, blender::geometry::AllPointCloudsInfo::create_id_attribute, blender::geometry::GatherTasks::curve_tasks, blender::geometry::VariedDepthOptions::depths, blender::geometry::GatherTasks::edit_data_tasks, execute_instances_tasks(), execute_realize_curve_tasks(), execute_realize_edit_data_tasks(), execute_realize_grease_pencil_tasks(), execute_realize_mesh_tasks(), execute_realize_pointcloud_tasks(), blender::geometry::GatherTasks::first_volume, gather_generic_instance_attributes_to_propagate(), gather_realize_tasks_recursive(), blender::bke::GeometrySet::get_component_for_write(), get_final_points_num(), blender::geometry::GatherTasks::grease_pencil_tasks, blender::bke::GeometrySet::has_instances(), blender::geometry::GatherTasksInfo::instances, blender::geometry::GatherTasksInfo::instances_attriubutes, blender::geometry::AllInstancesInfo::instances_components_to_merge, blender::geometry::AllInstancesInfo::instances_components_transforms, blender::geometry::AllMeshesInfo::materials, blender::geometry::GatherTasks::mesh_tasks, options, blender::geometry::GatherTasks::pointcloud_tasks, preprocess_curves(), preprocess_grease_pencils(), preprocess_meshes(), preprocess_pointclouds(), propagate_instances_to_keep(), blender::geometry::GatherTasksInfo::r_tasks, realize_instances(), remove_id_attribute_from_instances(), blender::geometry::VariedDepthOptions::selection, and blender::geometry::OrderedAttributes::size().
|
static |
Assign the newly created vertex duplicates to the loose edges around this vertex. Every split loose edge is reattached to a newly created vertex. If there are non-split loose edges attached to the vertex, they all reuse the original vertex.
Definition at line 464 of file mesh_split_edges.cc.
References calc_vert_loose_edges(), blender::index_mask::IndexMask::foreach_index(), mask(), reassign_loose_edge_verts(), blender::geometry::VertLooseEdges::selected, blender::IndexRange::size(), size(), split_edges(), swap_edge_vert(), and blender::geometry::VertLooseEdges::unselected.
Referenced by reassign_loose_edge_verts(), and split_edges().
|
static |
Definition at line 54 of file mesh_copy_selection.cc.
References blender::index_mask::IndexMask::foreach_index(), blender::IndexRange::index_range(), and remap_edges().
Referenced by mesh_copy_selection_keep_verts(), and remap_edges().
|
static |
Definition at line 22 of file mesh_copy_selection.cc.
References blender::index_mask::build_reverse_map< int >(), blender::threading::parallel_invoke(), and blender::index_mask::IndexMask::size().
|
static |
Definition at line 2245 of file realize_instances.cc.
References blender::bke::GeometrySet::get_instances_for_write(), blender::bke::GeometrySet::modify_geometry_sets(), and remove_id_attribute_from_instances().
Referenced by realize_instances(), and remove_id_attribute_from_instances().
|
static |
Definition at line 120 of file merge_curves.cc.
References CD_PROP_STRING, blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::Span< T >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, and blender::threading::parallel_for().
Referenced by reorder_and_flip_curves().
|
static |
Definition at line 160 of file merge_curves.cc.
References blender::MutableSpan< T >::as_span(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), reorder_and_flip_attributes_group_to_group(), reorder_and_flip_curves(), and blender::bke::CurvesGeometry::tag_topology_changed().
Referenced by curves_merge_endpoints(), and reorder_and_flip_curves().
|
static |
Definition at line 44 of file reorder.cc.
References CD_PROP_STRING, blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, blender::bke::GSpanAttributeWriter::finish(), blender::bke::AttributeAccessor::foreach_attribute(), blender::bke::AttributeIter::get(), blender::Span< T >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeIter::name, and blender::threading::parallel_for().
Referenced by reorder_curves_exec(), and reorder_mesh_faces_exec().
| Curves * blender::geometry::reorder_curves | ( | const Curves & | src_curves, |
| Span< int > | old_by_new_map, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 268 of file reorder.cc.
References BKE_curves_copy_for_eval(), Curves::geometry, reorder_curves(), and reorder_curves_geometry().
Referenced by reorder_curves(), and reordered_component().
|
static |
Definition at line 178 of file reorder.cc.
References blender::MutableSpan< T >::as_span(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), reorder_attributes_group_to_group(), reorder_curves_exec(), and blender::bke::CurvesGeometry::tag_topology_changed().
Referenced by reorder_curves_exec(), and reorder_curves_geometry().
| bke::CurvesGeometry blender::geometry::reorder_curves_geometry | ( | const bke::CurvesGeometry & | src_curves, |
| Span< int > | old_by_new_map, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 258 of file reorder.cc.
References blender::bke::CurvesGeometry::attributes_for_write(), clean_unused_attributes(), reorder_curves_exec(), and reorder_curves_geometry().
Referenced by reorder_curves(), reorder_curves_geometry(), and blender::reorder_strokes().
|
static |
Definition at line 74 of file randomize.cc.
References CD_CONSTRUCT, CD_MASK_ALL, CustomData_copy_data(), CustomData_free(), CustomData_init_layout_from(), blender::Span< T >::index_range(), and blender::Span< T >::size().
Referenced by debug_randomize_curve_order(), debug_randomize_edge_order(), debug_randomize_face_order(), debug_randomize_instance_order(), debug_randomize_point_order(), and debug_randomize_vert_order().
|
static |
Definition at line 138 of file randomize.cc.
References BLI_assert, CD_CONSTRUCT, CD_MASK_ALL, CustomData_copy_data(), CustomData_free(), CustomData_init_layout_from(), blender::IndexRange::size(), blender::Span< T >::size(), blender::IndexRange::start(), and blender::offset_indices::OffsetIndices< T >::total_size().
Referenced by debug_randomize_curve_order(), and debug_randomize_face_order().
| bke::Instances * blender::geometry::reorder_instaces | ( | const bke::Instances & | src_instances, |
| Span< int > | old_by_new_map, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 279 of file reorder.cc.
References blender::bke::Instances::attributes_for_write(), clean_unused_attributes(), reorder_instaces(), and reorder_instaces_exec().
Referenced by reorder_instaces(), and reordered_component().
|
static |
Definition at line 203 of file reorder.cc.
References blender::bke::Instances::attributes(), blender::bke::Instances::attributes_for_write(), and reorder_instaces_exec().
Referenced by reorder_instaces(), and reorder_instaces_exec().
| Mesh * blender::geometry::reorder_mesh | ( | const Mesh & | src_mesh, |
| Span< int > | old_by_new_map, | ||
| bke::AttrDomain | domain, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 237 of file reorder.cc.
References BKE_mesh_copy_for_eval(), clean_unused_attributes(), reorder_mesh(), and reorder_mesh_exec().
Referenced by reorder_mesh(), and reordered_component().
|
static |
Definition at line 105 of file reorder.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), Geometry::attributes, invert_permutation(), and reorder_mesh_edges_exec().
Referenced by reorder_mesh_edges_exec(), and reorder_mesh_exec().
|
static |
Definition at line 142 of file reorder.cc.
References reorder_mesh_edges_exec(), reorder_mesh_exec(), reorder_mesh_faces_exec(), and reorder_mesh_verts_exec().
Referenced by reorder_mesh(), and reorder_mesh_exec().
|
static |
Definition at line 120 of file reorder.cc.
References blender::MutableSpan< T >::as_span(), Geometry::attributes, reorder_attributes_group_to_group(), and reorder_mesh_faces_exec().
Referenced by reorder_mesh_exec(), and reorder_mesh_faces_exec().
|
static |
Definition at line 87 of file reorder.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), Geometry::attributes, invert_permutation(), and reorder_mesh_verts_exec().
Referenced by reorder_mesh_exec(), and reorder_mesh_verts_exec().
| PointCloud * blender::geometry::reorder_points | ( | const PointCloud & | src_pointcloud, |
| Span< int > | old_by_new_map, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 248 of file reorder.cc.
References BKE_pointcloud_copy_for_eval(), clean_unused_attributes(), reorder_points(), and reorder_points_exec().
Referenced by reorder_points(), and reordered_component().
|
static |
Definition at line 164 of file reorder.cc.
References Geometry::attributes, and reorder_points_exec().
Referenced by reorder_points(), and reorder_points_exec().
| bke::GeometryComponentPtr blender::geometry::reordered_component | ( | const bke::GeometryComponent & | src_component, |
| Span< int > | old_by_new_map, | ||
| bke::AttrDomain | domain, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 289 of file reorder.cc.
References BLI_assert, BLI_assert_unreachable, blender::bke::GeometryComponent::is_empty(), reorder_curves(), reorder_instaces(), reorder_mesh(), reorder_points(), and reordered_component().
Referenced by reordered_component().
| CurvesGeometry blender::geometry::resample_to_count | ( | const CurvesGeometry & | src_curves, |
| const fn::FieldContext & | field_context, | ||
| const fn::Field< bool > & | selection_field, | ||
| const fn::Field< int > & | count_field, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Definition at line 467 of file resample_curves.cc.
References get_count_input_max_one(), and resample_to_uniform().
| CurvesGeometry blender::geometry::resample_to_count | ( | const CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const VArray< int > & | counts, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Create new curves where the selected curves have been resampled with a number of uniform-length samples defined by the count field. Interpolate attributes to the result, with an accuracy that depends on the curve's resolution parameter.
Definition at line 435 of file resample_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::MutableSpan< T >::begin(), BLI_assert, blender::index_mask::IndexMask::complement(), blender::array_utils::copy(), blender::offset_indices::copy_group_sizes(), blender::bke::curves::copy_only_curve_domain(), count, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::MutableSpan< T >::drop_back(), blender::MutableSpan< T >::end(), blender::IndexRange::is_empty(), blender::MutableSpan< T >::last(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), resample_to_uniform(), and blender::bke::CurvesGeometry::resize().
Referenced by blender::nodes::node_geo_curve_resample_cc::node_geo_exec().
| CurvesGeometry blender::geometry::resample_to_evaluated | ( | const CurvesGeometry & | src_curves, |
| const fn::FieldContext & | field_context, | ||
| const fn::Field< bool > & | selection_field, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Definition at line 607 of file resample_curves.cc.
References blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::IndexRange::is_empty(), and resample_to_evaluated().
| CurvesGeometry blender::geometry::resample_to_evaluated | ( | const CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Evaluate each selected curve to its implicit evaluated points.
Definition at line 527 of file resample_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::index_mask::IndexMask::complement(), blender::offset_indices::copy_group_sizes(), blender::bke::curves::copy_only_curve_domain(), copy_or_defaults_for_unselected_curves(), CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::ensure_can_interpolate_to_evaluated(), blender::bke::CurvesGeometry::evaluated_points_by_curve(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::fill_curve_types(), gather_point_attributes_to_interpolate(), blender::bke::CurvesGeometry::interpolate_to_evaluated(), blender::IndexRange::is_empty(), blender::MutableSpan< T >::last(), normalize_curve_point_data(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::slice(), and blender::Span< T >::slice().
Referenced by blender::nodes::node_geo_curve_resample_cc::node_geo_exec(), and resample_to_evaluated().
| CurvesGeometry blender::geometry::resample_to_length | ( | const CurvesGeometry & | src_curves, |
| const fn::FieldContext & | field_context, | ||
| const fn::Field< bool > & | selection_field, | ||
| const fn::Field< float > & | segment_length_field, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Definition at line 514 of file resample_curves.cc.
References get_count_input_from_length(), and resample_to_uniform().
| CurvesGeometry blender::geometry::resample_to_length | ( | const CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const VArray< float > & | sample_lengths, | ||
| const ResampleCurvesOutputAttributeIDs & | output_ids = {} ) |
Create new curves resampled to make each segment have the length specified by the #segment_length field input, rounded to make the length of each segment the same. The accuracy will depend on the curve's resolution parameter.
Definition at line 480 of file resample_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets(), blender::index_mask::IndexMask::complement(), blender::offset_indices::copy_group_sizes(), blender::bke::curves::copy_only_curve_domain(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_length_total_for_curve(), int, blender::IndexRange::is_empty(), blender::MutableSpan< T >::last(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), resample_to_uniform(), and blender::bke::CurvesGeometry::resize().
Referenced by blender::modify_drawing(), blender::nodes::node_geo_curve_resample_cc::node_geo_exec(), and blender::simplify_drawing().
|
static |
Definition at line 401 of file resample_curves.cc.
References blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check(), blender::index_mask::IndexMask::complement(), blender::offset_indices::copy_group_sizes(), blender::bke::curves::copy_only_curve_domain(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::MutableSpan< T >::drop_back(), blender::IndexRange::is_empty(), blender::MutableSpan< T >::last(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), resample_to_uniform(), and blender::bke::CurvesGeometry::resize().
|
static |
Definition at line 268 of file resample_curves.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::index_mask::IndexMask::complement(), blender::bke::attribute_math::convert_to_static_type(), copy_or_defaults_for_unselected_curves(), CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_lengths_for_curve(), blender::bke::CurvesGeometry::evaluated_points_by_curve(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::fill_curve_types(), gather_point_attributes_to_interpolate(), blender::length_parameterize::interpolate(), blender::bke::CurvesGeometry::interpolate_to_evaluated(), blender::IndexRange::is_empty(), normalize_curve_point_data(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions_for_write(), blender::geometry::EvalDataBuffer::resize(), blender::length_parameterize::sample_uniform(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), and blender::Span< T >::slice().
Referenced by resample_to_count(), resample_to_count(), resample_to_length(), resample_to_length(), and resample_to_uniform().
|
static |
Retrieve spans from source and result attributes.
Definition at line 92 of file resample_curves.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::bke::cpp_type_to_custom_data_type(), blender::Span< T >::index_range(), blender::bke::AttributeAccessor::lookup(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::Point, blender::bke::GSpanAttributeWriter::span, blender::GVArrayCommon::type(), and blender::bke::GAttributeReader::varray.
|
static |
Retrieve spans from source and result attributes.
Definition at line 68 of file interpolate_curves.cc.
References blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BLI_assert, blender::bke::cpp_type_to_custom_data_type(), blender::Span< T >::index_range(), blender::bke::AttributeAccessor::lookup(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), result, and blender::GVArrayCommon::type().
Referenced by gather_curve_attributes_to_interpolate(), gather_point_attributes_to_interpolate(), and gather_point_attributes_to_interpolate().
|
static |
Definition at line 103 of file merge_curves.cc.
References BUFFER_FOR_CPP_TYPE_VALUE, blender::CPPType::default_construct(), blender::CPPType::destruct(), blender::CPPType::move_assign(), blender::GMutableSpan::size(), and blender::GMutableSpan::type().
|
static |
Find the minimum bounding square that encloses the UVs as specified in r_phis. If that square is smaller than r_extent, then update r_phis accordingly.
r_phis and r_extent are modified. Definition at line 1519 of file uv_pack.cc.
References blender::geometry::PackIsland::aspect_y, blender::geometry::UVMinimumEnclosingSquareFinder::best_angle, blender::geometry::UVMinimumEnclosingSquareFinder::best_bounds, blender::geometry::UVMinimumEnclosingSquareFinder::best_quad, BLI_convexhull_2d(), BLI_rctf_size_x(), BLI_rctf_size_y(), blender::geometry::PackIsland::build_transformation(), blender::geometry::PackIsland::can_scale_(), blender::Vector< T, InlineBufferCapacity, Allocator >::data(), DEG2RADF, ED_UVPACK_ROTATION_ANY, ED_UVPACK_SHAPE_AABB, float, get_aspect_scaled_extent(), blender::geometry::UVMinimumEnclosingSquareFinder::indices, mul_m2_v2(), mul_v2_m2v2(), params, blender::geometry::PackIsland::pivot_, blender::geometry::UVMinimumEnclosingSquareFinder::points, blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::geometry::PackIsland::triangle_vertices_, blender::geometry::UVMinimumEnclosingSquareFinder::update(), blender::geometry::UVMinimumEnclosingSquareFinder::update_recursive(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by pack_island_xatlas().
|
static |
Definition at line 177 of file interpolate_curves.cc.
References BLI_assert, blender::bke::attribute_math::convert_to_static_type(), CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::evaluated_points_by_curve(), blender::index_mask::IndexMask::foreach_index(), blender::length_parameterize::interpolate(), blender::bke::CurvesGeometry::interpolate_to_evaluated(), blender::bke::CurvesGeometry::points_by_curve(), pos, blender::GMutableSpan::size(), blender::IndexRange::size(), blender::Span< T >::size(), blender::Span< T >::slice(), blender::GMutableSpan::type(), blender::GSpan::type(), blender::GMutableSpan::typed(), and blender::GSpan::typed().
|
static |
Definition at line 391 of file trim_curves.cc.
References BLI_assert, blender::MutableSpan< T >::copy_from(), blender::bke::curves::IndexRangeCyclic::curve_range(), blender::bke::curves::IndexRangeCyclic::cycles(), blender::bke::curves::IndexRangeCyclic::drop_front(), blender::bke::curves::IndexRangeCyclic::first(), blender::IndexRange::first(), blender::bke::curves::bezier::Insertion::handle_next, blender::bke::curves::bezier::Insertion::handle_prev, blender::bke::curves::CurveSegment::index, blender::bke::curves::bezier::insert(), blender::bke::curves::CurvePoint::is_controlpoint(), knot_insert_bezier(), blender::IndexRange::last(), blender::bke::curves::bezier::Insertion::left_handle, blender::bke::curves::CurveSegment::next_index, blender::bke::curves::IndexRangeCyclic::one_after_last(), blender::IndexRange::one_after_last(), blender::bke::curves::CurvePoint::parameter, blender::bke::curves::bezier::Insertion::position, blender::bke::curves::bezier::Insertion::right_handle, blender::IndexRange::size(), blender::bke::curves::IndexRangeCyclic::size_after_loop(), blender::bke::curves::IndexRangeCyclic::size_before_loop(), blender::bke::curves::IndexRangeCyclic::size_range(), blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().
Referenced by trim_bezier_curves().
|
static |
Definition at line 353 of file trim_curves.cc.
References BLI_assert, copy_point_data_between_endpoints(), blender::IndexRange::first(), interpolate_catmull_rom(), blender::bke::curves::CurvePoint::is_controlpoint(), blender::IndexRange::one_after_last(), and blender::IndexRange::size().
|
static |
Sample source curve data in the interval defined by the points [start_point, end_point]. Uses linear interpolation to compute the endpoints.
| include_start_point | If False, the 'start_point' point sample will not be copied and not accounted for in the destination range. |
| src_data | Source to sample from. |
| dst_data | Destination to write samples to. |
| src_range | Interval within [start_point, end_point] to copy from the source point domain. |
| dst_range | Interval to copy point data to in the destination buffer. |
| start_point | Point on the source curve to start sampling from. |
| end_point | Last point to sample in the source curve. |
Definition at line 306 of file trim_curves.cc.
References BLI_assert, copy_point_data_between_endpoints(), blender::bke::curves::IndexRangeCyclic::drop_front(), blender::IndexRange::first(), blender::bke::curves::CurveSegment::index, blender::bke::curves::CurvePoint::is_controlpoint(), blender::bke::attribute_math::mix2(), blender::bke::curves::CurveSegment::next_index, blender::IndexRange::one_after_last(), blender::bke::curves::CurvePoint::parameter, and blender::IndexRange::size().
|
static |
Definition at line 32 of file set_curve_type.cc.
References blender::MutableSpan< T >::index_range().
Referenced by convert_curves_to_bezier(), create_nurbs_to_bezier_positions(), and nurbs_to_bezier_assign().
|
static |
Definition at line 64 of file randomize.cc.
Referenced by debug_randomize_curve_order().
|
static |
Definition at line 69 of file randomize.cc.
Referenced by debug_randomize_instance_order().
We can't use a fully random seed, because then the randomization wouldn't be deterministic, which is important to avoid causing issues when determinism is expected. Using a single constant seed is not ideal either, because then two geometries might be randomized equally or very similar. Ideally, the seed would be a hash of everything that feeds into the geometry processing algorithm before the randomization, but that's too expensive. Just use something simple but correct for now.
Definition at line 54 of file randomize.cc.
Referenced by debug_randomize_edge_order(), debug_randomize_face_order(), and debug_randomize_vert_order().
|
static |
Definition at line 59 of file randomize.cc.
References PointCloud::totpoint.
Referenced by debug_randomize_point_order().
|
static |
Definition at line 111 of file mesh_split_edges.cc.
Referenced by split_edges().
|
static |
Definition at line 24 of file separate_geometry.cc.
References blender::bke::CurvesGeometry::attributes(), BLI_assert_unreachable, blender::bke::curves_copy_curve_selection(), blender::bke::curves_copy_point_selection(), and blender::bke::AttributeAccessor::domain_size().
Referenced by separate_geometry().
| void blender::geometry::separate_geometry | ( | bke::GeometrySet & | geometry_set, |
| bke::AttrDomain | domain, | ||
| GeometryNodeDeleteGeometryMode | mode, | ||
| const fn::Field< bool > & | selection_field, | ||
| const bke::AttributeFilter & | attribute_filter, | ||
| bool & | r_is_error ) |
Returns the parts of the geometry that are on the selection for the given domain. If the domain is not applicable for the component, e.g. face domain for point cloud, nothing happens to that component. If no component can work with the domain, then error_message is set to true.
Referenced by blender::nodes::node_geo_delete_geometry_cc::node_geo_exec(), and blender::nodes::node_geo_separate_geometry_cc::node_geo_exec().
| void blender::geometry::separate_geometry | ( | bke::GeometrySet & | geometry_set, |
| const AttrDomain | domain, | ||
| const GeometryNodeDeleteGeometryMode | mode, | ||
| const fn::Field< bool > & | selection, | ||
| const bke::AttributeFilter & | attribute_filter, | ||
| bool & | r_is_error ) |
Definition at line 163 of file separate_geometry.cc.
References CD_PROP_FLOAT2, blender::bke::curves_copy_parameters(), blender::bke::curves_new_nomain(), CustomData_get_active_layer_name(), CustomData_get_named_layer(), CustomData_get_render_layer_name(), CustomData_set_layer_active(), CustomData_set_layer_render(), delete_selected_instances(), ELEM, blender::bke::GeometrySet::get_curves(), blender::bke::GeometrySet::get_grease_pencil(), blender::bke::GeometrySet::get_grease_pencil_for_write(), blender::bke::GeometrySet::get_mesh(), blender::bke::GeometrySet::get_pointcloud(), blender::bke::GeometrySet::has_instances(), blender::bke::GeometrySet::has_realized_data(), blender::bke::GeometrySet::remove(), blender::bke::GeometrySet::replace_curves(), blender::bke::GeometrySet::replace_grease_pencil(), blender::bke::GeometrySet::replace_mesh(), blender::bke::GeometrySet::replace_pointcloud(), separate_curves_selection(), separate_grease_pencil_layer_selection(), separate_mesh_selection(), separate_point_cloud_selection(), blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::bke::greasepencil::Drawing::tag_topology_changed().
|
static |
Definition at line 124 of file separate_geometry.cc.
References BKE_grease_pencil_copy_parameters(), BKE_grease_pencil_duplicate_drawing_array(), BKE_grease_pencil_new_nomain(), blender::fn::FieldEvaluator::evaluate(), blender::bke::gather_attributes(), blender::fn::FieldEvaluator::get_evaluated_selection_as_mask(), and blender::fn::FieldEvaluator::set_selection().
Referenced by separate_geometry().
|
static |
Definition at line 100 of file separate_geometry.cc.
References blender::fn::FieldEvaluator::add(), blender::fn::FieldEvaluator::evaluate(), GEO_NODE_DELETE_GEOMETRY_MODE_ALL, GEO_NODE_DELETE_GEOMETRY_MODE_EDGE_FACE, GEO_NODE_DELETE_GEOMETRY_MODE_ONLY_FACE, blender::fn::FieldEvaluator::get_evaluated(), mesh_copy_selection(), mesh_copy_selection_keep_edges(), and mesh_copy_selection_keep_verts().
Referenced by separate_geometry().
|
static |
Definition at line 54 of file separate_geometry.cc.
References Geometry::attributes, BKE_pointcloud_new_nomain(), blender::bke::gather_attributes(), and PointCloud::totpoint.
Referenced by separate_geometry().
|
static |
|
static |
Definition at line 1198 of file uv_pack.cc.
References BLI_assert, dist_signed_squared_to_edge(), blender::math::length_squared(), max_fff(), and sqrtf.
Referenced by blender::geometry::Occupancy::trace_triangle().
| IndexMask blender::geometry::simplify_curve_attribute | ( | const Span< float3 > | positions, |
| const IndexMask & | curves_selection, | ||
| const OffsetIndices< int > | points_by_curve, | ||
| const VArray< bool > & | cyclic, | ||
| float | epsilon, | ||
| GSpan | attribute_data, | ||
| IndexMaskMemory & | memory ) |
Compute an index masks of points to remove to simplify the curve attribute using the Ramer-Douglas-Peucker algorithm.
Definition at line 137 of file simplify_curves.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::index_mask::IndexMask::foreach_index(), simplify_curve_attribute(), and blender::GSpan::type().
Referenced by simplify_curve_attribute(), and blender::simplify_drawing().
|
static |
Definition at line 363 of file realize_instances.cc.
References blender::MatBase< float, 4, 4 >::identity(), and blender::math::is_equal().
Referenced by copy_transformed_positions(), execute_realize_curve_tasks(), execute_realize_grease_pencil_tasks(), execute_realize_mesh_tasks(), and execute_realize_pointcloud_tasks().
| void blender::geometry::smooth_curve_attribute | ( | const IndexMask & | curves_to_smooth, |
| const OffsetIndices< int > | points_by_curve, | ||
| const VArray< bool > & | point_selection, | ||
| const VArray< bool > & | cyclic, | ||
| int | iterations, | ||
| const VArray< float > & | influence_by_point, | ||
| bool | smooth_ends, | ||
| bool | keep_shape, | ||
| GMutableSpan | attribute_data ) |
Smooths the attribute_data using a 1D gaussian blur.
Definition at line 176 of file smooth_curves.cc.
References blender::CPPType::copy_assign_n(), blender::GMutableSpan::data(), blender::Vector< T, InlineBufferCapacity, Allocator >::data(), blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::foreach_range(), gaussian_blur_1D(), blender::index_mask::IndexMask::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::GMutableSpan::size_in_bytes(), blender::GMutableSpan::slice(), blender::Span< T >::slice(), smooth_curve_attribute(), and blender::GMutableSpan::type().
| void blender::geometry::smooth_curve_attribute | ( | const IndexMask & | curves_to_smooth, |
| const OffsetIndices< int > | points_by_curve, | ||
| const VArray< bool > & | point_selection, | ||
| const VArray< bool > & | cyclic, | ||
| int | iterations, | ||
| float | influence, | ||
| bool | smooth_ends, | ||
| bool | keep_shape, | ||
| GMutableSpan | attribute_data ) |
Smooths the attribute_data using a 1D gaussian blur.
Definition at line 216 of file smooth_curves.cc.
References smooth_curve_attribute(), and blender::offset_indices::OffsetIndices< T >::total_size().
Referenced by blender::deform_drawing(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::modify_drawing(), blender::ed::sculpt_paint::greasepencil::SmoothOperation::on_stroke_extended(), smooth_curve_attribute(), smooth_curve_attribute(), smooth_curve_positions(), and blender::ed::sculpt_paint::smooth_fill_strokes().
| void blender::geometry::smooth_curve_positions | ( | bke::CurvesGeometry & | curves, |
| const IndexMask & | curves_to_smooth, | ||
| int | iterations, | ||
| const VArray< float > & | influence_by_point, | ||
| bool | smooth_ends, | ||
| bool | keep_shape ) |
Smooths the positions of curves using a 1D gaussian blur.
Definition at line 237 of file smooth_curves.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_mutable_span(), curve, CURVE_TYPE_BEZIER, blender::IndexRange::drop_back(), blender::IndexRange::drop_front(), blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::foreach_range(), gaussian_blur_1D(), blender::IndexRange::index_range(), blender::index_mask::IndexMask::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::IndexRange::size(), blender::MutableSpan< T >::size(), smooth_curve_attribute(), and smooth_curve_positions().
Referenced by smooth_curve_positions(), and smooth_curve_positions().
| void blender::geometry::smooth_curve_positions | ( | bke::CurvesGeometry & | curves, |
| const IndexMask & | curves_to_smooth, | ||
| int | iterations, | ||
| float | influence, | ||
| bool | smooth_ends, | ||
| bool | keep_shape ) |
Definition at line 353 of file smooth_curves.cc.
References smooth_curve_positions().
|
static |
Add each triangle to the rows that it is in. After this, the information about each row is still scattered across multiple thread-specific lists. Those separate lists are then joined in a separate step.
Definition at line 87 of file reverse_uv_sampler.cc.
References blender::Span< T >::index_range(), and blender::threading::parallel_for().
Referenced by blender::geometry::ReverseUVSampler::ReverseUVSampler().
Definition at line 41 of file mesh_primitive_uv_sphere.cc.
Referenced by create_uv_sphere_mesh().
Definition at line 36 of file mesh_primitive_uv_sphere.cc.
Referenced by create_uv_sphere_mesh().
Definition at line 48 of file mesh_primitive_uv_sphere.cc.
Referenced by create_uv_sphere_mesh().
Definition at line 31 of file mesh_primitive_uv_sphere.cc.
Referenced by calculate_sphere_corners(), calculate_sphere_edge_indices(), and create_uv_sphere_mesh().
| void blender::geometry::split_edges | ( | Mesh & | mesh, |
| const IndexMask & | mask, | ||
| const bke::AttributeFilter & | attribute_filter = {} ) |
Definition at line 513 of file mesh_split_edges.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), calc_all_corner_groups(), calc_new_edges(), calc_vert_ranges_per_old_vert(), blender::index_mask::IndexMask::complement(), blender::bke::LooseGeomCache::count, debug_randomize_edge_order(), debug_randomize_vert_order(), blender::Span< T >::index_range(), blender::bke::LooseGeomCache::is_loose_bits, offsets_to_map(), propagate_edge_attributes(), propagate_vert_attributes(), reassign_loose_edge_verts(), selection_to_bit_vector(), blender::Array< T, InlineBufferCapacity, Allocator >::size(), blender::index_mask::IndexMask::size(), blender::Span< T >::size(), split_edges(), update_corner_verts(), update_unselected_edges(), and vert_selection_from_edge().
Referenced by calc_all_corner_groups(), calc_corner_groups_for_vertex(), calc_vert_loose_edges(), blender::nodes::node_geo_edge_split_cc::node_geo_exec(), reassign_loose_edge_verts(), and split_edges().
|
static |
Definition at line 112 of file subdivide_curves.cc.
References blender::GMutableSpan::slice(), blender::GSpan::slice(), blender::Span< T >::slice(), and subdivide_attribute_catmull_rom().
Referenced by subdivide_attribute_catmull_rom(), and subdivide_curves().
|
static |
Definition at line 94 of file subdivide_curves.cc.
References subdivide_attribute_linear(), and blender::GMutableSpan::type().
|
static |
Definition at line 66 of file subdivide_curves.cc.
References blender::IndexRange::drop_back(), blender::Span< T >::index_range(), linear_interpolation(), blender::threading::parallel_for(), blender::bke::curves::per_curve_point_offsets_range(), blender::IndexRange::slice(), blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().
Referenced by subdivide_attribute_linear(), and subdivide_curves().
|
static |
Definition at line 198 of file subdivide_curves.cc.
References blender::IndexRange::drop_back(), blender::Span< T >::index_range(), and subdivide_bezier_positions().
Referenced by subdivide_bezier_positions(), and subdivide_curves().
|
static |
Definition at line 132 of file subdivide_curves.cc.
References BEZIER_HANDLE_FREE, BEZIER_HANDLE_VECTOR, blender::MutableSpan< T >::fill(), blender::IndexRange::first(), insert(), blender::IndexRange::last(), linear_interpolation(), blender::IndexRange::one_after_last(), blender::IndexRange::shift(), blender::IndexRange::size(), blender::MutableSpan< T >::slice(), blender::MutableSpan< T >::slice_safe(), and subdivide_bezier_segment().
Referenced by subdivide_bezier_segment().
| bke::CurvesGeometry blender::geometry::subdivide_curves | ( | const bke::CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const VArray< int > & | cuts, | ||
| const bke::AttributeFilter & | attribute_filter = {} ) |
Add more points along each segment, with the amount of points to add in each segment described by the #cuts input. The new points are equidistant in parameter space, but not in the actual distances.
| selection | A selection of curves to consider when subdividing. |
Definition at line 271 of file subdivide_curves.cc.
References ATTR_DOMAIN_MASK_POINT, blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), calculate_result_offsets(), blender::index_mask::IndexMask::complement(), blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::Span< T >::last(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::resize(), selection, blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), subdivide_attribute_catmull_rom(), subdivide_attribute_linear(), subdivide_bezier_positions(), and subdivide_curves().
Referenced by subdivide_curves(), blender::nodes::node_geo_curve_subdivide_cc::subdivide_curves(), blender::subdivide_drawing(), and blender::nodes::node_geo_curve_subdivide_cc::subdivide_grease_pencil_curves().
|
static |
Definition at line 449 of file mesh_split_edges.cc.
References swap_edge_vert().
Referenced by reassign_loose_edge_verts(), and swap_edge_vert().
|
static |
Definition at line 410 of file realize_instances.cc.
References BLI_assert, blender::GMutableSpan::size(), blender::GSpan::size(), threaded_copy(), blender::GMutableSpan::type(), and blender::GSpan::type().
Referenced by threaded_copy().
|
static |
Definition at line 419 of file realize_instances.cc.
References BLI_assert, blender::GMutableSpan::size(), threaded_fill(), and blender::GMutableSpan::type().
Referenced by threaded_fill().
|
static |
Definition at line 240 of file set_curve_type.cc.
References CURVE_TYPE_NURBS, and is_nurbs_to_bezier_one_to_one().
Referenced by convert_curves_to_bezier().
Definition at line 257 of file set_curve_type.cc.
References CURVE_TYPE_BEZIER, and CURVE_TYPE_CATMULL_ROM.
Referenced by convert_curves_to_nurbs().
|
static |
Definition at line 62 of file merge_curves.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, blender::Array< T, InlineBufferCapacity, Allocator >::fill(), foreach_connected_curve(), blender::Span< T >::index_range(), next, range, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by curves_merge_endpoints().
|
static |
Definition at line 177 of file geometry/intern/transform.cc.
References copy_m3_m4(), blender::bke::CurvesEditHints::deform_mats, blender::MutableSpan< T >::index_range(), blender::bke::CurvesEditHints::positions_for_write(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), transform_curve_edit_hints(), and transform_positions().
Referenced by transform_curve_edit_hints(), and transform_geometry().
| std::optional< TransformGeometryErrors > blender::geometry::transform_geometry | ( | bke::GeometrySet & | geometry, |
| const float4x4 & | transform ) |
Definition at line 246 of file geometry/intern/transform.cc.
References transform_curve_edit_hints(), transform_geometry(), transform_gizmo_edit_hints(), transform_greasepencil(), transform_instances(), transform_mesh(), transform_pointcloud(), transform_volume(), and blender::geometry::TransformGeometryErrors::volume_too_small.
Referenced by blender::nodes::node_geo_object_info_cc::node_geo_exec(), blender::nodes::node_geo_transform_geometry_cc::node_geo_exec(), and transform_geometry().
|
static |
Definition at line 197 of file geometry/intern/transform.cc.
References blender::bke::GizmoEditHints::gizmo_transforms, and transform_gizmo_edit_hints().
Referenced by transform_geometry(), and transform_gizmo_edit_hints().
|
static |
Definition at line 2130 of file realize_instances.cc.
References transform_grease_pencil_layers().
Referenced by execute_realize_grease_pencil_tasks(), and transform_grease_pencil_layers().
|
static |
Definition at line 100 of file geometry/intern/transform.cc.
References transform_greasepencil().
Referenced by transform_geometry(), and transform_greasepencil().
|
static |
Definition at line 121 of file geometry/intern/transform.cc.
References blender::MutableSpan< T >::index_range(), and transform_instances().
Referenced by transform_geometry(), and transform_instances().
Definition at line 50 of file geometry/intern/transform.cc.
References transform_mesh(), and transform_positions().
| void blender::geometry::transform_mesh | ( | Mesh & | mesh, |
| float3 | translation, | ||
| math::Quaternion | rotation, | ||
| float3 | scale ) |
Definition at line 281 of file geometry/intern/transform.cc.
References blender::math::from_loc_rot_scale(), and transform_mesh().
Referenced by blender::nodes::node_geo_mesh_primitive_cube_cc::create_cube_mesh(), blender::nodes::node_geo_bounding_box_cc::node_geo_exec(), transform_geometry(), transform_mesh(), and transform_mesh().
|
static |
Definition at line 80 of file geometry/intern/transform.cc.
References transform_pointcloud(), and transform_positions().
Referenced by transform_geometry(), and transform_pointcloud().
|
static |
Definition at line 384 of file realize_instances.cc.
|
static |
Definition at line 41 of file geometry/intern/transform.cc.
|
static |
Definition at line 131 of file geometry/intern/transform.cc.
References BKE_volume_grid_determinant_valid(), BKE_volume_grid_get_for_write(), BKE_volume_num_grids(), blender::math::determinant(), determinant(), blender::math::normalize(), transform_volume(), UNUSED_VARS, blender::MatBase< T, NumCol, NumRow, Alignment >::x_axis(), blender::MatBase< T, NumCol, NumRow, Alignment >::y_axis(), and blender::MatBase< T, NumCol, NumRow, Alignment >::z_axis().
Referenced by transform_geometry(), transform_volume(), and translate_volume().
|
static |
Definition at line 204 of file geometry/intern/transform.cc.
References blender::bke::CurvesEditHints::positions_for_write(), translate_curve_edit_hints(), and translate_positions().
Referenced by translate_curve_edit_hints(), and translate_geometry().
| void blender::geometry::translate_geometry | ( | bke::GeometrySet & | geometry, |
| const float3 | translation ) |
Definition at line 218 of file geometry/intern/transform.cc.
References BKE_mesh_translate(), translate_curve_edit_hints(), translate_geometry(), translate_gizmos_edit_hints(), translate_greasepencil(), translate_instances(), translate_pointcloud(), and translate_volume().
Referenced by blender::nodes::node_geo_transform_geometry_cc::node_geo_exec(), and translate_geometry().
|
static |
Definition at line 211 of file geometry/intern/transform.cc.
References blender::bke::GizmoEditHints::gizmo_transforms, and translate_gizmos_edit_hints().
Referenced by translate_geometry(), and translate_gizmos_edit_hints().
|
static |
Definition at line 89 of file geometry/intern/transform.cc.
References blender::MatBase< T, NumCol, NumRow, Alignment >::location(), and translate_greasepencil().
Referenced by translate_geometry(), and translate_greasepencil().
|
static |
Definition at line 111 of file geometry/intern/transform.cc.
References blender::MutableSpan< T >::index_range(), and translate_instances().
Referenced by translate_geometry(), and translate_instances().
|
static |
Definition at line 56 of file geometry/intern/transform.cc.
References bounds(), blender::math::is_zero(), PointCloud::runtime, translate_pointcloud(), and translate_positions().
Referenced by translate_geometry(), and translate_pointcloud().
|
static |
Definition at line 32 of file geometry/intern/transform.cc.
References blender::threading::parallel_for().
|
static |
Definition at line 172 of file geometry/intern/transform.cc.
References blender::math::from_location(), transform_volume(), and translate_volume().
Referenced by translate_geometry(), and translate_volume().
|
static |
Definition at line 64 of file reverse_uv_sampler.cc.
References blender::math::max(), blender::math::min(), and uv_to_cell().
|
static |
Definition at line 581 of file trim_curves.cc.
References blender::bke::attribute_math::convert_to_static_type(), and blender::bke::CurvesGeometry::points_by_curve().
Referenced by trim_bezier_curves(), and trim_polygonal_curves().
|
static |
Definition at line 692 of file trim_curves.cc.
References fill_nurbs_data(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), sample_interval_bezier(), blender::Span< T >::slice(), trim_attribute_linear(), and trim_bezier_curves().
Referenced by trim_bezier_curves(), and trim_curves().
|
static |
Definition at line 643 of file trim_curves.cc.
References blender::bke::CurvesGeometry::cyclic(), fill_bezier_data(), fill_nurbs_data(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::Span< T >::slice(), and trim_catmull_rom_curves().
Referenced by trim_catmull_rom_curves(), and trim_curves().
| bke::CurvesGeometry blender::geometry::trim_curves | ( | const bke::CurvesGeometry & | src_curves, |
| const IndexMask & | selection, | ||
| const VArray< float > & | starts, | ||
| const VArray< float > & | ends, | ||
| GeometryNodeCurveSampleMode | mode, | ||
| const bke::AttributeFilter & | attribute_filter ) |
Definition at line 929 of file trim_curves.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), ATTR_DOMAIN_MASK_POINT, blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BLI_assert, blender::index_mask::IndexMask::complement(), compute_curve_trim_parameters(), blender::bke::CurvesGeometry::curve_type_counts(), CURVE_TYPE_NURBS, CURVE_TYPE_POLY, blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::fill_curve_types(), blender::bke::CurvesGeometry::has_curve_with_type(), blender::index_mask::IndexMask::is_empty(), blender::Span< T >::last(), blender::bke::MutableAttributeAccessor::lookup_for_write_span(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::MutableAttributeAccessor::remove(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove(), blender::bke::CurvesGeometry::remove_attributes_based_on_types(), blender::bke::CurvesGeometry::resize(), selection, blender::VArrayCommon< T >::size(), blender::bke::CurvesGeometry::tag_topology_changed(), trim_bezier_curves(), trim_catmull_rom_curves(), trim_curves(), trim_evaluated_curves(), and trim_polygonal_curves().
Referenced by blender::deform_drawing(), trim_curves(), and blender::nodes::node_geo_curve_trim_cc::trim_curves().
|
static |
Definition at line 743 of file trim_curves.cc.
References blender::bke::CurvesGeometry::evaluated_points_by_curve(), blender::bke::CurvesGeometry::evaluated_positions(), fill_bezier_data(), fill_nurbs_data(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions_for_write(), blender::Span< T >::slice(), and trim_evaluated_curves().
Referenced by trim_curves(), and trim_evaluated_curves().
|
static |
Definition at line 608 of file trim_curves.cc.
References fill_bezier_data(), fill_nurbs_data(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::Span< T >::slice(), trim_attribute_linear(), and trim_polygonal_curves().
Referenced by trim_curves(), and trim_polygonal_curves().
|
static |
Definition at line 799 of file trim_curves.cc.
References GEO_NODE_CURVE_SAMPLE_FACTOR, blender::Span< T >::last(), and trim_sample_length().
Referenced by compute_curve_trim_parameters(), and trim_sample_length().
|
static |
Update corner verts so that each group of corners gets its own vertex. For the last "new vertex" we can reuse the original vertex, which would otherwise become unused by any faces. The loose edge case will have to deal with this later.
Definition at line 300 of file mesh_split_edges.cc.
References update_corner_verts().
Referenced by split_edges(), and update_corner_verts().
|
static |
Helper function for pack_islands_alpaca_rotate
The "Hole" is an AABB region of the UV plane that is stored in an unusual way.
| hole | is the XY position of lower left corner of the AABB. |
| hole_diagonal | is the extent of the AABB, possibly flipped. |
| hole_rotate | is a boolean value, tracking if hole_diagonal is flipped. |
Given an alternate AABB specified by (u0, v0, u1, v1), the helper will update the Hole to the candidate location if it is larger.
Definition at line 527 of file uv_pack.cc.
References BLI_assert, and UNUSED_VARS.
Referenced by pack_islands_alpaca_rotate().
|
static |
Definition at line 431 of file mesh_split_edges.cc.
References edge_from_corner(), blender::Span< T >::first(), blender::index_mask::IndexMask::foreach_index(), int2, blender::Span< T >::is_empty(), update_unselected_edges(), blender::OrderedEdge::v_high, and blender::OrderedEdge::v_low.
Referenced by split_edges(), and update_unselected_edges().
| bool blender::geometry::use_debug_randomization | ( | ) |
Definition at line 242 of file randomize.cc.
References G.
Referenced by debug_randomize_curve_order(), debug_randomize_edge_order(), debug_randomize_face_order(), debug_randomize_instance_order(), debug_randomize_mesh_order(), debug_randomize_point_order(), and debug_randomize_vert_order().
| ParamKey blender::geometry::uv_find_pin_index | ( | ParamHandle * | handle, |
| const int | bmvertindex, | ||
| const float | uv[2] ) |
Definition at line 3783 of file uv_parametrizer.cc.
References BLI_ghash_lookup(), len_squared_v2v2(), blender::geometry::GeoUVPinIndex::next, POINTER_FROM_INT, blender::geometry::GeoUVPinIndex::reindex, and blender::geometry::GeoUVPinIndex::uv.
Referenced by construct_param_edge_set_seams(), and construct_param_handle_face_add().
| void blender::geometry::uv_parametrizer_aspect_ratio | ( | ParamHandle * | handle, |
| float | aspect_y ) |
Definition at line 3771 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::aspect_y, and BLI_assert.
Referenced by construct_param_handle(), construct_param_handle_multi(), and construct_param_handle_subsurfed().
| void blender::geometry::uv_parametrizer_average | ( | ParamHandle * | handle, |
| bool | ignore_pinned, | ||
| bool | scale_uv, | ||
| bool | shear ) |
Definition at line 4238 of file uv_parametrizer.cc.
References blender::geometry::PChart::area_3d, blender::geometry::PChart::area_uv, blender::geometry::ParamHandle::charts, clamp_f(), blender::geometry::PVert::co, dot_v3v3(), blender::geometry::PVert::edge, fabsf, blender::geometry::PChart::faces, blender::geometry::PChart::has_pins, invert_m2_m2(), len_v3(), mid_v2_v2v2(), blender::geometry::ParamHandle::ncharts, blender::geometry::PEdge::next, normalize_v3(), blender::geometry::PChart::origin, p_chart_uv_bbox(), p_chart_uv_scale(), p_chart_uv_transform(), p_chart_uv_translate(), p_face_area(), p_face_uv_area_signed(), sqrtf, sub_v2_v2v2(), blender::geometry::PVert::uv, and blender::geometry::PEdge::vert.
Referenced by average_islands_scale_exec(), blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), and uvedit_unwrap().
| void blender::geometry::uv_parametrizer_construct_end | ( | ParamHandle * | phandle, |
| bool | fill_holes, | ||
| bool | topology_from_uvs, | ||
| int * | r_count_failed = nullptr ) |
Definition at line 4024 of file uv_parametrizer.cc.
References BLI_assert, blender::geometry::ParamHandle::charts, blender::geometry::ParamHandle::construction_chart, blender::geometry::ParamHandle::hash_edges, blender::geometry::ParamHandle::hash_faces, blender::geometry::ParamHandle::hash_verts, MEM_freeN(), blender::geometry::PChart::nboundaries, blender::geometry::ParamHandle::ncharts, p_chart_boundaries(), p_chart_fill_boundaries(), p_connect_pairs(), p_split_charts(), p_vert_load_pin_select_uvs(), PHANDLE_STATE_ALLOCATED, PHANDLE_STATE_CONSTRUCTED, phash_safe_delete(), blender::geometry::ParamHandle::state, v, and blender::geometry::PChart::verts.
Referenced by construct_param_handle(), construct_param_handle_multi(), construct_param_handle_subsurfed(), blender::nodes::node_geo_uv_pack_islands_cc::construct_uv_gvarray(), and blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray().
| void blender::geometry::uv_parametrizer_edge_set_seam | ( | ParamHandle * | phandle, |
| const ParamKey * | vkeys ) |
Definition at line 4014 of file uv_parametrizer.cc.
References BLI_assert, e, p_edge_lookup(), PEDGE_SEAM, PHANDLE_STATE_ALLOCATED, and blender::geometry::ParamHandle::state.
Referenced by construct_param_edge_set_seams(), construct_param_handle_subsurfed(), and blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray().
| void blender::geometry::uv_parametrizer_face_add | ( | ParamHandle * | handle, |
| const ParamKey | key, | ||
| const int | nverts, | ||
| const ParamKey * | vkeys, | ||
| const float ** | co, | ||
| float ** | uv, | ||
| const float * | weight, | ||
| const bool * | pin, | ||
| const bool * | select ) |
Definition at line 3921 of file uv_parametrizer.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_unchecked(), BLI_assert, blender::Array< T, InlineBufferCapacity, Allocator >::first(), int, p_add_ngon(), p_face_add_construct(), p_face_exists(), PHANDLE_STATE_ALLOCATED, blender::Vector< T, InlineBufferCapacity, Allocator >::remove(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), select(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), and blender::geometry::ParamHandle::state.
Referenced by construct_param_handle_face_add(), construct_param_handle_subsurfed(), blender::nodes::node_geo_uv_pack_islands_cc::construct_uv_gvarray(), blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), and p_add_ngon().
| void blender::geometry::uv_parametrizer_flush | ( | ParamHandle * | handle | ) |
Definition at line 4378 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::charts, blender::geometry::ParamHandle::ncharts, p_flush_uvs(), and blender::geometry::PChart::skip_flush.
Referenced by average_islands_scale_exec(), blender::nodes::node_geo_uv_pack_islands_cc::construct_uv_gvarray(), blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), ED_uvedit_live_unwrap_re_solve(), minimize_stretch_exit(), minimize_stretch_iteration(), and uvedit_unwrap().
| void blender::geometry::uv_parametrizer_flush_restore | ( | ParamHandle * | handle | ) |
Definition at line 4390 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::charts, blender::geometry::PChart::faces, blender::geometry::ParamHandle::ncharts, and p_face_restore_uvs().
Referenced by ED_uvedit_live_unwrap_end(), and minimize_stretch_exit().
| bool blender::geometry::uv_parametrizer_is_slim | ( | const ParamHandle * | phandle | ) |
Definition at line 5389 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::slim_mt, and UNUSED_VARS.
Referenced by ED_uvedit_live_unwrap_end(), and ED_uvedit_live_unwrap_re_solve().
| void blender::geometry::uv_parametrizer_lscm_begin | ( | ParamHandle * | handle, |
| bool | live, | ||
| bool | abf ) |
Definition at line 4073 of file uv_parametrizer.cc.
References BLI_assert, blender::geometry::ParamHandle::charts, blender::geometry::PChart::faces, blender::geometry::ParamHandle::ncharts, p_chart_lscm_begin(), p_face_backup_uvs(), PHANDLE_STATE_CONSTRUCTED, PHANDLE_STATE_LSCM, and blender::geometry::ParamHandle::state.
Referenced by blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), ED_uvedit_live_unwrap_begin(), and uvedit_unwrap().
| void blender::geometry::uv_parametrizer_lscm_end | ( | ParamHandle * | handle | ) |
Definition at line 4124 of file uv_parametrizer.cc.
References BLI_assert, blender::geometry::ParamHandle::charts, blender::geometry::ParamHandle::ncharts, p_chart_lscm_end(), PHANDLE_STATE_CONSTRUCTED, PHANDLE_STATE_LSCM, and blender::geometry::ParamHandle::state.
Referenced by blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), ED_uvedit_live_unwrap_end(), and uvedit_unwrap().
| void blender::geometry::uv_parametrizer_lscm_solve | ( | ParamHandle * | handle, |
| int * | count_changed, | ||
| int * | count_failed ) |
Definition at line 4086 of file uv_parametrizer.cc.
References BLI_assert, blender::geometry::ParamHandle::charts, blender::geometry::PChart::context, blender::geometry::PChart::has_pins, blender::geometry::ParamHandle::ncharts, p_chart_lscm_end(), p_chart_lscm_solve(), p_chart_lscm_transform_single_pin(), p_chart_rotate_fit_aabb(), p_chart_rotate_minimum_area(), PHANDLE_STATE_LSCM, blender::geometry::PChart::single_pin, and blender::geometry::ParamHandle::state.
Referenced by blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), ED_uvedit_live_unwrap_re_solve(), and uvedit_unwrap().
| void blender::geometry::uv_parametrizer_pack | ( | ParamHandle * | handle, |
| float | margin, | ||
| bool | do_rotate, | ||
| bool | ignore_pinned ) |
Definition at line 4182 of file uv_parametrizer.cc.
References blender::geometry::PackIsland::add_triangle(), blender::geometry::PackIsland::angle, blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::geometry::PackIsland::aspect_y, blender::geometry::PackIsland::build_transformation(), blender::geometry::PackIsland::caller_index, blender::geometry::PackIsland::can_scale_(), ED_UVPACK_MARGIN_SCALED, ED_UVPACK_ROTATION_ANY, ED_UVPACK_ROTATION_NONE, blender::geometry::PVert::edge, blender::geometry::PChart::faces, blender::geometry::PChart::has_pins, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), mul_v2_m2_add_v2v2(), blender::geometry::PEdge::next, pack_islands(), params, blender::geometry::PackIsland::pinned, blender::geometry::PackIsland::pre_translate, blender::geometry::PVert::uv, uv_parametrizer_scale_x(), v, v2, blender::geometry::PEdge::vert, and blender::geometry::PChart::verts.
Referenced by blender::nodes::node_geo_uv_pack_islands_cc::construct_uv_gvarray(), and blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray().
|
static |
Definition at line 462 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::charts, blender::geometry::ParamHandle::ncharts, v, and blender::geometry::PChart::verts.
Referenced by uv_parametrizer_pack().
| void blender::geometry::uv_parametrizer_slim_live_begin | ( | ParamHandle * | phandle, |
| const ParamSlimOptions * | slim_options ) |
Definition at line 5284 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::charts, slim::MatrixTransfer::charts, blender::geometry::PChart::faces, blender::geometry::ParamHandle::ncharts, p_face_backup_uvs(), PVERT_PIN, PVERT_SELECT, select(), slim::MatrixTransfer::setup_slim_data(), blender::geometry::PChart::skip_flush, blender::geometry::ParamHandle::slim_mt, slim::MatrixTransferChart::succeeded, UNUSED_VARS, v, and blender::geometry::PChart::verts.
Referenced by ED_uvedit_live_unwrap_begin().
| void blender::geometry::uv_parametrizer_slim_live_end | ( | ParamHandle * | phandle | ) |
Definition at line 5373 of file uv_parametrizer.cc.
References slim::MatrixTransfer::charts, slim::MatrixTransferChart::free_slim_data(), blender::geometry::ParamHandle::ncharts, blender::geometry::ParamHandle::slim_mt, and UNUSED_VARS.
Referenced by ED_uvedit_live_unwrap_end().
| void blender::geometry::uv_parametrizer_slim_live_solve_iteration | ( | ParamHandle * | phandle | ) |
Definition at line 5346 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::charts, slim::MatrixTransfer::charts, slim::MatrixTransferChart::data, blender::geometry::ParamHandle::ncharts, slim::MatrixTransfer::parametrize_live(), slim::MatrixTransfer::pinned_vertex_data, blender::geometry::ParamHandle::slim_mt, and UNUSED_VARS.
Referenced by ED_uvedit_live_unwrap_re_solve().
| void blender::geometry::uv_parametrizer_slim_solve | ( | ParamHandle * | phandle, |
| const ParamSlimOptions * | slim_options, | ||
| int * | count_changed, | ||
| int * | count_failed ) |
Definition at line 5264 of file uv_parametrizer.cc.
References slim::MatrixTransfer::parametrize(), blender::geometry::ParamHandle::slim_mt, and UNUSED_VARS.
Referenced by uvedit_unwrap().
| void blender::geometry::uv_parametrizer_slim_stretch_iteration | ( | ParamHandle * | phandle, |
| float | blend ) |
Definition at line 5328 of file uv_parametrizer.cc.
References blend, slim::MatrixTransfer::charts, blender::geometry::ParamHandle::ncharts, blender::geometry::ParamHandle::slim_mt, and UNUSED_VARS.
| void blender::geometry::uv_parametrizer_stretch_begin | ( | ParamHandle * | handle | ) |
Definition at line 4138 of file uv_parametrizer.cc.
References blender::geometry::ParamHandle::blend, BLI_assert, BLI_rng_new(), blender::geometry::ParamHandle::charts, blender::geometry::PChart::faces, blender::geometry::ParamHandle::ncharts, p_face_area(), p_face_backup_uvs(), p_stretch_pin_boundary(), PHANDLE_STATE_CONSTRUCTED, PHANDLE_STATE_STRETCH, blender::geometry::ParamHandle::rng, blender::geometry::ParamHandle::state, v, and blender::geometry::PChart::verts.
Referenced by minimize_stretch_init().
| void blender::geometry::uv_parametrizer_stretch_blend | ( | ParamHandle * | handle, |
| float | blend ) |
Definition at line 4162 of file uv_parametrizer.cc.
References blend, blender::geometry::ParamHandle::blend, BLI_assert, PHANDLE_STATE_STRETCH, and blender::geometry::ParamHandle::state.
Referenced by minimize_stretch_init(), and minimize_stretch_iteration().
| void blender::geometry::uv_parametrizer_stretch_end | ( | ParamHandle * | handle | ) |
Definition at line 4176 of file uv_parametrizer.cc.
References BLI_assert, PHANDLE_STATE_CONSTRUCTED, PHANDLE_STATE_STRETCH, and blender::geometry::ParamHandle::state.
Referenced by minimize_stretch_exit().
| void blender::geometry::uv_parametrizer_stretch_iter | ( | ParamHandle * | handle | ) |
Definition at line 4168 of file uv_parametrizer.cc.
References BLI_assert, blender::geometry::ParamHandle::charts, blender::geometry::ParamHandle::ncharts, p_chart_stretch_minimize(), PHANDLE_STATE_STRETCH, blender::geometry::ParamHandle::rng, and blender::geometry::ParamHandle::state.
Referenced by minimize_stretch_iteration().
| void blender::geometry::uv_prepare_pin_index | ( | ParamHandle * | handle, |
| const int | bmvertindex, | ||
| const float | uv[2] ) |
Definition at line 3819 of file uv_parametrizer.cc.
References BLI_ghash_insert(), BLI_ghash_int_new(), BLI_ghash_lookup(), equals_v2v2(), new_geo_uv_pinindex(), blender::geometry::GeoUVPinIndex::next, POINTER_FROM_INT, and blender::geometry::GeoUVPinIndex::uv.
Referenced by uvedit_prepare_pinned_indices().
Definition at line 59 of file reverse_uv_sampler.cc.
Referenced by blender::geometry::ReverseUVSampler::sample(), and tri_to_cell_bounds().
| static IndexMask blender::geometry::vert_selection_from_edge | ( | Span< int2 > | edges, |
| const IndexMask & | selected_edges, | ||
| int | verts_num, | ||
| IndexMaskMemory & | memory ) |
A vertex is selected if it's used by a selected edge.
Definition at line 13 of file mesh_selection.cc.
References blender::index_mask::IndexMask::foreach_index_optimized(), and blender::index_mask::IndexMask::from_bools().
Referenced by split_edges().
| IndexMask blender::geometry::vert_selection_from_face | ( | OffsetIndices< int > | faces, |
| const IndexMask & | face_mask, | ||
| Span< int > | corner_verts, | ||
| int | verts_num, | ||
| IndexMaskMemory & | memory ) |
A vertex is selected if it is used by a selected face.
Definition at line 39 of file mesh_selection.cc.
References mapped_corner_selection_from_face().
|
static |
Alloc Weld Edges.
Definition at line 330 of file mesh_merge_by_distance.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), ELEM_COLLAPSED, OUT_OF_CONTEXT, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), and v2.
Referenced by weld_mesh_context_create().
|
static |
Fills r_edge_dest_map indicating the duplicated edges.
| weld_edges | Candidate edges for merging (edges that don't collapse and that have at least one weld vertex). |
| r_edge_dest_map | Resulting map of indices pointing the source edges to each target. |
| r_edge_double_kill_len | Resulting number of duplicate edges to be destroyed. |
Definition at line 377 of file mesh_merge_by_distance.cc.
References BLI_assert, blender::geometry::WeldEdge::edge_orig, ELEM, ELEM_COLLAPSED, blender::Span< T >::index_range(), blender::Span< T >::is_empty(), blender::Array< T, InlineBufferCapacity, Allocator >::last(), OUT_OF_CONTEXT, blender::Span< T >::size(), blender::geometry::WeldEdge::vert_a, and blender::geometry::WeldEdge::vert_b.
Referenced by weld_mesh_context_create().
|
static |
Definition at line 540 of file mesh_merge_by_distance.cc.
References blender::geometry::WeldLoopOfPolyIter::corner_edges, blender::geometry::WeldLoopOfPolyIter::corner_verts, ELEM_COLLAPSED, blender::geometry::WeldPoly::flag, blender::geometry::WeldLoopOfPolyIter::group, blender::geometry::WeldLoopOfPolyIter::group_len, blender::geometry::WeldLoopOfPolyIter::loop_ctx_len, blender::geometry::WeldPoly::loop_ctx_len, blender::geometry::WeldLoopOfPolyIter::loop_ctx_start, blender::geometry::WeldPoly::loop_ctx_start, blender::geometry::WeldLoopOfPolyIter::loop_end, blender::geometry::WeldPoly::loop_end, blender::geometry::WeldLoopOfPolyIter::loop_iter, blender::geometry::WeldLoopOfPolyIter::loop_map, blender::geometry::WeldPoly::loop_start, OUT_OF_CONTEXT, blender::geometry::WeldLoopOfPolyIter::v, weld_iter_loop_of_poly_next(), and blender::geometry::WeldLoopOfPolyIter::wloop.
Referenced by create_merged_mesh(), and weld_poly_find_doubles().
|
static |
Definition at line 489 of file mesh_merge_by_distance.cc.
References BLI_assert, blender::geometry::WeldLoopOfPolyIter::corner_edges, blender::geometry::WeldLoopOfPolyIter::corner_verts, count, blender::geometry::WeldLoopOfPolyIter::e, blender::geometry::WeldLoop::edge, ELEM_COLLAPSED, blender::geometry::WeldLoop::flag, blender::geometry::WeldLoopOfPolyIter::group, blender::geometry::WeldLoopOfPolyIter::group_len, l, blender::geometry::WeldLoopOfPolyIter::loop_ctx_len, blender::geometry::WeldLoopOfPolyIter::loop_ctx_start, blender::geometry::WeldLoopOfPolyIter::loop_end, blender::geometry::WeldLoopOfPolyIter::loop_iter, blender::geometry::WeldLoopOfPolyIter::loop_map, blender::geometry::WeldLoop::loop_next, blender::geometry::WeldLoop::loop_orig, OUT_OF_CONTEXT, blender::geometry::WeldLoopOfPolyIter::v, blender::geometry::WeldLoop::vert, and blender::geometry::WeldLoopOfPolyIter::wloop.
Referenced by create_merged_mesh(), weld_iter_loop_of_poly_begin(), and weld_poly_find_doubles().
|
static |
Definition at line 1227 of file mesh_merge_by_distance.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::geometry::WeldMesh::double_edges, blender::geometry::WeldMesh::double_verts, blender::geometry::WeldMesh::edge_dest_map, blender::geometry::WeldMesh::edge_kill_len, faces, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::geometry::WeldMesh::vert_dest_map, blender::geometry::WeldMesh::vert_kill_len, weld_edge_ctx_alloc_and_find_collapsed(), weld_edge_find_doubles(), weld_poly_find_doubles(), weld_poly_loop_ctx_alloc(), weld_poly_loop_ctx_setup_collapsed_and_split(), and weld_vert_ctx_alloc_and_setup().
Referenced by create_merged_mesh().
|
static |
Definition at line 1148 of file mesh_merge_by_distance.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, blender::geometry::WeldLoopOfPolyIter::e, blender::geometry::WeldMesh::face_kill_len, blender::offset_indices::OffsetIndices< T >::index_range(), blender::geometry::WeldMesh::loop_kill_len, blender::geometry::WeldMesh::loop_map, OUT_OF_CONTEXT, blender::geometry::WeldPoly::poly_dst, poly_find_doubles(), blender::geometry::WeldPoly::poly_orig, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), weld_iter_loop_of_poly_begin(), weld_iter_loop_of_poly_next(), blender::geometry::WeldMesh::wloop, and blender::geometry::WeldMesh::wpoly.
Referenced by weld_mesh_context_create().
|
static |
Alloc Weld Polygons and Weld Loops.
Definition at line 575 of file mesh_merge_by_distance.cc.
References CLAMP_MIN, e, blender::geometry::WeldLoop::edge, blender::geometry::WeldMesh::edge_dest_map, blender::geometry::WeldMesh::face_map, blender::Vector< T, InlineBufferCapacity, Allocator >::increase_size_by_unchecked(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), blender::geometry::WeldPoly::loop_ctx_len, blender::geometry::WeldPoly::loop_ctx_start, blender::geometry::WeldPoly::loop_end, blender::geometry::WeldMesh::loop_map, blender::geometry::WeldLoop::loop_next, blender::geometry::WeldLoop::loop_orig, blender::geometry::WeldPoly::loop_start, blender::geometry::WeldMesh::max_face_len, OUT_OF_CONTEXT, blender::geometry::WeldPoly::poly_dst, blender::geometry::WeldPoly::poly_orig, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), v, blender::geometry::WeldLoop::vert, blender::geometry::WeldMesh::vert_dest_map, blender::geometry::WeldMesh::wloop, blender::geometry::WeldMesh::wpoly, and blender::geometry::WeldMesh::wpoly_new_len.
Referenced by weld_mesh_context_create().
|
static |
Alloc Weld Polygons and Weld Loops.
| remain_edge_ctx_len | Context weld edges that won't be destroyed by merging. |
| r_vlinks | An uninitialized buffer used to compute groups of WeldPolys attached to each weld target vertex. It doesn't need to be passed as a parameter but this is done to reduce allocations. |
Definition at line 864 of file mesh_merge_by_distance.cc.
References BLI_assert, blender::geometry::WeldLoop::edge, ELEM_COLLAPSED, blender::geometry::WeldMesh::face_kill_len, blender::geometry::WeldLoop::flag, blender::geometry::WeldPoly::flag, l, blender::geometry::WeldPoly::loop_end, blender::geometry::WeldMesh::loop_kill_len, blender::geometry::WeldMesh::loop_map, blender::geometry::WeldLoop::loop_next, blender::geometry::WeldLoop::loop_orig, blender::geometry::WeldPoly::loop_start, OUT_OF_CONTEXT, blender::geometry::WeldMesh::vert_dest_map, weld_poly_split_recursive(), blender::geometry::WeldMesh::wloop, and blender::geometry::WeldMesh::wpoly.
Referenced by weld_mesh_context_create().
|
static |
Definition at line 691 of file mesh_merge_by_distance.cc.
References BLI_assert, ELEM_COLLAPSED, blender::geometry::WeldLoop::flag, blender::geometry::WeldPoly::flag, blender::geometry::WeldPoly::loop_ctx_len, blender::geometry::WeldPoly::loop_ctx_start, blender::geometry::WeldPoly::loop_end, blender::geometry::WeldMesh::loop_map, blender::geometry::WeldLoop::loop_next, blender::geometry::WeldPoly::loop_start, OUT_OF_CONTEXT, blender::geometry::WeldPoly::poly_dst, blender::geometry::WeldPoly::poly_orig, blender::geometry::WeldLoop::vert, weld_poly_split_recursive(), blender::geometry::WeldMesh::wloop, blender::geometry::WeldMesh::wpoly, and blender::geometry::WeldMesh::wpoly_new_len.
Referenced by weld_poly_loop_ctx_setup_collapsed_and_split(), and weld_poly_split_recursive().
|
static |
Create a Weld Verts Context.
Definition at line 296 of file mesh_merge_by_distance.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::MutableSpan< T >::index_range(), OUT_OF_CONTEXT, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), and blender::MutableSpan< T >::size().
Referenced by weld_mesh_context_create().
|
static |
Definition at line 4618 of file uv_parametrizer.cc.
Referenced by p_chart_correct_degenerate_triangle_point(), p_chart_correct_degenerate_triangles(), and p_chart_correct_degenerate_triangles2().
|
staticconstexpr |
Definition at line 38 of file add_curves_on_mesh.cc.
Referenced by find_curve_neighbors().
|
static |
Definition at line 179 of file uv_parametrizer.cc.
Referenced by phash_insert(), and phash_new().