|
Blender
V2.93
|
#include <cstdio>#include "BLI_utildefines.h"#include "BLI_array.hh"#include "BLI_float4x4.hh"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_vector.hh"#include "BLT_translation.h"#include "DNA_collection_types.h"#include "DNA_defaults.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "BKE_collection.h"#include "BKE_context.h"#include "BKE_global.h"#include "BKE_lib_id.h"#include "BKE_lib_query.h"#include "BKE_material.h"#include "BKE_mesh.h"#include "BKE_mesh_boolean_convert.hh"#include "BKE_mesh_wrapper.h"#include "BKE_modifier.h"#include "UI_interface.h"#include "UI_resources.h"#include "RNA_access.h"#include "MOD_ui_common.h"#include "MOD_util.h"#include "DEG_depsgraph_query.h"#include "MEM_guardedalloc.h"#include "bmesh.h"#include "bmesh_tools.h"#include "tools/bmesh_boolean.h"#include "tools/bmesh_intersect.h"Go to the source code of this file.
Macros | |
| #define | BM_FACE_TAG BM_ELEM_DRAW |
Functions | |
| static void | initData (ModifierData *md) |
| static bool | isDisabled (const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams)) |
| static void | foreachIDLink (ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) |
| static void | updateDepsgraph (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 *UNUSED(user_data)) |
| 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 * | modifyMesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) |
| static void | requiredDataMask (Object *UNUSED(ob), ModifierData *UNUSED(md), CustomData_MeshMasks *r_cddata_masks) |
| static void | panel_draw (const bContext *UNUSED(C), Panel *panel) |
| static void | solver_options_panel_draw (const bContext *UNUSED(C), Panel *panel) |
| static void | panelRegister (ARegionType *region_type) |
Variables | |
| ModifierTypeInfo | modifierType_Boolean |
| #define BM_FACE_TAG BM_ELEM_DRAW |
Definition at line 179 of file MOD_boolean.cc.
|
static |
Compare selected/unselected.
Definition at line 184 of file MOD_boolean.cc.
References BM_elem_flag_test, and BM_FACE_TAG.
Referenced by BMD_mesh_intersection().
|
static |
Definition at line 189 of file MOD_boolean.cc.
References BKE_collection_is_empty(), BKE_modifier_set_error(), col, BooleanModifierData::collection, eBooleanModifierFlag_Collection, eBooleanModifierOp_Intersect, eBooleanModifierSolver_Exact, BooleanModifierData::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, OB_MESH, BooleanModifierData::operation, and BooleanModifierData::solver.
Referenced by modifyMesh().
|
static |
Definition at line 237 of file MOD_boolean.cc.
References bm, BM_face_normal_flip_ex(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_bm_from_me(), BM_mesh_cd_flag_apply(), BM_mesh_cd_flag_from_bmesh(), BM_mesh_copy_init_customdata_from_mesh(), BM_mesh_create(), BMALLOC_TEMPLATE_FROM_ME, BMeshFromMeshParams::calc_face_normal, Mesh::cd_flag, CD_MDISPS, CustomData_get_offset(), is_negative_m4(), BMesh::ldata, mesh, Object::obmat, SCOPED_TIMER, and UNLIKELY.
Referenced by modifyMesh().
|
static |
Definition at line 277 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, 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(), eBooleanModifierBMeshFlag_BMesh_NoConnectRegions, eBooleanModifierBMeshFlag_BMesh_NoDissolve, eBooleanModifierBMeshFlag_BMesh_Separate, G, G_DEBUG, invert_m3(), invert_m4_m4(), LIKELY, BMFace::mat_nr, MEM_freeN, MEM_malloc_arrayN, mul_m4_m4m4(), mul_m4_v3(), mul_transposed_m3_v3(), negate_m3(), BMFace::no, normalize_v3(), ModifierEvalContext::object, Object::obmat, poly_to_tri_count(), SCOPED_TIMER, Object::totcol, BMesh::totface, BMesh::totloop, Mesh::totpoly, Mesh::totvert, and UNLIKELY.
Referenced by modifyMesh().
|
static |
Definition at line 108 of file MOD_boolean.cc.
References BooleanModifierData::collection, IDWALK_CB_NOP, IDWALK_CB_USER, and BooleanModifierData::object.
|
static |
Definition at line 133 of file MOD_boolean.cc.
References BKE_id_copy_ex(), BKE_mesh_new_nomain(), CD_MASK_NORMAL, eBooleanModifierOp_Difference, eBooleanModifierOp_Intersect, eBooleanModifierOp_Union, Mesh::id, invert_m4_m4(), LIB_ID_COPY_LOCALIZE, mul_m4_m4m4(), mul_m4_v3(), Object::obmat, result, and Mesh::totpoly.
Referenced by modifyMesh().
|
static |
Definition at line 82 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 91 of file MOD_boolean.cc.
References col, BooleanModifierData::collection, eBooleanModifierFlag_Collection, eBooleanModifierFlag_Object, eBooleanModifierSolver_Exact, BooleanModifierData::flag, OB_MESH, BooleanModifierData::object, BooleanModifierData::solver, and Object::type.
|
static |
Definition at line 468 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(), CD_MASK_NORMAL, BooleanModifierData::collection, eBooleanModifierFlag_Object, eBooleanModifierSolver_Exact, BooleanModifierData::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, get_quick_mesh(), mesh, OB_MESH, ModifierEvalContext::object, BooleanModifierData::object, BooleanModifierData::operation, params, result, SCOPED_TIMER, and BooleanModifierData::solver.
Definition at line 572 of file MOD_boolean.cc.
References eBooleanModifierFlag_Object, Panel::layout, modifier_panel_end(), modifier_panel_get_property_pointers(), ptr, RNA_enum_get(), UI_ITEM_R_EXPAND, uiItemR(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 620 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 563 of file MOD_boolean.cc.
References CD_MASK_MDEFORMVERT, CD_MASK_MEDGE, CD_MASK_MTFACE, CustomData_MeshMasks::emask, CustomData_MeshMasks::fmask, and CustomData_MeshMasks::vmask.
Definition at line 594 of file MOD_boolean.cc.
References col, eBooleanModifierFlag_Object, eBooleanModifierSolver_Exact, G, Panel::layout, modifier_panel_get_property_pointers(), ptr, RNA_enum_get(), uiItemR(), uiLayoutColumn(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 116 of file MOD_boolean.cc.
References col, BooleanModifierData::collection, DEG_add_collection_geometry_relation(), DEG_add_modifier_to_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 627 of file MOD_boolean.cc.