Blender
V3.3
|
#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 "BLI_vector_set.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 "RNA_prototypes.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 |
Variables | |
ModifierTypeInfo | modifierType_Boolean |
#define BM_FACE_TAG BM_ELEM_DRAW |
Definition at line 169 of file MOD_boolean.cc.
Compare selected/unselected.
Definition at line 174 of file MOD_boolean.cc.
References BM_elem_flag_test, and BM_FACE_TAG.
Referenced by BMD_mesh_intersection().
|
static |
Definition at line 179 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 227 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, CD_MDISPS, CustomData_get_offset(), is_negative_m4(), BMesh::ldata, mesh, Object::obmat, SCOPED_TIMER, and UNLIKELY.
Referenced by modifyMesh().
|
static |
Definition at line 269 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, 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, BooleanModifierData::operation, 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 98 of file MOD_boolean.cc.
References BooleanModifierData::collection, IDWALK_CB_NOP, IDWALK_CB_USER, and BooleanModifierData::object.
|
static |
Definition at line 123 of file MOD_boolean.cc.
References BKE_id_copy_ex(), BKE_mesh_new_nomain(), BKE_mesh_tag_coords_changed(), 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 72 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 81 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 479 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, 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, result, SCOPED_TIMER, and BooleanModifierData::solver.
Definition at line 584 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 632 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 575 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 606 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 106 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 639 of file MOD_boolean.cc.