|
Blender V5.0
|
#include "BLI_utildefines.h"#include "BLI_array.hh"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_matrix_types.hh"#include "BLI_vector.hh"#include "BLI_vector_set.hh"#include "BLT_translation.hh"#include "DNA_defaults.h"#include "DNA_mesh_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "BKE_collection.hh"#include "BKE_global.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_material.hh"#include "BKE_mesh.hh"#include "BKE_mesh_wrapper.hh"#include "BKE_modifier.hh"#include "UI_interface_layout.hh"#include "UI_resources.hh"#include "RNA_access.hh"#include "RNA_prototypes.hh"#include "MOD_ui_common.hh"#include "MEM_guardedalloc.h"#include "GEO_mesh_boolean.hh"#include "GEO_randomize.hh"#include "bmesh.hh"#include "tools/bmesh_intersect.hh"Go to the source code of this file.
Macros | |
| #define | BM_FACE_TAG BM_ELEM_SELECT_UV |
Typedefs | |
| using | float3 |
| using | float4x4 |
Functions | |
| static void | init_data (ModifierData *md) |
| static bool | is_disabled (const Scene *, ModifierData *md, bool) |
| static void | foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data) |
| static void | update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
| static Mesh * | get_quick_mesh (Object *ob_self, Mesh *mesh_self, Object *ob_operand_ob, Mesh *mesh_operand_ob, int operation) |
| static int | bm_face_isect_pair (BMFace *f, void *) |
| static bool | BMD_error_messages (const Object *ob, ModifierData *md) |
| static BMesh * | BMD_mesh_bm_create (Mesh *mesh, Object *object, Mesh *mesh_operand_ob, Object *operand_ob, bool *r_is_flip) |
| static void | BMD_mesh_intersection (BMesh *bm, ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh_operand_ob, Object *object, Object *operand_ob, bool is_flip) |
| static Mesh * | modify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) |
| static void | required_data_mask (ModifierData *, CustomData_MeshMasks *r_cddata_masks) |
| static void | panel_draw (const bContext *, Panel *panel) |
| static void | solver_options_panel_draw (const bContext *, Panel *panel) |
| static void | panel_register (ARegionType *region_type) |
Variables | |
| ModifierTypeInfo | modifierType_Boolean |
| #define BM_FACE_TAG BM_ELEM_SELECT_UV |
Definition at line 159 of file MOD_boolean.cc.
| using blender::float3 |
Definition at line 619 of file BLI_math_vector_types.hh.
| using blender::float4x4 |
Definition at line 1012 of file BLI_math_matrix_types.hh.
|
static |
Compare selected/unselected.
Definition at line 164 of file MOD_boolean.cc.
References BM_elem_flag_test, and BM_FACE_TAG.
|
static |
Definition at line 169 of file MOD_boolean.cc.
References BKE_collection_is_empty(), BKE_modifier_set_error(), col, BooleanModifierData::collection, eBooleanModifierFlag_Collection, eBooleanModifierOp_Intersect, eBooleanModifierSolver_Manifold, eBooleanModifierSolver_Mesh_Arr, BooleanModifierData::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, OB_MESH, BooleanModifierData::operation, and BooleanModifierData::solver.
Referenced by modify_mesh().
|
static |
Definition at line 218 of file MOD_boolean.cc.
References ARRAY_SIZE, bm, BM_face_normal_flip_ex(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_bm_from_me(), BM_mesh_copy_init_customdata_from_mesh_array(), BM_mesh_create(), BMALLOC_TEMPLATE_FROM_ME, BMeshFromMeshParams::calc_face_normal, BMeshFromMeshParams::calc_vert_normal, CD_MDISPS, CustomData_get_offset(), is_negative_m4(), SCOPED_TIMER, and UNLIKELY.
Referenced by modify_mesh().
|
static |
Definition at line 261 of file MOD_boolean.cc.
References BKE_object_material_remap_calc(), bm, BM_elem_flag_enable, bm_face_isect_pair(), BM_FACE_TAG, BM_FACES_OF_MESH, BooleanModifierData::bm_flag, BM_ITER_MESH, BM_mesh_calc_tessellation_beauty(), BM_mesh_intersect(), BM_VERTS_OF_MESH, BMVert::co, copy_m3_m4(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), BooleanModifierData::double_threshold, eBooleanModifierBMeshFlag_BMesh_NoConnectRegions, eBooleanModifierBMeshFlag_BMesh_NoDissolve, eBooleanModifierBMeshFlag_BMesh_Separate, Mesh::faces_num, G, G_DEBUG, i, invert_m3(), invert_m4_m4(), LIKELY, BMFace::mat_nr, mul_m4_m4m4(), mul_m4_v3(), mul_transposed_m3_v3(), negate_m3(), BMFace::no, normalize_v3(), ModifierEvalContext::object, BooleanModifierData::operation, poly_to_tri_count(), SCOPED_TIMER, Object::totcol, UNLIKELY, and Mesh::verts_num.
Referenced by modify_mesh().
|
static |
Definition at line 90 of file MOD_boolean.cc.
References BooleanModifierData::collection, IDWALK_CB_NOP, IDWALK_CB_USER, and BooleanModifierData::object.
|
static |
Definition at line 115 of file MOD_boolean.cc.
References BKE_id_copy_ex(), BKE_mesh_new_nomain(), eBooleanModifierOp_Difference, eBooleanModifierOp_Intersect, eBooleanModifierOp_Union, Mesh::faces_num, i, Mesh::id, blender::MutableSpan< T >::index_range(), invert_m4_m4(), LIB_ID_COPY_LOCALIZE, mul_m4_m4m4(), mul_m4_v3(), and result.
Referenced by modify_mesh().
|
static |
Definition at line 66 of file MOD_boolean.cc.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
|
static |
Definition at line 75 of file MOD_boolean.cc.
References col, BooleanModifierData::collection, eBooleanModifierFlag_Collection, eBooleanModifierFlag_Object, eBooleanModifierSolver_Mesh_Arr, BooleanModifierData::flag, OB_MESH, BooleanModifierData::object, BooleanModifierData::solver, and Object::type.
|
static |
Definition at line 515 of file MOD_boolean.cc.
References BKE_mesh_from_bmesh_for_eval_nomain(), BKE_mesh_wrapper_ensure_mdata(), BKE_modifier_get_evaluated_mesh_from_evaluated_object(), BKE_modifier_set_error(), bm, BM_mesh_bm_to_me(), BM_mesh_free(), BMD_error_messages(), BMD_mesh_bm_create(), BMD_mesh_intersection(), BMeshToMeshParams::calc_object_remap, BooleanModifierData::collection, blender::geometry::debug_randomize_mesh_order(), eBooleanModifierFlag_Object, eBooleanModifierSolver_Float, BooleanModifierData::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, get_quick_mesh(), OB_MESH, BooleanModifierData::object, ModifierEvalContext::object, BooleanModifierData::operation, result, SCOPED_TIMER, and BooleanModifierData::solver.
Definition at line 619 of file MOD_boolean.cc.
References eBooleanModifierFlag_Object, Panel::layout, modifier_error_message_draw(), modifier_panel_get_property_pointers(), uiLayout::prop(), ptr, RNA_enum_get(), UI_ITEM_NONE, UI_ITEM_R_EXPAND, and uiLayout::use_property_split_set().
|
static |
Definition at line 672 of file MOD_boolean.cc.
References eModifierType_Boolean, modifier_panel_register(), modifier_subpanel_register(), panel_draw(), and solver_options_panel_draw().
|
static |
Definition at line 613 of file MOD_boolean.cc.
References CD_MASK_MDEFORMVERT, CD_MASK_MTFACE, CustomData_MeshMasks::fmask, and CustomData_MeshMasks::vmask.
Definition at line 641 of file MOD_boolean.cc.
References col, uiLayout::column(), eBooleanModifierFlag_Object, eBooleanModifierSolver_Manifold, eBooleanModifierSolver_Mesh_Arr, G, IFACE_, Panel::layout, modifier_panel_get_property_pointers(), ptr, RNA_enum_get(), UI_ITEM_NONE, and uiLayout::use_property_split_set().
Referenced by panel_register().
|
static |
Definition at line 98 of file MOD_boolean.cc.
References col, BooleanModifierData::collection, DEG_add_collection_geometry_relation(), DEG_add_depends_on_transform_relation(), DEG_add_object_relation(), DEG_OB_COMP_GEOMETRY, DEG_OB_COMP_TRANSFORM, eBooleanModifierFlag_Collection, eBooleanModifierFlag_Object, BooleanModifierData::flag, ModifierUpdateDepsgraphContext::node, and BooleanModifierData::object.
| ModifierTypeInfo modifierType_Boolean |
Definition at line 679 of file MOD_boolean.cc.