static void ED_object_shape_key_add(bContext *C, Object *ob, const bool from_mix)
{
	KeyBlock *kb;
	if ((kb = BKE_object_shapekey_insert(ob, NULL, from_mix))) {
		Key *key = BKE_key_from_object(ob);
		/* for absolute shape keys, new keys may not be added last */
		ob->shapenr = BLI_findindex(&key->block, kb) + 1;

		WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
	}
}
Beispiel #2
0
static PointerRNA rna_Object_shape_key_add(Object *ob, bContext *C, ReportList *reports,
                                           const char *name, int from_mix)
{
	KeyBlock *kb = NULL;

	if ((kb = BKE_object_shapekey_insert(ob, name, from_mix))) {
		PointerRNA keyptr;

		RNA_pointer_create((ID *)ob->data, &RNA_ShapeKey, kb, &keyptr);
		WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
		
		return keyptr;
	}
	else {
		BKE_reportf(reports, RPT_ERROR, "Object '%s' does not support shapes", ob->id.name + 2);
		return PointerRNA_NULL;
	}
}