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);
}
Exemple #2
0
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);
}
Exemple #6
0
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);

}