Beispiel #1
0
void setupBounds()
{
    Vec3f topLeftFront = Vec3f(-WIDTH/2., HEIGHT/2.,DEPTH/2.);
    Vec3f topLeftBack = Vec3f(-WIDTH/2., HEIGHT/2.,-DEPTH/2.);
    Vec3f topRightFront = Vec3f(WIDTH/2., HEIGHT/2.,DEPTH/2.);
    Vec3f topRightBack = Vec3f(WIDTH/2., HEIGHT/2.,-DEPTH/2.);
    Vec3f botLeftFront = Vec3f(-WIDTH/2., -HEIGHT/2.,DEPTH/2.);
    Vec3f botLeftBack = Vec3f(-WIDTH/2., -HEIGHT/2.,-DEPTH/2.);
    Vec3f botRightFront = Vec3f(WIDTH/2., -HEIGHT/2.,DEPTH/2.);
    Vec3f botRightBack = Vec3f(WIDTH/2., -HEIGHT/2.,-DEPTH/2.);


    bounds.setColour(Vec3f(0,0,1));
    bounds.setFragmentShaderPath("Shaders/basic_fs.glsl");
    bounds.setVertexShaderPath("Shaders/basic_vs.glsl");
    bounds.setRenderMode(GL_LINES);
    std::vector<Vec3f> points;

    points.push_back(topLeftFront);
    points.push_back(topLeftBack);

    points.push_back(topLeftBack);
    points.push_back(topRightBack);

    points.push_back(topRightBack);
    points.push_back(topRightFront);

    points.push_back(topRightFront);
    points.push_back(topLeftFront);

    points.push_back(botLeftFront);
    points.push_back(botLeftBack);

    points.push_back(botLeftBack);
    points.push_back(botRightBack);

    points.push_back(botRightBack);
    points.push_back(botRightFront);

    points.push_back(botRightFront);
    points.push_back(botLeftFront);

    points.push_back(topLeftFront);
    points.push_back(botLeftFront);

    points.push_back(topRightFront);
    points.push_back(botRightFront);

    points.push_back(topLeftBack);
    points.push_back(botLeftBack);

    points.push_back(topRightBack);
    points.push_back(botRightBack);



    bounds.setVerts(points);
}
/* Loads a curve from a ".vert" file, which is constructed as such:
 * 2				//First line is the number of vec3f's to read (call this 'n')
 * 1.0 1.0 1.0		// Second line is always the colour to render the curve
 * -1.0 1.0 0.0		// The remaining n -1 lines are the vertices of the curve
 */
void FileHelper::loadCurveFromFile(const char* file, Renderable & curve){

	char buffer[50];
	FILE* fp;
	int numPoints;

	fp = fopen(file, "r");

	fgets(buffer, 50, fp);
	numPoints = atoi(buffer);

	std::vector<Vec3f> verts;
	for(int i = 0; i < numPoints; i++){
		float temp1, temp2, temp3;
		fgets(buffer, 50, fp);
		sscanf(buffer, "%f %f %f\n", &temp1, &temp2, &temp3);
		Vec3f vert(temp1, temp2, temp3);

		// First point is the colour
		if(i == 0)
		{
			curve.setColour(vert);
		}

		// Remaining points are the vertices
		else
		{
			verts.push_back(vert);
		}

	}

	curve.setVerts(verts);

	fclose(fp);
	printf("Loaded %s!\n", file);
}