|
Blender V4.3
|
#include "CLG_log.h"#include "MEM_guardedalloc.h"#include "DNA_curve_types.h"#include "DNA_key_types.h"#include "DNA_material_types.h"#include "DNA_meta_types.h"#include "DNA_object_types.h"#include "DNA_pointcloud_types.h"#include "DNA_scene_types.h"#include "BLI_index_range.hh"#include "BLI_listbase.h"#include "BLI_span.hh"#include "BLI_string.h"#include "BLI_utildefines.h"#include "BLT_translation.hh"#include "BKE_curves.hh"#include "BKE_deform.hh"#include "BKE_displist.h"#include "BKE_editmesh.hh"#include "BKE_geometry_set.hh"#include "BKE_geometry_set_instances.hh"#include "BKE_key.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_main.hh"#include "BKE_material.h"#include "BKE_mball.hh"#include "BKE_mesh.hh"#include "BKE_mesh_runtime.hh"#include "BKE_mesh_wrapper.hh"#include "BKE_modifier.hh"#include "BKE_object_types.hh"#include "BKE_curve.hh"#include "BKE_object.hh"#include "BKE_pointcloud.hh"#include "BKE_curve_to_mesh.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"Go to the source code of this file.
Classes | |
| struct | EdgeLink |
| struct | VertLink |
Variables | |
| static CLG_LogRef | LOG = {"bke.mesh_convert"} |
Definition at line 367 of file mesh_convert.cc.
References BLI_addtail(), and VertLink::index.
Referenced by BKE_mesh_to_curve_nurblist().
| Mesh * BKE_mesh_new_from_object | ( | Depsgraph * | depsgraph, |
| Object * | object, | ||
| bool | preserve_all_data_layers, | ||
| bool | preserve_origindex ) |
Create new mesh from the given object at its current state. The caller owns the result mesh.
If preserve_all_data_layers is true then the modifier stack is re-evaluated to ensure it preserves all possible custom data layers.
Definition at line 845 of file mesh_convert.cc.
References BLI_assert, depsgraph, Mesh::id, mesh_new_from_curve_type_object(), mesh_new_from_mball_object(), mesh_new_from_mesh_object(), OB_CURVES_LEGACY, OB_FONT, OB_MBALL, OB_MESH, OB_SURF, Mesh::runtime, and ID::us.
Referenced by blender::ed::object::bake(), blender::ed::object::bake_mesh_new_from_object(), BKE_mesh_new_from_object_to_bmain(), BKE_object_to_mesh(), bpy_bmesh_from_object(), blender::io::alembic::ABCMetaballWriter::get_export_mesh(), blender::io::usd::USDMetaballWriter::get_export_mesh(), lineart_object_load_single_instance(), and blender::io::obj::OBJMesh::OBJMesh().
| Mesh * BKE_mesh_new_from_object_to_bmain | ( | Main * | bmain, |
| Depsgraph * | depsgraph, | ||
| Object * | object, | ||
| bool | preserve_all_data_layers ) |
This is a version of BKE_mesh_new_from_object() which stores mesh in the given main database. However, that function enforces object type to be a geometry one, and ensures a mesh is always generated, be it empty.
Definition at line 920 of file mesh_convert.cc.
References BKE_library_foreach_ID_link(), BKE_mesh_add(), BKE_mesh_new_from_object(), BKE_mesh_nomain_to_mesh(), BLI_assert, depsgraph, ELEM, foreach_libblock_make_original_callback(), foreach_libblock_make_usercounts_callback(), Mesh::id, id_us_min(), IDWALK_NOP, Mesh::mat, OB_CURVES_LEGACY, OB_FONT, OB_MBALL, OB_MESH, OB_SURF, Mesh::totcol, and ID::us.
Referenced by blender::ed::object::object_convert_exec(), and blender::ed::object::object_data_convert_curve_to_mesh().
These functions construct a new Mesh, contrary to BKE_mesh_to_curve_nurblist which modifies ob itself.
Definition at line 339 of file mesh_convert.cc.
References BKE_mesh_new_nomain_from_curve_displist(), and Object::runtime.
Referenced by blender::io::alembic::ABCCurveMeshWriter::get_export_mesh(), and knifeproject_poly_from_object().
Definition at line 327 of file mesh_convert.cc.
References Object::data, Curve::mat, MEM_dupallocN, mesh, mesh_copy_texture_space_from_curve_type(), mesh_nurbs_displist_to_mesh(), and Curve::totcol.
Referenced by BKE_mesh_new_nomain_from_curve(), and curve_calc_modifiers_post().
Move data from a mesh outside of the main data-base into a mesh in the data-base. Takes ownership of the source mesh.
Definition at line 1055 of file mesh_convert.cc.
References Mesh::active_color_attribute, BKE_id_free(), BKE_mesh_clear_geometry_and_metadata(), BKE_mesh_copy_parameters(), BLI_assert, CD_MASK_MESH, CD_SHAPEKEY, CLOG_WARN, copy_loose_edge_hint(), copy_loose_vert_hint(), copy_overlapping_hint(), Mesh::corner_data, Mesh::corners_num, CustomData_has_layer(), CustomData_init_from(), Object::data, Mesh::default_color_attribute, Mesh::edge_data, Mesh::edges_num, Mesh::face_data, Mesh::face_offset_indices, Mesh::faces_num, find_object_active_key_uid(), Key::id, Mesh::id, ID_TAG_NO_MAIN, id_us_min(), Mesh::key, LOG, move_shapekey_layers_to_keyblocks(), ID::name, Mesh::runtime, ID::tag, Mesh::vert_data, Mesh::vertex_group_names, and Mesh::verts_num.
Referenced by blender::ed::sculpt_paint::trim::apply_trim(), BKE_mesh_new_from_object_to_bmain(), blender::io::obj::MeshFromGeometry::create_mesh_object(), geometry_extract_apply(), blender::io::ply::importer_main(), blender::io::stl::importer_main(), blender::ed::object::modifier_apply_obdata(), multiresModifier_rebuild_subdiv(), blender::ed::object::object_convert_exec(), paint_mask_slice_exec(), blender::ed::object::quadriflow_start_job(), blender::io::usd::USDMeshReader::read_object_data(), blender::io::usd::USDShapeReader::read_object_data(), blender::io::alembic::AbcMeshReader::readObjectData(), blender::io::alembic::AbcSubDReader::readObjectData(), blender::ed::geometry::store_result_geometry(), and blender::ed::object::voxel_remesh_exec().
Definition at line 1118 of file mesh_convert.cc.
References BLI_assert, blender::MutableSpan< T >::copy_from(), KeyBlock::data, Key::elemsize, Mesh::id, ID_TAG_NO_MAIN, Mesh::key, MEM_freeN(), MEM_malloc_arrayN, ID::tag, KeyBlock::totelem, and Mesh::verts_num.
Referenced by blender::ed::object::modifier_apply_shape().
Definition at line 506 of file mesh_convert.cc.
References BKE_curve_add(), BKE_mesh_to_curve_nurblist(), BKE_object_free_derived_caches(), BKE_object_get_evaluated_mesh_no_subsurf(), CU_3D, Object::data, DEG_get_evaluated_object(), depsgraph, ListBase::first, Curve::flag, Object::id, id_us_min(), ID::name, Curve::nurb, OB_CURVES_LEGACY, and Object::type.
Referenced by blender::ed::object::object_convert_exec().
| void BKE_mesh_to_curve_nurblist | ( | const Mesh * | mesh, |
| ListBase * | nurblist, | ||
| const int | edge_users_test ) |
Definition at line 374 of file mesh_convert.cc.
References appendPolyLineVert(), BLI_addtail(), BLI_freelinkN(), BLI_freelistN(), Nurb::bp, copy_v3_v3(), CU_NURB_CYCLIC, CU_NURB_ENDPOINT, EdgeLink::edge, BPoint::f1, ListBase::first, Nurb::flagu, VertLink::index, blender::offset_indices::OffsetIndices< T >::index_range(), blender::Span< T >::index_range(), int, ListBase::last, MEM_calloc_arrayN, MEM_callocN, MEM_freeN(), VertLink::next, Nurb::orderu, Nurb::pntsu, Nurb::pntsv, prependPolyLineVert(), EdgeLink::prev, BPoint::radius, Nurb::resolu, SELECT, blender::Span< T >::size(), blender::Span< T >::slice(), BPoint::vec, and BPoint::weight.
Referenced by BKE_mesh_to_curve(), and knifeproject_poly_from_object().
Definition at line 536 of file mesh_convert.cc.
References BKE_id_materials_copy(), BKE_object_free_derived_caches(), BKE_object_get_evaluated_mesh(), BKE_pointcloud_add(), BLI_assert, CD_MASK_PROP_ALL, CustomData_free(), CustomData_merge(), Object::data, DEG_get_evaluated_object(), depsgraph, Object::id, id_us_min(), ID::name, OB_MESH, OB_POINTCLOUD, PointCloud::pdata, PointCloud::totpoint, Object::type, Mesh::vert_data, and Mesh::verts_num.
Referenced by blender::ed::object::object_convert_exec().
Definition at line 564 of file mesh_convert.cc.
References BKE_id_materials_copy(), BKE_mesh_add(), BKE_object_free_derived_caches(), BLI_assert, CD_MASK_PROP_ALL, CustomData_merge(), Object::data, DEG_get_evaluated_object(), depsgraph, Object::id, id_us_min(), mesh, ID::name, OB_MESH, OB_POINTCLOUD, blender::bke::object_get_evaluated_geometry_set(), and Object::type.
Referenced by blender::ed::object::object_convert_exec().
Definition at line 985 of file mesh_convert.cc.
References Mesh::runtime.
Referenced by BKE_mesh_nomain_to_mesh(), and blender::geometry::mesh_copy_selection_keep_verts().
Definition at line 977 of file mesh_convert.cc.
References Mesh::runtime.
Referenced by BKE_mesh_nomain_to_mesh(), and blender::geometry::mesh_copy_selection_keep_edges().
Definition at line 993 of file mesh_convert.cc.
Referenced by BKE_mesh_nomain_to_mesh(), blender::geometry::mesh_copy_selection_keep_edges(), and blender::geometry::mesh_copy_selection_keep_verts().
|
static |
Populate object->runtime->curve_cache which is then used to create the mesh.
Definition at line 646 of file mesh_convert.cc.
References BKE_displist_make_curveTypes(), BKE_object_runtime_free_data(), BKE_object_runtime_reset(), BLI_assert, BLI_listbase_clear(), GS, ID_CU_LEGACY, Object::modifiers, and Object::runtime.
Referenced by mesh_new_from_curve_type_object().
Definition at line 1010 of file mesh_convert.cc.
References BLI_findlink(), Key::block, CLOG_ERROR, LOG, and KeyBlock::uid.
Referenced by BKE_mesh_nomain_to_mesh().
|
static |
Definition at line 890 of file mesh_convert.cc.
References DEG_get_original_id(), LibraryIDLinkCallbackData::id_pointer, and IDWALK_RET_NOP.
Referenced by BKE_mesh_new_from_object_to_bmain().
|
static |
Definition at line 901 of file mesh_convert.cc.
References LibraryIDLinkCallbackData::cb_flag, LibraryIDLinkCallbackData::id_pointer, id_us_ensure_real(), id_us_plus(), IDWALK_CB_USER, IDWALK_CB_USER_ONE, and IDWALK_RET_NOP.
Referenced by BKE_mesh_new_from_object_to_bmain().
Definition at line 698 of file mesh_convert.cc.
Referenced by mesh_new_from_evaluated_curve_type_object().
|
static |
Definition at line 1000 of file mesh_convert.cc.
References BKE_keyblock_add(), BKE_keyblock_find_uid(), and KeyBlock::uid.
Referenced by move_shapekey_layers_to_keyblocks().
Copy evaluated texture space from curve to mesh.
Definition at line 319 of file mesh_convert.cc.
References BKE_mesh_texspace_calc(), copy_v3_v3(), Curve::texspace_flag, Mesh::texspace_flag, Curve::texspace_location, and Curve::texspace_size.
Referenced by BKE_mesh_new_nomain_from_curve_displist().
Definition at line 717 of file mesh_convert.cc.
References BKE_id_free(), curve_to_mesh_eval_ensure(), Object::data, DEG_is_evaluated_object(), Curve::editfont, GS, ID_CU_LEGACY, mesh, mesh_new_from_evaluated_curve_type_object(), ID::name, object_for_curve_to_mesh_create(), and object_for_curve_to_mesh_free().
Referenced by BKE_mesh_new_from_object().
Definition at line 706 of file mesh_convert.cc.
References BKE_mesh_copy_for_eval(), BKE_object_get_evaluated_mesh(), blender::bke::curve_to_wire_mesh(), and get_evaluated_curves_from_object().
Referenced by mesh_new_from_curve_type_object().
Definition at line 751 of file mesh_convert.cc.
References BKE_id_new_nomain(), BKE_mesh_copy_for_eval(), BKE_object_get_evaluated_mesh(), DEG_is_evaluated_object(), and ID_ME.
Referenced by BKE_mesh_new_from_object().
Definition at line 770 of file mesh_convert.cc.
References BKE_id_copy_ex(), BKE_mesh_wrapper_ensure_mdata(), BKE_mesh_wrapper_ensure_subdivision(), Mesh::id, LIB_ID_CREATE_NO_MAIN, LIB_ID_CREATE_NO_USER_REFCOUNT, ME_WRAPPER_TYPE_BMESH, ID::name, and STRNCPY.
Referenced by mesh_new_from_mesh_object(), and mesh_new_from_mesh_object_with_layers().
|
static |
Definition at line 821 of file mesh_convert.cc.
References BKE_object_get_editmesh_eval_final(), depsgraph, GS, ID_ME, mesh_new_from_mesh(), mesh_new_from_mesh_object_with_layers(), and Mesh::runtime.
Referenced by BKE_mesh_new_from_object().
|
static |
Definition at line 789 of file mesh_convert.cc.
References BKE_mesh_wrapper_ensure_subdivision(), CD_MASK_MESH, CD_MASK_ORIGINDEX, Object::data, DEG_get_evaluated_scene(), DEG_is_original_id(), depsgraph, blender::bke::mesh_create_eval_final(), mesh_new_from_mesh(), Object::runtime, and CustomData_MeshMasks::vmask.
Referenced by mesh_new_from_mesh_object().
Definition at line 66 of file mesh_convert.cc.
References b, BKE_curve_type_get(), BKE_mesh_new_nomain(), copy_v3_v3(), CU_DO_2DFILL, CU_SMOOTH, DATA_, DL_CYCL_U, DL_CYCL_V, DL_INDEX3, DL_POLY, DL_SEGM, DL_SURF, ELEM, blender::bke::SpanAttributeWriter< T >::finish(), LISTBASE_FOREACH, mesh, OB_SURF, blender::bke::SpanAttributeWriter< T >::span, and v.
Referenced by BKE_mesh_new_nomain_from_curve_displist().
|
static |
Definition at line 1021 of file mesh_convert.cc.
References Key::block, CD_SHAPEKEY, CLOG_ERROR, blender::MutableSpan< T >::copy_from(), CustomData_get_layer_index_n(), CustomData_number_of_layers(), KeyBlock::data, keyblock_ensure_from_uid(), CustomData::layers, LISTBASE_FOREACH, LOG, MEM_malloc_arrayN, MEM_SAFE_FREE, KeyBlock::totelem, and KeyBlock::uid.
Referenced by BKE_mesh_nomain_to_mesh().
Definition at line 589 of file mesh_convert.cc.
References BKE_curve_texspace_calc(), BKE_id_copy_ex(), BKE_object_free_modifiers(), Object::data, Curve::editfont, Curve::editnurb, LIB_ID_COPY_LOCALIZE, LIB_ID_COPY_SET_COPIED_ON_WRITE, and LIB_ID_CREATE_NO_USER_REFCOUNT.
Referenced by mesh_new_from_curve_type_object().
|
static |
Definition at line 621 of file mesh_convert.cc.
References BKE_id_free(), Object::data, Curve::editfont, GS, ID_CU_LEGACY, ID::name, and Object::runtime.
Referenced by mesh_new_from_curve_type_object().
Definition at line 360 of file mesh_convert.cc.
References BLI_addhead(), and VertLink::index.
Referenced by BKE_mesh_to_curve_nurblist().
|
static |
Definition at line 64 of file mesh_convert.cc.
Referenced by BKE_mesh_nomain_to_mesh(), find_object_active_key_uid(), and move_shapekey_layers_to_keyblocks().