Blender
V3.3
|
Classes | |
struct | CDTVert |
struct | CDTEdge |
struct | CDTFace |
struct | SymEdge |
struct | FatCo |
struct | FatCo< double > |
struct | CDTArrangement |
class | CDT_state |
Functions | |
Mesh * | 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) |
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) |
void blender::meshintersect::cdt_draw | ( | const std::string & | label, |
const CDTArrangement< T > & | cdt | ||
) |
Definition at line 475 of file delaunay_2d.cc.
References blender::meshintersect::CDTVert< T >::co, BMVert::co, blender::meshintersect::CDTFace< Arith_t >::deleted, double(), e, blender::meshintersect::CDTArrangement< Arith_t >::edges, blender::meshintersect::SymEdge< Arith_t >::face, blender::meshintersect::CDTArrangement< Arith_t >::faces, height, id, blender::meshintersect::CDTFace< Arith_t >::input_ids, label, blender::meshintersect::SymEdge< Arith_t >::next, blender::meshintersect::CDTArrangement< Arith_t >::outer_face, sename(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), SX, SY, trunc_ptr(), v, blender::meshintersect::SymEdge< Arith_t >::vert, vertname(), blender::meshintersect::CDTArrangement< Arith_t >::verts, and width.
Referenced by dc_tri().
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).
transforms | An 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_remaps | An 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_edges | Array 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().
Definition at line 31 of file delaunay_2d.cc.
References v.
double blender::meshintersect::math_abs< double > | ( | const double | v | ) |
Definition at line 43 of file delaunay_2d.cc.
Definition at line 48 of file delaunay_2d.cc.
References BLI_assert.
double blender::meshintersect::math_to_double< double > | ( | const double | v | ) |
Definition at line 61 of file delaunay_2d.cc.
References v.
std::ostream& blender::meshintersect::operator<< | ( | std::ostream & | os, |
const CDT_state< T > & | cdt_state | ||
) |
Definition at line 413 of file delaunay_2d.cc.
References blender::meshintersect::CDT_state< T >::cdt, BMVert::co, count, blender::meshintersect::CDTFace< Arith_t >::deleted, e, blender::meshintersect::SymEdge< Arith_t >::edge, blender::meshintersect::CDTArrangement< Arith_t >::edges, blender::meshintersect::SymEdge< Arith_t >::face, blender::meshintersect::CDTArrangement< Arith_t >::faces, blender::meshintersect::SymEdge< Arith_t >::next, blender::meshintersect::CDTArrangement< Arith_t >::outer_face, blender::meshintersect::SymEdge< Arith_t >::rot, sym(), blender::meshintersect::CDTFace< Arith_t >::symedge, trunc_ptr(), v, blender::meshintersect::SymEdge< Arith_t >::vert, vertname(), and blender::meshintersect::CDTArrangement< Arith_t >::verts.
std::ostream& blender::meshintersect::operator<< | ( | std::ostream & | os, |
const SymEdge< T > & | se | ||
) |
Definition at line 386 of file delaunay_2d.cc.
References blender::meshintersect::SymEdge< Arith_t >::next, blender::meshintersect::SymEdge< Arith_t >::vert, and vertname().
std::ostream& blender::meshintersect::operator<< | ( | std::ostream & | os, |
const SymEdge< T > * | se | ||
) |
Definition at line 398 of file delaunay_2d.cc.
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.
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().
Definition at line 404 of file delaunay_2d.cc.
References blender::meshintersect::SymEdge< Arith_t >::next, blender::meshintersect::SymEdge< Arith_t >::vert, and vertname().
Referenced by dump_crossings().
Return other #SymEdge for same #CDTEdge as se.
Definition at line 99 of file delaunay_2d.cc.
References blender::meshintersect::SymEdge< Arith_t >::next, and blender::meshintersect::SymEdge< Arith_t >::rot.
Referenced by add_edge_constraint(), add_face_ids(), convert_keyboard_event_to_ascii(), dc_tri(), detect_holes(), dissolve_symedge(), fill_crossdata_for_intersect(), fill_crossdata_for_through_vert(), get_next_crossing_from_edge(), keyboard_handle_key(), operator<<(), re_delaunay_triangulate(), remove_non_constraint_edges_leave_valid_bmesh(), remove_outer_edges_until_constraints(), xkb_map_gkey(), xkb_map_gkey_or_scan_code(), and xkb_state_key_get_one_sym_without_modifiers().
|
static |
Definition at line 371 of file delaunay_2d.cc.
References hex, and POINTER_AS_INT.
Referenced by cdt_draw(), operator<<(), and sename().
Definition at line 363 of file delaunay_2d.cc.
References v.
Referenced by add_edge_constraint(), cdt_draw(), operator<<(), and short_se_dump().