Blender V4.3
DRW_select_buffer.hh File Reference
#include "DNA_ID.h"
#include "BLI_array.hh"
#include "BLI_math_vector_types.hh"
#include "BLI_sys_types.h"

Go to the source code of this file.

Classes

struct  SELECTID_ObjectData
 
struct  ObjectOffsets
 
struct  SELECTID_Context
 

Functions

bool DRW_select_buffer_elem_get (uint sel_id, uint *r_elem, uint *r_base_index, char *r_elem_type)
 
uint DRW_select_buffer_context_offset_for_object_elem (Depsgraph *depsgraph, Object *object, char elem_type)
 
uintDRW_select_buffer_read (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const rcti *rect, uint *r_buf_len)
 
uintDRW_select_buffer_bitmap_from_rect (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const rcti *rect, uint *r_bitmap_len)
 
uintDRW_select_buffer_bitmap_from_circle (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2], int radius, uint *r_bitmap_len)
 
uintDRW_select_buffer_bitmap_from_poly (Depsgraph *depsgraph, ARegion *region, View3D *v3d, blender::Span< blender::int2 > poly, const rcti *rect, uint *r_bitmap_len)
 
uint DRW_select_buffer_sample_point (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2])
 
uint DRW_select_buffer_find_nearest_to_point (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2], uint id_min, uint id_max, uint *dist)
 
void DRW_select_buffer_context_create (Depsgraph *depsgraph, blender::Span< Base * > bases, short select_mode)
 

Function Documentation

◆ DRW_select_buffer_bitmap_from_circle()

uint * DRW_select_buffer_bitmap_from_circle ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2],
int radius,
uint * r_bitmap_len )
Parameters
centerCircle center.
radiusCircle radius.
r_bitmap_lenNumber of indices in the selection id buffer.
Returns
a BLI_bitmap the length of r_bitmap_len or NULL on failure.

Definition at line 169 of file draw_select_buffer.cc.

References BLI_assert, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, depsgraph, DRW_select_buffer_read(), DRW_select_engine_context_get(), SELECTID_Context::index_drawn_len, MEM_freeN(), and rcti::xmin.

Referenced by mesh_circle_select(), paint_facesel_circle_select(), and paint_vertsel_circle_select().

◆ DRW_select_buffer_bitmap_from_poly()

uint * DRW_select_buffer_bitmap_from_poly ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
blender::Span< blender::int2 > poly,
const rcti * rect,
uint * r_bitmap_len )
Parameters
polyThe polygon coordinates.
face_lenLength of the polygon.
rectPolygon boundaries.
Returns
a BLI_bitmap.

Referenced by do_lasso_select_mesh(), do_lasso_select_paintface(), and do_lasso_select_paintvert().

◆ DRW_select_buffer_bitmap_from_rect()

uint * DRW_select_buffer_bitmap_from_rect ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const rcti * rect,
uint * r_bitmap_len )
Parameters
rectThe rectangle to sample indices from (min/max inclusive).
Returns
a BLI_bitmap the length of bitmap_len or NULL on failure.

Definition at line 133 of file draw_select_buffer.cc.

References BLI_assert, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, depsgraph, DRW_select_buffer_read(), DRW_select_engine_context_get(), SELECTID_Context::index_drawn_len, MEM_freeN(), rcti::xmax, and rcti::ymax.

Referenced by do_mesh_box_select(), do_paintface_box_select(), and do_paintvert_box_select().

◆ DRW_select_buffer_context_create()

void DRW_select_buffer_context_create ( Depsgraph * depsgraph,
blender::Span< Base * > bases,
short select_mode )

◆ DRW_select_buffer_context_offset_for_object_elem()

◆ DRW_select_buffer_elem_get()

◆ DRW_select_buffer_find_nearest_to_point()

uint DRW_select_buffer_find_nearest_to_point ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2],
uint id_min,
uint id_max,
uint * dist )

Find the selection id closest to center.

Parameters
distUse to initialize the distance, when found, this value is set to the distance of the selection that's returned.

Definition at line 342 of file draw_select_buffer.cc.

References abs(), BLI_array_iter_spiral_square, BLI_rcti_init_pt_radius(), BLI_rcti_size_x(), depsgraph, DRW_select_buffer_read(), MEM_freeN(), select_buffer_test_fn(), rcti::xmax, and rcti::ymax.

Referenced by ED_mesh_pick_face(), ED_mesh_pick_vert(), EDBM_edge_find_nearest_ex(), EDBM_face_find_nearest_ex(), and EDBM_vert_find_nearest_ex().

◆ DRW_select_buffer_read()

◆ DRW_select_buffer_sample_point()

uint DRW_select_buffer_sample_point ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2] )

Samples a single pixel.

Definition at line 298 of file draw_select_buffer.cc.

References BLI_assert, depsgraph, DRW_select_buffer_read(), MEM_freeN(), ret, and rcti::xmin.

Referenced by ED_mesh_pick_face(), ED_mesh_pick_vert(), and EDBM_face_find_nearest_ex().