Ejemplo n.º 1
0
Archivo: vlst.c Proyecto: rvba/minuit
void exe_vlst(t_action *action)
{
	t_dict *args = action->args;
	t_vlst *vlst = dict_pop_data(args,"vlst");
	t_vlst *caller = dict_pop_data(args,"caller");

	vlst_change_data( vlst, caller);

	action->done = 1;
}
Ejemplo n.º 2
0
void exe_add_brick(t_action *action)
{
	t_context *C = ctx_get();
	scene_store(C->scene, 1);

	t_dict *args = action->args;

	t_brick *brick = dict_pop_data(args,"brick");

	t_block *block=brick->block;

	t_node *n=add_part_slider_float(C,block,".",NULL);
	t_brick *b=n->data;
	b->brick_state.is_versatil=1;

	lst_lifo( block->bricks);
	block_brick_set_order( block);

	block->pos[1] -= b->geom.height;

	brick_rhizome_setup(b);

	t_plug *p_in = &b->plug_in;
	
	p_in->state.follow_in=1;
	//p_in->state.can_connect = 0;

	block->block_state.update_geometry=1;

	scene_store(C->scene,0);
}
Ejemplo n.º 3
0
void exe_remove_brick(t_action *action)
{
	// remove brick

	t_dict *args = action->args;

	t_brick *_brick = dict_pop_data(args,"brick");
	t_block *block = _brick->block;

	int remove_connected = _brick->brick_state.remove_connected;

	t_plug *plug_intern = &_brick->plug_intern;
	int *slider = plug_intern->data;

	t_lst *bricks=block->bricks;
	t_link *first = bricks->first;
	t_brick *brick=NULL;
	if(first) brick = first->data;

	t_context *C = ctx_get();
	scene_store( C->scene, 1);

	if(brick)
	{
		// check if bricks are not connected
		if(brick_delete(brick,remove_connected))
		{
			// remove link from bricks
			list_link_remove( bricks, first);
			brick_rhizome_setup(brick);
			block->tot_bricks--;
			block->block_state.update_geometry=1;
			block_brick_set_order( block);
			block->pos[1] += brick->geom.height;
		}
		else
		{
			// re-increment slider
			(*slider)++;
		}
	}

	scene_store( C->scene, 0);
}