GLuint BufferUtils::genPlantBuffer(float x, float y, float z, float n, int w) { GLfloat *data = malloc_faces(10, 4); float ao = 0; float light = 1; make_plant(data, ao, light, x, y, z, n, w, 45); return gen_faces(10, 4, data); }
void bld_amr_mesh() { /* */ /* Create amr cells. */ /* */ void bldmthr(); void bldpck(); void bldlvl(); void bldtop(); void bldcoord(); void bldnbh(); void gen_nodes(); void gen_faces(); void gen_edges(); /* Generate mother list. */ bldmthr(); /* Generate lpoint, lopack and hipack list. */ bldpck(); /* Generate cell level array. */ bldlvl(); /* Identify top level cells. */ bldtop(); /* Build cell coordinates. */ bldcoord(); /* Build neighbor lists. */ bldnbh(); printf("GMV created %d AMR cells.\n",numtop); /* Build and fill node coordinates and cell node lists. */ gen_nodes(); printf("GMV created %d AMR nodes.\n",nnodes); /* Build and fill cell face list and cell face nos. */ gen_faces(); printf("GMV created %d AMR faces.\n",ncellfaces); /* Build and fill cell edge list and cell edge nos. */ gen_edges(); printf("GMV created %d AMR edges.\n",ncelledges); /* Free mesh arrays. */ free(daughter); free(mother); free(levcell); free(lpoint); free(lnxtlox); free(lnxtloy); free(lnxtloz); free(lnxthix); free(lnxthiy); free(lnxthiz); free(ltop); }
GLuint BufferUtils::genTextBuffer(float x, float y, float n, char *text) { int length = (int)strlen(text); GLfloat *data = malloc_faces(4, length); for (int i = 0; i < length; i++) { make_character(data + i * 24, x, y, n / 2, n, text[i]); x += n; } return gen_faces(4, length, data); }
GLuint BufferUtils::genCubeBuffer(float x, float y, float z, float n, int w) { GLfloat *data = malloc_faces(10, 6); float ao[6][4] = {0}; float light[6][4] = { {0.5, 0.5, 0.5, 0.5}, {0.5, 0.5, 0.5, 0.5}, {0.5, 0.5, 0.5, 0.5}, {0.5, 0.5, 0.5, 0.5}, {0.5, 0.5, 0.5, 0.5}, {0.5, 0.5, 0.5, 0.5} }; make_cube(data, ao, light, 1, 1, 1, 1, 1, 1, x, y, z, 0, 0, 0, n, w); return gen_faces(10, 6, data); }
GLuint BufferUtils::genPlayerBuffer(float x, float y, float z, float rx, float ry) { GLfloat *data = malloc_faces(10, 6); make_player(data, x, y, z, rx, ry); return gen_faces(10, 6, data); }
void create_clouds() { weather = (Weather*)malloc(sizeof(Weather)); //set a prevailaing wind direction. weather->x_prevailing_winds = 0.025f; weather->z_prevailing_winds = 0.035f; weather->initial_generation = MAXIMUM_CLOUDS; weather->cloud_count = 0; weather->clouds = (Cloud**)malloc(MAXIMUM_CLOUDS * sizeof(Cloud*)); GLfloat *data = malloc(sizeof(GLfloat) * 6 * 9 * 6); float n = 1.0f; int index = 0; // -z set_vertex(data,-n,n,-n,0,0,-1,1.0,1.0,1.0, &index); set_vertex(data, n,n,-n,0,0,-1,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,-n,0,0,-1,1.0,1.0,1.0, &index); set_vertex(data, n,n,-n,0,0,-1,1.0,1.0,1.0, &index); set_vertex(data,n,-n,-n,0,0,-1,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,-n,0,0,-1,1.0,1.0,1.0, &index); // +z set_vertex(data,-n,n,n,0,0,1,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,n,0,0,1,1.0,1.0,1.0, &index); set_vertex(data, n,n,n,0,0,1,1.0,1.0,1.0, &index); set_vertex(data, n,n,n,0,0,1,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,n,0,0,1,1.0,1.0,1.0, &index); set_vertex(data,n,-n,n,0,0,1,1.0,1.0,1.0, &index); // +x set_vertex(data,n,n, n,1,0,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n,-n,1,0,0,1.0,1.0,1.0, &index); set_vertex(data,n,n,-n,1,0,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n,-n,1,0,0,1.0,1.0,1.0, &index); set_vertex(data,n,n, n,1,0,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n,n,1,0,0,1.0,1.0,1.0, &index); // -x set_vertex(data,-n,n, n,-1,0,0,1.0,1.0,1.0, &index); set_vertex(data,-n,n,-n,-1,0,0,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,-n,-1,0,0,1.0,1.0,1.0, &index); set_vertex(data,-n,n, n,-1,0,0,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,-n,-1,0,0,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,n,-1,0,0,1.0,1.0,1.0, &index); // +y set_vertex(data,-n,n,n,0,1,0,1.0,1.0,1.0, &index); set_vertex(data,n,n, n,0,1,0,1.0,1.0,1.0, &index); set_vertex(data,-n,n,-n,0,1,0,1.0,1.0,1.0, &index); set_vertex(data,n,n, n,0,1,0,1.0,1.0,1.0, &index); set_vertex(data,n,n,-n,0,1,0,1.0,1.0,1.0, &index); set_vertex(data,-n,n,-n,0,1,0,1.0,1.0,1.0, &index); // -y set_vertex(data,-n,-n,-n,0,-1,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n, -n,0,-1,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n,n,0,-1,0,1.0,1.0,1.0, &index); set_vertex(data,n,-n, n,0,-1,0,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,n,0,-1,0,1.0,1.0,1.0, &index); set_vertex(data,-n,-n,-n,0,-1,0,1.0,1.0,1.0, &index); weather->cloud_vertex_buffer = gen_faces(9, 6, data); }