int main() { char selection[1]; int i, dataSize; while(1) { printf("\n1. Sort data by the float value & print high to low\n"); printf("2. Sort data by the float value & print low to high\n"); printf("3. Sort data by the int value & print high to low\n"); printf("4. Sort data by the int value & print low to high\n"); printf("5. Exit\n"); scanf("%s", selection); i = atoi(selection); if (i==1) { dataSize = copyToArray(); sortByFloat(dataSize, i); printData(dataSize); } else if (i==2) { copyToArray(); sortByFloat(dataSize, i); printData(dataSize); } else if (i==3) { copyToArray(); sortByInt(dataSize, i); printData(dataSize); } else if (i==4) { copyToArray(); sortByInt(dataSize, i); printData(dataSize); } else if (i==5) { break; } else { printf("Invalid selection (1-5)"); } }; return 0; }
void Renderer::updateCamera() { Vec3f p = toEmbree(cam->getPosition()); Vec3f t = toEmbree(cam->getTargetPos()); Vec3f u = toEmbree(cam->getUpDir()); AffineSpace3f camSpace = AffineSpace3f::lookAtPoint(p, t, u); AffineSpace3f transform = AffineSpace3f(camSpace.l, camSpace.p); device->rtSetTransform(camera, "local2world", copyToArray(transform)); device->rtSetFloat1(camera, "angle", cam->getFov()); device->rtSetFloat1(camera, "aspectRatio", float(width) / float(height)); device->rtSetFloat1(camera, "lensRadius", cam->getRadius()); device->rtSetFloat1(camera, "focalDistance", (cam->getTargetPos() - cam->getPosition()).length()); device->rtCommit(camera); }
void display() { glClear (GL_COLOR_BUFFER_BIT); projmat = Angel::mat4(1.0); glUniformMatrix4fv(projmat_loc, 1, GL_TRUE, projmat); glBindBuffer( GL_ARRAY_BUFFER, buffers[0] ); //Draw box modelview = Angel::mat4(1.0); glUniformMatrix4fv(modelview_loc, 1, GL_TRUE, modelview); glVertexAttribPointer( vPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0) ); glUniform4fv(draw_color_loc, 1, yelow_box_edge); glDrawArrays(GL_LINE_LOOP, 0, 4); //Mark initial location modelview = Angel::mat4(1.0)*Angel::Translate(vec4(head->x,head->y, 0.0, 0.0))*Angel::Scale(width/25.0, height/25.0, 1.0); glUniformMatrix4fv(modelview_loc, 1, GL_TRUE, modelview); glVertexAttribPointer( vPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0) ); glUniform4fv(draw_color_loc, 1, green_start_marker); glDrawArrays(GL_QUADS, 0, 4); //Draw trajectory modelview = Angel::mat4(1.0); glUniformMatrix4fv(modelview_loc, 1, GL_TRUE, modelview); //copy the trajectory into a buffer GLfloat * trajectoryBuffer = copyToArray(head); glBindBuffer( GL_ARRAY_BUFFER, buffers[1] ); glBufferData( GL_ARRAY_BUFFER, sizeof(GLfloat)*2*pointCount(head), trajectoryBuffer, GL_STREAM_DRAW); glVertexAttribPointer( vPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0) ); glUniform4fv(draw_color_loc, 1, blue_trajectory); glDrawArrays(GL_LINE_STRIP, 0, pointCount(head)); glutSwapBuffers(); delete[] trajectoryBuffer; }
Handle<Device::RTScene> createRandomScene(Device *device, size_t numLights, size_t numObjects, size_t numTriangles) { std::vector<Device::RTPrimitive> prims; //for (size_t i=0; i < numLights; i++) prims.push_back(device->rtNewLightPrimitive(createRandomLight(device), NULL, copyToArray(AffineSpace3f(one)))); for (size_t i=0; i < numObjects; i++) { size_t s = numTriangles ? random<int>() % numTriangles : 0; prims.push_back(device->rtNewShapePrimitive(createRandomShape(device, s), createRandomMaterial(device), copyToArray(AffineSpace3f(one)))); } Handle<Device::RTScene> scene = device->rtNewScene("default"); g_device->rtSetString(scene,"accel",g_accel.c_str()); g_device->rtSetString(scene,"builder",g_builder.c_str()); g_device->rtSetString(scene,"traverser",g_traverser.c_str()); for (size_t i=0; i<prims.size(); i++) g_device->rtSetPrimitive(scene,i,prims[i]); g_device->rtCommit(scene); for (size_t i=0; i<prims.size(); i++) device->rtDecRef(prims[i]); return scene; }
void BasicArrayFS<T, ARRAY_TYPE>::copyToArray( size_t srcOffset, T * destArray, size_t destOffset, size_t length) const { copyToArray(srcOffset, srcOffset + length, destArray, destOffset ); }
Handle <Device::RTShape> Renderer::addShape(Device::RTMaterial material, Device::RTShape shape, const AffineSpace3f & transform) { Handle<Device::RTPrimitive> prim = g_device->rtNewShapePrimitive(shape, material, copyToArray(transform)); prims.push_back(prim); primsMap[shape] = prim; buildScene(); return shape; }