void init_sphere(Sphere *sphere) { sphere->center.x = 0.0f; sphere->center.y = 0.0f; sphere->center.z = 0.0f; sphere->radius = 1.0f; init_material(&(sphere->mat)); }
Material *add_material(const char *name) { Material *ma; ma= alloc_libblock(&G.main->mat, ID_MA, name); init_material(ma); return ma; }
void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); init_material(Ka, Kd, Ks, 100 * Kp, Red, Green, Blue); glTranslatef(xpos / 500.0, ypos / 500.0, zpos / 500.0); glRotatef(xangle, 1.0, 0.0, 0.0); glRotatef(yangle, 0.0, 1.0, 0.0); glRotatef(zangle, 0.0, 0.0, 1.0); draw_ball(Px, Py, Pz, Radius); init_material(Ka, Kd, Ks, 100 * Kp, bred, bgreen, bblue); draw_bat(Bx, By, Bz, Bradius, 10); draw_stick(); glFlush(); glutSwapBuffers(); }
int main (int argc, char *argv[]) { GtkBuilder *login; GtkBuilder *builder; GtkWidget *loginwindow; GtkWidget *window; GtkButton *loginbtn; gtk_init( &argc, &argv ); /* Create builder */ builder = gtk_builder_new(); gtk_builder_add_from_file( builder, "ui.glade", NULL ); window = GTK_WIDGET( gtk_builder_get_object( builder, "window1" ) ); login = gtk_builder_new(); gtk_builder_add_from_file(login, "login.glade", NULL); loginwindow = GTK_WIDGET(gtk_builder_get_object(login, "loginwindow")); loginbtn = GTK_BUTTON(gtk_builder_get_object(login, "loginbtn")); g_signal_connect(loginbtn, "clicked", G_CALLBACK(cb_login_button), NULL); init_db(); init_login(login, loginwindow, window); init_user(builder); init_material(builder); init_auth(builder); init_inout(builder); gtk_builder_connect_signals( login, NULL); g_object_unref( G_OBJECT( login) ); gtk_builder_connect_signals( builder, NULL); g_object_unref( G_OBJECT( builder ) ); gtk_widget_show(loginwindow); gtk_main(); return( 0 ); }
void get_material_attributes(t_env *e, int fd) { t_split_string attr; char *temp_line; attr.words = 0; e->material[e->materials] = (t_material *)malloc(sizeof(t_material)); init_material(e->material[e->materials]); while (ft_gnl(fd, &temp_line)) { if (temp_line[0] == '\0') break ; attr = ft_nstrsplit(temp_line, '\t'); ft_strdel(&temp_line); if (attr.words < 2) err(FILE_FORMAT_ERROR, "Material attributes", e); set_material_values(e, attr.strings[0], attr.strings[1]); ft_free_split(&attr); } ft_strdel(&temp_line); ++e->materials; }
int parse_material(t_env *env, char **line) { int i[2]; t_material *mat; t_list *lst; if (env->scene == NULL) return (return_print("Error, a scene must be declared first", 0)); if ((mat = (t_material *)ft_memalloc(sizeof(t_material))) == NULL || (lst = ft_lstnewfrom(mat, sizeof(*mat))) == NULL) return (return_print("malloc error", 0)); init_material(mat); i[0] = 0; i[1] = 0; while (line[++i[0]]) if (parse_material_2(line, i, mat) == 0) return (0); if (env->scene->materials == NULL) env->scene->materials = lst; else ft_lstadd(&(env->scene->materials), lst); return (i[1] == 1 ? 1 : return_print("error material imcomplete", 0)); }
void Application::load(SceneInfo* sceneInfo) { vector<Collada::Node>& nodes = sceneInfo->nodes; vector<DynamicScene::SceneLight *> lights; vector<DynamicScene::SceneObject *> objects; // save camera position to update camera control later CameraInfo *c; Vector3D c_pos = Vector3D(); Vector3D c_dir = Vector3D(); int len = nodes.size(); for (int i = 0; i < len; i++) { Collada::Node& node = nodes[i]; Collada::Instance *instance = node.instance; const Matrix4x4& transform = node.transform; switch(instance->type) { case Collada::Instance::CAMERA: c = static_cast<CameraInfo*>(instance); c_pos = (transform * Vector4D(c_pos,1)).to3D(); c_dir = (transform * Vector4D(c->view_dir,1)).to3D().unit(); init_camera(*c, transform); break; case Collada::Instance::LIGHT: { lights.push_back( init_light(static_cast<LightInfo&>(*instance), transform)); break; } case Collada::Instance::SPHERE: objects.push_back( init_sphere(static_cast<SphereInfo&>(*instance), transform)); break; case Collada::Instance::POLYMESH: objects.push_back( init_polymesh(static_cast<PolymeshInfo&>(*instance), transform)); break; case Collada::Instance::MATERIAL: init_material(static_cast<MaterialInfo&>(*instance)); break; } } scene = new DynamicScene::Scene(objects, lights); const BBox& bbox = scene->get_bbox(); if (!bbox.empty()) { Vector3D target = bbox.centroid(); canonical_view_distance = bbox.extent.norm() / 2 * 1.5; double view_distance = canonical_view_distance * 2; double min_view_distance = canonical_view_distance / 10.0; double max_view_distance = canonical_view_distance * 20.0; canonicalCamera.place(target, acos(c_dir.y), atan2(c_dir.x, c_dir.z), view_distance, min_view_distance, max_view_distance); camera.place(target, acos(c_dir.y), atan2(c_dir.x, c_dir.z), view_distance, min_view_distance, max_view_distance); set_scroll_rate(); } // set default draw styles for meshEdit - scene->set_draw_styles(&defaultStyle, &hoverStyle, &selectStyle); }
int main(int argc, char *argv[]) { Parameters *parameters; // user defined parameters Geometry *geometry; // homogenous cube geometry Material *material; // problem material Bank *source_bank; // array for particle source sites Tally *tally; // scalar flux tally double *keff; // effective multiplication factor double t1, t2; // timers #ifdef _OPENMP unsigned long counter = 0; //counter to decide the start pos of master bank copy from sub banks Bank *g_fission_bank; //global fission bank #endif // Get inputs: set parameters to default values, parse parameter file, // override with any command line inputs, and print parameters parameters = init_parameters(); parse_parameters(parameters); read_CLI(argc, argv, parameters); print_parameters(parameters); // Set initial RNG seed set_initial_seed(parameters->seed); set_stream(STREAM_INIT); // Create files for writing results to init_output(parameters); // Set up geometry geometry = init_geometry(parameters); // Set up material material = init_material(parameters); // Set up tallies tally = init_tally(parameters); // Create source bank and initial source distribution source_bank = init_source_bank(parameters, geometry); // Create fission bank #ifdef _OPENMP omp_set_num_threads(parameters->n_threads); // Set number of openmp threads printf("threads num: %d\n", parameters->n_threads); // Allocate one master fission bank g_fission_bank = init_bank(2*parameters->n_particles); #endif // Set up array for k effective keff = calloc(parameters->n_active, sizeof(double)); center_print("SIMULATION", 79); border_print(); printf("%-15s %-15s %-15s\n", "BATCH", "KEFF", "MEAN KEFF"); #ifdef _OPENMP // Start time t1 = omp_get_wtime(); run_eigenvalue(counter, g_fission_bank, parameters, geometry, material, source_bank, fission_bank, tally, keff); // Stop time t2 = omp_get_wtime(); #endif printf("Simulation time: %f secs\n", t2-t1); // Free memory #ifdef _OPENMP free_bank(g_fission_bank); #endif free(keff); free_tally(tally); free_bank(source_bank); free_material(material); free(geometry); free(parameters); return 0; }
/* called on startup, creator.c */ void init_def_material(void) { init_material(&defmaterial); }
int main(int argc, char *argv[]) { Parameters *parameters; // user defined parameters Geometry *geometry; // homogenous cube geometry Material *material; // problem material Bank *source_bank; // array for particle source sites Bank *fission_bank; // array for particle fission sites Tally *tally; // scalar flux tally double *keff; // effective multiplication factor double t1, t2; // timers // Get inputs: set parameters to default values, parse parameter file, // override with any command line inputs, and print parameters parameters = init_parameters(); parse_parameters(parameters); read_CLI(argc, argv, parameters); print_parameters(parameters); // Set initial RNG seed set_initial_seed(parameters->seed); set_stream(STREAM_OTHER); // Create files for writing results to init_output(parameters); // Set up geometry geometry = init_geometry(parameters); // Set up material material = init_material(parameters); // Set up tallies tally = init_tally(parameters); // Create source bank and initial source distribution source_bank = init_source_bank(parameters, geometry); // Create fission bank fission_bank = init_fission_bank(parameters); // Set up array for k effective keff = calloc(parameters->n_active, sizeof(double)); center_print("SIMULATION", 79); border_print(); printf("%-15s %-15s %-15s %-15s\n", "BATCH", "ENTROPY", "KEFF", "MEAN KEFF"); // Start time t1 = timer(); run_eigenvalue(parameters, geometry, material, source_bank, fission_bank, tally, keff); // Stop time t2 = timer(); printf("Simulation time: %f secs\n", t2-t1); // Free memory free(keff); free_tally(tally); free_bank(fission_bank); free_bank(source_bank); free_material(material); free(geometry); free(parameters); return 0; }