コード例 #1
0
/**
 * \see  #DM_is_valid to call on derived meshes
 *
 * \returns true if a change is made.
 */
int BKE_mesh_validate(Mesh *me, const int do_verbose)
{
	bool is_valid = true;
	bool changed;

	if (do_verbose) {
		printf("MESH: %s\n", me->id.name + 2);
	}

	is_valid &= BKE_mesh_validate_all_customdata(
	        &me->vdata, &me->edata, &me->ldata, &me->pdata,
	        true,
	        do_verbose, true,
	        &changed);

	is_valid &= BKE_mesh_validate_arrays(
	        me,
	        me->mvert, me->totvert,
	        me->medge, me->totedge,
	        me->mface, me->totface,
	        me->mloop, me->totloop,
	        me->mpoly, me->totpoly,
	        me->dvert,
	        do_verbose, true,
	        &changed);

	if (changed) {
		DAG_id_tag_update(&me->id, OB_RECALC_DATA);
		return true;
	}
	else {
		return false;
	}
}
コード例 #2
0
int BKE_mesh_validate(Mesh *me, int do_verbose)
{
	if(do_verbose) {
		printf("MESH: %s\n", me->id.name+2);
	}
	return BKE_mesh_validate_arrays(me, me->mvert, me->totvert, me->medge, me->totedge, me->mface, me->totface, do_verbose, TRUE);
}
コード例 #3
0
ファイル: mesh_validate.c プロジェクト: mik0001/Blender
int BKE_mesh_validate_dm(DerivedMesh *dm)
{
	return BKE_mesh_validate_arrays(NULL,
	                                dm->getVertArray(dm), dm->getNumVerts(dm),
	                                dm->getEdgeArray(dm), dm->getNumEdges(dm),
	                                dm->getFaceArray(dm), dm->getNumFaces(dm),
	                                dm->getVertDataArray(dm, CD_MDEFORMVERT),
	                                TRUE, FALSE);
}
コード例 #4
0
ファイル: mesh_validate.c プロジェクト: mik0001/Blender
int BKE_mesh_validate(Mesh *me, int do_verbose)
{
	int layers_fixed= 0, arrays_fixed= 0;

	if(do_verbose) {
		printf("MESH: %s\n", me->id.name+2);
	}

	layers_fixed= BKE_mesh_validate_all_customdata(&me->vdata, &me->edata, &me->fdata, do_verbose, TRUE);
	arrays_fixed= BKE_mesh_validate_arrays(me,
	                                       me->mvert, me->totvert,
	                                       me->medge, me->totedge,
	                                       me->mface, me->totface,
	                                       me->dvert,
	                                       do_verbose, TRUE);

	return layers_fixed || arrays_fixed;
}
コード例 #5
0
ファイル: mesh_validate.c プロジェクト: 244xiao/blender
int BKE_mesh_validate(Mesh *me, const int do_verbose)
{
	int layers_fixed = 0, arrays_fixed = 0;

	if (do_verbose) {
		printf("MESH: %s\n", me->id.name + 2);
	}

	layers_fixed = BKE_mesh_validate_all_customdata(&me->vdata, &me->edata, &me->ldata, &me->pdata, do_verbose, TRUE);
	arrays_fixed = BKE_mesh_validate_arrays(me,
	                                        me->mvert, me->totvert,
	                                        me->medge, me->totedge,
	                                        me->mface, me->totface,
	                                        me->mloop, me->totloop,
	                                        me->mpoly, me->totpoly,
	                                        me->dvert,
	                                        do_verbose, true);

	if (layers_fixed || arrays_fixed) {
		DAG_id_tag_update(&me->id, OB_RECALC_DATA);
		return true;
	}
	return false;
}