void __cls_plug_flow_object(t_plug_mode mode,t_plug *plug,t_plug *src_plug) { if(src_plug) { t_data_type src_type=src_plug->data_type; // node (pointer) t_node *node=plug->data; // object t_object *object=node->data; t_mesh *mesh; t_camera *camera_src; t_camera *camera_dst; switch(src_type) { // + MESH case dt_mesh: if(is(object->type,"mesh")) { mesh=src_plug->data; object->mesh=mesh; } break; // + CAMERA case dt_camera: if(is(object->type,"camera")) { if(src_plug->open_out) { camera_src=src_plug->data; camera_dst=object->data; camera_copy(camera_dst,camera_src); } } break; case dt_lst: break; default: plug_warning(plug,src_plug); break; } } }
t_viewport *viewport_clone(t_viewport *viewport) { if(viewport) { t_viewport *clone = viewport_new(viewport->id.name); clone->width = viewport->width; clone->height = viewport->height; clone->x = viewport->x; clone->y = viewport->y; clone->camera = camera_copy( viewport->camera); clone->draw = viewport->draw; return clone; } else { return NULL; } }