t_node *add_block(t_context *C,const char *name) { // Get Set t_set *set = get_current_set(C); // New Block t_node *node_block=block_make(name,"block"); t_block *block = ( t_block *) node_block->data; // Draw Outline block->block_state.draw_outline = 1; // Add to Set set_block_push(set,block); // Set Block Pos if(current_frame != C->app->frame) { current_frame = C->app->frame; block_pos_offset = 0; } float p[2]; ctx_get_mouse_pos(C,p); if( opt_op_use_random) vset3f(block->pos,p[0] * _rnd() ,p[1] * _rnd() ,0); else vset3f(block->pos,p[0],p[1]+block_pos_offset,0); return node_block; }
void _add_block(t_context *C,t_block *block) { // GET LIST t_lst *list=get_target_list(C); // ADD TO MAIN LIST list_add_global(list,block); // SET BLOCK POS vset3f(block->pos,C->app->mouse->x,C->app->mouse->y,0); }
void *block_new(const char *name) { t_block *block = (t_block *) mem_malloc( sizeof( t_block)); block->cls = NULL; vset3i( block->idcol, 0, 0, 0); id_init(&block->id, name); bzero(block->type,_NAME_); vset3f( block->pos, 0, 0, 0); block->width = 0; block->height = 0; block->block_state.is_root=0; block->block_state.draw_outline=0; block->block_state.draw_plugs=0; block->block_state.is_mouse_over=0; block->block_state.update_geometry=1; block->block_state.is_a_loop = 0; block->block_state.is_in_rhizome = 0; block->block_state.frame_based = 0; block->block_state.connecting = 0; block->block_state.draw_clone_link = 0; block->tot_bricks=0; block->rhizome_order = -1; block->rhizome_pos = 0; block->bricks=NULL; block->submenu = NULL; block->hover = NULL; block->selected = NULL; block->rhizome = NULL; block->set = NULL; block->state = NULL; block->clone = NULL; block->up = 1; block->clones = 0; return block; }