|
Blender V5.0
|
Classes | |
| struct | UVPrimitivePaintInput |
| struct | PackedPixelRow |
| struct | UDIMTilePixels |
| struct | UDIMTileUndo |
| struct | NodeData |
| struct | DeltaCopyPixelCommand |
| struct | CopyPixelGroup |
| struct | CopyPixelCommand |
| struct | CopyPixelTile |
| struct | CopyPixelTiles |
| struct | PBVHData |
| struct | UVPrimitiveLookup |
| struct | Vertex |
| struct | Edge |
| class | NonManifoldTileEdges |
| class | NonManifoldUVEdges |
| class | PixelNodesTileData |
| struct | Rows |
Enumerations | |
| enum class | CoordSpace { UV , Tile } |
Variables | |
| constexpr bool | USE_WATERTIGHT_CHECK = false |
| const int | THREADING_GRAIN_SIZE = 128 |
|
strong |
Coordinate space of a coordinate.
| Enumerator | |
|---|---|
| UV | Coordinate is in UV coordinate space. As in unmodified from mesh data. |
| Tile | Coordinate is in Tile coordinate space. With tile coordinate space each unit is a single pixel of the tile. Range is [0..buffer width]. |
Definition at line 27 of file pbvh_pixels_copy.cc.
|
static |
Add a margin to the given bounds.
Definition at line 62 of file pbvh_pixels_copy.cc.
Referenced by blender::bke::pbvh::pixels::Rows::filter_pixels_for_closer_examination(), and blender::bke::pbvh::pixels::Rows::find_copy_source().
|
static |
Definition at line 289 of file pbvh_pixels.cc.
References BKE_image_acquire_ibuf(), BKE_image_partial_update_mark_full_update(), BKE_image_release_ibuf(), ImBuf::byte_buffer, copy_v4_fl(), ImBufByteBuffer::data, ImBufFloatBuffer::data, blender::bke::pbvh::pixels::NodeData::find_tile_data(), ImBuf::float_buffer, blender::bke::image::ImageTileWrapper::get_tile_number(), blender::bke::pbvh::Node::Leaf, LISTBASE_FOREACH, blender::bke::pbvh::pixels::PackedPixelRow::num_pixels, blender::bke::pbvh::pixels::UDIMTilePixels::pixel_rows, blender::bke::pbvh::pixels::PackedPixelRow::start_image_coordinate, ImageUser::tile, ImBuf::x, and x.
|
static |
Calculate the delta of two neighbor UV coordinates in the given image buffer.
Definition at line 30 of file pbvh_pixels.cc.
References barycentric_weights_v2().
Referenced by calc_barycentric_delta_x().
|
static |
Definition at line 43 of file pbvh_pixels.cc.
References calc_barycentric_delta(), ImBuf::x, x, ImBuf::y, and y.
Referenced by do_encode_pixels().
Clamp bounds to be between 0,0 and the given resolution.
Definition at line 71 of file pbvh_pixels_copy.cc.
References BLI_rcti_init(), and BLI_rcti_isect().
Referenced by blender::bke::pbvh::pixels::Rows::find_copy_source().
| void blender::bke::pbvh::pixels::collect_dirty_tiles | ( | blender::bke::pbvh::Node & | node, |
| Vector< image::TileNumber > & | r_dirty_tiles ) |
Definition at line 474 of file pbvh_pixels.cc.
References collect_dirty_tiles(), blender::bke::pbvh::pixels::NodeData::collect_dirty_tiles(), and blender::bke::pbvh::Node::pixels_.
Referenced by collect_dirty_tiles(), blender::ed::sculpt_paint::paint::image::collect_dirty_tiles(), and blender::ed::sculpt_paint::paint::image::fix_non_manifold_seam_bleeding().
|
static |
Definition at line 86 of file pbvh_pixels_copy.cc.
References convert_coord_space(), blender::bke::pbvh::pixels::Edge< Space >::vertex_1, and blender::bke::pbvh::pixels::Edge< Space >::vertex_2.
|
static |
Definition at line 78 of file pbvh_pixels_copy.cc.
References blender::bke::pbvh::pixels::Vertex< Space >::coordinate, and blender::bke::image::ImageTileWrapper::get_tile_offset().
Referenced by convert_coord_space(), and blender::bke::pbvh::pixels::NonManifoldUVEdges::extract_tile_edges().
| void blender::bke::pbvh::pixels::copy_pixels | ( | blender::bke::pbvh::Tree & | pbvh, |
| Image & | image, | ||
| ImageUser & | image_user, | ||
| image::TileNumber | tile_number ) |
Definition at line 555 of file pbvh_pixels_copy.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), copy_pixels(), data_get(), blender::bke::pbvh::pixels::CopyPixelTiles::find_tile(), blender::threading::parallel_for(), THREADING_GRAIN_SIZE, ImageUser::tile, tile, and blender::bke::pbvh::pixels::PBVHData::tiles_copy_pixels.
Referenced by copy_pixels(), and blender::ed::sculpt_paint::paint::image::fix_non_manifold_seam_bleeding().
| void blender::bke::pbvh::pixels::copy_update | ( | blender::bke::pbvh::Tree & | pbvh, |
| Image & | image, | ||
| ImageUser & | image_user, | ||
| const uv_islands::MeshData & | mesh_data ) |
Definition at line 510 of file pbvh_pixels_copy.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), blender::bke::pbvh::pixels::CopyPixelTiles::clear(), copy_update(), data_get(), blender::bke::pbvh::pixels::NonManifoldUVEdges::extract_tile_edges(), blender::bke::pbvh::pixels::Rows::filter_pixels_for_closer_examination(), blender::bke::pbvh::pixels::Rows::find_copy_source(), blender::bke::image::ImageTileWrapper::get_tile_number(), blender::bke::pbvh::pixels::Rows::init_pixels(), Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LISTBASE_FOREACH, blender::bke::pbvh::pixels::Rows::mark_pixels_effected_by_brush(), blender::bke::pbvh::pixels::Rows::pack_into(), blender::bke::pbvh::pixels::CopyPixelTile::print_compression_rate(), ImageUser::tile, tile, blender::bke::pbvh::pixels::CopyPixelTiles::tiles, blender::bke::pbvh::pixels::PBVHData::tiles_copy_pixels, ImBuf::x, and ImBuf::y.
Referenced by copy_update().
|
static |
Definition at line 230 of file pbvh_pixels.cc.
References result, and should_pixels_be_updated().
Referenced by find_nodes_to_update().
| PBVHData & blender::bke::pbvh::pixels::data_get | ( | blender::bke::pbvh::Tree & | pbvh | ) |
Definition at line 446 of file pbvh_pixels.cc.
References BLI_assert, data, and data_get().
Referenced by copy_pixels(), copy_update(), data_get(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), and update_geom_primitives().
|
static |
Definition at line 139 of file pbvh_pixels.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), calc_barycentric_delta_x(), ceil, clamp_f(), blender::bke::pbvh::pixels::UVPrimitivePaintInput::delta_barycentric_coord_u, extract_barycentric_pixels(), blender::bke::mesh::face_triangles_range(), blender::bke::pbvh::MeshNode::faces(), blender::bke::pbvh::uv_islands::MeshData::faces, floor, blender::bke::image::ImageTileWrapper::get_tile_number(), blender::bke::image::ImageTileWrapper::get_tile_offset(), LISTBASE_FOREACH, blender::bke::pbvh::pixels::UVPrimitiveLookup::lookup, max_fff(), min_fff(), min_ii(), blender::bke::pbvh::pixels::UDIMTilePixels::pixel_rows, blender::bke::pbvh::Node::pixels_, ImageUser::tile, tile, blender::bke::pbvh::pixels::UDIMTilePixels::tile_number, blender::bke::pbvh::pixels::NodeData::tiles, blender::bke::pbvh::pixels::NodeData::uv_primitives, ImBuf::x, x, ImBuf::y, and y.
|
static |
Definition at line 59 of file pbvh_pixels.cc.
References barycentric_inside_triangle_v2(), barycentric_weights(), barycentric_weights_v2(), is_inside(), blender::bke::pbvh::uv_islands::UVIslandsMask::is_masked(), blender::bke::pbvh::pixels::PackedPixelRow::num_pixels, blender::bke::pbvh::pixels::UDIMTilePixels::pixel_rows, blender::bke::pbvh::pixels::PackedPixelRow::start_barycentric_coord, blender::bke::pbvh::pixels::PackedPixelRow::start_image_coordinate, blender::bke::pbvh::pixels::PackedPixelRow::uv_primitive_index, ImBuf::x, x, ImBuf::y, and y.
Referenced by do_encode_pixels().
|
static |
Find the nodes that needs to be updated.
The nodes that require updated are added to the r_nodes_to_update parameter. Will fill in r_visited_polygons with polygons that are owned by nodes that do not require updates.
returns if there were any nodes found (true).
Definition at line 250 of file pbvh_pixels.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::pbvh::pixels::NodeData::clear_data(), blender::bke::pbvh::pixels::PBVHData::clear_data(), count_nodes_to_update(), blender::bke::pbvh::Node::RebuildPixels, blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), and should_pixels_be_updated().
Referenced by update_pixels().
|
static |
Calculate the bounds of the given edge.
Definition at line 52 of file pbvh_pixels_copy.cc.
References BLI_rcti_do_minmax_v(), BLI_rcti_init_minmax(), blender::bke::pbvh::pixels::Edge< Space >::vertex_1, and blender::bke::pbvh::pixels::Edge< Space >::vertex_2.
Referenced by blender::bke::pbvh::pixels::Rows::filter_pixels_for_closer_examination().
| void blender::bke::pbvh::pixels::mark_image_dirty | ( | blender::bke::pbvh::Node & | node, |
| Image & | image, | ||
| ImageUser & | image_user ) |
Definition at line 453 of file pbvh_pixels.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BLI_assert, blender::bke::pbvh::pixels::NodeData::dirty, blender::bke::pbvh::pixels::NodeData::flags, blender::bke::image::ImageTileWrapper::get_tile_number(), LISTBASE_FOREACH, mark_image_dirty(), blender::bke::pbvh::pixels::NodeData::mark_region(), blender::bke::pbvh::Node::pixels_, ImageUser::tile, and tile.
Referenced by mark_image_dirty(), and SCULPT_do_paint_brush_image().
| NodeData & blender::bke::pbvh::pixels::node_data_get | ( | blender::bke::pbvh::Node & | node | ) |
Definition at line 439 of file pbvh_pixels.cc.
References BLI_assert, node_data_get(), and blender::bke::pbvh::Node::pixels_.
Referenced by blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::paint::image::do_push_undo_tile(), and node_data_get().
|
static |
Definition at line 212 of file pbvh_pixels.cc.
References blender::bke::pbvh::Node::children_offset_, blender::bke::pbvh::Node::flag_, blender::bke::pbvh::Node::Leaf, blender::bke::pbvh::Node::pixels_, blender::bke::pbvh::Node::RebuildPixels, and blender::bke::pbvh::Node::TexLeaf.
Referenced by count_nodes_to_update(), and find_nodes_to_update().
|
static |
Update the geometry primitives of the pbvh.
Definition at line 104 of file pbvh_pixels.cc.
References blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::corner_verts, data_get(), blender::bke::pbvh::pixels::PBVHData::vert_tris, and blender::bke::mesh::vert_tris_from_corner_tris().
Referenced by update_pixels().
|
static |
Definition at line 329 of file pbvh_pixels.cc.
References blender::bke::pbvh::uv_islands::UVIslandsMask::add(), blender::bke::pbvh::uv_islands::UVIslandsMask::add_tile(), BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), CD_PROP_FLOAT2, blender::bke::Corner, CustomData_get_active_layer_name(), depsgraph, blender::bke::pbvh::uv_islands::UVIslandsMask::dilate(), blender::bke::pbvh::uv_islands::UVIslands::extend_borders(), blender::bke::pbvh::uv_islands::UVIslands::extract_borders(), find_nodes_to_update(), blender::bke::image::ImageTileWrapper::get_tile_number(), blender::bke::image::ImageTileWrapper::get_tile_x_offset(), blender::bke::image::ImageTileWrapper::get_tile_y_offset(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::StringRefBase::is_empty(), LISTBASE_FOREACH, blender::bke::AttributeAccessor::lookup(), blender::threading::parallel_for(), ImageUser::tile, update_geom_primitives(), blender::bke::pbvh::vert_positions_eval(), ImBuf::x, and ImBuf::y.
Referenced by blender::bke::pbvh::build_pixels().
| const int blender::bke::pbvh::pixels::THREADING_GRAIN_SIZE = 128 |
Definition at line 24 of file pbvh_pixels_copy.cc.
Referenced by copy_pixels(), and blender::bke::pbvh::pixels::Rows::find_copy_source().
|
constexpr |
During debugging this check could be enabled. It will write to each image pixel that is covered by the Tree.
Definition at line 57 of file pbvh_pixels.cc.