Scene& GlassModelExample::createScene(Scene& scene, const double aspectRatio) { scene = createMaterials(scene); std::cout << "Creating scene..." << std::endl; Background* background = new GradientBackground(Color(1, 1, 1), Color(0.0, 0.0, 0.0)); scene.setBackground(background); Transform Tcam = Transform::Translate(0,-3,2) * Transform::RotateXdeg(80); Camera* camera = new PinholeCamera(aspectRatio); SimpleCameraMount* mount = new SimpleCameraMount(Tcam, camera); scene.setCameraMount(mount); scene.addElement(new Object(Transform::Translate(0,0,-1), GeoPtr(new Plane()), "white")); TriangleMesh *mesh = LoadASC("nudobult.asc", 0.02); if (mesh) { GeoPtr pMesh(mesh); scene.addElement(new Object(Transform::Translate(0,4,0.5) *Transform::RotateZdeg(15), pMesh, "glass")); } SkyLight* skyLight = new SkyLight(0.5, Color(0.800, 0.930, 1)); skyLight->setSampling(4,16,0.05); scene.addElement(skyLight); SphereAreaLight *areaLight = NULL; areaLight = new SphereAreaLight(Transform::Translate(-6,-2,7),1.0, Color(0.8,0.7,0.6), 1, true, SphereAreaLight::ATT_NONE); areaLight->setSampling(4,16); scene.addElement(areaLight); return scene; }
void LoadTriangleList(const char *fileName, triangle_t **triList, int *triangleCount) { FILE *input; q_strlcpy(InputFileName, fileName, sizeof(InputFileName)); StripExtension(InputFileName); q_strlcat(InputFileName, ".asc", sizeof(InputFileName)); if ((input = fopen(InputFileName, "rb")) != NULL) { fclose(input); LoadASC(InputFileName, triList, triangleCount); return; } StripExtension(InputFileName); q_strlcat(InputFileName, ".hrc", sizeof(InputFileName)); if ((input = fopen(InputFileName, "rb")) != NULL) { fclose(input); LoadHRC(InputFileName, triList, triangleCount); return; } StripExtension(InputFileName); q_strlcat(InputFileName, ".htr", sizeof(InputFileName)); if ((input = fopen(InputFileName, "rb")) != NULL) { fclose(input); LoadHTR(InputFileName, triList, triangleCount); return; } StripExtension(InputFileName); q_strlcat(InputFileName, ".tri", sizeof(InputFileName)); if ((input = fopen(InputFileName, "rb")) != NULL) { LoadTRI(input, triList, triangleCount); fclose(input); return; } COM_Error("Could not open file '%s':\n" "No ASC, HRC, HTR, or TRI match.\n", fileName); }