Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/displist.cc')
-rw-r--r--source/blender/blenkernel/intern/displist.cc28
1 files changed, 17 insertions, 11 deletions
diff --git a/source/blender/blenkernel/intern/displist.cc b/source/blender/blenkernel/intern/displist.cc
index b87d675496c..2e285170b93 100644
--- a/source/blender/blenkernel/intern/displist.cc
+++ b/source/blender/blenkernel/intern/displist.cc
@@ -503,7 +503,7 @@ static float displist_calc_taper(Depsgraph *depsgraph,
float BKE_displist_calc_taper(
Depsgraph *depsgraph, const Scene *scene, Object *taperobj, int cur, int tot)
{
- const float fac = ((float)cur) / (float)(tot - 1);
+ const float fac = float(cur) / float(tot - 1);
return displist_calc_taper(depsgraph, scene, taperobj, fac);
}
@@ -518,7 +518,7 @@ static ModifierData *curve_get_tessellate_point(const Scene *scene,
ModifierMode required_mode = for_render ? eModifierMode_Render : eModifierMode_Realtime;
if (editmode) {
- required_mode = (ModifierMode)((int)required_mode | eModifierMode_Editmode);
+ required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
}
ModifierData *pretessellatePoint = nullptr;
@@ -532,6 +532,12 @@ static ModifierData *curve_get_tessellate_point(const Scene *scene,
return pretessellatePoint;
}
+ if (md->type == eModifierType_Smooth) {
+ /* Smooth modifier works with mesh edges explicitly
+ * (so needs tessellation, thus cannot work on control points). */
+ md->mode &= ~eModifierMode_ApplyOnSpline;
+ return pretessellatePoint;
+ }
if (ELEM(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
pretessellatePoint = md;
@@ -562,7 +568,7 @@ void BKE_curve_calc_modifiers_pre(Depsgraph *depsgraph,
const bool editmode = (!for_render && (cu->editnurb || cu->editfont));
ModifierMode required_mode = for_render ? eModifierMode_Render : eModifierMode_Realtime;
if (editmode) {
- required_mode = (ModifierMode)((int)required_mode | eModifierMode_Editmode);
+ required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
}
ModifierApplyFlag apply_flag = (ModifierApplyFlag)0;
@@ -634,7 +640,7 @@ void BKE_curve_calc_modifiers_pre(Depsgraph *depsgraph,
/**
* \return True if the deformed curve control point data should be implicitly
- * converted directly to a mesh, or false if it can be left as curve data via #CurveEval.
+ * converted directly to a mesh, or false if it can be left as curve data via the #Curves type.
*/
static bool do_curve_implicit_mesh_conversion(const Curve *curve,
ModifierData *first_modifier,
@@ -689,7 +695,7 @@ static GeometrySet curve_calc_modifiers_post(Depsgraph *depsgraph,
ModifierApplyFlag apply_flag = for_render ? MOD_APPLY_RENDER : (ModifierApplyFlag)0;
ModifierMode required_mode = for_render ? eModifierMode_Render : eModifierMode_Realtime;
if (editmode) {
- required_mode = (ModifierMode)((int)required_mode | eModifierMode_Editmode);
+ required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
}
const ModifierEvalContext mectx_deform = {
@@ -970,13 +976,13 @@ static void calc_bevfac_segment_mapping(
int bevcount = 0, nr = bl->nr;
float bev_fl = bevfac * (bl->nr - 1);
- *r_bev = (int)bev_fl;
+ *r_bev = int(bev_fl);
while (bevcount < nr - 1) {
float normlen = *seglen / spline_length;
if (normsum + normlen > bevfac) {
bev_fl = bevcount + (bevfac - normsum) / normlen * *segbevcount;
- *r_bev = (int)bev_fl;
+ *r_bev = int(bev_fl);
*r_blend = bev_fl - *r_bev;
break;
}
@@ -1046,7 +1052,7 @@ static void calc_bevfac_mapping(const Curve *cu,
switch (cu->bevfac1_mapping) {
case CU_BEVFAC_MAP_RESOLU: {
const float start_fl = cu->bevfac1 * (bl->nr - 1);
- *r_start = (int)start_fl;
+ *r_start = int(start_fl);
*r_firstblend = 1.0f - (start_fl - (*r_start));
break;
}
@@ -1065,7 +1071,7 @@ static void calc_bevfac_mapping(const Curve *cu,
switch (cu->bevfac2_mapping) {
case CU_BEVFAC_MAP_RESOLU: {
const float end_fl = cu->bevfac2 * (bl->nr - 1);
- end = (int)end_fl;
+ end = int(end_fl);
*r_steps = 2 + end - *r_start;
*r_lastblend = end_fl - end;
@@ -1238,12 +1244,12 @@ static GeometrySet evaluate_curve_type_object(Depsgraph *depsgraph,
taper_factor = 1.0f;
}
else {
- taper_factor = ((float)a - (1.0f - first_blend)) / len;
+ taper_factor = (float(a) - (1.0f - first_blend)) / len;
}
}
else {
float len = bl->nr - 1;
- taper_factor = (float)i / len;
+ taper_factor = float(i) / len;
if (a == 0) {
taper_factor += (1.0f - first_blend) / len;