Esempio n. 1
0
void BKE_displist_make_mball_forRender(EvaluationContext *eval_ctx, Scene *scene, Object *ob, ListBase *dispbase)
{
	BKE_mball_polygonize(eval_ctx, scene, ob, dispbase);
	BKE_mball_texspace_calc(ob);

	object_deform_mball(ob, dispbase);
}
Esempio n. 2
0
void makeDispListMBall_forRender(Scene *scene, Object *ob, ListBase *dispbase)
{
	metaball_polygonize(scene, ob, dispbase);
	tex_space_mball(ob);
	
	object_deform_mball(ob, dispbase);
}
Esempio n. 3
0
void makeDispListMBall(Scene *scene, Object *ob)
{
	if(!ob || ob->type!=OB_MBALL) return;

	// XXX: mball stuff uses plenty of global variables
	//      while this is unchanged updating during render is unsafe
	if(G.rendering) return;

	freedisplist(&(ob->disp));

	if(ob->type==OB_MBALL) {
		if(ob==find_basis_mball(scene, ob)) {
			metaball_polygonize(scene, ob, &ob->disp);
			tex_space_mball(ob);

			object_deform_mball(ob, &ob->disp);
		}
	}
	
	boundbox_displist(ob);
}
Esempio n. 4
0
void BKE_displist_make_mball(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
{
	if (!ob || ob->type != OB_MBALL)
		return;

	if (ob == BKE_mball_basis_find(scene, ob)) {
		if (ob->curve_cache) {
			BKE_displist_free(&(ob->curve_cache->disp));
		}
		else {
			ob->curve_cache = MEM_callocN(sizeof(CurveCache), "CurveCache for MBall");
		}

		BKE_mball_polygonize(eval_ctx, scene, ob, &ob->curve_cache->disp);
		BKE_mball_texspace_calc(ob);

		object_deform_mball(ob, &ob->curve_cache->disp);

		/* NOP for MBALLs anyway... */
		boundbox_displist_object(ob);
	}
}