Ejemplo n.º 1
0
static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, const bool from_mix)
{
    KeyBlock *kb;
    if ((kb = BKE_object_insert_shape_key(scene, 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);
    }
}
Ejemplo n.º 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_insert_shape_key(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;
	}
}