move validation into blender kernel so it can be called by internal modifier funcs more easily.
This commit is contained in:
@@ -47,6 +47,8 @@ struct Object;
|
||||
struct MTFace;
|
||||
struct VecNor;
|
||||
struct CustomData;
|
||||
struct DerivedMesh;
|
||||
struct Scene;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -147,9 +149,13 @@ int mesh_center_median(struct Mesh *me, float cent[3]);
|
||||
int mesh_center_bounds(struct Mesh *me, float cent[3]);
|
||||
void mesh_translate(struct Mesh *me, float offset[3], int do_keys);
|
||||
|
||||
/* mesh_validate.c */
|
||||
void BKE_mesh_validate_arrays(struct MVert *mverts, int totvert, struct MEdge *medges, int totedge, struct MFace *mfaces, int totface);
|
||||
void BKE_mesh_validate(struct Mesh *me);
|
||||
void BKE_mesh_validate_dm(struct DerivedMesh *dm);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* BKE_MESH_H */
|
||||
|
@@ -105,6 +105,7 @@ set(SRC
|
||||
intern/material.c
|
||||
intern/mball.c
|
||||
intern/mesh.c
|
||||
intern/mesh_validate.c
|
||||
intern/modifier.c
|
||||
intern/multires.c
|
||||
intern/nla.c
|
||||
|
@@ -34,6 +34,8 @@
|
||||
#include "BLI_utildefines.h"
|
||||
#include "BLI_edgehash.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "ED_mesh.h"
|
||||
@@ -71,7 +73,7 @@ static int search_face_cmp(const void *v1, const void *v2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ED_mesh_validate_arrays(MVert *UNUSED(mverts), int totvert, MEdge *medges, int totedge, MFace *mfaces, int totface)
|
||||
void BKE_mesh_validate_arrays(MVert *UNUSED(mverts), int totvert, MEdge *medges, int totedge, MFace *mfaces, int totface)
|
||||
{
|
||||
// MVert *mv;
|
||||
MEdge *med;
|
||||
@@ -242,11 +244,16 @@ void ED_mesh_validate_arrays(MVert *UNUSED(mverts), int totvert, MEdge *medges,
|
||||
BLI_edgehash_free(edge_hash, NULL);
|
||||
MEM_freeN(search_faces);
|
||||
|
||||
printf("ED_mesh_validate: finished\n\n");
|
||||
printf("BKE_mesh_validate: finished\n\n");
|
||||
}
|
||||
|
||||
void ED_mesh_validate(Mesh *me)
|
||||
void BKE_mesh_validate(Mesh *me)
|
||||
{
|
||||
printf("MESH: %s\n", me->id.name+2);
|
||||
ED_mesh_validate_arrays(me->mvert, me->totvert, me->medge, me->totedge, me->mface, me->totface);
|
||||
BKE_mesh_validate_arrays(me->mvert, me->totvert, me->medge, me->totedge, me->mface, me->totface);
|
||||
}
|
||||
|
||||
void BKE_mesh_validate_dm(DerivedMesh *dm)
|
||||
{
|
||||
BKE_mesh_validate_arrays(dm->getVertArray(dm), dm->getNumVerts(dm), dm->getEdgeArray(dm), dm->getNumEdges(dm), dm->getFaceArray(dm), dm->getNumFaces(dm));
|
||||
}
|
@@ -82,10 +82,6 @@ struct rcti;
|
||||
#define B_FRACTAL 0x2000
|
||||
#define B_SPHERE 0x4000
|
||||
|
||||
/* mesh_validate.c */
|
||||
void ED_mesh_validate_arrays(struct MVert *mverts, int totvert, struct MEdge *medges, int totedge, struct MFace *mfaces, int totface);
|
||||
void ED_mesh_validate(struct Mesh *me);
|
||||
|
||||
/* meshtools.c */
|
||||
|
||||
intptr_t mesh_octree_table(struct Object *ob, struct EditMesh *em, float *co, char mode);
|
||||
|
@@ -42,7 +42,6 @@ set(SRC
|
||||
loopcut.c
|
||||
mesh_data.c
|
||||
mesh_ops.c
|
||||
mesh_validate.c
|
||||
meshtools.c
|
||||
|
||||
mesh_intern.h
|
||||
|
@@ -33,6 +33,7 @@
|
||||
|
||||
#include "BLO_sys_types.h"
|
||||
|
||||
#include "BKE_mesh.h"
|
||||
#include "ED_mesh.h"
|
||||
|
||||
#ifdef RNA_RUNTIME
|
||||
@@ -57,8 +58,10 @@ void RNA_api_mesh(StructRNA *srna)
|
||||
RNA_def_boolean(func, "calc_edges", 0, "Calculate Edges", "Force recalculation of edges.");
|
||||
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
|
||||
|
||||
/* Linking errors! */
|
||||
/* func= RNA_def_function(srna, "validate", "ED_mesh_validate"); */
|
||||
/*
|
||||
func= RNA_def_function(srna, "validate", "BKE_mesh_validate");
|
||||
RNA_def_function_ui_description(func, "validate geometry.");
|
||||
*/
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user