|
Blender V4.3
|
#include <cstdio>#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.h"#include "BKE_mesh.hh"#include "BKE_mesh_wrapper.hh"#include "BKE_modifier.hh"#include "UI_interface.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_DRAW |
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_DRAW |
Definition at line 161 of file MOD_boolean.cc.
Referenced by bm_face_isect_pair(), and BMD_mesh_intersection().
Compare selected/unselected.
Definition at line 166 of file MOD_boolean.cc.
References BM_elem_flag_test, and BM_FACE_TAG.
Referenced by BMD_mesh_intersection().
|
static |
Definition at line 171 of file MOD_boolean.cc.
References BKE_collection_is_empty(), BKE_modifier_set_error(), col, BooleanModifierData::collection, eBooleanModifierFlag_Collection, eBooleanModifierOp_Intersect, 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 219 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, SCOPED_TIMER, and UNLIKELY.
Referenced by modify_mesh().
|
static |
Definition at line 262 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(), Object::data, BooleanModifierData::double_threshold, eBooleanModifierBMeshFlag_BMesh_NoConnectRegions, eBooleanModifierBMeshFlag_BMesh_NoDissolve, eBooleanModifierBMeshFlag_BMesh_Separate, Mesh::faces_num, G, G_DEBUG, 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, BMesh::totface, BMesh::totloop, UNLIKELY, and Mesh::verts_num.
Referenced by modify_mesh().
|
static |
Definition at line 92 of file MOD_boolean.cc.
References BooleanModifierData::collection, IDWALK_CB_NOP, IDWALK_CB_USER, and BooleanModifierData::object.
|
static |
Definition at line 117 of file MOD_boolean.cc.
References BKE_id_copy_ex(), BKE_mesh_new_nomain(), eBooleanModifierOp_Difference, eBooleanModifierOp_Intersect, eBooleanModifierOp_Union, Mesh::faces_num, Mesh::id, invert_m4_m4(), LIB_ID_COPY_LOCALIZE, mul_m4_m4m4(), mul_m4_v3(), and result.
Referenced by modify_mesh().
|
static |
Definition at line 68 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 77 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 506 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_Mesh_Arr, BooleanModifierData::flag, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, get_quick_mesh(), mesh, OB_MESH, BooleanModifierData::object, ModifierEvalContext::object, BooleanModifierData::operation, result, SCOPED_TIMER, and BooleanModifierData::solver.
Definition at line 610 of file MOD_boolean.cc.
References eBooleanModifierFlag_Object, Panel::layout, modifier_panel_end(), modifier_panel_get_property_pointers(), ptr, RNA_enum_get(), UI_ITEM_NONE, UI_ITEM_R_EXPAND, uiItemR(), and uiLayoutSetPropSep().
Referenced by panel_register().
|
static |
Definition at line 659 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 604 of file MOD_boolean.cc.
References CD_MASK_MDEFORMVERT, CD_MASK_MTFACE, CustomData_MeshMasks::fmask, and CustomData_MeshMasks::vmask.
Definition at line 632 of file MOD_boolean.cc.
References col, eBooleanModifierFlag_Object, eBooleanModifierSolver_Mesh_Arr, G, IFACE_, Panel::layout, modifier_panel_get_property_pointers(), ptr, RNA_enum_get(), UI_ITEM_NONE, uiItemR(), uiLayoutColumn(), and uiLayoutSetPropSep().
Referenced by panel_register().
|
static |
Definition at line 100 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 666 of file MOD_boolean.cc.