Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/geometry_component_curves.cc
| Show First 20 Lines • Show All 193 Lines • ▼ Show 20 Lines | for (const int i_curve : range) { | ||||
| bke::curves::poly::calculate_tangents(curve_positions, cyclic, nurbs_tangents); | bke::curves::poly::calculate_tangents(curve_positions, cyclic, nurbs_tangents); | ||||
| switch (NormalMode(normal_modes[i_curve])) { | switch (NormalMode(normal_modes[i_curve])) { | ||||
| case NORMAL_MODE_Z_UP: | case NORMAL_MODE_Z_UP: | ||||
| bke::curves::poly::calculate_normals_z_up(nurbs_tangents, curve_normals); | bke::curves::poly::calculate_normals_z_up(nurbs_tangents, curve_normals); | ||||
| break; | break; | ||||
| case NORMAL_MODE_MINIMUM_TWIST: | case NORMAL_MODE_MINIMUM_TWIST: | ||||
| bke::curves::poly::calculate_normals_minimum(nurbs_tangents, cyclic, curve_normals); | bke::curves::poly::calculate_normals_minimum(nurbs_tangents, cyclic, curve_normals); | ||||
| break; | break; | ||||
| case NORMAL_MODE_CURVATURE_VECTOR: | |||||
| bke::curves::poly::calculate_curvature_vectors( | |||||
| curve_positions, nurbs_tangents, cyclic, curve_normals); | |||||
| break; | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| }); | }); | ||||
| return results; | return results; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 289 Lines • ▼ Show 20 Lines | static BuiltinCustomDataLayerProvider nurbs_order("nurbs_order", | ||||
| make_array_read_attribute<int8_t>, | make_array_read_attribute<int8_t>, | ||||
| make_array_write_attribute<int8_t>, | make_array_write_attribute<int8_t>, | ||||
| tag_component_topology_changed, | tag_component_topology_changed, | ||||
| AttributeValidator{&nurbs_order_clamp}); | AttributeValidator{&nurbs_order_clamp}); | ||||
| static const auto normal_mode_clamp = mf::build::SI1_SO<int8_t, int8_t>( | static const auto normal_mode_clamp = mf::build::SI1_SO<int8_t, int8_t>( | ||||
| "Normal Mode Validate", | "Normal Mode Validate", | ||||
| [](int8_t value) { | [](int8_t value) { | ||||
| return std::clamp<int8_t>(value, NORMAL_MODE_MINIMUM_TWIST, NORMAL_MODE_Z_UP); | return std::clamp<int8_t>(value, NORMAL_MODE_MINIMUM_TWIST, NORMAL_MODE_CURVATURE_VECTOR); | ||||
| }, | }, | ||||
| mf::build::exec_presets::AllSpanOrSingle()); | mf::build::exec_presets::AllSpanOrSingle()); | ||||
| static BuiltinCustomDataLayerProvider normal_mode("normal_mode", | static BuiltinCustomDataLayerProvider normal_mode("normal_mode", | ||||
| ATTR_DOMAIN_CURVE, | ATTR_DOMAIN_CURVE, | ||||
| CD_PROP_INT8, | CD_PROP_INT8, | ||||
| CD_PROP_INT8, | CD_PROP_INT8, | ||||
| BuiltinAttributeProvider::Creatable, | BuiltinAttributeProvider::Creatable, | ||||
| BuiltinAttributeProvider::Writable, | BuiltinAttributeProvider::Writable, | ||||
| ▲ Show 20 Lines • Show All 162 Lines • Show Last 20 Lines | |||||