Blender  V3.3
Classes | Functions
blender::meshintersect Namespace Reference

Classes

struct  CDTVert
 
struct  CDTEdge
 
struct  CDTFace
 
struct  SymEdge
 
struct  FatCo
 
struct  FatCo< double >
 
struct  CDTArrangement
 
class  CDT_state
 

Functions

Meshdirect_mesh_boolean (Span< const Mesh * > meshes, Span< const float4x4 * > transforms, const float4x4 &target_transform, Span< Array< short >> material_remaps, bool use_self, bool hole_tolerant, int boolean_mode, Vector< int > *r_intersecting_edges)
 
template<typename T >
T math_abs (const T v)
 
template<>
double math_abs< double > (const double v)
 
template<typename T >
double math_to_double (const T UNUSED(v))
 
template<>
double math_to_double< double > (const double v)
 
template<typename T >
SymEdge< T > * sym (const SymEdge< T > *se)
 
template<typename T >
SymEdge< T > * prev (const SymEdge< T > *se)
 
template<typename T >
std::ostream & operator<< (std::ostream &stream, const FatCo< T > &co)
 
template<typename T >
std::string vertname (const CDTVert< T > *v)
 
static std::string trunc_ptr (const void *p)
 
template<typename T >
std::string sename (const SymEdge< T > *se)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const SymEdge< T > &se)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const SymEdge< T > *se)
 
template<typename T >
std::string short_se_dump (const SymEdge< T > *se)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const CDT_state< T > &cdt_state)
 
template<typename T >
void cdt_draw (const std::string &label, const CDTArrangement< T > &cdt)
 

Function Documentation

◆ cdt_draw()

template<typename T >
void blender::meshintersect::cdt_draw ( const std::string &  label,
const CDTArrangement< T > &  cdt 
)

◆ direct_mesh_boolean()

Mesh * blender::meshintersect::direct_mesh_boolean ( Span< const Mesh * >  meshes,
Span< const float4x4 * >  transforms,
const float4x4 target_transform,
Span< Array< short >>  material_remaps,
bool  use_self,
bool  hole_tolerant,
int  boolean_mode,
Vector< int > *  r_intersecting_edges 
)

Do a mesh boolean operation directly on meshes (without going back and forth from BMesh).

Parameters
transformsAn array of pointers to transform matrices used for each mesh's positions. It is allowed for the pointers to be null, meaning the transformation is the identity.
material_remapsAn array of maps from material slot numbers in the corresponding mesh to the material slot in the first mesh. It is OK for material_remaps or any of its constituent arrays to be empty.
r_intersecting_edgesArray to store indices of edges on the resulting mesh in. These 'new' edges are the result of the intersections.

Definition at line 788 of file mesh_boolean_convert.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, MPoly::loopstart, result, blender::Span< T >::size(), and UNUSED_VARS.

Referenced by blender::nodes::node_geo_boolean_cc::node_geo_exec().

◆ math_abs()

template<typename T >
T blender::meshintersect::math_abs ( const T  v)

Definition at line 31 of file delaunay_2d.cc.

References v.

◆ math_abs< double >()

Definition at line 43 of file delaunay_2d.cc.

References fabs(), and v.

◆ math_to_double()

template<typename T >
double blender::meshintersect::math_to_double ( const T   UNUSEDv)

Definition at line 48 of file delaunay_2d.cc.

References BLI_assert.

◆ math_to_double< double >()

Definition at line 61 of file delaunay_2d.cc.

References v.

◆ operator<<() [1/4]

template<typename T >
std::ostream& blender::meshintersect::operator<< ( std::ostream &  os,
const CDT_state< T > &  cdt_state 
)

◆ operator<<() [2/4]

template<typename T >
std::ostream& blender::meshintersect::operator<< ( std::ostream &  os,
const SymEdge< T > &  se 
)

◆ operator<<() [3/4]

template<typename T >
std::ostream& blender::meshintersect::operator<< ( std::ostream &  os,
const SymEdge< T > *  se 
)

Definition at line 398 of file delaunay_2d.cc.

◆ operator<<() [4/4]

template<typename T >
std::ostream& blender::meshintersect::operator<< ( std::ostream &  stream,
const FatCo< T > &  co 
)

Definition at line 177 of file delaunay_2d.cc.

References blender::meshintersect::FatCo< T >::approx.

◆ prev()

template<typename T >
SymEdge<T>* blender::meshintersect::prev ( const SymEdge< T > *  se)
inline

Return #SymEdge whose next is se.

Definition at line 105 of file delaunay_2d.cc.

References blender::meshintersect::SymEdge< Arith_t >::next, and blender::meshintersect::SymEdge< Arith_t >::rot.

Referenced by blender::ed::space_node::add_reroute_insert_socket_link(), BMeshFairingContext::adjacents_coords_from_loop(), adjacet_vertices_index_from_adjacent_edge(), blender::compositor::antialias_tagbuf(), BKE_fcurve_bezt_subdivide_handles(), BKE_fcurve_handles_recalc_ex(), BKE_gpencil_stroke_subdivide(), BKE_mesh_nomain_to_mesh(), BKE_modifier_calc_data_masks(), BKE_nlatrack_add(), BKE_nurb_handle_calc(), BKE_nurb_handle_calc_ex(), BKE_nurb_handle_calc_simple(), BKE_pchan_bbone_spline_compute(), BKE_pchan_bbone_spline_params_get(), BKE_sculpt_mask_layers_ensure(), BLI_listbase_reverse(), BLI_path_name_at_index(), blo_bhead_prev(), BLO_read_list_cb(), bm_uv_edge_select_build_islands(), bmesh_loop_validate(), blender::deg::DepsgraphRelationBuilder::build_rig(), calc_keyHandles(), calchandle_curvemap(), calchandleNurb_intern(), calchandlesNurb_intern(), btMultiBodyDynamicsWorld::calculateSimulationIslands(), blender::compositor::check_corners(), check_point_in_stroke(), clean_fcurve(), compute_keyblock_data(), ConvertNode::constant_fold(), blender::opensubdiv::createSSBO(), depth_buf_rect_depth_any_filled(), depth_buf_subrect_depth_any_filled(), depth_is_filled(), direction_bisect(), blender::bke::curves::poly::direction_bisect(), btIDebugDraw::drawArc(), ebone_spline_preview(), ED_workspace_delete(), edbm_rip_invoke__vert(), BezierSpline::ensure_auto_handles(), euler_filter_single_channel(), face_map_move_exec(), get_visible_nla_strips(), Freestyle::Functions0D::getFEdges(), Freestyle::WFace::GetPrevOEdge(), gizmo_preselect_edgering_test_select(), gpencil_interpolate_update_points(), gpencil_stroke_perimeter_ex(), gpu_select_load_id_pass_nearest(), insertleaf(), is_track_clean(), kernel_adaptive_sampling_filter_x(), kernel_adaptive_sampling_filter_y(), link_glob_list(), listbase_double_from_single(), listbase_is_valid(), minter_v3_v3v3v3_ref(), new_key_needed(), blender::ed::space_node::node_link_insert_offset_ntree(), Freestyle::Functions0D::Curvature2DAngleF0D::operator()(), Freestyle::Predicates1D::WithinImageBoundaryUP1D::operator()(), point_calculate_handle(), poseAnim_mapping_getNextFCurve(), rearrange_island_up(), recalcData_nla(), rectf_curve_intersection(), removeleaf(), report_textview_skip__internal(), report_textview_step(), selmap_build_bezier_less(), selmap_build_bezier_more(), seq_cache_recycle_linked(), seq_cache_set_temp_cache_linked(), slide_check_corners(), iTaSC::WSDLSSolver::solve(), subdivide_nonauto_handles(), Freestyle::ViewEdgeInternal::SVertexIterator::SVertexIterator(), TEST(), text_delete_exec(), txt_backspace_char(), txt_move_left(), txtfmt_lua_format_line(), txtfmt_osl_format_line(), txtfmt_pov_format_line(), txtfmt_pov_ini_format_line(), txtfmt_py_format_line(), txttl_free_suggest(), wm_handlers_do_gizmo_handler(), wm_xr_fly_compute_turn(), wm_xr_grab_compute(), wm_xr_grab_compute_bimanual(), and wm_xr_session_action_states_interpret().

◆ sename()

template<typename T >
std::string blender::meshintersect::sename ( const SymEdge< T > *  se)

Definition at line 379 of file delaunay_2d.cc.

References trunc_ptr().

Referenced by cdt_draw().

◆ short_se_dump()

template<typename T >
std::string blender::meshintersect::short_se_dump ( const SymEdge< T > *  se)

◆ sym()

template<typename T >
SymEdge<T>* blender::meshintersect::sym ( const SymEdge< T > *  se)
inline

◆ trunc_ptr()

static std::string blender::meshintersect::trunc_ptr ( const void p)
static

Definition at line 371 of file delaunay_2d.cc.

References hex, and POINTER_AS_INT.

Referenced by cdt_draw(), operator<<(), and sename().

◆ vertname()

template<typename T >
std::string blender::meshintersect::vertname ( const CDTVert< T > *  v)

Definition at line 363 of file delaunay_2d.cc.

References v.

Referenced by add_edge_constraint(), cdt_draw(), operator<<(), and short_se_dump().