|
Blender V4.3
|
#include <climits>#include "BLI_utildefines.h"#include "BLI_bitmap.h"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BLI_span.hh"#include "BLT_translation.hh"#include "DNA_defaults.h"#include "DNA_mesh_types.h"#include "DNA_object_types.h"#include "DNA_screen_types.h"#include "BKE_attribute.hh"#include "BKE_customdata.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_mesh.hh"#include "UI_interface.hh"#include "UI_resources.hh"#include "RNA_access.hh"#include "RNA_prototypes.hh"#include "DEG_depsgraph_build.hh"#include "MEM_guardedalloc.h"#include "MOD_modifiertypes.hh"#include "MOD_ui_common.hh"#include "GEO_mesh_merge_by_distance.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Classes | |
| struct | ScrewVertConnect |
| struct | ScrewVertIter |
Macros | |
| #define | SV_UNUSED (UINT_MAX) |
| #define | SV_INVALID ((UINT_MAX)-1) |
| #define | SV_IS_VALID(v) ((v) < SV_INVALID) |
Functions | |
| static void | init_data (ModifierData *md) |
| static void | screwvert_iter_init (ScrewVertIter *iter, ScrewVertConnect *array, uint v_init, uint dir) |
| static void | screwvert_iter_step (ScrewVertIter *iter) |
| static Mesh * | mesh_remove_doubles_on_axis (Mesh *result, blender::MutableSpan< blender::float3 > vert_positions_new, const uint totvert, const uint step_tot, const float axis_vec[3], const float axis_offset[3], const float merge_threshold) |
| static Mesh * | modify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *meshData) |
| static void | update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
| static void | foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data) |
| static void | panel_draw (const bContext *, Panel *panel) |
| static void | normals_panel_draw (const bContext *, Panel *panel) |
| static void | panel_register (ARegionType *region_type) |
Variables | |
| ModifierTypeInfo | modifierType_Screw |
Definition at line 83 of file MOD_screw.cc.
Referenced by modify_mesh().
| #define SV_IS_VALID | ( | v | ) | ((v) < SV_INVALID) |
Definition at line 84 of file MOD_screw.cc.
Referenced by modify_mesh(), screwvert_iter_init(), and screwvert_iter_step().
Definition at line 82 of file MOD_screw.cc.
Referenced by modify_mesh().
|
static |
Definition at line 1057 of file MOD_screw.cc.
References IDWALK_CB_NOP, and ScrewModifierData::ob_axis.
|
static |
Definition at line 53 of file MOD_screw.cc.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
|
static |
Definition at line 125 of file MOD_screw.cc.
References add_v3_v3(), BKE_id_free(), BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, BLI_BITMAP_TEST, copy_v3_v3(), copy_vn_i(), int, len_squared_v3v3(), MEM_freeN(), MEM_malloc_arrayN, project_v3_v3v3_normalized(), result, square_f(), and sub_v3_v3v3().
Referenced by modify_mesh().
|
static |
Definition at line 195 of file MOD_screw.cc.
References add_v3_v3(), angle(), ScrewModifierData::angle, angle_v3v3(), ScrewModifierData::axis, axis_angle_normalized_to_mat3(), axis_angle_to_mat3_single(), BKE_mesh_new_nomain_from_template(), CD_ORIGINDEX, CD_PROP_FLOAT2, CD_SET_DEFAULT, closest_to_line_v3(), ScrewVertConnect::co, copy_m3_m4(), copy_m4_m3(), copy_m4_m4(), copy_v2_fl2(), copy_v3_v3(), cross_v3_v3v3(), CustomData_add_layer(), CustomData_copy_data(), CustomData_free_layers(), CustomData_get_layer_for_write(), CustomData_get_layer_n_for_write(), CustomData_has_layer(), CustomData_number_of_layers(), blender::MutableSpan< T >::data(), blender::Span< T >::data(), dist_signed_squared_to_plane_v3(), dist_signed_to_plane_v3(), ScrewVertConnect::dist_sq, e, ScrewVertConnect::e, ScrewVertIter::e, fabsf, blender::bke::SpanAttributeWriter< T >::finish(), ModifierEvalContext::flag, ScrewModifierData::flag, ScrewVertConnect::flag, float, FLT_MAX, blender::offset_indices::OffsetIndices< T >::index_range(), int, invert_m4_m4(), blender::Span< T >::is_empty(), ScrewModifierData::iter, len_v3(), len_v3v3(), M_PI, madd_v3_v3fl(), max_ff(), MEM_freeN(), MEM_malloc_arrayN, ScrewModifierData::merge_dist, mesh_remove_doubles_on_axis(), min_ff(), MOD_APPLY_RENDER, MOD_SCREW_MERGE, MOD_SCREW_NORMAL_CALC, MOD_SCREW_NORMAL_FLIP, MOD_SCREW_OBJECT_OFFSET, MOD_SCREW_SMOOTH_SHADING, MOD_SCREW_UV_STRETCH_U, MOD_SCREW_UV_STRETCH_V, mul_m4_m4m4(), mul_m4_v3(), mul_mat3_m4_v3(), mul_v3_m3v3(), normalize_v3(), ScrewModifierData::ob_axis, ModifierEvalContext::object, ORIGINDEX_NONE, plane_from_point_normal_v3(), printf, ScrewModifierData::render_steps, result, ScrewModifierData::screw_ofs, screwvert_iter_init(), screwvert_iter_step(), blender::bke::SpanAttributeWriter< T >::span, sqrtf_signed(), ScrewModifierData::steps, sub_v3_v3(), sub_v3_v3v3(), SV_INVALID, SV_IS_VALID, SV_UNUSED, UINT_MAX, ScrewVertConnect::v, ScrewVertIter::v, v, ScrewVertIter::v_poin, and zero_v3().
Definition at line 1117 of file MOD_screw.cc.
References col, Panel::layout, modifier_panel_get_property_pointers(), ptr, UI_ITEM_NONE, uiItemR(), uiLayoutColumn(), and uiLayoutSetPropSep().
Referenced by panel_register().
Definition at line 1064 of file MOD_screw.cc.
References col, IFACE_, Panel::layout, modifier_panel_end(), modifier_panel_get_property_pointers(), ptr, RNA_boolean_get(), RNA_pointer_get(), RNA_pointer_is_null(), UI_ITEM_NONE, UI_ITEM_R_EXPAND, UI_ITEM_R_FORCE_BLANK_DECORATE, UI_ITEM_R_TOGGLE, uiItemR(), uiItemS(), uiLayoutColumn(), uiLayoutRow(), uiLayoutRowWithHeading(), uiLayoutSetActive(), and uiLayoutSetPropSep().
|
static |
Definition at line 1132 of file MOD_screw.cc.
References eModifierType_Screw, modifier_panel_register(), modifier_subpanel_register(), normals_panel_draw(), and blender::panel_draw().
|
static |
Definition at line 86 of file MOD_screw.cc.
References ScrewVertConnect::e, ScrewVertIter::e, SV_IS_VALID, ScrewVertConnect::v, ScrewVertIter::v, ScrewVertIter::v_array, ScrewVertIter::v_other, and ScrewVertIter::v_poin.
Referenced by modify_mesh().
|
static |
Definition at line 105 of file MOD_screw.cc.
References ScrewVertConnect::e, ScrewVertIter::e, SV_IS_VALID, ScrewVertConnect::v, ScrewVertIter::v, ScrewVertIter::v_array, ScrewVertIter::v_other, and ScrewVertIter::v_poin.
Referenced by modify_mesh().
|
static |
Definition at line 1048 of file MOD_screw.cc.
References DEG_add_depends_on_transform_relation(), DEG_add_object_relation(), DEG_OB_COMP_TRANSFORM, ModifierUpdateDepsgraphContext::node, and ScrewModifierData::ob_axis.
| ModifierTypeInfo modifierType_Screw |
Definition at line 1139 of file MOD_screw.cc.