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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-04-16 17:53:30 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-04-16 17:53:30 +0400
commitcaafc8184bb63f38eeac13f9acf7f7410cddc440 (patch)
tree86966d1685a793f206eaac2e07ac7ca453378876 /source/blender/blenkernel/intern/navmesh_conversion.c
parentf4498e62a78e80e0db0a6d398f8b956827dddca5 (diff)
Fix #30720: Creating Navmesh crashes blender
In fact there were several issues fixed (all of them regressions since bmesh merge): - Creating navmesh crashed because creating new faces for mesh was trying to set default values for all customdata layers in this face. This requires memory pool created for this datablock. Usually this pool is creating on creating datablock if there're some elements to be stored in this block. In cases of regular primitive creating it wasn't an issue because they doesn't create customdata layers, they only creates geometry. Navigation mesh creates geometry and customdata layers (CD_RECAST layer) which used to confuse a bit custom data functions. Solved by ensuring there's memory pool created for polygons datablock after adding new custom data layer. Most probably it's better to be resolved on CD level (like smarter track on changed amount of stored data and so) but prefer not to make such global changes so close to the release. - Toggling edit mode lead to loosing recast datalayer. Solved by adding recast layer to bmesh mask so it'll be copied to/from edit mesh. - Some part of code assumed raycast layer is in face datablock, some that it's in polygon datablock. Made it to be in polygons datablock. Kind of temporary solution to make navmesh working, probably it'll fail if one will want to edit navmesh by hand after it was generated. Proper way would be to ensure the whole navmesh things are using ngons.
Diffstat (limited to 'source/blender/blenkernel/intern/navmesh_conversion.c')
-rw-r--r--source/blender/blenkernel/intern/navmesh_conversion.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/navmesh_conversion.c b/source/blender/blenkernel/intern/navmesh_conversion.c
index 27e309e9d20..34e0be1de92 100644
--- a/source/blender/blenkernel/intern/navmesh_conversion.c
+++ b/source/blender/blenkernel/intern/navmesh_conversion.c
@@ -166,7 +166,7 @@ int buildRawVertIndicesData(DerivedMesh* dm, int *nverts_r, float **verts_r,
}
//carefully, recast data is just reference to data in derived mesh
- *recastData = (int*)CustomData_get_layer(&dm->faceData, CD_RECAST);
+ *recastData = (int*)CustomData_get_layer(&dm->polyData, CD_RECAST);
*nverts_r = nverts;
*verts_r = verts;