Пример #1
0
void BKE_modifier_init(void)
{
	ModifierData *md;

	/* Initialize modifier types */
	modifier_type_init(modifier_types); /* MOD_utils.c */

	/* Initialize global cmmon storage used for virtual modifier list */
	md = modifier_new(eModifierType_Armature);
	virtualModifierCommonData.amd = *((ArmatureModifierData *) md);
	modifier_free(md);

	md = modifier_new(eModifierType_Curve);
	virtualModifierCommonData.cmd = *((CurveModifierData *) md);
	modifier_free(md);

	md = modifier_new(eModifierType_Lattice);
	virtualModifierCommonData.lmd = *((LatticeModifierData *) md);
	modifier_free(md);

	md = modifier_new(eModifierType_ShapeKey);
	virtualModifierCommonData.smd = *((ShapeKeyModifierData *) md);
	modifier_free(md);

	virtualModifierCommonData.amd.modifier.mode |= eModifierMode_Virtual;
	virtualModifierCommonData.cmd.modifier.mode |= eModifierMode_Virtual;
	virtualModifierCommonData.lmd.modifier.mode |= eModifierMode_Virtual;
	virtualModifierCommonData.smd.modifier.mode |= eModifierMode_Virtual;
}
Пример #2
0
ModifierTypeInfo *modifierType_getInfo(ModifierType type)
{
	static ModifierTypeInfo *types[NUM_MODIFIER_TYPES]= {NULL};
	static int types_init = 1;

	if (types_init) {
		modifier_type_init(types); /* MOD_utils.c */
		types_init= 0;
	}

	/* type unsigned, no need to chech < 0 */
	if(type < NUM_MODIFIER_TYPES && types[type]->name[0] != '\0') {
		return types[type];
	}
	else {
		return NULL;
	}
}