diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-01 16:43:57 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-01 19:42:59 +0300 |
commit | 4fe14d6a26e101a32e6a0ec9722248d215287a9d (patch) | |
tree | f8ace27ca928a36f2e1fad8d2603324878772b0a /source/blender/blenkernel/intern/subdiv_eval.c | |
parent | 63058490a3da932d2c9224aa4555f23eebb77264 (diff) |
Subsurf: Support subdivision of mesh with just loose elements
Diffstat (limited to 'source/blender/blenkernel/intern/subdiv_eval.c')
-rw-r--r-- | source/blender/blenkernel/intern/subdiv_eval.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/subdiv_eval.c b/source/blender/blenkernel/intern/subdiv_eval.c index 7c90a2a25cd..0f928331724 100644 --- a/source/blender/blenkernel/intern/subdiv_eval.c +++ b/source/blender/blenkernel/intern/subdiv_eval.c @@ -48,7 +48,10 @@ void BKE_subdiv_eval_begin(Subdiv *subdiv) { #ifdef WITH_OPENSUBDIV - if (subdiv->evaluator == NULL) { + if (subdiv->topology_refiner == NULL) { + /* Happens on input mesh with just loose geometry. */ + } + else if (subdiv->evaluator == NULL) { BKE_subdiv_stats_begin(&subdiv->stats, SUBDIV_STATS_EVALUATOR_CREATE); subdiv->evaluator = openSubdiv_createEvaluatorFromTopologyRefiner( subdiv->topology_refiner); @@ -132,6 +135,9 @@ void BKE_subdiv_eval_update_from_mesh(Subdiv *subdiv, const Mesh *mesh) { #ifdef WITH_OPENSUBDIV BKE_subdiv_eval_begin(subdiv); + if (subdiv->evaluator == NULL) { + return; + } /* Set coordinates of base mesh vertices. */ set_coarse_positions(subdiv, mesh); /* Set face-varyign data to UV maps. */ |