Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
0
Archivo: hwk1.cpp Proyecto: Tampy/CS537
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;
}
Ejemplo n.º 4
0
  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;
  }
Ejemplo n.º 5
0
  void BasicArrayFS<T, ARRAY_TYPE>::copyToArray(
    size_t srcOffset, T * destArray, size_t destOffset, size_t length)
    const {
		copyToArray(srcOffset, srcOffset + length, destArray, destOffset ); 
  }
Ejemplo n.º 6
0
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;
}