Blender V5.0
ED_pointcloud.hh File Reference
#include <limits>
#include <optional>
#include "BLI_index_mask_fwd.hh"
#include "BLI_math_matrix_types.hh"
#include "BLI_math_vector_types.hh"
#include "BLI_vector_set.hh"
#include "DNA_windowmanager_enums.h"

Go to the source code of this file.

Classes

struct  blender::ed::pointcloud::FindClosestData

Namespaces

namespace  blender
namespace  blender::bke
namespace  blender::ed
namespace  blender::ed::pointcloud

Functions

void blender::ed::pointcloud::operatortypes_pointcloud ()
void blender::ed::pointcloud::operatormacros_pointcloud ()
void blender::ed::pointcloud::keymap_pointcloud (wmKeyConfig *keyconf)
void blender::ed::pointcloud::undosys_type_register (UndoType *ut)
VectorSet< PointCloud * > blender::ed::pointcloud::get_unique_editable_pointclouds (const bContext &C)
Selection

Selection on point cloud are stored per-point. It can be stored with a float or boolean data-type. The boolean data-type is faster, smaller, and corresponds better to edit-mode selections, but the float data type is useful for soft selection (like masking) in sculpt mode.

The attribute API is used to do the necessary type and domain conversions when necessary, and can handle most interaction with the selection attribute, but these functions implement some helpful utilities on top of that.

void blender::ed::pointcloud::fill_selection_true (GMutableSpan span)
void blender::ed::pointcloud::fill_selection_false (GMutableSpan selection, const IndexMask &mask)
void blender::ed::pointcloud::fill_selection_true (GMutableSpan selection, const IndexMask &mask)
bool blender::ed::pointcloud::has_anything_selected (const PointCloud &pointcloud)
void blender::ed::pointcloud::select_all (PointCloud &pointcloud, int action)
bke::GSpanAttributeWriter blender::ed::pointcloud::ensure_selection_attribute (PointCloud &pointcloud, bke::AttrType create_type)
bool blender::ed::pointcloud::select_box (PointCloud &pointcloud, const ARegion &region, const float4x4 &projection, const rcti &rect, const eSelectOp sel_op)
bool blender::ed::pointcloud::select_lasso (PointCloud &pointcloud, const ARegion &region, const float4x4 &projection, const Span< int2 > lasso_coords, const eSelectOp sel_op)
bool blender::ed::pointcloud::select_circle (PointCloud &pointcloud, const ARegion &region, const float4x4 &projection, const int2 coord, const float radius, const eSelectOp sel_op)
std::optional< FindClosestDatablender::ed::pointcloud::find_closest_point_to_screen_co (const ARegion &region, const Span< float3 > positions, const float4x4 &projection, const IndexMask &points_mask, const float2 mouse_pos, const float radius, const FindClosestData &initial_closest)
IndexMask blender::ed::pointcloud::retrieve_selected_points (const PointCloud &pointcloud, IndexMaskMemory &memory)
Editing
bool blender::ed::pointcloud::remove_selection (PointCloud &pointcloud)
PointCloudblender::ed::pointcloud::copy_selection (const PointCloud &src, const IndexMask &mask)
Poll Functions
bool blender::ed::pointcloud::editable_pointcloud_in_edit_mode_poll (bContext *C)
Operators
void blender::ed::pointcloud::POINTCLOUD_OT_attribute_set (wmOperatorType *ot)
void blender::ed::pointcloud::POINTCLOUD_OT_duplicate (wmOperatorType *ot)
void blender::ed::pointcloud::POINTCLOUD_OT_separate (wmOperatorType *ot)
wmOperatorStatus blender::ed::pointcloud::join_objects_exec (bContext *C, wmOperator *op)