Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_subsurf.c
| Show First 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | |||||
| static void initData(ModifierData *md) | static void initData(ModifierData *md) | ||||
| { | { | ||||
| SubsurfModifierData *smd = (SubsurfModifierData *) md; | SubsurfModifierData *smd = (SubsurfModifierData *) md; | ||||
| smd->levels = 1; | smd->levels = 1; | ||||
| smd->renderLevels = 2; | smd->renderLevels = 2; | ||||
| smd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS; | smd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS; | ||||
| smd->quality = 3; | smd->quality = 3; | ||||
| smd->flags |= eSubsurfModifierFlag_UseCrease; | |||||
| } | } | ||||
| static void copyData(const ModifierData *md, ModifierData *target, const int flag) | static void copyData(const ModifierData *md, ModifierData *target, const int flag) | ||||
| { | { | ||||
| #if 0 | #if 0 | ||||
| const SubsurfModifierData *smd = (const SubsurfModifierData *) md; | const SubsurfModifierData *smd = (const SubsurfModifierData *) md; | ||||
| #endif | #endif | ||||
| SubsurfModifierData *tsmd = (SubsurfModifierData *) target; | SubsurfModifierData *tsmd = (SubsurfModifierData *) target; | ||||
| ▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| static void subdiv_settings_init(SubdivSettings *settings, | static void subdiv_settings_init(SubdivSettings *settings, | ||||
| const SubsurfModifierData *smd) | const SubsurfModifierData *smd) | ||||
| { | { | ||||
| settings->is_simple = (smd->subdivType == SUBSURF_TYPE_SIMPLE); | settings->is_simple = (smd->subdivType == SUBSURF_TYPE_SIMPLE); | ||||
| settings->is_adaptive = true; | settings->is_adaptive = true; | ||||
| settings->level = settings->is_simple ? 1 : smd->quality; | settings->level = settings->is_simple ? 1 : smd->quality; | ||||
| settings->use_creases = (smd->flags & eSubsurfModifierFlag_UseCrease); | |||||
| settings->vtx_boundary_interpolation = SUBDIV_VTX_BOUNDARY_EDGE_ONLY; | settings->vtx_boundary_interpolation = SUBDIV_VTX_BOUNDARY_EDGE_ONLY; | ||||
| settings->fvar_linear_interpolation = | settings->fvar_linear_interpolation = | ||||
| BKE_subdiv_fvar_interpolation_from_uv_smooth(smd->uv_smooth); | BKE_subdiv_fvar_interpolation_from_uv_smooth(smd->uv_smooth); | ||||
| } | } | ||||
| /* Main goal of this function is to give usable subdivision surface descriptor | /* Main goal of this function is to give usable subdivision surface descriptor | ||||
| * which matches settings and topology. */ | * which matches settings and topology. */ | ||||
| static Subdiv *subdiv_descriptor_ensure(SubsurfModifierData *smd, | static Subdiv *subdiv_descriptor_ensure(SubsurfModifierData *smd, | ||||
| ▲ Show 20 Lines • Show All 142 Lines • Show Last 20 Lines | |||||